C++ 一级单选 15 题 / 判断 10 题答案速查 + 本场考点 + 难度评价 + 易错题精解。想知道孩子这套能考多少?免费做这套真题模考,3 秒自动估分。
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | C | D | A | A | B | C | D | A | C | D | D | B | A | A | D |
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | √ | × | × | √ | √ | √ | √ | × | × | × |
整体平稳,贴近考纲基础。运算表达式求值、数位拆分、循环控制是易错点。
本卷 2 道编程题:《新龟兔赛跑》《棋盘上的奖赏》。逐题题解整理中,将陆续更新。
考运算符优先级。4 + -2 * 3 中,一元负号和 * 都优先于 +:先算 -2 * 3 = -6,再 4 + (-6) = -2。选 A。
2 * -2 % 3 中 * 与 % 同级、从左到右。先 2 * -2 = -4,再 -4 % 3。C++ 取模结果符号随被除数,得 -1。选项 A (2 * -2) % 3 括号没改变原顺序,值仍为 -1;B 先 -2%3=-2 再 ×2=-4;C 2*-(2%3)=-4;D 2%-2*3=0。选 A。
整数除法会截断取整。a%b = 8%10 = 8;a*1/b = 8/10 = 0(全是整数,先算 8/10 截断为 0);a*1.0/b = 8.0/10 = 0.8(有浮点参与)。输出 8 0 0.8,选 C。
++b *= 2 + 1 即 ++b *= 3。先前置自增,b 变 9;再复合赋值 b = 9 * 3 = 27。选 D。
for(i=-10; i<0; i++) 循环体走 10 次(i 从 -10 到 -1),cnt=10;但循环结束时 i 已自增到 0。i * cnt = 0 * 10 = 0。易错点:输出用的是退出循环后的 i,不是最后一轮的 i。选 C。
i=1 时 1%3!=0 成立走 else:打印 1- 后 break 跳出。再执行循环外 printf("%dEND*", i),此时 i=1,输出 1END*。合起来 1-1END*,选 D。
本题选错误的说法。输入 1:循环打印 1#,tot 累加到 1,退出后打印 1-END,实际是 1#1-END。选项 D 说输出 1#0-END,与实际不符,故 D 为错误说法。选 D。
while 循环体第一句就是 k += 2; continue;,continue 直接跳回条件判断,后面的 if/break 和 cout 永远执行不到(死代码)。k 依次 2→4→6→8 退出,最后 if(k>=8) 成立只输出 FINISH。选 A。
循环让兔数从 0 试到 tou,找到解就 break;若走完没 break,退出时 tu_tou = tou + 1。原代码用 if(tu_tou == tou) 判无解是错的。应改成 tu_tou == tou + 1(才是"循环没提前跳出"的标志)。选 D。
3 位数取最高位应用 n / 100;n % 100 取的是后两位。n=123 时 123 % 100 = 23,不是 1。命题错误。
for 循环体只有那条 if(i%3!=0) continue;,而 cout<<i 在循环外面。步长为 3,i 恒是 3 的倍数,continue 从不触发。循环结束时 i=21(第一个 ≥20 的值),输出 21 而非 20。命题错误。
z=12.0 → z=z/4=3.0 → z-- 后 z=2.0 → cout<<z++ 是后置自增,先输出当前值 2 再自增。所以输出 2,命题正确。
for(idx=1; idx<=7; idx+=2) 取 1,3,5,7:idx=1 累加 ans=1;idx=3 累加 ans=4;idx=5 continue 跳过;idx=7 时 7*7=49>30 触发 break。最终 ans=4,不是 3。命题错误。