Java面向对象编程(32)

简介: Java面向对象编程(32)

处于运行状态的操作系统程序应放在()

A. 寄存器中

B. 主存中

C. 辅存中

答案:B

在系统内存中设置磁盘缓冲区的主要目的是()

A. 减少磁盘 I/O 次数

B. 减少平均寻道时间

C. 提高磁盘数据可靠性

D. 实现设备无关性

答案:A

下列选项中,会导致进程从执行态变为就绪态的事件是()

A. 执行 P(wait)操作

B. 申请内存失败

C. 启动 I/O 设备

D. 被高优先级进程抢占

答案:D

下面哪一种表述不属于操作系统的主要功能?()

A. 处理机管理

B. 存储器管理

C. 设备管理和文件管理

D. 可移植

答案:D

在现代操作系统中采用缓冲技术的主要目的是()。

A. 改善用户编程环境

B. 提高CPU的处理速度

C. 提高CPU和设备之间的并行程度

D. 实现与设备无关性

答案:C

进程和程序的一个本质区别是()。

A. 前者为动态的,后者为静态的

B. 前者存储在内存,后者存储在外存

C. 前者在一个文件中,后者在多个文件中

D. 前者分时使用CPU,后者独占CPU

答案:A

一个进程的读磁盘操作完成后,操作系统针对该进程必做的是 ()

A. 修改进程状态为就绪态

B. 降低进程优先级

C. .进程分配用户内存空间

D. 增加进程的时间片大小

答案:A

选择在最近的过去很久未访问的页面予以淘汰的算法称为()。

A. Opt.

B. LRU

C. MFU

D. LFU

答案:B

并发进程之间()。

A. 彼此无关

B. 必须同步

C. 必须互斥

D. 可能需要同步或互斥

答案:D

一次I/O操作的结束,有可能导致()。

A. 一个进程由睡眠变就绪

B. 几个进程由睡眠变就绪

C. 一个进程由睡眠变运行

D. 几个进程由睡眠变运行

答案:A

淘宝网店

题目描述:NowCoder在淘宝上开了一家网店。他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元。

现在给你一段时间区间,请你帮他计算总收益有多少。

输入描述:输入包含多组数据。

每组数据包含两个日期from和to (2000-01-01 ≤ from ≤ to ≤ 2999-12-31)。

日期用三个正整数表示,用空格隔开:year month day。 输出描述:对应每一组数据,

输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。

public class Main51 {
    //淘宝网店
    public static void main(String[] args) {
        int year1,month1,day1,year2,month2,day2;
        int profit=0;
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNextInt()){
            year1=scanner.nextInt();
            month1=scanner.nextInt();
            day1=scanner.nextInt();
            year2=scanner.nextInt();
            month2=scanner.nextInt();
            day2=scanner.nextInt();
            profit=profitofYear(year1)-profitofThisYear(year1,month1,day1-1);
            profit +=profitofThisYear(year2,month2,day2);
            if (year1==year2){
                profit -=profitofYear(year1);
            }
            for (int i = year1+1; i < year2; i++) {
                profit +=profitofYear(i);
            }
            System.out.println(profit);
        }
    }
    private static boolean isLeapYear(int year){
        return (year % 400==0) || (year %4==0 && year %100 !=0);
    }
    private static int profitofYear(int year){
        return 2*31+1*28+1*31+2*30+1*31+2*30+1*31+2*31+ 2*30+2*31+1*30+2*31+(isLeapYear(year) ?1:0);
    }
    private static boolean isPrime(int month){
        return month==2 || month==3|| month==5 ||month==7 ||month==11;
    }
    private static int profitofThisYear(int year,int month,int day){
        int profit=0;
        if ( !isPrime(month)){
            profit=day*2;
        }else {
            profit=day;
        }
        while (--month >0){
            switch (month){
                case 1: case 8: case 10: case 12:
                    profit +=62;
                    break;
                case 3: case 5: case 7:
                    profit +=31;
                    break;
                case 4: case 6: case 9:
                    profit +=60;
                    break;
                case 11:
                    profit +=30;
                    break;
                default:   //case 2
                    profit += (28 + (isLeapYear(year) ? 1 : 0));
                    break;
            }
        }
        return profit;
    }
}

斐波那契凤尾

题目描述:NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。

为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。当然,斐波那契数会很大。因此,如果第n个斐波那契数不到6位,则说出该数;否则只说出最后 6位。

输入描述:输入有多组数据。 每组数据一行,包含一个整数n (1≤n≤100000)。

输出描述:对应每一组输入,输出第n个斐波那契数的最后6位。


 

public class Main52 {
//    斐波那契凤尾
    public static void main(String[] args) {
        int border=-1;
        long[] ans=new long[100000];
        ans[0]=1;
        ans[1]=2;
        for (int i = 2; i < 100000; i++) {
            long next=ans[i-1]+ans[i-2];
            if (border==-1 && next >=1000000){
                border =i+1;
            }
            ans[i]=next % 1000000;
        }
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNextInt()){
            int n=scanner.nextInt();
            long f=ans[n-1];
            if (n <border){
                System.out.printf("%d\n",f);
            }else {
                System.out.printf("%06d\n",f);
            }
        }
    }
}
相关文章
|
3月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
42 7
|
3月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
49 5
|
3月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
5月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
38 3
|
5月前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
152 57
|
3月前
|
存储 前端开发 JavaScript
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
20 0
【前端学java】面向对象编程基础-类的使用(4)
|
3月前
|
Java 程序员 开发者
Java的面向对象编程:从基础到深入
【8月更文挑战第21天】在本文中,我们将探讨Java的面向对象编程(OOP)的核心概念,包括类、对象、继承、多态和封装。我们将通过实例和比喻,以通俗易懂的方式,深入理解这些概念的内涵和意义,以及它们如何影响我们的编程思维和实践。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更深入地理解Java的OOP,并启发你思考如何在你的项目中应用这些概念。
|
4月前
|
Java API 项目管理
Java中的函数式编程与传统面向对象编程对比
Java中的函数式编程与传统面向对象编程对比
|
5月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
62 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
5月前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
62 7
下一篇
无影云桌面