GESP认证C++编程真题解析 | 202503 一级
附上汇总帖:GESP认证C++编程真题解析 | 汇总
单选题
第1题
2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了 全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。
A. 《哪吒2》是一款新型操作系统
B. DeepSeek是深海钻探软件
C. 《哪吒2》可以生成新的软件
D. DeepSeek可以根据《哪吒2》的场景生成剧情脚本
【答案】:D
【解析】
DeepSeek是Al大语言模型,可以根据输入场景生成剧情脚本。
第2题
在某集成开发环境中编辑一个源代码文件时不可以执行下面( )操作。
A. 修改变量定义
B. 保存代码修改
C. 撤销代码修改
D. 插入执行截图
【答案】:D
【解析】
使用集成开发环境(IDE)不能在源代码文件中插入图片。
第3题
在C++中,下列可以做变量的是( )。
A. Var-1
B. $1
C. %%1
D. _Var_1
【答案】:D
【解析】
变量名由字母、数字、下划线组成。
第4题
以下哪个是C++语言的关键字?( )
A. abs
B. cin
C. do
D. endl
【答案】:C
【解析】
do是C++关键字,用于循环结构。
第5题
下面的框架在L1和L2标记的两行处分别填写选项中的代码,哪组不能通过编译( )。
int main() {
int i = 0;
______________ // L1
break;
______________ // L2
return 0;
}
A.
do {
} while (i != 0);
B.
for (; i < 10; i++) {
}
C.
if (i == 0) {
}
D.
switch (i) {
}
【答案】:C
【解析】
break 语句必须在循环或 switch 语句中使用。
第6题
下面C++语句( )执行后的输出是 __ 0322$$。
A. printf("__ %2d%02d$$", 3, 22)
B. printf("__ %02d%2d$$", 3, 22)
C. printf("__ %02d%02d$$$$", 3, 22)
D. printf("____ %02d%02d$$$$", 3, 22)
【答案】:B
【解析】
D选项的下划线个数不对,C选项的$个数不对,先排除。%02d表示输出两位整数,不足用0补齐,这样输出3时会输出03。B选项正确。
第7题
有关下列C++代码的说法,错误的是( )。
printf("我爱码代码!");
A. 配对双引号内的汉字改为英文 Hello ,C++代码能正确执行
B. 配对双引号内的汉字改为 Hello代码! ,C++代码能正确执行
C. 代码中的每个双引号,都可以改为两个单引号
D. 代码中的每个双引号,都可以改为三个双引号
【答案】:C
【解析】
双引号表示字符串,单引号表示字符,C错误。双引号内可以包含中英文,A、B正确。在C++中,两个字符串字面量直接放在一起,编译器会自动将它们连接成一个字符串字面量,例如 printf ("a""a""a"); 会输出 aaa。 D 正确。
第8题
C++表达式 16 / 4 % 2 的值是( )。
A. 8
B. 4
C. 2
D. 0
【答案】:D
【解析】
/ 与 % 优先级相同,计算顺序从左到右,16/4得到4,4%2得到0。
第9题
N是C++的正整数,值为12,则 cout << (N % 3 + N / 5) 的输出是( )。
A. 6.4
B. 2.4
C. 6
D. 2
【答案】:D
【解析】
/ 与 % 优先级相同,高于+。N%3结果为0,N/5 结果为2,0+2=2。
第10题
下面C++代码执行后的输出是( )。
int N = 10;
printf("{N}*{N}={%d*%d}", N, N, N * N);
A. 10*10={10*10}
B. 100=10
C. N*N=100
D. {N}*{N}={10*10}
【答案】:D
【解析】
printf中,%d是占位符,会被替换成变量值,而{N}是字符串,不会被替换。故输出 {N}*{N}={10*10}
第11题
执行下面的C++代码,在键盘上先后输入100和200,输出是( )。
int first,second;
cout << "请输入第1个正整数:";
cin >> first;
cout << "请输入第2个正整数:";
cin >> second;
cout << (first / second * second) << endl;
A. 200
B. 100
C. 1
D. 0
【答案】:D
【解析】
/ 与 * 优先级相同,计算顺序从左到右,100/200得到0,0 * 200 得到0。
第12题
下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。
for (int i = 0; i < 100; i++)
if _______________________
cout << i << " ";
A. ((i % 2 == 0) && (i % 7 == 2))
B. ((!(i % 2)) && (i % 7 == 2))
C. ((!(i % 2)) && (!(i % 7)))
D. ((i % 2 != 1) && (i % 7 == 2))
【答案】:C
【解析】
!x 等价于 x == 0,!(x%7) 等价于 ×%7 == 0,C选项错误。
第13题
下面C++代码执行后输出是( )。
int tnt = 0;
for (int i = -1000; i < 1000; i++)
tnt += i;
cout << tnt << endl;
A. -1000
B. 0
C. 999
D. 1000
【答案】:A
【解析】
tnt值为-1000到999的所有整数之和,结果为-1000。
第14题
下面C++代码执行后输出的是( )。
int i;
for (i = 1; i < 100; i += 5)
continue;
cout << i << endl;
A. 101
B. 100
C. 99
D. 96
【答案】:A
【解析】
循环将初始化为1,步长为5(循环体中的continue语句对 i 的值无影响,可忽略),i=1,6,11,16,......,96,101,当i<100不成立时,循环结束,此时 i 的值为101。
第15题
下面C++代码执行后输出的是( )。
int tnt = 0;
for (int i = 5; i < 100; i += 5){
if (i % 2 == 0)
continue;
tnt += 1;
if (i % 3 == 0 && i % 7 == 0)
break;
}
cout << tnt << endl;
A. 500
B. 450
C. 10
D. 1
【答案】:C
【解析】
第一轮循环 i=5,执行tnt+=1;循环步长为5,第二轮循环=10,执行continue;第三轮循环 i=15,执行tnt+=1;观察规律,i=5,15,25,...,95时,执行tnt+=1,其中 i 的值不会同时为3和7的倍数,循环不会中途结束,所以最终tnt值为10。
判断题
第1题
C++、Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )
A. 正确
B. 错误
【答案】:A
【解析】
C++和Python 都是高级编程语言,每条语句最终都必须转换为机器指令才能被CPU执行。(虽然转换方式不同,C++是编译型语言,Python是解释型语言)。
第2题
在C++中表达式 N * 2 % N 中如果 N 的值为正整数,则其值为2。( )
A. 正确
B. 错误
【答案】:B
【解析】
N * 2是 2 的倍数,结果为 0。
第3题
执行如下C++代码如果在键盘上输入10,执行后将输出20。( )
char N;
printf("请输入正整数:");
cin >> N;
printf("%d\n", N * 2);
A. 正确
B. 错误
【答案】:B
【解析】
N是字符型变量,如果在键盘上输入10,计算机会将字符'1'输入到N中。'1'的ASCII码是49,所以会输出98。
第4题
删除下面C++代码中的continue不影响程序的执行效果。( )
for (int i = 0; i < 100; i++){
if (i % 2 == 0){
printf("偶数");
continue;
}
else
printf("奇数");
}
A. 正确
B. 错误
【答案】:B
【解析】
continue语句的效果是结束本轮循环,继续下一轮。即使没有continue,循环体里只包含 if - else 结构,程序执行 printf("偶数"); 之后,循环体结束,继续下一轮循环,效果是一样的。
第5题
下面C++代码执行时将报错,因为所在位置应该是变量名,而不可以做变量名。( )
for (int _ = 0; _ < 100; _++)
cout << "*" << endl;
A. 正确
B. 错误
【答案】:B
【解析】
变量名由字母、数字、下划线组成,一个下划线是合法的变量名。
第6题
下面C++代码被执行后,将先后输出3和5。( )
for (int i = 3; i < 5; i += 2)
printf("%d ", i);
A. 正确
B. 错误
【答案】:B
【解析】
第一轮循环 i=3,输出3;i+=2后 i 变成5,i<5不成立,循环结束。
第7题
下面的C++代码执行后将先后输出7个 true。( )
for (int i = 0; i < 10; i++)
cout << (i * 2 < i * i) << " ";
A. 正确
B. 错误
【答案】:B
【解析】
关系表达式的值是bool类型,输出时会输出0或1,而不是 false 或 true。
第8题
在C++代码中,user_Name 、 _userName 、 user-Name 、 userName_ 都是合法的变量名。( )
A. 正确
B. 错误
【答案】:B
【解析】
变量名由字母、数字、下划线组成,user-Name 不是合法的变量名。
第9题
C++语言中 continue 语句可以来提前结束循环。( )
A. 正确
B. 错误
【答案】:B
【解析】
break语句可以提前结束循环。
第10题
C++中定义整型变量N,执行语句 scanf("%d", &N); cout << N / 3 * 5; 时输入 3.6 ,则输出是6。( )
A. 正确
B. 错误
【答案】:B
【解析】
由于N是整型,输入后,N的值是3。3/3得到1,1 * 5 得到5,输出5。
浙公网安备 33010602011771号