正确答案:D
考察知识点:基本运算符、流程控制语句 - 循环
解析:首先,div 的作用是通过循环乘以 10,得到一个数,使得 N / div 可以把第 M 位及更高位的数保留,去掉低位。比如 N = 1234,M = 2 时,循环后 div = 10。然后 N / div 得到 123(整数除法),再对 10 取余,就得到第 2 位的数字 3。所以横线处应填 N / div % 10。答案为 D。
正确答案:D
考察知识点:基本运算符
解析:首先这里变量 a,b,c 没有定义,写法是不合法的。
假定第一行代码之前定义了整形变量 a,b,c,则第一行执行结束,a 没有赋值,b 赋值为 3;第二行代码先执行比较运算符==,再执行赋值运算符=,因 a 没有赋值,其值未知,因此 a==b 的结果未知,则 c 的值未知,输出结果当然未知。答案为 D。
正确答案:B
考察知识点:循环嵌套、流程控制语句、break、continue
解析:外层循环 i 从 1 到 11(因为 i < 12)。当 i 为偶数时,执行 continue,跳过本次循环剩余部分,所以只看 i 为奇数的情况(i = 1,3,5,7,9,11)。内层循环 j 从 0 到 i,当 i*j 为奇数时,执行 break,终止内层循环。当 i 等于 11,j 等于 1 时,第 6 行条件成立,终止内层循环,此时 i 再增大为 12,外层循环条件不成立,循环结束。此时 i 的值为 12,j 的值为 1。答案为 B。
正确答案:D
考察知识点:控制语句结构 - 循环、基本运算符
解析:在 C++ 中,取余运算 a % b 里,b 不能为 0,否则会导致运行时错误(除以零错误),但本题中 b 等于 0 不会进入循环,也即不会执行到 a%b,选项 A 错误;
a 和 b 的大小关系不影响取余运算的合法性,只是结果不同,选项 B 错误;
a 和 b 可以是负整数,取余运算在 C++ 中有相应规则,并非必须为正整数才合法,选项 C 错误;
选项 D:如果 a 输入为 0,当 b 为非零值时,第一次循环 remainder = 0 % b = 0,然后 a = b,b = 0,循环结束,输出 a(即 b 的原始值),
如果 b 为 0,不进入循环,直接输出 a(和 b 的值相等)。答案为 D。
正确答案:正确
考察知识点:控制语句结构 - 循环、continue 关键字
解析:执行 for 循环:
当 i = 0 时,不满足 if 条件,执行 printf('+#'),输出+#;
当 i = 1 时,不满足 if 条件,执行 printf('+#'),输出+#;
当 i = 2 时,满足 if 条件,执行 continue,跳过本次循环剩余语句;
循环结束后,i 的值为 3,执行 cout << i << '#',输出 3#。
最终输出为 +#+#3#,所以该判断题答案为正确。表述正确。
正确答案:正确
考察知识点:控制语句结构 - 循环
解析:初始化 a = 0(对应斐波那契数列第 1 个数),b = 1(对应第 2 个数)。
循环执行 n 次:
每次先输出 a;
然后通过 b = b + a 计算下一个数的和,再通过 a = b - a 更新 a 为原来的 b(即下一个斐波那契数)。
例如,若 n = 5,输出为 0 1 1 2 3,符合斐波那契数列规律,因此该代码能实现功能,判断题答案为正确。表述正确。
正确答案:正确
考察知识点:控制语句结构 - 循环
解析:原代码中,当 i == j 时执行 continue,会跳过 cout << 0;(L1),导致对角线外的位置无法输出 0。
若将 cout << 0;移到 if 块外面(或 L2 位置),则无论 i 和 j 是否相等,都会执行输出 0 的操作,只是当 i == j 时先输出 i+1,再输出 0(或在循环结构中合理输出),从而实现题目中的矩阵输出格式。因此该判断题答案为正确。表述正确。
#include<bits/stdc++.h>usingnamespace std;
intmain(){
int n, cnt = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
// 不超过 n 的优美正整数,遍历 1~n// 判断 i 是否是优美数:十进制下的所有数位都相同,用 flag 标记是否是优美数bool flag = true;
int t = i % 10; // t 存储 i 的个位数// 数位分离判断 i 的所有数位是否都等于 tint tmp = i; // 不能直接对循环变量 i 操作,使用 tmp 存储 i,操作 tmpwhile (tmp != 0) {
if (tmp % 10 != t) { // 当前数位不等于 t,不是优美数,终止循环
flag = false;
break;
}
tmp /= 10;
}
if (flag) cnt++; // flag 为 true 意味着 i 是优美数
}
cout << cnt;
return0;
}