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。

编程题

题解:洛谷 B4257 [GESP202503 一级] 图书馆里的老鼠

题解:洛谷 B4258 [GESP202503 一级] 四舍五入

posted @ 2026-03-28 08:56  团爸讲算法  阅读(96)  评论(0)    收藏  举报