分享2026年6月gespC++一级模拟题

GESP C++ 一级 模拟测试卷(满分100分)

一、单选题(每题2分,共30分)

第1题 小明在手机上下载了一个“智能计步器”App,可以实时检测行走步数、消耗卡路里并同步到云端。从计算机系统组成的角度看,手机中的加速度传感器属于( )。

A. 输入设备 B. 输出设备 C. 存储器 D. 处理器

第2题 关于计算机软件与操作系统,下列说法正确的是( )。

A. 华为鸿蒙系统属于应用软件,不是操作系统

B. 没有操作系统,计算机就无法运行任何程序

C. 操作系统的功能包括管理计算机的硬件和软件资源

D. C++编译器属于操作系统的一部分
第3题 下列关于C++变量命名的说法,正确的是( )。

A. 变量名_cnt是合法的,因为下划线可以作为首字符

B. 变量名float是合法的,因为它不是关键字

C. 变量名a+b是合法的,因为加号是允许的符号

D. 变量名2num是合法的,因为数字可以放在中间

4. 下列关于C++语言的叙述,不正确的是( )。
A. 变量使用前必须先定义 B. if语句的判断条件必须写在()中
C. for语句的循环体必须写在{}中 D. 程序必须先编译才能运行

5. 常量'3'的数据类型是( )。
A. int B. char C. bool D. double

第6题 C++表达式12 - 4 * 2 % 3的值为( )。

A. 0 B. 8 C. 10 D. 12

第7题 有如下C++代码,执行后的输出是( )

int a = 0, b = 0;

if (a = 5) b = 10;

else b = 20;

cout << b;

第8题 阅读下面C++代码,执行后的输出是( )。

int cnt = 0;

for (int i = 1; i < 5; i++) {

if (i == 3)

continue;

cnt++;

}

cout << cnt;

第9题 如下C++代码用于计算 1×2 + 2×3 + 3×4 + ... + N×(N+1) 的值。横线处应填入( )。

int N, sum = 0;

cin >> N;

for (int i = 1; i <= N; i++) {

sum += __________;

}

cout << sum;

A. i + 1 B. i * (i + 1) C. i * i D. i * 2

第10题 下面的C++代码用于统计正整数N中偶数数位(数位值是偶数)的个数。横线处应填入( )。

int N, cnt = 0;

cin >> N;

while (N != 0) {

if (__________) cnt++;

N /= 10;

}

cout << cnt;

A. N % 10 % 2 == 0 B. N / 10 % 2 == 0 C. N % 2 == 0 D. N % 10 / 2 == 0

第11题 有C++代码如下,若输入12345,输出结果是( )。

int n, t = 0;

cin >> n;

while (n > 0) {

t = t * 10 + n % 10;

n /= 10;

}

cout << t;

A. 12345 B. 54321 C. 15 D. 1234

第12题 小明和小红各写一个两位正整数M和N,将较大的数放在较小的数前面拼成一个四位数,然后判断该四位数能否被11整除。下面代码横线处应填入( )。

int M, N, Q;

cin >> M >> N;

if (M > N) Q = M * 100 + N;

else Q = N * 100 + M;

if (__________) cout << "Y";

else cout << "N";

A. Q % 11 == 0 B. Q / 11 == 0 C. Q % 11 != 0 D. Q / 11

第13题 执行下面C++代码,若输入628314,输出为“符合条件”。横线处应填入( )。

int N;

cin >> N;

if (__________)

cout << N << "符合条件" << endl;

A. ((N / 1000) - (N % 1000)) % 314 == 0

B. ((N % 1000) - (N / 1000)) % 314 == 0

C. ((N / 1000) - (N % 1000)) / 314 == 0

D. ((N % 1000) - (N / 1000)) / 314 == 0

14. 若 int a = 7, b = 3; 则表达式 (a > b) ? a : b 的值是( )。
A. 3 B. 7 C. true D. false

第15题一个正整数,如果它的奇数位数字之和偶数位数字之和的差的绝对值等于1,则称为“平衡数”。例如1234:奇数位(从高位算起,第1位1和第3位3)和=4,偶数位(第2位2和第4位4)和=6,|4-6|=2,不是平衡数。123:奇数位和=1+3=4,偶数位和=2,|4-2|=2,也不是。下面的代码用于判断N是否为平衡数,空白处应填入( )。

int N, N0, sum1 = 0, sum2 = 0, flag = 1; cin >> N; N0 = N; while (N) { if (flag == 1) sum1 += N % 10; else sum2 += N % 10; N /= 10; flag = -flag; // 奇偶位切换 } if (__________) cout << "平衡数"; else cout << "非平衡数";

A. sum1 - sum2 == 1
B. sum1 - sum2 == -1
C. sum1 == sum2
D. sum1 - sum2 == 1 || sum1 - sum2 == -1

二、判断题(每题2分,共20分)

第1题 C++中,printf("%d", 3.14);语句在编译时一定会报错。( )

第2题 若变量int x = 0;,则if (x = 1)的条件判断结果为假。( )

第3题 在执行for (int i = 0; i < 3; i++)循环结束后,变量i的值是3。( )

第4题.switch语句中必须包含default分支。 ( )

第5题.break语句只能用于循环中。 ( )

第6题 下面的C++代码可以正确判断正整数N是否为质数(素数)。( )

int N, flag = 1;

cin >> N;

for (int i = 2; i < N; i++) {

if (N % i == 0) flag = 0;

}

if (flag) cout << "质数";

else cout << "合数";