#TK1171. 2025年6月CCF-GESP编程能力等级认证C++编程一级真题
2025年6月CCF-GESP编程能力等级认证C++编程一级真题
GESP C++ 一级 2025年06月考试试卷
1 单选题(每题 2 分,共 30 分)
第 1 题
2025年4月19日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。 {{ select(1) }}
- 处理器
- 存储器
- 输入设备
- 输出设备
第 2 题
在某集成开发环境中调试下面代码段时尝试设置断点和检查局部变量,下面哪个说法是错误的( )。
int i,N = 0; // L1
cin >> N; // L2
for (i = 1; i < 9; i++)
if (N % i == 0) break; // L3
if (i < 9) printf("N不能大于9\n"); // L4
{{ select(2) }}
- 断点不可以设在L1标记的代码行
- 执行暂停在L2标记的代码行时,可以检测i的值
- 执行暂停在L3标记的代码行时,可以修改i的值
- 执行有可能暂停在L4标记的代码行
第 3 题
对下列C++的代码,描述准确的是( )。
int first = 10;
printf("{%d}\n", First);
{{ select(3) }}
- 执行后输出10
- 执行后输出{First}
- 执行后输出"{First}"
- 编译报错,因为First应该是first
第 4 题
在C++中,下列可以做变量名的是( )。 {{ select(4) }}
- X.cpp
- X-cpp
- X#cpp
- X_cpp
第 5 题
C++表达式14 - 3 * 3 % 2
的值是( )。
{{ select(5) }}
- 0
- 11
- 13
- -67
第 6 题
下面的C++代码执行后,其输出是( )。
int x = 10, y = 20;
x = x + y;
y = x - y;
x = x - y;
cout << x << ' ' << y;
{{ select(6) }}
- 10 20
- 20 10
- 10 10
- 20 20
第 7 题
定义整型变量int a = 16
,则执行++a += 3
之后,a的值会是( )。
{{ select(7) }}
- 3
- 17
- 19
- 20
第 8 题
C++的int
类型变量X的值为8,如果执行cout << (++X)++;
,则输出和执行后X的值分别是( )。
{{ select(8) }}
- 8 9
- 9 9
- 9 10
- 编译错误,无法执行
第 9 题
下面C++代码执行后的输出是( )。
int a,b;
a = 3;
b = 4;
printf("a+b=%02d#a+b={a+b}", a+b, a+b);
{{ select(9) }}
- a+b=07#a+b={a+b}
- a+b= 7#a+b=7
- a+b=7#a+b={a+b}
- a+b=7#a+b=7
第 10 题
下面的C++代码用于求M天后是星期几,两处横线处分别应填入的代码是( )。
int N, M, D;
cout << "当前星期几? "; // 星期日是0
cin >> N;
cout << "求多少天后? "; // 输入正整数
cin >> M;
D = ________; // 横线1
if (________) { // 横线2
printf("%d天后是星期日", M);
} else {
printf("%d天后是星期%d", M, D);
}
{{ select(10) }}
- 横线1:
(N + M) / 7
;横线2:D == 0
- 横线1:
(N + M) % 7
;横线2:D == 0
- 横线1:
(N + M) / 7
;横线2:D <= 0
- 横线1:
(N + M) % 7
;横线2:D = 0
第 11 题
下面C++代码执行后输出是( )。
int i;
for (i = 1; i < 11; i += 3) {
if (i % 2 == 0)
continue;
printf("%d#", i);
if (i >= 11)
printf("END");
break;
}
{{ select(11) }}
- END
- 1#
- 1#4#END
- 1#4#7#10#END
第 12 题
下面的C++代码用于求N的所有因数(即能将N整除的数),如输入12则将输出12,6,4,3,2,1。横线处应填入的代码是( )。
int i, N;
cin >> N;
i = N;
while (_______) {
if (N % i == 0)
printf("%d,", i);
i -= 1;
}
printf("1");
{{ select(12) }}
- i -= 1
- i == 1
- i > 1
- i >= 1
第 13 题
下面C++代码执行后输出的是( )。
int Sum = 0;
for (int i = 0; i < 10; i++) {
if (i % 2 == 0)
continue;
if (i % 5 == 0)
break;
Sum += i;
}
cout << Sum;
{{ select(13) }}
- 55
- 15
- 9
- 4
第 14 题
试图编译并执行下面C++代码,下面描述正确的是( )。
float x;
x = 101;
x++;
cout << ++x;
{{ select(14) }}
- 输出101
- 输出102
- 输出103
- 编译将报错,无法执行
第 15 题
以下C++代码可以找出百位、十位和个位满足特定条件的三位数,横线处应该填入的是( )。
int count = 0;
for (int i = 100; i <= 999; i++) {
int a = i / 100;
________; // 横线处
int c = i % 10;
if (a * a + b * b == c * c) {
count++;
}
}
{{ select(15) }}
- int b = (i / 10) / 10;
- int b = (i / 10) % 10;
- int b = (i % 10) / 10;
- int b = (i % 10) % 10;
2 判断题(每题 2 分,共 20 分)
第 16 题
人们现在参加很多闭卷考试时通常都不允许带智能手机、平板电脑等,此外很多种智能手表同样因为具有嵌入操作系统及通信等功能,所以也不允许随身携带。( ) {{ select(16) }}
- 正确
- 错误
第 17 题
如果N是C++的整型变量,值为5,则表达式(N + !N)
的值为4。( )
{{ select(17) }}
- 正确
- 错误
第 18 题
在下面C++代码中,删除break
语句对程序执行结果没有影响。( )
int i;
for (i = 0; i < 10; i++) {
cout << i << "#";
continue;
break;
}
if (i >= 10) cout << "END";
{{ select(18) }}
- 正确
- 错误
第 19 题
删除下面C++代码中的continue
后其输出是0#2#4#6#8#
。( )
int i;
for (i = 0; i < 10; i++) {
if (i % 2 == 0) {
cout << i << "#";
continue;
}
}
if (i >= 10)
cout << "END";
{{ select(19) }}
- 正确
- 错误
第 20 题
将下面C++代码中的i < 100; i = i + 1
修改为i < 200; i += i + 1
,其输出与当前代码输出相同。( )
int cnt = 0;
for (int i = 0; i < 100; i = i + 1)
cnt += 1;
cout << cnt;
{{ select(20) }}
- 正确
- 错误
第 21 题
交换下面C++代码中的i += 2
和cnt += 1
,交换前后分别运行的两次输出相同。( )
int i = 0, cnt = 0;
while (i < 10) {
i += 2;
cnt += 1;
}
cout << cnt;
{{ select(21) }}
- 正确
- 错误
第 22 题
下面的C++代码执行后将输出45。( )
int cnt = 0;
for (int i = 0; i < 10; i++)
cnt += 1;
cout << cnt;
{{ select(22) }}
- 正确
- 错误
第 23 题
执行C++代码cout << (12 + 12.12)
将报错,因为12是int
类型,而12.12是float
类型,不同类型不能直接运算。( )
{{ select(23) }}
- 正确
- 错误
第 24 题
在C++代码中,不可以将变量命名为false
,因为false
是C++语言的关键字。( )
{{ select(24) }}
- 正确
- 错误
第 25 题
X是C++的整型变量,则表达式3 < X < 5
求值结果是4。( )
{{ select(25) }}
- 正确
- 错误