2024CSP-J试题讲解(持续更新中)

一、单项选择题

1.32 位 int 类型的存储范围是()
A.-2147483647 ~ +2147483647
B.-2147483647 ~ +2147483648
C.-2147483648 ~ +2147483647
D.-2147483648 ~ +2147483648
int的储存范围是 -2^{31}~ 2^{31}-1 ,即选项C,太简单就不讲了

2.计算 (14_8-1010_2)×D_{16}−1101_2 的结果,并选择答案的十进制值
A.13
B.14
C.15
D.16
首先将题中的 14_8 1010_2 D_{16} 1101_2化为十进制
14_8=1×8^1+4×8^0=14
1010_2=1×2^3+0×2^2+1×2^1+0×2^0=12
十六进制中的 D 对应十进制中的 13
1011_2=1×2^3+0×2^2+1×2^1+1×2^0=13
可知 原式=(12-10)×13-13=13 ,故选A

3.某公司有 10 名员工,分为 3 个部门: A 部门有 4 名员工, B 部门有 3 名员工、 C 部门有
3 名员工。现需要从这 10 名员工中选出 4 名组成一个工作组,且每个部门至少要有 1 人。
问有多少种选择方式?( )
A.120
B.126
C.132
D.238
首先,从每个部门中挑选一人,根据乘法原理,共有 4×3×3 种挑选方法。剩余 7 人,再挑选一人,共有 4×3×3×7 种。由于在选最后一名员工时一定会与前面选的某一个人在同一组中,所以还需再 ÷2 得出 126 ,故选B。

4.以下哪个序列对应数组0至7的4位二进制格雷码(Gray code)?
A. 00000001001100100110011101011000
B. 00000001001100100110011101000101
C. 00000001001100100100010101110110
D. 00000001001100100110011101010100
做这道题,其实不需要明白什么是格雷码。只需知道格雷码的性质:两个相邻数的格雷码只有一位不同
具体什么是格雷码,见OI-WiKi
根据这个性质,就可以确定应选D了(建议把0至7的4位二进制格雷码背下来)。
扔道题P5657

5.记 1Kb 位 1024 字节(byte),1MB 位 1024KB,那么 1MB 是多少二进制位(bit)( )
A. 1000000
B. 1048576
C. 8000000
D. 8388608
由于 1 字节相当于 8 bit,所以1MB =1024\times1024\times8=8388608 ,故选D。

6.以下哪个不是C++中的基本数据类型( )
A.int
B.float
C.struct
D.char
struct是结构体的声明,而不是数据类型

7.以下哪个不是C++中的循环语句()。
A.for
B.while
C.do-while
D.repeat-untill
C++中只有三种循环语句,不包括 repeat-untill ,具体见我的帖子。故选D。

8.在C/C++中,(char)('a'+13)与下面的哪一个值相等?()
A.'m'
B.'n'
C.'z'
D.'3'
a的ASCII码为 96 ,96+13=109 , 109 对应的字符为n。故选B。

9.假设有序表中有 1000 个元素,则用二分法查找元素 x 最多需要比较()次。
A.25
B.10
C.7
D.1
二分查找的比较次数为 log_2n , log_21000≈10 ,故选B。

求点赞
试题转载自CSDN,题解为本人原创。

3 个赞

加油 我就求个解决方案

1 个赞

建议放在经验分享区

2 个赞

解决方案

这个解决方案是吧!好好好 我真谢谢你

1 个赞

催更ing

1 个赞

已更T4,今天可以更到T8

不是,我举报了哈

2 个赞

???

随便给解决方案

2 个赞

求点赞

已点

1 个赞

谢谢