外观
2024年6月 GESP C++ 一级真题解析
一、单选题(每题2分,共30分)
选择题答案
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | A | C | C | D | A | D | D | C | C | B | B | A | C | B | D |
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限1. 以下不属于计算机输出设备的有()。
A. 麦克风
B. 音箱
C. 打印机
D. 显示器
查看解析
答案:A
考纲知识点: 计算机基础(一级)
解析: 本题属于考察计算机基础知识中的"输入"和"输出"概念;"输入"指外界向机器内部传递信息,"输出"指计算机内部信息向外界展示信息。此题中,"麦克风"属于向内部输入声音,属于输入概念,所以本题正确答案为A。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限2. ChatGPT是OpenAI研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下面任务中,ChatGPT不能完成的是()。
A. 改邮件
B. 编剧本
C. 擦地板
D. 写代码
查看解析
答案:C
考纲知识点: 计算机基础(一级)
解析: 本题属于考察计算机在现代社会中的常见应用;ChatGPT聊天机器人程序可以帮助我们完成一些计算机上的操作,A、B、D都属于这个范畴,C选项擦地板无法直接实现。所以本题正确答案为C。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限3. 常量'3'的数据类型是()。
A. double
B. float
C. char
D. int
查看解析
答案:C
考纲知识点: 基本数据类型(一级)
解析: 本题属于考察C++中的基本数据类型;C++中的基本数据类型有:整数型(int、long long)、实数型(float、double)、字符型(char)、布尔型(bool)。本题中'3'是用单引号引起来的单个字符3,属于字符型char,所以本题正确答案为C。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限4. 下列关于C++语言变量的叙述,正确的是()。
A. 变量可以没有定义
B. 对一个没有定义的变量赋值,相当于定义了一个新变量
C. 执行赋值语句后,变量的类型可能会变化
D. 执行赋值语句后,变量的值可能不会变化
查看解析
答案:D
考纲知识点: 变量的定义与使用(一级)
解析: 本题属于考察C++程序的基本概念中的"变量"相关概念;A、B选项错误都在于,变量需要"先定义,再使用",没有定义过的变量无法直接"赋值",故排除A、B。C选项错误在于,赋值操作不会改变变量数据类型,故排除C选项。如果赋值语句右侧的表达式计算结果与左侧的变量原值相同,则执行赋值语句后变量的值不会变化,所以本题正确答案为D。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限5. 以下可以作为C++标识符的是()。
A. number_of_Chinese_people_in_millions
B. 360AntiVirus
C. Man&Woman
D. break
查看解析
答案:A
考纲知识点: 变量的定义与使用(一级)
解析: 在计算机编程语言中,"标识符"是用户编程时使用的名字,用于给变量、常量、函数等命名;C++中声明变量名时,变量名中能且只能包含字母、数字、下划线,且不能用数字开头。另外,C++中有一些关键字(如if、while、break等)这些关键字已被编程语言保留,不能用作标识符。选项中B、C、D均不满足要求,所以本题正确答案为A。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限6. 以下哪个不是C++语言的关键字()。
A. double
B. else
C. while
D. endl
查看解析
答案:D
考纲知识点: 计算机基础与编程环境(一级)
解析: 本题考察对C++关键字的认识;C++的关键字包括:auto、bool、char、int、short、long、float、double、signed、unsigned、if、else、for、while、do、switch、case、default、break、continue、try、catch、throw、return等等。endl不是C++关键字,而是标准库中的一个操作符,所以本题正确答案为D。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限7. 如果a、b和c都是int类型的变量,下列哪个语句不符合C++语法()。
A. a = (b == c);
B. b = 5.5;
C. c = a + b + c;
D. a + c = b + c;
查看解析
答案:D
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++中的基本运算;首先要了解赋值运算符的使用规则,将符号右边的值赋值给符号左边的"变量"。A选项,符号右边是一个关系运算,运算结果是布尔类型,true或者false,对应的值是1或者0,可以直接赋值给整型变量,正确。B选项,实数类型的值可以赋值给int类型,结果只取整数部分,正确。C选项,符合要求,正确。D选项,赋值运算符左边是一个"算术运算",而不是一个"变量",所以本题正确答案为D。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限8. 如果用一个int类型的变量a表达正方形的边长,则下列哪个表达式不能用来计算正方形的面积()。
A. a * a
B. 1 * a * a
C. a^2
D. a * 2 * a / 2
查看解析
答案:C
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++的基本运算中的位运算;边长为a的正方形的面积是a*a,A、B、D的运算结果均正确。C选项错误在于,^符号在一些其他语言中表示乘方运算,但在C++中表示"异或运算符",会将符号两边的值按二进制位进行异或运算,不满足要求,所以本题正确答案为C。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限9. 表达式(4 * (11 + 12) / 4)的计算结果为()。
A. 47
B. 20
C. 23
D. 56
查看解析
答案:C
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++的基本运算中的运算优先级;小括号():优先级最高,括号内的计算最先进行,再按从左往右的顺序进行乘除法计算。4 * (11 + 12) / 4 = 4 * 23 / 4 = 92 / 4 = 23,所以本题正确答案为C。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限10. 如果a为int类型的变量,且a的值为6,则执行a %= 4之后,a的值会是()。
A. 1
B. 2
C. 3
D. 4
查看解析
答案:B
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++的基本运算中的赋值运算;首先需要了解复合赋值运算符"%="的规则,a %= 4等价于a = a % 4,即先进行求余运算,再将得到的结果赋值给符号左边的变量。6除以4的余数为2,所以本题正确答案为B。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限11. 如果a和b均为int类型的变量,下列表达式能正确判断"a等于0且b等于0"的是()。
A. (a = b == 0)
B. !(a || b)
C. (a + b == 0)
D. (a == 0) + (b == 0)
查看解析
答案:B
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++的基本运算中的逻辑运算;A选项会先判断a和b是否相等,只有a和b不相等,a == b表达式的值才为0,所以A选项判断是a不等于b。B选项中,若!(a || b)为真,则(a || b)结果为0,若a和b有任意一个不为0,(a || b)的值都为1,所以当a等于0且b等于0时,(a || b)的结果才为0,!(a || b)的值才为1。C选项判断的是a + b的和是否为0,当a和b互为相反数时条件即可成立,a和b不一定为0。D选项判断的是表达式(a == 0)和表达式(b == 0)的和,只要a和b中有任意一个为0,最终表达式的值都大于0,即为真。所以本题正确答案为B。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限12. 如果a和b为int类型的变量,且值分别为7和2,则下列哪个表达式的计算结果不是3.5()。
A. 0.0 + a / b
B. (a + 0.0) / b
C. (0.0 + a) / b
D. a / (0.0 + b)
查看解析
答案:A
考纲知识点: 基本运算(一级)
解析: 本题属于考察C++的基本运算中的实数算数运算。B、C、D选项中,小括号里的运算结果数据类型是"实数型",与整数进行除法运算,结果依旧是实数,可以得到3.5,正确。A选项错误在于,除法运算优先级高于加法运算,两个整数7和2相除的结果是整数3,再加上实数0.0,得到的结果是3.0,不满足要求,所以本题正确答案为A。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限13. 在下列代码的横线处填写(),使得输出是"20 10"。
cpp
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = ______; // 在此处填入代码
b = a + b;
a = b - a;
cout << a << " " << b << endl;
return 0;
}1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
A. a
B. b
C. a - b
D. b - a
查看解析
答案:C
考纲知识点: 基本运算(一级)
解析: 由于题目中没有分支、循环语句,可以尝试由结果反推。已知在第8行,输出"20 10",因此此时a为20、b为10。第7行对a赋值后得到的就是第8行时a的值20,而且b的值不变,可知第7行语句执行前a、b分别为-10、10。同理,第6行对b赋值后得到的就是第8行时b的值10,而且a的值不变,可知第6行语句执行前a、b分别为-10、20。于是,第5行语句对a赋值后,a的值应变为-10。第5行语句执行前,a为10、b为20,四个选项中,只有选项C的表达式的计算结果为-10。所以本题正确答案为C。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限14. 在下列代码的横线处填写(),可以使得输出是"147"。
cpp
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 8; i++)
if (______) // 在此处填入代码
cout << i;
return 0;
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
A. i % 2 == 1
B. i % 3 == 1
C. i = i + 3
D. i + 3
查看解析
答案:B
考纲知识点: 循环结构、基本运算(一级)
解析: 本题主要考察for循环中变量的取值,与求余运算符的使用;可以使用代入法进行排除。A选项中,只有i为奇数,才会输出,输出结果为1357,不满足题目要求。B选项带入,1,4,7除以3的余数刚好为1,输出结果为147,满足题目要求。C选项为赋值表达式,表达式的值为真,输出结果为48,不满足要求。D选项只要i + 3的值不为0表达式都成立,输出结果为12345678,不满足要求,所以本题正确答案为B。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限15. 执行以下C++语言程序后,输出结果是()。
cpp
#include <iostream>
using namespace std;
int main() {
int sum;
for (int i = 1; i <= 20; i++)
if (i % 3 == 0 || i % 5 == 0)
sum += i;
cout << sum << endl;
return 0;
}1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
A. 63
B. 98
C. 113
D. 无法确定
查看解析
答案:D
考纲知识点: 变量的定义与使用(一级)
解析: 本题主要考察C++程序基本概念中的变量定义规则,本题中,变量sum的作用是累加求和,定义在主函数内,但是并没有进行初始化,无法保证其初始值为0,故运行结果无法确定,所以本题正确答案为D。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限二、判断题(每题2分,共20分)
判断题答案
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | √ | √ | × | × | √ | √ | √ | × | × | √ |
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限1. 计算机硬件主要包括运算器、控制器、存储器、输入设备和输出设备。
查看解析
答案:√
考纲知识点: 计算机基础(一级)
解析: 本题考察计算机基础知识中的计算机组成五大部分;分别是:存储器、控制器、运算器、输入设备和输出设备,所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限2. 诞生于1958年的103机是中国第一台通用数字电子计算机,比1946年在美国诞生的第一台通用电子计算机ENIAC晚了十多年。
查看解析
答案:√
考纲知识点: 计算机的历史(一级)
解析: 本题属于对计算机历史的考察;中国第一台通用数字电子计算机于1958年8月研制成功,美国第一台通用电子计算机ENIAC诞生于1946年2月14日。所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限3. 在C++语言中,计算结果必须存储在变量中才能输出。
查看解析
答案:×
考纲知识点: 输入输出语句(一级)
解析: 本题考察计算机基本语言中的输出语句;输出语句可以直接输出表达式,输出的内容是表达式运算结果。所以本题错误。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限4. 在C++语言中,标识符的命名不能完全由数字组成,至少有一个字母就可以。
查看解析
答案:×
考纲知识点: 变量的定义与使用(一级)
解析: 本题考察C++语言中标识符的命名规则;C++语言中,标识符的命名能且只能包含字母、数字、下划线,且不能用数字开头。可以没有字母,例如_123是合理的标识符;有字母也可能不能作为标识符,例如2ab不是合理的标识符。所以本题错误。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限5. 10是一个int类型常量。
查看解析
答案:√
考纲知识点: 基本数据类型(一级)
解析: 本题考察C++语言中常量的概念;常量是固定值,在程序执行期间不会改变,可以是任何的基本数据类型,10是一个整型常量,默认类型为int类型。所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限6. if语句可以没有else子句。
查看解析
答案:√
考纲知识点: 选择结构(一级)
解析: 本题考察C++中分支结构中的if语句,if...else...语句的区别;if...else...语句中,当if语句条件不满足,会执行else中的语句;if语句可以独立存在,条件满足,执行下级代码,条件不满足,跳过下级代码继续执行。所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限7. do...while语句的循环体至少会执行一次。
查看解析
答案:√
考纲知识点: 循环结构(一级)
解析: 本题主要考察C++中的do...while语句执行逻辑;do...while会先执行一次循环体,然后再判别表达式。当表达式结果为"真"时,返回重新执行循环体,如此反复,直到表达式结果为"假"为止,此时循环结束。所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限8. 如果a和b为int类型的变量,则表达式a = b可以判断a和b是否相等。
查看解析
答案:×
考纲知识点: 基本运算(一级)
解析: 本题考察C++基本运算中关系运算符的使用;C++中,判断相等需要使用两个等于号(==),一个等于号(=)是赋值符号。所以本题错误。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限9. 如果a为int类型的变量,则表达式(a % 4 == 2)可以判断a的值是否为偶数。
查看解析
答案:×
考纲知识点: 基本运算(一级)
解析: 本题主要考察C++基本运算中的求余运算,与偶数判断;偶数是指在整数中能被2整除的数。题中表达式表达"被4除余2",这样的数一定是偶数,但偶数不一定满足该条件。例如,4是偶数,被4除余0。所以本题错误。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限10. 表达式(37/4)的计算结果为9,且结果类型为int。
查看解析
答案:√
考纲知识点: 基本运算(一级)
解析: 本题主要考察C++基本运算中的整数除法运算;在C++语言中,除号/左右均为整数类型时,表示整数除法,运算结果向下取整(舍弃小数部分),且结果为整数类型。所以本题正确。
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限三、编程题(每题25分,共50分)
1. 时间规划
题目描述
小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能通过编程帮他做到吗?
输入格式
输入4行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为结束时刻的小时,第四行为结束时刻的分钟。
输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用24小时制,即小时在0到23之间,分钟在0到59之间。
输出格式
输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
数据范围
无特殊限制。
样例输入1
9
5
9
61
2
3
4
2
3
4
样例输出1
11
样例输入2
9
5
10
01
2
3
4
2
3
4
样例输出2
551
解题思路
查看解题思路
考纲知识点: 变量的定义与使用、顺序结构、基本运算、输入输出语句(一级)
解题思路:
- 按题目要求定义好需要的变量,并实现输入;
- 利用结束时刻的小时减开始时刻的小时,结果乘60,得到小时数之差对应的分钟数;
- 利用结束时刻的分钟减开始时刻的分钟,得到分钟数之差;
- 将上述结果相加并输出;
样例解释:
- 样例1:开始时刻9:05,结束时刻9:06,相差1分钟
- 样例2:开始时刻9:05,结束时刻10:00,相差55分钟
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限参考程序
查看参考程序
cpp
#include <iostream>
using namespace std;
int main() {
int h1, h2, m1, m2; // 定义需要的变量
cin >> h1 >> m1; // 输入开始时刻的小时h1,开始时刻的分钟m1
cin >> h2 >> m2; // 输入结束时刻的小时h2,结束时刻的分钟m2
cout << (h2 - h1) * 60 + (m2 - m1); // 计算并输出结果
return 0;
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限2. 累计相加
题目描述
输入一个正整数n,求形如:1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + 5 + ... + n)的累计相加。
输入格式
输入一行,包含一个正整数。约定1 ≤ n ≤ 100。
输出格式
输出一行,包含一个整数,表示累计相加的结果。
数据范围
1 ≤ n ≤ 100
样例输入1
31
样例输出1
101
样例输入2
41
样例输出2
201
样例输入3
101
样例输出3
2201
解题思路
查看解题思路
考纲知识点: 循环结构、基本运算、输入输出语句(一级)
解题思路:
- 分析出参与求和运算的每一项的规律:第1项为1,第2项从1开始加到2,第3项从1开始加到3,依次类推,第i项从1开始一直加到当前项数i,利用求和公式可以表示为i * (i + 1) / 2;
- 借助for循环,把每个多项式的结果累加到sum中;
- 按要求完成输入和输出。
解题过程中应注意变量sum初始化,循环条件i <= n是否包含等于情况,表达式(i + 1) * i / 2的运算顺序等问题。
如果不了解等差数列求和公式,也可以使用二重循环解题,需要更加注意循环条件的处理。
样例解释:
- 样例1:n=3时,1 + (1+2) + (1+2+3) = 1 + 3 + 6 = 10
- 样例2:n=4时,1 + (1+2) + (1+2+3) + (1+2+3+4) = 1 + 3 + 6 + 10 = 20
- 样例3:n=10时,计算各项和的累加结果为220
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限参考程序
查看参考程序
cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0; // 定义计数变量sum初始化为0,用于累加求和
for (int i = 1; i <= n; i++) // 遍历每一项,i表示当前项数
sum += (i + 1) * i / 2; // 把每个多项式的值累加到sum中求和
cout << sum << endl; // 输出结果
return 0;
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
登录后查看内容
此内容需要登录后才能查看,请先登录您的账户。
1级权限
需要 1 级或以上权限