去有限的时间里看到无限!
一、选择题
1、现代计算机普遍采用总线结构,包括数据总线、地址总线、控制总线,通常与数据总线位数对应相同的部件是( )。
A、CPU
B、存储器
C、地址总线
D、控制总线
答案:A。分析:数据总线是双向三态形式的总线,即它既可以把CPU的数据传送到存储器或输入输出接口等其他部件、将其他部件的数据传送到CPU。
2、系统死锁的可能的原因是()
A、程序内存访问越界
B、进程释放资源
C、资源循环等待
D、进程死循环
答案:C。分析:系统死锁的可能的原因:1、系统资源不足 2、进程推进顺序非法 必要条件: 1、 互斥条件 2、 不剥夺条件(非抢占) 3、 占有并等待(部分分配)4、资源循环等待。
3、在系统内存中设置磁盘缓冲区的主要目的是()
A、减少磁盘 I/0 次数
B、减少平均寻道时
C、实现设备儿关性
D、提高磁盘数据可靠性
答案:A。分析:在系统内存中设置磁盘缓冲区的主要目的是就是减少磁盘 I/0 次数。
4、在一个文件被用户进程首次打开的过程中,操作系统需做的是()
A、将文件内容读到内存中
B、将文件控制块读到内存中
C、将文件的数据缓冲区片指针返回给用户进程
D、修改文件控制块中的读权限
答案:B。分析:在一个文件被用户进程首次打开的过程中,操作系统需做的是将文件控制块读到内存中。这是必须的。
5、进程间通讯的方式中哪种的访问速度最快()
A、管道
B、消息队列
C、套接字
D、 共享内存
答案:D。分析:共享内存是进程间通讯的方式中访问速度最快的。
二、编程题
1、最难的问题
注意多组输入,而且有空格
代码示例:
usingnamespacestd; intmain() { strings; while (getline(cin, s)) { for (inti=0; i<s.size(); i++) { if (s[i] >='A'&&s[i] <='Z') { s[i] =s[i] -5; if (s[i] <'A') { s[i] ='Z'+s[i] +1-'A'; } } } cout<<s<<endl; } return0; }
2、因子个数
输出n的因子个数
usingnamespacestd; intmain() { intn, k, i; while (cin>>n) { k=0; for (i=2; i<=sqrt(n); i++) { if (n%i==0) { while (n%i==0) { n=n/i; } ++k; } } if (n!=1) { ++k; } cout<<k<<endl; } return0; }
总结
本文总共讲了5题牛客高频的选择题,以及两道牛客编程题,希望大家读后能够有所收获!