一、单项选择题
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. 0000 , 0001 , 0011 , 0010 , 0110 , 0111 , 0101 , 1000
B. 0000 , 0001 , 0011 , 0010 , 0110 , 0111 , 0100 , 0101
C. 0000 , 0001 , 0011 , 0010 , 0100 , 0101 , 0111 , 0110
D. 0000 , 0001 , 0011 , 0010 , 0110 , 0111 , 0101 , 0100
做这道题,其实不需要明白什么是格雷码。只需知道格雷码的性质:两个相邻数的格雷码只有一位不同。
具体什么是格雷码,见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,题解为本人原创。