CSP-J 第一轮仿真测试卷2

( 普及组 C++语言 两小时完成 )
你的姓名:
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)

1.今有一空栈s,对下列待进栈的数据元素序列1,2,3,4,5,6,7,.....直进行进栈,进栈,出栈,进栈,进栈,进栈,出栈为一次的操作,那么在2019次操作后,S栈的栈顶元素为() 。
A.10090
B.10094
C.10100
D.10086
2.对有序数组{5, 13,19, 21, 37, 56,64, 75,88, 92, 100}进行二分查找,等概率的情况下查找成功的平均查找长度(平均比较次数)是()。
A.35/11
B.34/11
C.33/11
D.34/10
3.下面有四个数据组,每个组各有三个数据,其中第一个数据为八进制数,第二个数据为十进制数,第三个数据为十六进制数。这四个数据组中三个数据相同的是()。
A.120 82 50
B.144100 68
C.300 200 C8
D.1762 1010 3F2
4.将(2,6,10, 17)分别储存到某个地址区间为0~10的哈希表中,如果哈希函数h(x)= (), 将不会产生冲突.,其中a mod b表示a除以b的余数。
A.x mod 11
B.x2 mod 11
C.2x mod 11
D.
根号下x,向下取整
5.二分图是指能将定点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。那么,12个顶点的二分图至多有() 条边。
A.18
B.24
C.36
D.66
6.有一个含有k个不同的数的数组S=<x1,x2,. ... .,xn>。在S中有这样一个数xi (1<i<n)使x1<x2<x3<. ... <xi-1<xi>xi+1>....>xn-1>xn ,则称这个数xi为数组S的“峰顶”,S就为单峰的。
下面有几行代码,请将a-e五处代码补全到算法之中,使得算法正确找到S的峰顶。
a. S[mid]<S[mid+1]      b.S[mid]>S[mid+1]
c. Search(1, mid-1)        d. Search(mid+1,k)
e.return S[mid]



正确的填空顺序是( )。
A. a,c,b,d,e
B. a,d,b,c,e
C. b,e,a,d,c
D. b,e,a,c,d
7.如果不在快速排序中引入随机化,有可能导致的后果是()。
A.数组访问越界
B.陷入死循环
C.排序结果错误
D.排序时间退化为平方级
8.二进制数-1101010的补码是()。
A.0010101
B.10010110
C.10010101
D.01101010
9.设二进制数x的值是11001101。若想通过x&y运算使x中的低度4位不变,高4位清零,则y的二进制数是()
A.11110000
B.00001100
C.00001111
D.0000010
10.循环链表的主要优点是()。
A.不再需要头指针了
B.已知某个结点的位置后,能很容易地找到它的直接前驱结点
C.在进行删除操作后,能保证链表不断开
D.从表中任一结点出发都能遍历整个链表
11.某算法计算时间表示为递推关系式: T(N)=N+T(N/2) , 则该算法时间复杂度为()。
A.0(N*N)
B.0(N1ogN)
C.0(N)
D.0(1)
把7个相同苹果放入到4个相同的篮子里,允许有篮子空着不放,共有多少种放法?
A. 12
B. 10
C. 11
D. 8
13.6个顶点的连通图的最小生成树,其边数为( )
A.6
B.5
C.7
D.4
14. 若逻辑变量A、C为真,B为假,以下逻辑运算表达式为真的是( )
A.(B∨C)∧¬A
B.((¬A∧B)∨C)∧¬B
C.(A∧B)∨(C∧B)
D.A∧(B∨¬C)
15.一张有9个节点的简单无向图最多有()条边.
A.40
B.81
C.72
D.36
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√, 错误填x;除特殊情况外,判断题1.5分,选择题3分,共计40分)

1. 本程序会把几行输入的句子的首字母输出(如果首字母是大写的话)。
如果输入不含大写字母,那么程序就会进入死循环。
把第10句的n++改成++n程序的输出结果一定和原来不同。
如果去掉第13行,程序依然能正常运行。
(2分)若输入的总字符数(包括空格)为50个,n最大是多少?
A 1
B 25
C 50
C 100
(2分)若输入的总字符数(包括空格)为50个,n最小是多少?
A 1
B 2
C 50
C 0
(2分)若输入为“Son of God #”,那么输出
2.



判断题:

1)结果的数字个数为2n。
2)输入1时,结果为1。
选择题:

3)如果输入3,输出是()。
A.17 24 1 8 15
B.1 8 24 17 15
C.15 24 17 8 1
D.24 17 8 1 15
4)如果输入5,输出的个数有()
A.6
B.7
C.8
D.5
5)如果输入4时,输出结果的和是()
A.175
B.200
C.150
D.120
6)如果输入2,输出()
A.861
B.816
C.618
D.186
3.

如果i==0且s==0,那么函数的返回值为1。
i=n时的go函数的返回值一定大于等于i=n-1时的go函数的返回值。
如果m>1,且所有的a[i]都等于0,那么最终会输出( )。
A n
B 0
C 1
D m
如果n=1,且a[1]=m,那么输出( )。
A log m
B 0
C 1
D m
本体的时间复杂度可以被优化为( )。
A mlogn
B nlogm
C nm
D m的n次方
若输入2 4 3 2,那么输出
若输入3 4 2 3 1,那么输出
如果所有a[i]都等于1,若输入n=4 m=3,那么输出
三、完善程序(单选题,每小题3分,共计15分)
1. (循环比赛日程表)设有N个选手进行循环比赛,其中N=2^M,要求每名选手要与其他N-1名选手都赛一次,每名选手每天比赛一次, 循环赛共进行N-1天,要求每天没有选手轮空。



1)①处应填()
A. a[0][1]=1
B. a[0][0]=1
C. a[1][0]=1
D. a[1][1]=1
2)②处应填()
A. i
B. i+half
C. j
D. j+half
3)③处应填()
A. a[i][j]-half
B. a[i][j+1]-half
C. a[i][j]+half
D. a[i][j+1]+half
4)④处应填()
A.a[i][j+half]
B.a[i+half][j+half]
C.a[i+half][j]
D.a[i][j]
5)⑤处应填()
A. half/=2
B. half*=2
C. half+=2
D.half-=2



2.



判断题:

1)若将19行“(degree[b]++);"改为“( degree[a]++);"则运行结果不变。
2)该程序的时间复杂度是0(n)。
3)将代码删除11至15行,值不变。
4)若输入数据为:

则输出3。
选择题:

5)(4分)第5行定义的意义是()
A.用邻接矩阵存储图
B.记录每个结点的入度.
C.存放拓扑排序结果
D.记录以各结点为终点的最长路径长度
6)这个程序是用了()
A.基数排序
B.归并排序
C.拓扑排序
D.堆排序
问卷星提供技术支持
举报