杨校老师竞赛课之GESP一级C++[2024-12]真题及题解
本文摘要:2024年GESP一级C++真题解析包含25道选择题和2道编程题。选择题涉及诺贝尔物理学奖获得者研究方向(人工智能)、操作系统识别(纯血鸿蒙)、C++语法规则、运算符优先级等内容;编程题要求实现温度转换(开尔文转摄氏/华氏)和统计奇偶数功能。题目考察计算机科学基础知识、C++语法和简单算法实现,答案均配有详细解析。编程题需要处理输入输出、条件判断和循环结构,体现基础编程能力。(98字)
GESP一级C++——2024-12真题
1.【 单选 】
2024 年 10 月 8 日,诺贝尔物理学奖 “ 意外地 ” 颁给了两位计算机科学家约翰 · 霍普菲尔德( John J. Hopfield )和杰弗里· 辛顿( Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。
- A.天体物理
- B.流体力学
- C.人工智能
- D.量子理论
正确答案是: C你的答案是: 题目解析: 约翰・霍普菲尔德和杰弗里・辛顿是在计算机科学领域,尤其是人工智能方面做出了显著贡献的科学家。 他们的研究重点集中在人工智能相关的技术和理论上,如神经网络等。 而天体物理主要研究天体的形成、演化等;流体力学关注流体的运动规律;量子理论则涉及微观世界的粒子行为和相互作用。 这两位科学家的主要研究方向不是 A 选项天体物理、B 选项流体力学和 D 选项量子理论,而是 C 选项人工智能。 |
2.【 单选 】
下列软件中是操作系统的是( )。
- A.高德地图
- B.腾讯会议
- C.纯血鸿蒙
- D.金山永中
正确答案是: C你的答案是: 题目解析: A 选项 “高德地图” 是一款地图导航软件。 B 选项 “腾讯会议” 是一款视频会议软件。 C 选项 “纯血鸿蒙” 是操作系统。 D 选项 “金山永中” 通常指办公软件。 综上所述,选择 C 选项。 |
3.【 单选 】
有关下列C++ 代码的说法,正确的是 ( )。
- A.配对双引号内,不可以有汉字
- B.配对双引号可以相应改变为英文单引号而输出效果不变
- C.配对双引号可以相应改变为三个连续英文单引号而输出效果不变
- D.配对双引号可以相应改变为三个连续英文双引号而输出效果不变
正确答案是: D你的答案是: 题目解析: 在 C++ 中,使用 printf 函数输出字符串时,双引号内的内容为要输出的字符串。 A 选项:双引号内可以有汉字。 B 选项:双引号不能改为单引号,单引号用于表示单个字符,不是字符串。 C 选项:双引号不能改为三个连续的英文单引号。 D 选项:双引号可以改为三个连续的英文双引号,输出效果不变。 综上所述,选择 D 选项。 |
4.【 单选 】
C++表达式12 - 3 * 2 && 2 的值是( )。
- A.0
- B.1
- C.6
- D.9
正确答案是: B你的答案是: 题目解析: 考察运算符以及运算符的优先级。 题目中出现了算术运算符 - 和 *,逻辑运算符 &&,算数运算符优先级高于逻辑运算符, 先算乘,再算-,最后算逻辑与&&,结果为 真(1) |
5.【 单选 】
在C++中,假设N为正整数 2 ,则 cout << ( N / 3 + N % 3) 将输出( )。
- A.0
- B.2
- C.3
- D.4
正确答案是: B你的答案是: 题目解析: 考察运算符以及运算符的优先级。 2/3+2%3 =》0+2 =》2 |
7.【 单选 】
下面C++代码执行后 ,求出几天后是星期几 。如果星期日则输出“星期天”否则输出形如“星期1” 。横线上应填入的代码是( )。
GESP一级C++——2024-12真题
1.【 单选 】
2024 年 10 月 8 日,诺贝尔物理学奖 “ 意外地 ” 颁给了两位计算机科学家约翰 · 霍普菲尔德( John J. Hopfield )和杰弗里· 辛顿( Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。
- A.
- 天体物理
- B.
- 流体力学
- C.
- 人工智能
- D.
- 量子理论
正确答案是: C你的答案是: 题目解析: 约翰・霍普菲尔德和杰弗里・辛顿是在计算机科学领域,尤其是人工智能方面做出了显著贡献的科学家。 他们的研究重点集中在人工智能相关的技术和理论上,如神经网络等。 而天体物理主要研究天体的形成、演化等;流体力学关注流体的运动规律;量子理论则涉及微观世界的粒子行为和相互作用。 这两位科学家的主要研究方向不是 A 选项天体物理、B 选项流体力学和 D 选项量子理论,而是 C 选项人工智能。 |
2.【 单选 】
下列软件中是操作系统的是( )。
- A.高德地图
- B.腾讯会议
- C.纯血鸿蒙
- D.金山永中
正确答案是: C你的答案是: 题目解析: A 选项 “高德地图” 是一款地图导航软件。 B 选项 “腾讯会议” 是一款视频会议软件。 C 选项 “纯血鸿蒙” 是操作系统。 D 选项 “金山永中” 通常指办公软件。 综上所述,选择 C 选项。 |
3.【 单选 】
有关下列C++ 代码的说法,正确的是 ( )。
- A.配对双引号内,不可以有汉字
- B.配对双引号可以相应改变为英文单引号而输出效果不变
- C.配对双引号可以相应改变为三个连续英文单引号而输出效果不变
- D.配对双引号可以相应改变为三个连续英文双引号而输出效果不变
正确答案是: D你的答案是: 题目解析: 在 C++ 中,使用 printf 函数输出字符串时,双引号内的内容为要输出的字符串。 A 选项:双引号内可以有汉字。 B 选项:双引号不能改为单引号,单引号用于表示单个字符,不是字符串。 C 选项:双引号不能改为三个连续的英文单引号。 D 选项:双引号可以改为三个连续的英文双引号,输出效果不变。 综上所述,选择 D 选项。 |
4.【 单选 】
C++表达式12 - 3 * 2 && 2 的值是( )。
- A.0
- B.1
- C.6
- D.9
正确答案是: B你的答案是: 题目解析: 考察运算符以及运算符的优先级。 题目中出现了算术运算符 - 和 *,逻辑运算符 &&,算数运算符优先级高于逻辑运算符, 先算乘,再算-,最后算逻辑与&&,结果为 真(1) |
5.【 单选 】
在C++中,假设N为正整数 2 ,则 cout << ( N / 3 + N % 3) 将输出( )。
- A.0
- B.2
- C.3
- D.4
正确答案是: B你的答案是: 题目解析: 考察运算符以及运算符的优先级。 2/3+2%3 =》0+2 =》2 |
7.【 单选 】
下面C++代码执行后 ,求出几天后是星期几 。如果星期日则输出“星期天”否则输出形如“星期1” 。横线上应填入的代码是( )。
- A.N % 7 != 0
- B.N % 7 == 0
- C.N == 0
- D.N % 7
正确答案是: B你的答案是: 题目解析: 一周7天,周一到周日(周零)正好是对7取余的余数,给了今天是星期几 nowDay 以及过的天数 afterDays,加起来对 7 取余的余数即可计算几天后的星期几,需要注意的是余数0表示周天。 |
8.【 单选 】
下面C++代码执行后输出的是( )。
- A.54
- B.20
- C.19
- D.18
正确答案是: C你的答案是: 题目解析: N初始值0,循环进行了9次,N加了9次1,循环结束N值为9, i 的值为10,最后输出 N+i,是19 |
9.【 单选 】
下面C++代码执行后输出的是( )。
- A.4950
- B.5050
- C.450
- D.100
正确答案是: C你的答案是: 题目解析: i%10表示取i的个位,而i是0~99,因此累加的是0~99的个位数 0~9,10~19,20~29,。。。,90~99共10组 (0+1+2+3+4+5+6+7+8+9)*10,结果为450。 |
10.【 单选 】
下面C++代码执行后输出的是( )。
- A.10
- B.9
- C.6
- D.5
正确答案是: C你的答案是: 题目解析: 对于循环变量i的取值,只有5,10,15,20,25,30,35,40,45,50.... 但因i%2==0使continue跳过本次循环,因此排除掉i为偶数的取值 所以tnt+=1,只会在5,15,25,35,45,55时执行,共累加6次, 当i=55时,因为i>=50(i为50的时候不会break,因为continue提前跳过了本次循环),break结束循环 因此tnt的值为6 |
11.【 单选 】
下面的程序用于判断输入的整数N是否为能被3整除的偶数,横线处应填写的代码是( )。
- A.(N%2)&&(N%3)
- B.(N%2==0)&&(N%3)
- C.(N%2)&&(N%3==0)
- D.(N%2==0)&&(N%3==0)
正确答案是: D你的答案是: 题目解析: 能被3整除,即 除以3余数为0,即 N%3==0 偶数,即 除以2余数为0,即 N%2==0 两者要同时满足,因此选D |
12.【 单选 】
下面C++代码执行后的输出是( )。
- A.54
- B.45
- C.25
- D.10
正确答案是: C你的答案是: 题目解析: cnt+=i++,因为自增运算在后,因此可以将其拆分为两步代码,即cnt+=i,i++; 循环第一次执行,i=1,满足i<10,执行 cnt+=i++,此时cnt+=1,cnt值为1,i++变为2,再执行循环i++,i变为3 循环第二次执行,i=3,满足i<10,执行 cnt+=i++,此时cnt+=3,cnt值为4,i++变为4,再执行循环i++,i变为5 循环第三次执行,i=5,满足i<10,执行 cnt+=i++,此时cnt+=5,cnt值为9,i++变为6,再执行循环i++,i变为7 循环第四次执行,i=7,满足i<10,执行 cnt+=i++,此时cnt+=7,cnt值为16,i++变为8,再执行循环i++,i变为9 循环第五次执行,i=9,满足i<10,执行 cnt+=i++,此时cnt+=9,cnt值为25,i++变为10,再执行循环i++,i变为11 循环第六次执行,i=11,不满足i<10,循环结束,此时cnt的值为25 |
13.【 单选 】
int类型变量a的值是一个正方形的边长,如下图中的正方形的四条边长都为4,则下列那个语句执行后能够使得正方形的周长(四条边长的和)增加4?( )
- A.a*4
- B.a+4
- C.a+1
- D.++a
正确答案是: D你的答案是: 题目解析: A、B、C三个选项都只是让a计算出一个结果,并没有真正改变a的值, 只有a++使得a本身加1,同时一条边长+1,那么四条边长就是+4,满足题目要求 |
14.【 单选 】
C++表达式 ( 6 > 2 ) * 2的值是( )。
- A.1
- B.2
- C.continue
- D.truetrue
正确答案是: B你的答案是: 题目解析: 6>2成立,得到逻辑结果为1,计算1*2,得到结果2 |
15.【 单选 】
下面C++代码用于判断输入的整数是否为 位增数,即从首位到个位逐渐增大,是则输出1。如123就是一个位增数。下面横线处应填入的是( )。
- A.n2 = N%10
- B.N /=10
- C.n2 = N/10, N %= 10
- D.n2 = N%10, N /= 10
正确答案是: D你的答案是: 题目解析: 数位分离,交替使用除和取余运算可以从数中逐个剥离每一位的数。 初始化操作,n2保存输入数据的个位数,N /= 10,把个位数剥离出去。 |
16.【 单选 】
在Windows的资源管理器中为已有文件A建立副本的操作是 Ctrl+C,然后Ctrl + V。( )
- A.正确
- B.错误
正确答案是: A你的答案是: 题目解析: Ctrl+C 复制,然后Ctrl + V粘贴 |
17.【 单选 】
在C++中,表达式 8/3 和 8%3 的值相同( )。
- A.正确
- B.错误
正确答案是: A你的答案是: 题目解析: 计算的结果表示的含义不同,但是算数结果都是2 |
18.【 单选 】
X是C++语言的基本类型变量,则语句 cin >> X , cout << X能接收键盘输入并原样输出( )。
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: 不一定,例如定义 X 为 double 类型变量,输入内容为123.3333333,输出内容为123.333。错误 |
19.【 单选 】
下面C++代码执行后将输出10。( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: continue在N+=1之前,因此累加一次也不会执行,N还是初始值0 |
20.【 单选 】
下面C++代码执行后将输出100。( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: 虽然有continue语句,但是并不妨碍循环中的i++ 循环执行条件是i<=100,因此结束条件应该是i>100,所以输出的i不可能是100,应该为101 |
21.【 单选 】
下面C++代码被执行时,将执行三次输出(即标记行L2将被执行一次)。( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: 循环第一次执行,i=0,满足i<10,输出后,i+=3,i为3 循环第二次执行,i=3,满足i<10,输出后,i+=3,i为6 循环第三次执行,i=6,满足i<10,输出后,i+=3,i为9 循环第四次执行,i=9,满足i<10,输出后,i+=3,i为12 循环第五次执行,i=12,不满足i<10,循环结束,无输出 因此总共输出4次 |
22.【 单选 】
C++语句 cout << ( 3 , 2 ) 执行后,将输出3和2 ,且3 和 2 之间有逗号间隔( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: 这里逗号也可看作运算符,由逗号运算符组成的表达式的结果是 最后一个逗号后边的内容,因此这里只输出2。 |
23.【 单选 】
在C++中,studentName、student_name 以及sStudentName都是合法的变量名称( )
- A.正确
- B.错误
正确答案是: A你的答案是: 题目解析: 合法的变量名应满足以下规则 1、只由数字、字母、下划线_ 组成 2、数字不能在开头 3、区分大小写,不能是关键字 以上三个变量都满足此规则 |
24.【 单选 】
在C++中,对浮点变量float f,则语句 cin >> f ; cout << ( f < 1 ) ;在输入是2e-1时,输出是0( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: 2e-1是科学计数表示形式,相当于2*10(-1),也就是0.2,0.2<1 关系表达式成立,结果为真,输出1。 |
25.【 单选 】
在C++的循环体内部,如果break 和 continue 语句连续在一起,那么作用抵消,可以顺利执行下一次循环。( )
- A.正确
- B.错误
正确答案是: B你的答案是: 题目解析: break,跳出循环,continue,跳过本次循环。它们互相不干扰。 |
26. [GESP202412 一级1]温度转换
题目描述
小杨最近学习了开尔文温度、摄氏温度和华氏温度的转换。令符号K表示开尔文温度,符号C表示摄氏温度,符号F表示化石温度,这三者的转换公式如下:
C=K−273.15
F=C∗1.8+32
现在小杨想编写一个程序计算某一开尔文温度对应的摄氏温度和化石温度,你能帮帮他吗?
输入描述
一行,一个实数K,代表开尔文温度。
输出描述
一行,若输入开尔文温度对应的华氏温度高于212,输出
Temperature is too high!
否则,输出两个空格分隔的实数C和F,分别表示摄氏温度和华氏温度,并保留两位小数
输入样例1
412.00
输出样例1
Temperature is too high!
输入样例2
173.56
输出样例1
-99.59 -147.26
数据描述
对于 100% 的数据,保证 0<K<
代码实现
C++ |
27. [GESP202412 一级2]奇数和偶数
题目描述
小杨有n个正整数,他想知道其中的奇数有多少个,偶数有多少个
输入描述
第一行,包含一个正整数n,代表正整数个数。
之后n行,每行包含一个正整数
输出描述
输出两个用英文空格分隔的正整数,分别表示奇数的个数和偶数的个数。如果奇数或偶数的个数为0,则对应输出0。
输入样例
5
1
2
3
4
5
输出样例
3 2
数据描述
对于 100% 的数据,保证 1≤n,正整数≤
代码实现
C++ |
更多推荐
所有评论(0)