一、单项选择
1. 答案:D
解析:Cache是高速缓存,集成在CPU内,RAM为内存,ROM为外存,依次越来越便宜,速度也越来越慢。
2. 答案:B
解析:RAM就是内存,断电就会消失。
3. 答案:B
解析:计算内的设备是通过总线连接的。
4. 答案:A
解析:64个二进制位,也就是64/8字节
5. 答案:C
解析:2 ^ 8为256,0~255每个数字表示一种颜色。
6. 答案:C
解析:QQ是通讯聊天软件,不属于操作系统。
7. 答案:D
解析:哈希表可以随机访问。
8. 答案:D
解析:分r>f或f>r分别是r-f和r-f+n,即为D
9. 答案:D
解析:由于线段两端相同,增加两只不同鸟,可以产生两条或四条两端不同小鸟的线段。增加N只不同小鸟,由于线段两端是相同鸟,通过对称排列,必定是偶数个两端为不同小鸟的线段。
10. 答案:C
解析:选择排序的基本思想:每次从待排序的记录中选择出关键码值最小(或最大)的记录,顺序放在已排序的记录序列的一端,直到全部排完。也可以用排除法排除其他三项。
11. 答案:A
解析:树叶+分支节点=总结点
12. 答案:D
解析:一般来说,可执行文件没有扩展名。 Linux与Windows不同,不是根据扩展名来区分文件类型的。 事实上,Linux下的文件不需要扩展名。一切皆文件,包含设备文件、目录文件、普通文件等。
13. 答案:B
解析:虚拟内存属于软件
14. 答案:D
解析:入栈顺序与出栈顺序相反,因此入栈顺序中8在51后面: 90在87的前面: 20在14的前面:25在6的后面:19在90的前面。
15. 答案:A
解析:度数之和为偶数
二、阅读程序
1. 这是我们比较熟悉的递归之一,汉诺塔。汉诺塔是将n-1个盘子先借助C从A移动到B,再把第n个盘子从A移动到B,再把n-1个盘子从借助A从B移动到C。
1)答案:错
解析:n=0程序无法结束
2)答案:错
解析:若为1,仅输出1行,共输出2 ^ n -1行
3)答案:对
解析:程序不改变
4)答案:对
解析:只有n==1才会进入判断,输出1即可
5)答案:D
解析:递归n层,每层2个分支
6)答案:B
解析:n=4输出15行,n>4输出>15行,n=0死循环
2.仅仅是个二重循环的题目,每次都会*5,然后通过高精度进行计算,最终却输出0.1,可以猜测是输出0.5的n次方的高精度
1)答案:错
解析:是0.5 ^ n
2)答案:错
解析:最后执行循环i=1,i=0才不满足循环条件了。
3)答案:对
解析:对10进行取余,肯定在0~9之间
4)答案:错
解析:末尾没有多余的0,* 5不会得到0,想得到0还要有因子2
5)答案:B
解析:al最大为n
6)答案:B
解析:0.5 ^ 3=0.125
3.这是一个二分搜索的题目,需要自己对二分搜素有一定的理解,而且这样二分是很多同学还没见过的
1)答案:对
解析:最远距离不可能为0,所以起始为1也可以
2)答案:对
解析:fl>fr程序才会结束
3)答案:错
解析:找到了还会继续找大的,ans>=mid
4)答案:错
解析:表示至少为dis
5)答案:C
解析:二分要执行logl次,每次还都要进行check,check循环n次,乘起来即可。
6)答案:B
解析:即使不懂这个算法,不想模拟,也可以按照题目条件找到正确答案。
三、完善程序
1.Dijkstra是比较重要的图论算法之一,代码也比较长,是贪心的思想,每次找到最小的层层扩展
1)答案:C
解析:自己到自己的距离为0
2)答案:A
解析:dij需要初始化为最大值
3)答案:A
解析:quanzhi(权值)是(point1 , point2)的边权
4)答案:B
解析:用dis[j]更新最短距离
5)答案:C
解析:松弛,到v的距离即到u的距离再加上u到v的距离
2.完全背包是一个非常常见的一个算法,利用到了动态规划思想。
1)答案:A
解析:初始化为0,表示0件物品装容量为j的最大价值为0
2)答案:A
解析:第一重循环枚举个数,每个物品分别是不是要放进背包。
3)答案:C
解析:从小到大,依次看能不能装下。
4)答案:D
解析:dp转移的过程中取最大值
5)答案:B
解析:经过循环后,dp[j]表示5个物品容量为j的最大价值