解析: 答案 A。修改文件名用'重命名',单击鼠标右键并选择弹出菜单中的'重命名'。双击左键是'打开'文件,按功能键 F1 一般是'帮助',按回车键也相当于双击左键是'打开'文件,所以 A 正确。故选 A。
第 3 题
下面 C++ 代码可以执行,有关说法正确的是( )。
double PI = 3.1415926;
cout << (PI);
A. 为了方便初学者,cout << (PI) 和 cout << (pi) 效果相同,即变量的大小写不敏感
B. cout << (PI) 修改为 cout << (Pi) 能正常执行
C. 不能用 PI 做变量名,因为要保存圆周率这个常量
D. 将程序中全部 PI 都改写为 Pai,将能正常执行,不会报错
解析: 答案 D。C++/C 变量名是大小写敏感的,即大小写是不同变量,因此 PI、Pi、pi 是三个不同的变量,故 A、B 错误,PI 符合 C++/C 变量名命名规则,可以赋常数,故 C 错误。变量名可以是 PI,也可以是 Pai,两者都符合 C++/C 变量名命名规则,所以 D 正确。故选 D。
执行下面 C++ 代码段求序列 -1+2+3-4+5+6-7+8+9-10+11+12...... 之值。例如输入 4,则计算序列前 4 项的值,规律如序列所示,输出为 0。下面说法中正确的是( )。
int N, tnt, i;
cout << "请输入正整数:";
cin >> N;
tnt = 0;
for (i = 1; i < N + 1; i++) // L1if (i % 3 == 1) // L2
tnt += -i;
else
tnt += i;
cout << tnt;
A. L1 行中 i < N + 1 应该修为 i < N 才会符合预期
B. L2 行中 i % 3 == 1 应修改为 i % 3 == 0 才会符合预期
C. L2 行中 i % 3 == 1 修改为 i % 3 与当前程序效果相同
D. 当前代码能实现题目所描述计算目标
解析: 答案 D。因为 for 循环 i 从 1 开始,包含 N 项,所以条件是 i<=N,即 i<N+1,所以选项 A 错误;L2 行中 i % 3 == 1 应修改为 i % 3 == 0,则第 1 项为正,第 3 项为负,故错误;L2 行中 i % 3 == 1 修改为 i % 3,则相当于 i % 3!=0,第 1 项、第 2 项都为负,第 3 项为正,故错误;所以 D 正确。故选 D。
第 10 题
下面 C++ 代码的相关说法,正确的是( )。
int i;
for (i = 1; i < 10; i++){
if (i % 2 == 0){
continue; // L1
}
else
cout << i << "#";
}
cout << i << "END";
A. 上述代码执行后,其输出是 1#3#5#7#9#9END
B. 删除 else 后的执行效果与当前代码相同
C. 删除 else 且将 cout << i << "#" 移入 L1 行下面,则执行效果与当前代码相同
D. 在 cout << i << "END" 前增加判断 if(i > 10),其执行效果与当前代码相同
解析: 答案 B。因为循环中遇到 continue 语句,就直接跳到下一循环,相当于跳过循环体中 continue 语句。所以对程序当 i 为偶数地不会有输出,循环结束时 i=10,最后会输出'10END',全部输出为'1#3#5#7#9#10END',选项 A 错误;删除 else 后,当 i 为奇数时仍能执行'cout << i << "#";',故效果与当前代码相同,选项 B 正确;删除 else 且将 cout << i << "#" 移入 L1 行下面,则'cout << i << "#";'永远不会被执行,只会输出'10END',选项 C 错误;在 cout << i << "END" 前增加判断 if(i > 10),因为此时 i=10,条件 i>10 不成立,'10END'不会输出,选项 D 错误。故选 B。
第 11 题
一个正整数的每位都是个位数,称为数位,最高位非 0。下面的 C++ 代码用于求正整数的所有数位之和,简称数位和。如 123 的各数位分别是 1、2、3,则其数位和为 1+2+3,结果为 6。为实现该目标,横线处应该填写的代码是( )。
int N;
cin >> N;
int tnt = 0;
while (N != 0){
____________;
____________;
}
cout << "N 的数位和为:" << tnt;
小明和弟弟在玩一个拼数字游戏,游戏规则是:二人各写一个两位正整数 M 和 N;然后将较大的数字放在较小的前面,拼成一个 4 位数;将这个 4 位数除以 3 的余数添加到 4 位数的后面,得到一个 5 位数;最后判断这个 5 位数能否被 14 整除。下面的 C++ 代码用于判断 M 和 N 是否符合全部要求,如果符合则输出 Y 否则输出 N。例如输入 85 和 79,可以拼出 85792,恰好是 14 的倍数,则输出 Y。关于下面代码描述正确的是( )。
int M, N, Q;
cin >> M >> N;
if(M > N) // L1
Q = M*100+N;
else
Q = N*100+M;
if((Q*10+Q%3) % 14 == 0) // L2
cout << "Y";
else
cout << "N";
A. 代码段不能完成正确判断
B. L1 行代码中条件应该改为 M <= N
C. L2 行代码应该改为 if ((Q*10+Q/3) % 14 == 0)
D. 代码段可以不使用变量 Q,而是在区分 M 和 N 大小后分别直接用它们来判断
解析: 答案 D。所给代码能完成正确判断,选项 A 错误;L1 行代码中条件应该改为 M <= N,不影响结果,选项 B 不正确;Q/3 为求除以 3 的商,而不是除以 3 的余数,选项 C 错误;代码中确实可以不使用变量 Q,而是在区分 M 和 N 大小后分别直接用它们来判断,但程序会复杂一些。故选 D。
第 14 题
执行下面 C++ 代码可以判断一个 6 位正整数 N 的高 3 位和低 3 位的差是否是 314 的倍数。例如 628314 就符合要求。横线处应该填入( )。
cin >> N;
if (___________________________)
cout << N << "符合条件" << endl;
#include<iostream>usingnamespace std;
intmain(){
int A = 0, B = 0, d, r = 1; // A≤10⁸, int 足够
cin >> A;
while (A > 0) {
d = A % 10;
if (d == 4) d = 8;
B += r * d;
A /= 10;
r *= 10;
}
cout << B << endl;
return0;
}
方法二:
思路:用字符数组做,如下标 i 对应的元素难为'4',直接修改该下标元素为'8',然后输出该元素。本方法需三级知识点。参考代码如下:
#include<iostream>usingnamespace std;
char A[9]; // A≤10⁸, 最多 9 位intmain(){
cin >> A;
int n = sizeof(A);
for (int i = 0; i < n; i++) {
if (A[i] == '4') A[i] = '8';
cout << A[i];
}
return0;
}