审题基础语法
下面C++代码用于实现图示的九九乘法表。相关说法错误的是()。
/*
1*1=1
1*2=2 2*2=4
...
*/
for (int Hang=1; Hang<10; Hang++) {
for (int Lie=1; Lie<Hang+1; Lie++) {
if (Lie * Hang > 9)
printf("%d%d=%d ", Lie, Hang, Lie*Hang);
else
printf("%d%d=%d ", Lie, Hang, Lie*Hang);
// L2
}
printf("\n"); // L1
}
A.将L1注释的 printf("\n") 移到L2注释所在行,效果相同
B.将L1注释的 printf("\n") 修改为 print("%c", '\n') 效果相同
C.将 Lie * Hang > 9 修改为 Lie * Hang >= 10 效果相同
D.将 Lie * Hang > 9 修改为 Hang * Lie > 9 效果相同
展开:答案、思考步骤与易错点
正确答案A
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。
审题基础语法
在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3。下面的C++用于求1-N的阶乘之和,如N为3,则是 1!+2!+3!。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。
int N;
cin >> N;
int tnt=0, nowNum = 1; // tnt保存求和之值,当前N的阶乘
for (int i=1; i < N + 1; i++) {
// 基于上一个计算出当前数的阶乘
// 从1到i每个数阶乘之和
}
cout << tnt;
A.nowNum *= i;
tnt += nowNum;
B.nowNum = nowNum * i;
tnt = tnt + nowNum;
C.nowNum *= i;
tnt = nowNum + tnt;
D.nowNum = nowNum + i;
tnt *= nowNum;
展开:答案、思考步骤与易错点
正确答案D
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。
审题基础语法
下面C++代码实现输出如下图形,横线应填入的代码是()。
高度:5
*
***
*****
*****
*****
int height;
cout << "高度:";
cin >> height;
for (i=0; i<height; i++) {
//打印每行前面的空格
for (j = 0; j < ___; j++)
cout << " ";
//打印每行的星号
for (k = 0; k < ___; k++)
cout << "*";
//输出一行后,换行
cout << endl;
}
A.1: height - i
2: 2 * i
B.1: height
2: 2 * i
C.1: height - i
2: 2 * i + 1
D.1: height - i - 1
2: 2 * i + 1
展开:答案、思考步骤与易错点
正确答案D
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。
审题基础语法
下面 C++ 代码执行后的输出是 30,则横线处不能填入()。
int a = 10, b = 20, c = 30;
cout << << endl;
A.max(max(a, b), c)
B.min
(
𝑎
+
𝑏
,
𝑐
)
min(a+b,c)
C.𝑎
+
𝑏
+
𝑐
a+b+c
D.(
𝑎
+
𝑏
+
𝑐
)
/
2
(a+b+c)/2
展开:答案、思考步骤与易错点
正确答案C
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
输出题不要只算值,还要看格式控制、空格、换行和输出语句的位置。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。
审题基础语法
下面C++代码执行后将输出
2
∗
3
=
6
2∗3=6。()
int a = 2, b = 3;
printf("%%a*%%b=%d", a*b);
判断本题结论:先独立判断,再展开答案。正确答案是 错误。
展开:答案、思考步骤与易错点
正确答案错误
先这样想
把题干拆成两半:事实是否正确,结论是否被事实支持。
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
计算时分清 `/` 是商,`%` 是余数;如果题目要求第 N 个位置,常要先改成从 0 开始的下标。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。
审题基础语法
下面两段C++代码都是用于求1-10的和,其运行结果相同。通常说来,for循环都可以用while循环实现。()
int tnt;
int i;
tnt = 0;
for (i = 1; i < 10 + 1; i++)
tnt += i;
cout << tnt << endl;
int tnt;
int i;
tnt = 0;
i = 1;
while (i <= 10){
tnt += i;
i += 1;
}
cout << tnt << endl;
判断本题结论:先独立判断,再展开答案。正确答案是 正确。
展开:答案、思考步骤与易错点
正确答案正确
先这样想
先列变量每轮变化,再看输出语句是否真的执行。
分步推导
- 先根据题干关键词定位知识点。
- 再逐项核对选项或判断题结论。
计算 / 追踪提示
建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。
易错点
不要只凭直觉选答案,要回到代码执行顺序和题干条件。