GESP_2026年06月_C++二级试卷

从PDF导入:GESP_2026年06月_C++二级试卷

C++ 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
学校组织到未来农场参观,小明听讲解员介绍,在智能温室中,湿度传感器可以连续检测土壤的湿度变化,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿 度传感器所发挥的作用,类似于计算机系统中的哪一类组件?( )
A. 处理器
B. 存储器
C. 输入设备
D. 输出设备
第2题 中级 2.0分 单选
小明去农场参观回来后就在自己的电脑上安装了一个3D农场仿真模拟系统,因为他今年买的二手电脑有点老旧,系统运行时经常弹出"系统内存不足"的警告,导致系统卡顿严重。
A. 机械硬盘
B. 内存条
C. 图形显卡
D. 移动硬盘
第3题 中级 2.0分 单选
有关如下C++代码的说法,正确的是()。

float a = 3 + 3.5;
cout << a;

A. 代码执行将报错
B. 代码执行将报错
C. 代码能正常执行,将输出6
D. 代码能正常执行,将输出6.5
第4题 中级 2.0分 单选
下面选择项中,与C++表达式not(x>5 or y<=10)等价的是()。
A. x<=5 or y>10
B. x>5 and y<=10
C. x<=5 and y>10
D. not x>5 and not y<=10
第5题 中级 2.0分 单选
小明在某开发环境中执行C++代码cout<<(2.5+2.25)<<' '<<(2.2+2.1)时输出4.75 4.300000000000001,其原因最可能是( )
A. C++的+运算符在处理浮点数时有时正确,有时错误
B. 某些浮点数难以精确表示,导致微小误差
C. +运算符不能用于浮点数,只能用于整数
D. 因为cout函数难以输出太长的数值
第6题 中级 2.0分 单选
执行如下C++程序后,当输入4时,输出的最后一行是()。

int n;
cin >> n;
for (int i = n; i > 0; i--) {
for (int j = 0; j < i; j++)
cout << j + 1 << " ";
cout << endl;
}

A. 0
B. 1
C. 12
D. 1234
第7题 中级 2.0分 单选
下面的C++代码执行后其输出是()。

int tnt = 0;
for (int i = 1; i < 5; i += 3) {
for (int j = 0; j < i; j++)
tnt += 1;
cout << tnt << "#";
}
cout << tnt;

A. 1#5#5
B. 1#5#5#
C. 1#5#12#12
D. 0
第8题 中级 2.0分 单选
下面的C++代码执行之后的输出是()。

int i;
for (i = -2; i < 2; i++)
if (not i % 3 == 0)
cout << i << "#";
cout << i;

A. -2#-1#1#2
B. -2#-1#1#2#3
C. 1#2#3
D. 0#1#2#3
第9题 中级 2.0分 单选
下面的C++代码执行后其输出是()。

int cnt = 0, i, j;
for (i = 0; i < 3; i++) {
j = i;
while (j) {
cnt++;
j--;
}
}
cout << i << " " << j << " " << cnt;

A. 3 0 3
B. 2 0 4
C. 2 0 5
D. 3 0 5
第10题 中级 2.0分 单选
下面C++代码执行后其输出是()。

int count = 0, i, j;
for (i = 1; i < 4; i++)
for (j = 0; j < i; j++) {
if (j % 3 != 0)
continue;
count += 1;
break;
}
cout << i << " " << count;

A. 4 0 4
B. 3 0 0
C. 3 2 0
D. 4 0 3
第11题 中级 2.0分 单选
如下C++代码执行后输出是12345678910115678910115678910115678910 11 5 6 7。横线处应该填入的运算符是()。

int num = 1;
for (int i = 0; i < 35; i++) {
cout << num << " ";
if (num __ 10)
num __= 2;
else
num __= 1;
}

A. > /= +=
B. > %= +=
C. > /= +=
D. > %= +
第12题 中级 2.0分 单选
如下数字图形通过执行后续C++代码输入10来输出。横线处应填入的代码是()。

int N;
cin >> N;
for (int i = 1; i < N + 1; i++) {
for (int j = 1; j < N + 1; j++)
if (______)
cout << "1";
else
cout << "0";
cout << endl;
}

A. i==j and i==1 and j==1 and i==N and j==N
B. i==j or i==1 or j==1 or i==N or j==N
C. i==j or i==0 or j==0 or i==(N+1) or j==(N+1)
D. i==j and i==1 and j==1 and i==(N+1) and j==(N+1)
第13题 中级 2.0分 单选
英文corner case通常翻译为极端案例或边角案例。在如下C++代码中,变量都是整型,则corner case最应该是()。

int tnt = 0, cnt = 0;
while (1) {
int score;
cin >> score;
if (score == -1) break;
tnt += score;
cnt += 1;
}
cout << tnt / cnt;

A. tnt=0,cnt=0是corner case,应分为两行
B. while(1)是corner case,因为while(1)将会导致死循环
C. cin>>score是corner case
D. cout<
第14题 中级 2.0分 单选
如下C++代码执行后,输入4后,输出的数字图形是()。

int n;
cin >> n;
for (int i = n; i > 0; i--) {
for (int j = 0; j < n - i; j++)
cout << "0 ";
for (int k = 0; k < i; k++)
cout << k + 1 << " ";
cout << endl;
}

A. 1 1234 2 1230 3 1200 4 1000
B. 1234 0123 0012 0001
C. 1 1234 2 2340 3 3400 4 4000
D. 1 0001 2 0012 3 0123 4 1234
第15题 中级 2.0分 单选
某学校举办"校园演讲比赛",每位选手由8位评委打分(分数为0~10的整数),且每位评委必须打分。计分规则:去掉一个最高分,去掉一个最低分。如下程序说法正确的是()
A. 上述代码能完成题目要求
B. max_score=0,min_score=100应修改为max_score=0,min_score=0
C. max_scorescore必须相应修改为<=和>=
D. total_score=total_score-max_score-min_score不能达到预期
第16题 中级 2.0分 判断
又到期末考试周,小明发现这次许多闭卷考试不仅禁止携带手机、平板电脑,还有AI眼镜也同样不允许带入考场。这些AI眼镜应该也是内置了操作系统并可能支持Wi-Fi或蓝牙连接。
T. 正确
F. 错误
第17题 中级 2.0分 判断
C++代码cout<<(not('5'%2==0)==((not'5'%2)==0))执行后的输出是1。
T. 正确
F. 错误
第18题 中级 2.0分 判断
执行C++语句cout<<(int(3.5)*2)将输出6。
T. 正确
F. 错误
第19题 中级 2.0分 判断
下面C++代码执行后将输出1-4-7-。

for (int i = 1; i < 10; i += 3) {
if (not i % 3)
break;
cout << i << "-";
}

T. 正确
F. 错误
第20题 中级 2.0分 判断
执行如下C++代码,将从小到大依次输出abs(N)个整数,并在最后输出1。

int N;
cin >> N;
int start_num = 1, end_num = N + 1, i;
if (N < 0) start_num = N, end_num = 0;
for (i = start_num; i < end_num; i++)
cout << i << " ";
cout << endl << ((i - 1) == abs(N)) << endl;

T. 正确
F. 错误
第21题 中级 2.0分 判断
如下C++代码执行后,输出值为9。

int cnt = 0, i;
for (i = 0; i < 10; i++) {
for (int j = 0; j < i; j++)
cnt += 1;
break;
}
cout << i;

T. 正确
F. 错误
第22题 中级 2.0分 判断
如下C++代码执行时如输入10,输出将是100。

int cnt = 0, N;
cout << "请输入正整数:";
cin >> N;
for (int i = 0; i < N; i++)
for (int j = -i; j < i; j++)
cnt += 1;
cout << cnt;

T. 正确
F. 错误
第23题 中级 2.0分 判断
如下C++代码执行其输出是3。

int count = 0;
int i = 0;
while (i < 3) {
int j = 0;
while (j < 3) {
if (i + j >= 3)
count += 1;
j += 1;
}
i += 1;
}
cout << count;

T. 正确
F. 错误
第24题 中级 2.0分 判断
如下C++代码执行时如果输入正整数,其输出将是输入的正整数。

int N;
cin >> N;
int i = 0, Nbase = 1;
int rst = 0;
while (N != 0) {
rst = rst + N % 10 * Nbase;
N /= 10, Nbase *= 10;
i += 1;
}
cout << rst;

T. 正确
F. 错误
第25题 中级 2.0分 判断
如下C++代码执行时如输入5,将输出代码后的字符图形。

int n;
cin >> n;
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < n - i + 1; j++)
cout << 0;
for (int k = 1; k < 2 * i; k++) {
if (k <= i)
cout << k;
else
cout << 2 * i - k;
}
for (int j = 1; j < n - i + 1; j++)
cout << 0;
cout << endl;
}

T. 正确
F. 错误
第26题 中级 25.0分 编程
完全平方数计数


【题目描述】小杨同学正在研究完全平方数。完全平方数指可以恰好表示为某个正整数的平方的数。例如,9是完全平方数,因为9=3²=3×3;但27不是。给定两个正整数l和r(保证l≤r),小杨同学想知道l到r之间的所有正整数中(包含l和r),有多少个数是完全平方数。

【输入格式】输入两行,第一行为一个正整数l,第二行为一个正整数r。

【输出格式】输出一个非负整数,表示l到r中,有多少个正整数是完全平方数。

【样例】
1
21
【样例解释】
4
【样例解释】在1到21中,有以下4个整数是完全平方数:1、4、9、16。
【数据范围】1≤l≤r≤2000。
第27题 中级 25.0分 编程
菱形


【题目描述】给定正整数n,在(2n-1)×(2n-1)个网格的画布中,使用字符画一个边长为n个网格的菱形。空白网格用.表示,菱形边所在的网格用+表示。

【输入格式】输入一个正整数n。

【输出格式】输出2n-1行,表示按要求画的菱形。

【样例】
4
【样例解释】
...+...
..+..
.+.+.+
+...+
.+.+.+
..+..
...+
【数据范围】3≤n≤15。
💬