一、选择题(每题2分,共15题。)
1、以下哪个是面向对象的高级语言( )。
A. 汇编语言
B. C++
C. Fortran
D. Basic
2、1TB代表的字节数量是( )。
A. 2的10次方
B. 2的20次方
C. 2的30次方
D. 2的40次方
3、二进制数00100100和00010101的和是( )。
A. 00101000
B. 01010100
C. 01000101
D. 00111001
4、下列对操作系统功能的描述最为完整的是( )。
A. 负责外设与主机之间的信息交换
B. 负责诊断机器的故障
C. 控制和管理计算机系统的各种硬件和软件资源的使用
D. 将源程序编译成目标程序
5、CPU、存储器、I/O设备是通过( )连接起来的。()
A. 接口
B. 总线
C. 控制线
D. 系统文件
6、断电后会丢失数据的存储器是( )。
A. RAM
B. ROM
C. 硬盘
D. 光盘
7、下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。
A. 296
B. 133
C. 256
D. 199
8、下列几个32位IP地址中,书写错误的是( )。
A. 162.105.128.27
B. 192.168.0.1
C. 256.256.129.1
D. 10.0.0.1
9、要求以下程序的功能是计算:s = 1 + 1/2 + 1/3 + … + 1/10。程序运行后输出结果错误,造成错误的代码行是()
A. for(n = 10; n > 1; n–)
B. s = 1.0;
C. s = s + 1 / n;
D. cout << s << endl;
10、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。
A. x = (x * 100) + 0.5 / 100.0;
B. x = (x * 100 + 0.5) / 100.0;
C. x = (int) (x * 100 + 0.5) / 100.0;
D. x = (x / 100 + 0.5) * 100.0;
11、 如果要使得程序的输出结果为2,那么输入的n应该是()A. -1
B. -3
C. -5
D. 0
12、一棵具有5层的满二叉树中结点数为( )。
A. 31
B. 32
C. 33
D. 16
13、有向图中每个顶点的度等于该顶点的( )。
A. 入度
B. 出度
C. 入度与出度之和
D. 入度与出度之差
14、设有100个数据元素,采用折半搜索时,最大比较次数为( )。
A. 6
B. 7
C. 8
D. 10
15、若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值,c >0。A. s = a + b
B. s = a + c
C. s = s + c
D. s = b + c
阅读程序1:选择题(每题1.5分,正确的选T,错误的选F)
(1) 将n定义为double类型,程序输出结果不变。()
(2) 当输入一个正整数,输出的结果不可能大于1。()
(3) 输入100000000000,输出结果为144。()
(4) 输入12,输出结果为6。()
选择题(每题3分)
(5) 输入120,输出为()
A.15
B.16
C.18
D.14
(6)该代码的时间复杂度是()
A.O(logn)
B.O(nlogn)
C.O(n2)
D.O(n)
阅读程序2:选择题(每题1.5分,正确的选T,错误的选F)
(1)n的值为200时,程序不会运行错误。()
(2)该程序的时间复杂度为O(n)。()
(3)将第12行的cn=i*2改成cn=i,程序的输出结果不变。()
(4)输入30,输出结果为10。()
选择题(每题3分)
(5)本程序的功能为()。
A.求n以内的质数
B.求n以内与n互质的数
C.求n的约数
D.求n以内与n不互质的数
(6)输入100,输出结果为()。
A.24
B.22
C.25
D.23
阅读程序3:选择题(每题1.5分,正确的选T,错误的选F)
(1)将第4行的程序移动到第2,3行中间,程序能够正常运行。()
(2)将第11行的 a[i]<=a[j] 改成 a[i]<a[j],程序运行结果会发生改变。()
(3)将第10行的 j<=i 改成 j<i,程序运行结果会发生改变。()
(4)如果输入
6 8
8 8 8 8 8 8
,程序最后输出结果为1。()
选择题(每题3分)
(5)如果输入
5 7
8 4 7 5 6
,程序最后输出结果为()。
A.3
B.4
C.5
D.6
(6)如果输入仍然是
5 7
8 4 7 5 6
,将第11行的a[i] <= a[j]改成a[i] >= a[j],程序最后输出结果为()。
A.3
B.4
C.5
D.6
完善程序1:(序列重排)全局数组变量 a 定义如下:
const int SIZE = 100;
int a[SIZE], n;
它记录着一个长度为 n 的序列 a1, a2,,…,an 。
现在需要一个函数,以整数 p (1≤p≤n) 为参数,实现如下功能:将序列 a 的前 p 个数与后 n-p 个数对调,且不改变这 p 个数(或 n-p 个数)之间的相对位置。例如,长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排结果为 3, 4, 5, 1, 2 。
有一种朴素的算法可以实现这一需求,其时间复杂度为 O(n)、空间复杂度为 O(n):我们也可以用时间换空间,使用时间复杂度为 O(n2)、空间复杂度为 O(1) 的算法:
(1)①处应填写()
A.p+i
B.n-p+i
C.n-p+i-1
D.i
(2)②处应填写()
A.a[i]
B.a[i-p]
C.a[n-i]
D.b[i]
(3)③处应填写()
A.n
B.p
C.n-1
D.p+1
(4)④处应填写()
A.1
B.i-p
C.n-i
D.i–p+1
(5)⑤处应填写()
A.a[i]
B.a[i–p+1]
C.a[i–p]
D.a[i–1]
完善程序2:(中位数 median) 给定 n(n 为奇数且小于 1000)个整数,整数的范围在 0~m (0<m<231) 之间,请使用二分法求这 n 个整数的中位数。所谓中位数,是指将这 n 个数排序之后,排在正中间的数。(1)①处应填写()
A.lbound<rbound
B.lbound+1>rbound
C.lbound<=rbound
D.rbound-lbound>1
(2)②处应填写()
A.count=0
B.count=1
C.count=mid
D.count++
(3)③处应填写()
A.x[i]<mid
B.x[i]<=mid
C.x[i]>mid
D.x[i]>=mid
(4)④处应填写()
A.count=count – 1
B.rbound=mid
C.lbound=mid
D.count=count+1
(5)⑤处应填写()
A.lbound=mid+1
B.lbound=mid
C.rbound=mid
D.rbound=mid-1