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

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

时间:2024-05-05 14:37 作者:admin 点击:
一、单选题(每题 2 分,共 30 分) 1、我国第⼀台⼤型通用电⼦计算机使用的逻辑部件是()。 A. 集成电路 B. ⼤规模集成电路 C. 晶体管 D. 电⼦管 【答案】D 【考纲知识点】 计算机基

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

1、我国第⼀台⼤型通用电⼦计算机使用的逻辑部件是()。

A. 集成电路
B. ⼤规模集成电路
C. 晶体管
D. 电⼦管
【答案】D
【考纲知识点】 计算机基础知识
【解析】本题属于考察计算机基础知识。中国第一台计算机通用数字电子计算机于 1958 年 6 月由中科院计算所研制成功。那时候的逻辑部件是电子管。

2、下列流程图的输出结果是( )?


A. 5 12
B. 12 5
C. 5 5
D. 12 12
【答案】B
【考纲知识点】 流程图的概念与描述
【解析】本题属于考察流程图知识。通过图得知,x=5,y=12,x>y 不成立,会执行否,结果是 a=y=12,b=x=5,输出选项为 B。

3、如果要找出整数 a 、 b 中较⼤⼀个,通常要⽤下⾯哪种程序结构?()。

A. 顺序结构
B. 循环结构
C. 分支结构
D. 跳转结构
【答案】C
【考纲知识点】 控制语句结构
【解析】本题属于考察计算机程序结构。比较大小,需要分支结构。

4、以下不是 C++关键字的是( )。
A. continue
B. cout
C. break
D. goto
【答案】B
【考纲知识点】 变量的定义与使用
【解析】本题属于考察 C++知识,cout 不是关键字,是一个类的对象。

5、C++表达式 int(-123.123 / 10) 的值是( )。
A. -124
B. -123
C. -13
D. -12
【答案】D
【考纲知识点】 数据类型的转换
【解析】本题属于考察 C++运算和强制类型转换。-123.123/10=-12.3123,转换成整数是-12。

6、以下 C++代码实现从⼤到⼩的顺序输出 N 的所有因⼦。例如,输⼊N=18时输出 18 9 6 3 2 1 ,横线处应填⼊( )。

int N = 0;
cin >> N;
for (_____________) //此处填写代码
	if (!(N % i))
		cout << i << ' ';

A. ; ;
B. int i = 1; i < N; i++
C. int i = N; i > 0; i--
D. int i = N; i > 1; i--

【答案】C
【考纲知识点】 控制语句结构、基本运算
【解析】本题属于考察程序填空,根据题意,从大到小输出N 的所有因子,判断范围是[N,1],观察选项,C 选项符合,D 选项错误的地方是i>1,不包括1。

7、如下图所⽰,输出 N ⾏ N 列的矩阵,对角线为 1,横线处应填⼊()。

int N = 0;
cout<< "请输入行列数量:";
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
B. j != j
C. i >= j
D. i == j
【答案】D
【考纲知识点】 多层循环结构
【解析】本题属于考察程序填空,根据题意,对角线上的元素等于1,对角线元素的坐标特点是行左边等于列坐标,也就是 i==j。 选D。

8、下⾯C++代码⽤于判断 N 是否为质数(素数),约定输⼊N 为⼤于等于2的正整数,请在横线处填⼊合适的代码( )。

int N = 0,i = 0;
cout<<"请输入一个大于等于2的正整数:";
cin>>N;

for ( i = 2; i < N; i++)
		if (N % i == 0){
			cout << "非质数";
			______________;//此处填写代码
		}
if (i == N)
	cout<< "是质数";
	 

A. break
B. continue
C. exit
D. return
【答案】A
【考纲知识点】 控制语句结构、基本运算
【解析】本题属于考察程序填空,根据题意,判断质数,质数的特点是只能被1和它本身整除,如果被 2---N-1 之间的数字整除,就不是质数,这样的数字找到1 个,就不需要再循环判断了,因此填 break,A。

9、下⾯C++代码执⾏后的输出是( )。

int N = 9;
for (int i = 2; i < N; i++)
	if(N % i)
		cout << "1#";
cout << "0" << endl;

A. 1#0
B. 1#
C. 1#1#1#1#1#1
D. 1#1#1#1#1#1#0
【答案】D
【考纲知识点】 控制语句结构、基本运算
【解析】本题属于考察程序填空,根据代码,最后的 0 肯定输出,所以判断AD选项。9%2==1,会输出 1#,可以判断 i=2,4,5,6,7,8 时都会输出1#,选D。

10、下⾯C++代码执⾏后的输出是( )。

int cnt = 0;
for (int i = 1; i < 9; i++)
	for (int j = 1; j < i; j += 2)
		cnt += 1;
cout << cnt;

A. 16
B. 28
C. 35
D. 36
【答案】A
【考纲知识点】 多层循环结构
【解析】本题属于考察程序填空,根据题意这是一道双重循环的题,题目的核心是考核运行次数,注意 i 的循环范围,j 的循环范围,j 的每次累加的是2。i=1是,j 循环次数是 0;i=2 时,j 循环 1 次,cnt+1,以此类推,选A。

11、下⾯C++代码执⾏后的输出是( )。

int cnt = 0;
for (int i = 1; i < 13; i += 3)
	for (int j = 1; j < i; j += 2)
		if( i * j % 2 == 0)
			break;
		else
			cnt += 1;
cout << cnt;

A. 1
B. 3
C. 15
D. 没有输出
【答案】B
【考纲知识点】 多层循环结构
【解析】本题属于考察程序填空,根据题意,i 的范围是[1,12],i 每次累加3;j 每次的范围是[1,i-1],j 每次累加 2。我们会发现,j 每次的值都是奇数,根据if 条件,i 是偶数的时候不会累加,只有奇数的时候才会累加cnt,因此i 的范围是1,7。I=1,j 不会循环(j<i);i=7,j 的合理范围是 1,3,5,cnt 会增加3 次。选B。

12、下⾯C++代码执⾏后的输出是( )。

int x = 1;
while ( x < 100 ){
	if (!(x % 3))
		cout << x << ",";
	else if ( x/10 )
		break;
	x += 2;
}
cout<< x ;

A. 1
B. 3,9,11
C. 3,6,9,10
D. 1,5,7,11,13,15
【答案】B
【考纲知识点】 控制语句结构、基本运算
【解析】本题属于考察程序填空,根据题意,while 循环中,x 每次增加2,x=1,3,5,7,9,11….. 根据 if 条件,1%3==1,!(1)==0,不会输出;x=3 时,会输出“3,”,以此类推,x=11 时,x/10 等于 1,退出循环,输出 11,答案选B。

13、下⾯图形每⼀⾏从字母 A 开始,以 ABC⽅式重复。⾏数为输⼊的整数。请在 C++代码段横线处填⼊合适代码( ) 。

int N = 0;
cout<< "请输入行列数量:";
cin >> N;

for (int i = 1; i < N+1; i++){
	for (int j = 0; j < i; j++)
		cout <<____________;//此处填写代码
	cout<< endl ;
}

A. 'A' + j / 3
B. (char)('A' + j / 3)
C. 'A' + j % 3
D. (char)('A' + j % 3)
【答案】D
【考纲知识点】 多层循环结构
【解析】本题属于考察程序填空,根据题意,要输出 N 行字符,每行字符数量都等于行数,例如第 1 行输出 1 个字符,第 2 行输出2 个字符……每行输出的内容总结是:ABC 循环输出,BD 选项可以输出字符,模拟B选项发现会连续输出 A,因此选择 D 选项。

14、输⼊⾏数,约定 1≤ lineCount ≤ 9,输出以下图形。应在C++代码横线处填⼊( )。

int lineCount = 0;
cout<<"请输入行数量:";
cin >> lineCount;
for (int i = 0; i < lineCount; i++){
	for (int j = 0; j < _______; j++) //此处填写代码
		cout << ' ';
	for (int j = 1; j < i + 1; j++)
		cout << j << ' ';
	for (int j = i + 1; j > 0; j--)
		cout << j << ' ';
	cout<<endl;
}

A. (lineCount - i - 1) * 2
B. (lineCount - i) * 2
C. lineCount - i - 1
D. lineCount - i
【答案】A
【考纲知识点】 多层循环结构
【解析】本题属于考察程序填空,根据给出的数字三角形,总结规律:1、每行前面空格逐渐减少,最后 1 行不需要输出,AC 中选择;2、每行每个数字之间还有 1 个空格,因此每行前还要多输出 1 个空格,选A。

15、某班级⼈数不知,连续输⼊成绩直到输⼊负数停⽌,输⼊结束后求出平均成绩。在以下 C++代码横线处应填⼊是( )。

double totalScore = 0; //总分
int studCount = 0;    //总人数
int score;
while (___________){ //此处填写代码
	cin >> score;
	if (score < 0)
		break;
	totalScore += score;
	studCount += 1;
}
cout<< "平均分=" << totalScore /  studCount;

A. true
B. false
C. True
D. False
【答案】A
【考纲知识点】 控制语句结构、基本运算
【解析】本题属于考察程序填空,根据题意,while 循环内是根据输入数据退出,如果输入不是负数,就一直循环下去。CD 关键字错误,B 直接退出循环,不能实现题意,选 A。

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