若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。
Ⅰ. 若该文件的数据不在内存中,则该进程进入睡眠等待状态
Ⅱ. 请求 read 系统调用会导致 CPU 从用户态切换到核心态
Ⅲ. read 系统调用的参数应包含文件的名称
A. 仅Ⅰ、 Ⅱ
B. 仅Ⅰ、 Ⅲ
C. 仅Ⅱ、 Ⅲ
D. Ⅰ、 Ⅱ和Ⅲ
答案:A
Linux文件权限一共10位长度,分成四段,第三段表示的内容是()?
A. 文件类型
B. 文件所有者的权限
C. 文件所有者所在组的权限
D. 其他用户的权限
答案:C
Linux文件权限一共10位长度,分成四段,第三段表示的内容是()?
A. 文件类型
B. 文件所有者的权限
C. 文件所有者所在组的权限
D. 其他用户的权限
答案:C
进程阻塞的原因不包括()
A. 时间片切换
B. 等待I/O
C. 进程sleep
D. 等待解锁
答案:A
在缺页处理过程中,操作系统执行的操作可能是()
Ⅰ.修改页表
Ⅱ.磁盘 I/O
Ⅲ.分配页框
A. 仅Ⅰ、 Ⅱ
B. 仅Ⅱ
C. 仅Ⅲ
D. Ⅰ、 Ⅱ和Ⅲ
答案:D
下面选项中,满足短任务优先且不会发生饥饿现象的调度算法是()
A. 先来先服务
B. 高响应比优先
C. 时间片轮转
D. 非抢占式短任务优先
答案:B
下列选项中,降低进程优先级的合理时机是()
A. 进程的时间片用完
B. 进程刚完成I/O,进入就绪列队
C. 进程持久处于就绪列队
D. 进程从就绪状态转为运行态
答案:A
在使用锁保证线程安全时,可能会出现活跃度失败的情况,活跃度失败主要包括()
A. 死锁
B. 饥饿
C. 活锁
D. 以上全部
答案:D
选择排队作业中等待时间最长的作业优先调度,该调度算法是()。
A. 先来先服务调度算法
B. 高响应比优先调度算法
C. 优先权调度算法
D. 短作业优先调度算法
答案:A
对进程和线程的描述,以下正确的是()
A. 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间
B. 改变进程里面主线程的状态会影响到其他线程的行为,改变父进程的状态不会影响到其他子进程
C. 多线程会引起死锁,而多进程不会
D. 以上选项都不正确
答案:D
剪花布条
题目描述:一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
输入描述:输入包含多组数据。
每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花 样。花纹条和小饰条不会超过1000个字符长。
输出描述:对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。
public class Main53 { //剪花布条 private static int cut(String s,String t){ int i=s.indexOf(t); if (i ==-1){ return 0; } return 1+cut(s.substring(i + t.length()),t); } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while (scanner.hasNext()){ String s=scanner.next(); String t=scanner.next(); int ans=cut(s,t); System.out.println(ans); } } }
客似云来
题目描述:NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接 下来每天都会带一位新朋友一起来品尝。
于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……
现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。
输入描述:测试数据包括多组。
每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。
输出描述:对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。
public class Main54 { //客似云来 public static void main(String[] args) { long[] fib=new long[80]; fib[0]=1; fib[1]=1; for (int i = 2; i < 80; i++) { fib[i]=fib[i-1]+fib[i-2]; } Scanner scanner=new Scanner(System.in); while (scanner.hasNextInt()){ int from=scanner.nextInt(); int to=scanner.nextInt(); long count=0; for (int i = from-1; i <= to-1; i++) { count +=fib[i]; } System.out.println(count); } } }