欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

2023年 6月 GESP C++ 一级真题解析 选择题

时间:2024-05-09 10:05 作者:admin 点击:
一、单选题(每题 2 分,共 30 分) 1. 以下不属于计算机输出设备的有( )。 A. 麦克风 B. 音箱 C. 打印机 D. 显示器 【答案】A 【考纲知识点】计算机基础(一级) 【解析】本题属于考

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

1. 以下不属于计算机输出设备的有( )。

A. 麦克风

B. 音箱

C. 打印机

D. 显示器

【答案】A

【考纲知识点】计算机基础(一级)

【解析】本题属于考察计算机基础知识中的“输入”和“输出”概念;“输入”指外界向机器内部传递信息,“输出”指计算机内部信息向外界展示信息。此题中,“麦克风”属于向内部输入声音,属于输入概念,所以本题正确答案为 A。

2. ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下面任务中,ChatGPT 不能完成的是( )。

A. 改邮件

B. 编剧本

C. 擦地板

D. 写代码

【答案】C

【考纲知识点】计算机基础(一级)

【解析】本题属于考察计算机在现代社会中的常见应用;ChatGPT 聊天机器人程序可以帮助我们完成一些计算机上的操作,A、B、D 都属于这个范畴,C 选项擦地板无法直接实现。所以本题正确答案为 C。

3. 常量'3'的数据类型是( )。

A. double

B. float

C. char

D. int

【答案】C

【考纲知识点】基本数据类型(一级)

【解析】本题属于考察 C++中的基本数据类型;C++中的基本数据类型有:整数型(int、long long)、实数型(float、double)、字符型(char)、布尔型(bool)。本题中'3'是用单引号引起来的单个字符 3 ,属于字符型 char,所以本题正确答案为 C。

4. 下列关于 C++语言变量的叙述,正确的是( )。

A. 变量可以没有定义

B. 对一个没有定义的变量赋值,相当于定义了一个新变量

C. 执行赋值语句后,变量的类型可能会变化

D. 执行赋值语句后,变量的值可能不会变化

【答案】D

【考纲知识点】变量的定义与使用(一级)

【解析】本题属于考察 C++程序的基本概念中的“变量”相关概念;A、B 选项错误都在于,变量需要“先定义,再使用”,没有定义过的变量无法直接“赋值”,故排除 A、B。C 选项错误在于,赋值操作不会改变变量数据类型,故排除 C 选项。如果赋值语句右侧的表达式计算结果与左侧的变量原值相同,则执行赋值语句后变量的值不会变化,所以本题正确答案为 D。

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。

6. 以下哪个不是 C++语言的关键字?( )

A. double

B. else

C. while

D. endl

【答案】D

【考纲知识点】计算机基础与编程环境(一级)

【解析】本题考察对 C++关键字的认识;C++的关键字如下图所示:所以本题正确答案为 D。

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。

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。

9. 表达式(4 * (11 + 12) / 4)的计算结果为( )。

A. 47

B. 20

C. 23

D. 56

【答案】C

【考纲知识点】基本运算(一级)

【解析】本题属于考察 C++的基本运算中的运算优先级;小括号 ():优先级最高,括号内的计算最先进行,再按从左往右的顺序进行乘除法计算。所以本题正确答案为 C。

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。

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。

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。

13. 在下列代码的横线处填写( ),使得输出是“20 10”。

#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;
}

A. a + b

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。

14. 在下列代码的横线处填写( ),可以使得输出是“147”。

#include <iostream>
using namespace std;
int main() {
	for(int i=1;i<=8;i++)
		if(_____) //在此处填入代码
			cout<<i;
	return 0;
}

A. i % 2 == 1

B. i % 3 == 1

C. i = i + 3

D. i + 3

【答案】B

【考纲知识点】循环结构、基本运算(一级)

【解析】本题主要考察 for 循环中变量的取值,与求余运算符的使用;可以使用代入法进行排除。A 选项中,只有 i 为奇数,才会输出,输出结果为 1357,不满足题目要求。B 选项带入,1,4,7 除以 4 的刚好余 1,输出结果为 147,满足题目要求。C 选项为赋值表达式,表达式的值为真,输出结果为 48,不满足要求。D 选项只要 i+3 的值不为 0 表达式都成立,输出结果为 12345678,不满足要求所以本题正确答案为 B。

15. 执行以下 C++语言程序后,输出结果是( )。

#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;
}

A. 63

B. 98

C. 113

D. 无法确定

【答案】D

【考纲知识点】变量的定义与使用(一级)

【解析】本题主要考察 C++程序基本概念中的变量定义规则,本题中,变量 sum的作用是累加求和,定义在主函数内,但是并没有进行初始化,无法保证其初始值为 0,故运行结果无法确定,所以本题正确答案为 D。

(责任编辑:admin)
    顶一下
    (1)
    100%
    踩一下
    (0)
    0%