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

2023年 3月 GESP C++ 二级真题解析 选择题

时间:2024-05-04 21:06 作者:admin 点击:
一、单选题(每题 2 分,共 30 分) 1. 以下存储器中的数据不会受到附近强磁场干扰的是() A.硬盘 B.U 盘 C.内存 D.光盘 【答案】D 【考纲知识点】计算机的存储(二级) 【解析】

一、单选题(每题 2 分,共 30 分)
1. 以下存储器中的数据不会受到附近强磁场干扰的是()

A.硬盘
B.U 盘
C.内存
D.光盘

【答案】D
【考纲知识点】计算机的存储(二级)
【解析】光盘是光存储介质,是通过激光高温改变光盘涂覆层的形状来记录数据的,不会因为磁场而改变记录特性。硬盘是磁介质的数据存储设备,会直接受到磁场干扰。强磁场会在 U 盘和内存的电路中产生感应电流,可能会破坏存储器,导致数据受损。所以此题正确答案为 D。


2. 下列流程图,属于计算机的哪种程序结构?( )。


A. 顺序结构
B. 循环结构
C. 分支结构
D.数据结构
【答案】C
【考纲知识点】计算机基础结构(一级)
【解析】流程图根据是否按下空格键设置了两个分支,符合分支结构的特征,所以本题正确答案为 C。


3. 下列关于 C++语言的叙述,不正确的是()。
A. double 类型的变量占用内存的大小是浮动的
B. bool 类型的变量占用 1 字节内存
C. int 类型变量的取值范围不是无限的
D. char 类型的变量有 256 种取值
【答案】A
【考纲知识点】计算机的存储(二级)
【解析】在当前C++标准下,double类型通常占用8个字节,bool类型占用1个字节,int类型通常占用4个字节,char类型占用1字节,int类型的取值范围为

−231~231 − 1,char 类型的范围是-128~127,所以本题正确答案为A。

4. 下列关于 C++语言的叙述,不正确的是()。
A. 变量定义后,可以使用赋值语句改变它的值
B. 变量定义时,必须指定类型
C. 变量名必须为合法标识符
D.合法标识符可以以数字开始
【答案】D
【考纲知识点】变量的定义与使用(一级)
【解析】变量定义时,必须指定类型,且变量名必须为合法标识符(只能由字母,数字,下划线组成,且不能以数字开头),所以本题正确答案为D。

5. 以下哪个不是 C++语言的关键字?
A. return
B. max
C. else
D. case
【答案】B
【考纲知识点】程序设计语言的特点(二级)
【解析】本题属于考察 C++语言的关键字,max 是 C++中的一个库函数,不属于关键字,所以本题正确答案为 B。


6. 以下哪个不是 C++语言的运算符?
A. \=
B. /=
C. -=
D.!

【答案】A
【考纲知识点】算数运算(一级)
【解析】B 选项 a /= b,等价于 a = a / b;C 选项 a -= b 等价于a = a – b;D选项“!=”是不等于。A 选项\=并不是 C++语言的运算符,所以本题正确答案为A。

7. 如果 a 和 b 都是 char 类型的变量,下列哪个语句不符合C++语法?

A. b = a + 1;
B. b = a + '1';
C. b = 'a'++;
D. b = a++;
【答案】C
【考纲知识点】基本数据类型(一级)
【解析】
A 选项,赋值号右侧表达式对 a 的 ASCII 码数值加 1,结果为int 类型,赋值给b时转换为 char 类型,也即比 a 的 ASCII 码值大 1 的对应字符。符合C++语法。B 选项,'1'为 char 类型常量,赋值号右侧表达式对 a 的ASCII 码数值加'1'的ASCII码数值,结果为 char 类型,赋值给 b。符合 C++语法。C 选项,'a'为 char 类型常量,常量不能进行++自增运算,不符合C++语法。D 选项,a 为 char 类型常量,可以进行++自增运算。该语句将a 变为ASCII 码值增加 1 的对应字符,并将变化前的 a 值赋值给 b。符合C++语法。所以本题正确答案为 C.


8. 如果 a、b、c 和 d 都是 int 类型的变量,则下列哪个表达式能够正确计算它们的平均值?
A. (a + b + c + d) / 4
B. (a + b + c + d) % 4
C. (a + b + c + d) / 4.0
D. (a + b + c + d) % 4.0
【答案】C
【考纲知识点】算术运算(一级)
【解析】A 选项中所有参与计算的数都是整型,最终的计算结果也是整型,会默认向下取整,导致平均值不准确。B 选项计算的是 a、b、c、d 四个整数的和除以 4 的余数。C 选项为 a、b、c、d 四个整数的和除以 4.0 的结果,计算过程中会将 4.0 视为浮点数,整型与浮点型的计算结果默认为浮点型。D 选项“%”不能与浮点数参与运算,用法错误。所以本题正确答案为 C。

9. 如果 a 为 char 类型的变量,且 a 的值为'2',则下列哪条语句执行后,a 的值不会变为'3'?
A. a = a + 1;
B. a + 1;
C. a = 1 + a;
D. ++a;
【答案】B
【考纲知识点】算术运算(一级)
【解析】B 选项中并未对 a + 1 的结果进行任何处理,变量a 在计算过程中未发生改变,所以本题正确答案为 B。

10. 如果 a 为 int 类型的变量,且 a 的值为 9,则执行 a -= 3;之后,a 的值会是()。
A. 3
B. 6
C. 9
D.12
【答案】B
【考纲知识点】算术运算(一级)
【解析】a -= 3;等价于 a = a - 3; 表示把 a - 3 的计算结果重新赋值给a 变量,所以本题正确答案为 B。

11. 如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于0 或b 等于0”的是()
A. (!a) || (!b)
B. (a == b == 0)
C. (a == 0) && (b == 0)
D. (a == 0) - (b == 0) == 0
【答案】A
【考纲知识点】逻辑运算(一级)
【解析】A 选项中“!a”表示 a 等于 0,同理“!b”表示b 等于0,整个表示式表示 a 等于 0 或 b 等于 0。B 选项会先判断 a 变量和 b 变量是否相等(若a 和b相等,表达式的值为 1,若 a 和 b 不相等,表达式的值为 0),然后再判断表达式(a==b)
的值是否为 0。C 选项表示 a 等于 0 且 b 等于 0。D 选项表示表达式(a==0)减表达式(b==0)的计算结果是否为 0,表示 a 和 b 同时为 0 或a 和b 同时都不为0。所以本题正确答案为 A。

12. 如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母”?

A. a <= a <= z
B. a - 'a' <= 'z' - 'a'
C. 'a' <= a <= 'z'
D.a >= 'a' && a <= 'z'

【答案】D
【考纲知识点】逻辑运算(一级)
【解析】A 选项,a <= a 总是成立,因此表达式等价于1 <= z。B 选项等价于a<=‘z’。C 选项无论’a’ <= a 是否成立,表达式的值 0 或 1 都小于’z’。D 选项表示a大于等于’a’,并且 a 小于等于’z’,说明 a 变量的 ASCII 码在字符’a’和字符’z’对应的ASCII 码之间,即 a 变量为小写字母。所以本题正确答案为D。

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

#include<iostream>
using namespace std;
int main(){	 
	int a=10;
	int b=50;
	___________;
	b -= a;
	a += b;
	cout<< a <<" "<< b <<endl;
	
	return 0;
}

A. a -= b
B. a += b
C. a = b - a
D. a = b
【答案】C
【考纲知识点】基本运算(一级)
【解析】本题考察通过算术运算交换两个变量数值,可将选项带入进行计算,本题正确答案为 C。

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

#include<iostream>
using namespace std;
int main(){	 
	int cnt = 0;
	for(char ch = '1'; ch <= '9'; ch++)
		if(____)//在此处填入代码
			cnt++;
	cout<<cnt<<endl;	
	return 0;
}

A. ch < '5'
B. ch >= 5
C. ch >= '4'
D. ch % 2 == 1
【答案】D
【考纲知识点】循环结构,字符型,ASCII 码,基本运算(二级)【解析】可以将选项带入排除 A,B,C 选项,需要注意B 选项中5 没有单引号,所以表示的不是字符’5’,D 选项中 ch 虽然是字符类型,但计算时会使用对应的ASCII 码%2,字符’1’到字符’9’之间,所有 ASCII 码中有5 个是奇数,所以本题正确答案为 D。

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

#include<iostream>
using namespace std;
int main(){	 
	int n = 17;
	bool isprime = true;
	for(int i = 2;i <= n; i++)
		if(n % i == 0)
			isprime = false;
	cout<< isprime <<endl;
	return 0;
}

A. false
B. true
C. 0
D.1
【答案】C
【考纲知识点】循环结构,布尔型,基本运算 (二级)【解析】题目中 i 的循环范围是 2~n,即分别使用 n 对2~n 之间的所有数进行求余运算,由于 n 能够被自身整除,所以循环结束后 isprime 的值一定为false,但是 bool 类型在输出时不会输出 true 或 false,输出时只会输出1 或0,所以本题正确答案为 C。

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