C++ 二级单选 15 题 / 判断 10 题答案速查 + 本场考点 + 难度评价 + 易错题精解。想知道孩子这套能考多少?免费做这套真题模考,3 秒自动估分。
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | C | B | A | D | A | C | B | D | B | D | D | C | A | A | A |
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | √ | √ | × | × | × | √ | × | √ | × | × |
中等。嵌套循环输出图形、计分模拟、横线填空是重点,较一级明显抽象一档。
本卷 2 道编程题:《直角三角形》《字符变换》。逐题题解整理中,将陆续更新。
3 == 3.0 比较相等成立,C++ 里布尔真输出为整数 1(不是 true 字样,也不是 1.0)。选 A。
bool(x) 只要 x 非零就是 1。bool(5)=1、bool(-5)=1(负数也非零)、bool(5.0)=1,相加 1+1+1=3。选 D。
for(i=0..9) if(i) tot+=1:if(i) 把 i=0 当作假跳过,i=1..9 共 9 次为真,tot=9。选 C。
if(i%3) 为真表示 i 不是 3 的倍数。i=0..9 中非 3 倍数为 1,2,4,5,7,8,累加 1+2+4+5+7+8=27。选 D。
not(i%3!=0) 等价于 i%3==0。i 从 -5 到 4 中 i%3==0 的有 -3、0、3 共 3 个(C++ 里 -3%3=0),tot=3。选 B。
本题选错误的说法。D 称把 sqrt(n)+1 里的 1 改成任意 ≥1 的整数"结果不会错、只是变慢"——这是错的:若改得过大使 limit > n,循环会遍历到 i == n,而 n % n == 0 会把素数误判成"非素数"。所以 D 错误,选 D。
外层 i=1,2,3,内层 j 从 1 到 i,累加 i*j。i=1:1;i=2:2+4=6(累计7);i=3:3+6+9=18(累计25)。选 D。
j=0 时 j%3==0 恒 continue。i=1:j=0 跳过;i=2:j=1 count=1、2*1>=2 break;i=3:j=1 count=2、3*1>=2 break。退出后 i=4、j=1、count=2,输出 4 1 2。选 C。
要选身高差最小者,并列时取"较矮的第一个"。条件 diff < min_diff || (diff == min_diff && h < best_height):严格更近就更新,或同样近但更矮才更新。选 A。
在 diff == min_diff(并列最近)分支里,只有当 h < best_height(更矮)时才替换。选 A。
'2' 是字符,参与运算时取 ASCII 码 50。2 * -'2' / 4 = 2*(-50)/4 = -100/4 = -25,不是 -1。命题错误。
a == +5 是比较(结果被丢弃),不是赋值,a 仍为 5。输出 5 而非 10。易错:== 不是 =。命题错误。
not 5 得 false=0,not 0 得 true=1。not not 5 输出 1,不是 5。命题错误。
代码 for(i=0; i<N+1; i++) tot+=i 只对 N≥0 求 0..N 之和。题目说"N 是整数"含负数:当 N<0 时循环一次不执行,输出 0,并非真正的求和。命题错误。
int(sqrt(N)) == abs(M) 只看平方根取整后是否等于 |M|,没验证 N == M*M。如 N=10、M=3,int(sqrt(10))=3==3 会误报"10 是 3 的平方"。应改为判断 M*M == N。命题错误。