2023CSP-J软件能力认证第一轮模拟B卷w

*
学号
*
姓名
一、选择题(以下共有15道题目,对于每道题目,在ABCD选项中选择正确的一项。每题2分,共30分)
*
1. 十进制表达式(3×512+7×64+4×8+3)+1的结果以二进制形式表示为 ()
A.10111100101
B.11111100100
C.111110100011
D.11111101101
*
2. 寄存器是()的重要组成部分。
A.硬盘
B.高速缓存
C.内存
D.中央处理器(CPU)
*
3. 微型计算机中,控制器的基本功能是()
A. 控制机器各个部件协调工作
B.实现算术运算和逻辑运算
C. 获取外部信息
D.存放程序和数据
*
4.计算机能直接执行的指令包括两部分,他们是 ()
A.源操作数与目标操作数
B.操作码与操作数
C.ASCII码与汉字代码
D.数字与字符
*
5.以下程序中,正确计算1,2,3, …, 100 个自然数之和sum(sum初始为零) 的是()
A. i=1; do{ sum += i ; i++; } while( i<=100);
B.i=1; do{ sum += i ; i++; } while( i>100);
C.i=1; while( i<100) { sum += i; i++; }
D.i=1; while( i>=100) { sum += i; i++; }
*
6. 字符串”scksc”具有多少个不相同的子串()
A. 12
B. 13
C. 14
D. 15
*
7. 命题“P→Q”可读做P蕴含Q,其中P、Q是两个独立的命题. 只有当命题P成立而命题Q不成立时,命题"P→Q"的值为false,其它情况均为true. 与命题"P→Q"等价的逻辑关系式是 () 。
A. P∨Q
B. P∧ Q
C. ﹁ (P∨ Q)
D. ﹁(﹁Q∧ P )
*
8.如图,小圆圈表示网络的结点,结点之间的连线表示它们有网线相联,连线标注的数字表示该段网线单位时间内可以通过的最大信息量,现从结点B向结点A传递信息,信息可以分开沿不同的路线同时传递,则单位时间内传递的最大信息量为()。
A. 19
B. 20
C. 24
D. 25
*
9. 教室里有一台4k高清显示器,分辨率为4096x2160,每个像素都是32位真彩色,老师墦放一个2分钟的视频文件(每秒为24帧)。在没有压缩的情况下这个视频文件所需的空间约为 ()。.
A. 80GB
B. 100GB
C. 760GB
D. 800GB
*
10. 把7个同样的球放在3个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法() (如果7个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法)
A. 5
B. 8
C. 11
D. 13
*
11.逻辑表达式中用“&&"、“||”、“!”分别表示逻辑与、或、非运算,优先级从高到低为“!”、“&&”、“||”。对逻辑表达式“x&&(y II !z)”进行计算求值时()。
A. x为真,则整个表达式的值即为真,不需要计算y和z的值
B. x为假,则整个表达式的值即为假,不需要计算y和z的值
C. x为真,再根据z的值决定是否需要计算y的值
D. x为假,再根据y的值决定是否需要计算z的值
*
12. 8颗子弹,编号为12345678,从编号1开始按序嵌入弹夹,以下那个不是正常打出子弹的次序 ()
A. 123456
B. 87654321
C. 32154867
D. 21654387
*
13. 己知循环队列空间为30 ,队首位置编号为12,队尾元素的下一个空位置编号为5,则队列中己有元素的个数为 ()
A. 22
B. 23
C. 7
D. 8
*
14. 下表为某文件中字符的出现频率,对下列字符采用哈夫曼编码,则字符序列“becd”的编码为()
A. 1011101100111
B. 1011100100100
C. 1101100110111
D. 1101011010111
*
15. 己知一棵二叉树如下图,请判别其后序遍历为()
A. DHEBJIFGCA
B. DHEBFJIGCA
C. ABDEHCFGIJ
D. DBHEAFCJIG
二、阅读程序(程序输入不超过数组或字符串定义的范围, 判断正确填√,错误填X。除特殊说明外,判断题每题1.5分,选择题每题3分,共40分)
*
16. 实现此程序的作用,输入的字符应全部是小写英文字母()
A.T
B.F
*
17. 修改第14行的代码为: alphabet[ str[i] – 97 ] ++ ; 是不行的 ()
A.T
B.F
*
18. 修改第19行的代码为: if(alphabet[i]>='a')是可行的()
A.T
B.F
*
19. 这个程序的的复杂度为 O(n2)。()
A.T
B.F
*
20. 若输入为 a ,那么输出为()。
A. a=97
B. a=1
C. a=0
D. a=65
*
21. 若输入eye,那么输出为()。
A. e=101 y=121 e=101
B. e=69 y=89 e=69
C. e=5 y=25 e=5
D. e=2 y=1
(二)

假设输入的n是不超过1000的正整数,st[i] 都是不超过100的正整数,完成下面的判断题和单选题:
*
22. 若输入n为0, 此程序会输出不正确的结果。()
A.T
B.F
*
(23) 若输入n为10,接下来的输入全为0,则输出结果是正确。()
A.T
B.F
*
(24) 修改第8行的代码为int num=0; 是可行的。()
A.T
B.F
*
(25) 若将fun函数定义为 void fun( int score ), 程序能正常编译运行。()
A.T
B.F
*
(26) 若输入n为3 ,接下来输入是66 73 61 ,那么输出为 ()。
A. 61 73 66.66
B. 73 61 66.66
C. 61 73 66.67
D. 73 61 66.67
*
(27) 若输入n为1, 接下来输入99,那么输出为()。
A. 99099
B. 99099.00
C. 999999.00
D. 99 99 99
(三)
说明:此程序实现了一种树形数据结构,并输出了这棵树的后序遍历。
*
(28) 在本程序中,第7行的数组必须开到数据范围的结点数的3倍以上。( )
A.T
B.F
*
(29) 程序第10至16行的Fun函数作用是给树增加一个空节点。(  )
A.T
B.F
*
(30) 将程序第13行和14行交换,不会对程序产生影响。(  )
A.T
B.F
*
(31 )  若输入val的数值为负数及零时, 程序仍能正常运行。(  )
A.T
B.F
*
(32) 若根结点的高度为1, 本程序对于下面输入
8
33 29 22 19 12 9 7 5
所建树的高度为多少。()
A. 3
B. 4
C. 7
D. 8
*
(33) 以下是一个对于本程序的输入,
9
5 2 1 7 4 6 3 9 8
则与之对应的输出是 ()。
A. 1 3 4 2 6 8 9 7 5
B. 1 2 4 3 8 9 6 7 5
C. 1 2 3 4 6 8 9 7 5
D. 1 2 3 4 5 6 7 8 9
*
(34) 此程序实现的一种树形数据结构是指 ()。
A.权值线段树
B.哈夫曼树
C.二叉搜索树
D.二叉堆
三、完善程序
(1) 双向链表是十分常见的数据结构,应用也很广泛。双向链表有许多不同的实现方式,下面是一种双向链表的实现算法,tructlist_head定义了链表结构,包含两个指针next和prev,分别指向前、后节点。这里摘录添加和删除节点的两个方法,list_add和list_del,请完善程序。
*
35.()
A.head
B. head->next
C.head->prev
D. nnew->next
*
36.()
A. next->next
B. prev->next
C.prev
D. nnew->next
*
37. ()
A. nnew
B. next->prev
C. prev
D. head
*
38.()
A. entry
B. entry->next->prev
C. entry->prev->next
D. entry->next
*
39. ()
A. next->next
B.prev->next
C. prev->prev
D. next->prev
(2) 二分查找是很常用的算法。假设数组nums[]存放的都是正整数,且已经按照从小到大顺序排序。需要查找最后一个小于等于给定值的元素的位置,如果找不到则返回-1。
*
40. ()
A. nums.size() - 1
B. nums.size()
C. nums.size() +1
D. target
*
41. ()
A. nums[end] == target
B. nums[end-1] == target
C. nums[end] <= target
D. nums[start] > target
*
42. ()
A. nums[mid-1] != target
B. nums[end - mid] != target
C. nums[mid + 1] != target
D. nums[mid]
*
43.()
A. mid + 1
B. mid
C. mid – 1
D. (end+mid)/2
*
44.()
A. return start
B. return mid
C. return mid+1
D.return end
Powered By www.wjx.cn
Report