第 1 题 【 单选题 】
(110010)₂+(c3)₁₆的结果是( )。
A:(240)₁₀
B:(11110101)₂
C:(366)₈
D:(366)₈
解析:
(110010)₂ = (50)₁₀
(C3)₁₆ = (195)₁₀
所以(110010)₂+(C3)₁₆=(245)₁₀=(11110101)₂
答案:
B
第 2 题 【 单选题 】
表达式1000/3的结果是( )。
A:333
B:333.3
C:334
D:333.0
解析:
C++ 中的除法规则:
- 如果两个操作数都是整数,那么结果也是整数(即截断小数部分)。
- 如果有一个操作数是浮点数,那么结果就是浮点数。
答案:
A
第 3 题 【 单选题 】
下列选项中,判断a等于1并且b等于1正确的表达式是( )。
A:!((a!=1)&&(b!=1))
B:!((a!=1)||(b!=1))
C:!(a==1)&&(b==1)
D:(a=1)&&(b=1)
解析:
选项 A:
!((a!=1)&&(b!=1))
- 这个表达式的逻辑是“a 不等于 1 并且 b 不等于 1”的取反。
- 当
a == 1
或b == 1
时,((a!=1)&&(b!=1))
为假,取反后为真。- 但这并不能保证
a == 1
并且b == 1
。- 例如,当
a == 1
且b == 2
时,表达式仍然为真。- 因此,选项 A 错误。
选项 B:
!((a!=1)||(b!=1))
- 这个表达式的逻辑是“a 不等于 1 或者 b 不等于 1”的取反。
- 当
a == 1
并且b == 1
时,((a!=1)||(b!=1))
为假,取反后为真。- 当
a != 1
或b != 1
时,((a!=1)||(b!=1))
为真,取反后为假。- 因此,选项 B 正确。
选项 C:
!(a==1)&&(b==1)
- 这个表达式的逻辑是“a 不等于 1 并且 b 等于 1”。
- 这显然与目标不符。
- 因此,选项 C 错误。
选项 D:
(a=1)&&(b=1)
- 这个表达式使用了赋值运算符
=
而不是比较运算符==
。(a=1)
会将a
赋值为1
,并返回1
(真);(b=1)
同理。- 因此,这个表达式永远为真,但不能正确判断
a
和b
是否等于1
。- 因此,选项 D 错误。
答案:
B
第 4 题 【 单选题 】
定义 char a[]="His name is Jack",请问 sizeof(a)的结果是( )。
A:14
B:15
C:16
D:17
解析:
- 在 C++ 中,字符串常量(如
"His name is Jack"
)是以字符数组的形式存储的。- 字符串的末尾会自动添加一个空字符(
\0
)作为结束符。sizeof
用于计算变量或类型所占用的内存大小(以字节为单位)。- 对于字符数组
char a[]
,sizeof(a)
会返回整个数组的大小,包括空字符\0