2023年12月GESPC++二级真题解析(含视频)

发布于:2025-05-30 ⋅ 阅读:(19) ⋅ 点赞:(0)

  视频讲解:GESP2023年12月二级C++真题讲解

一、单选题

第1题

解析:

答案C,变量命不能以数字开头

第2题

解析:

答案A,题目代码循环10、12、14、16、18,只有A符合

第3题

解析:

答案D,0不能作为除数,所以i的起点是1,即int i=1;因子要包括本身,所以i<N+1

第4题

解析:

答案D,N=N/10改变了N变量,影响到后面的判断

第5题

解析:

答案D,带入N=7,无法正确判断质数

第6题

解析:

答案A

i循环为:1,2,3

i为1时:j不循环

i为2时:j循环1

i为3时:j循环1,2

只有i(2)j(1)、i(3)j(2)符合i*j%2==0,所以输出"2#3#0"

第7题

解析:

答案D,将i、j的所有情况列举出来,其中i为2、4、6、8时,符合条件,即cnt=4;又因为i=10时才跳出循环,所以输出"4#"

i循环 1 2 3 4 5 6 7 8 9
j循环 1 1 1,3 1,3 1,3,5 1,3,5 1,3,5,7 1,3,5,7

第8题

解析:

答案C

最初N=100,不是奇数,不能被3整除,所以-=20,下一次N=80

N=80,不是奇数,不能被3整除,所以-=20,下一次N=60

N=60,能被3整除,所以-=5,下一次N=55

N=55,是奇数,所以退出循环,最终结果为55

第9题

解析:

答案D

x=1,不能被3整除,所以输出"1,",x+=2,下一次x=3

x=3,能被3整除,/10为0,所以x+=5,还有x+=2,下一次x=10

x=10,不能被3整除,所以输出"10,",只有D选项符合

第10题

解析:

答案B,罗列i、j的所有情况,总共循环10次,所以cnt+=1执行10次,cnt=10

i 0 1 2 3 4
j 0 0,1 0,1,2 0,1,2,3

第11题

解析:

答案C,获取根号,且保证根号是整数

第12题

解析:

答案D,缺的是换行,且要在输出完当前行所有列,再输出换行

第13题

解析:

答案C,“选路”功能,油量表不是必须,就是没有油量表,有油,车子就能动

第14题

解析:

答案B,计算机5大结构,就是冯诺依曼结构

第15题

解析:

答案B,i=2,会忽略1,需要判断i-1

二、判断题

第1题

解析:

答案√,-7/3=-3.5,因为都是int类型,所以结果-3

第2题

解析:

答案×,字符‘9’做四则运算,会用字符对应的ASCII值

2*int(‘9’)*2

=2*57*2

=228

第3题

解析:

答案√

3+2&&5-5

=5&&0

=true&&false

=false

第4题

解析:

答案×,srand(0)是保证每次生成随机数的序列相同,但是序列中的数不一定相同

第5题

解析:

答案×,会自动转化为逻辑值,不会语法错误,1转为true

第6题

解析:

答案×,i循环-500至499,-500无法抵消,输出的值应为-500

第7题

解析:

答案×,不同类型做运算,会隐式转换,不需要手动转化

第8题

解析:

答案√,例如int  a='A';就是把字符‘A’的ASCII值65给变量

第9题

解析:

答案×,devC++是应用软件,操作系统是windows、Linux、MacOs

第10题

解析:

答案√,手写一个对比查看即可

//1)while
int i=1;
while(i<=5){
    i++;
}
//2)for
for(int i=1;i<=5;i++){}

三、编程题

第1题 [GESP202312 二级] 小杨做题

题目描述

为了准备考试,小杨每天都要做题。第 1 天,小杨做了 a 道题;第 2 天,小杨做了 b 道题;从第 3 天起,小杨每天做的题目数量是前两天的总和。

此外,小杨还规定,当自己某一天做了大于或等于 m 题时,接下来的所有日子里,他就再也不做题了。

请问,到了第 N 天,小杨总共做了多少题呢?

输入格式

总共 4 行。第一行一个整数 a,第二行一个整数 b,第三行一个整数 m,第四行一个整数 N。

保证 0≤a,b≤10;a,b<M<1,000,000;3≤N≤364。

输出格式

一行一个整数,表示小杨 N 天里总共做了多少题目。

输入输出样例

输入 #1

1
2
10
5

输出 #1

19

输入 #2

1
1
5
8

输出 #2

12

说明/提示

样例解释 1

小杨第一天做 1 题,第二天做 2 题,第三天做 1+2=3 题,第四天做 2+3=5 题,第五天做 3+5=8 题。因此他总共做了 1+2+3+5+8=19 题。

样例解释 2

小杨前 5 天分别做了 1,1,2,3,5 题,由于第 5 天小杨做了 5 题,而 m=5,于是小杨从此以后不再做题。因此小杨总共做了 1+1+2+3+5=12 题。

答案

#include<iostream>
using namespace std;
int main(){
	//1)确定起点a,b,极限m,天数n 
	int a,b,m,n;
	cin>>a>>b>>m>>n;
	//2)模拟做题过程
	int sum=0;//计算做了多少题 
	for(int i=1;i<=n;i++){
		//2.1)累加今天做的题
		sum+=a;
		//2.2)判断是否达到极限
		if(a>=m) break; 
		//2.3)计算明天的题
		int temp=a+b;
		a=b;
		b=temp; 
	} 
	//3)输出做题数量
	cout<<sum; 
}

第2题 [GESP202312 二级] 小杨的H字矩阵

题目描述

小杨想要构造一个 N×N 的 H 字矩阵(N 为奇数),具体来说,这个矩阵共有 N 行,每行 N 个字符,其中最左列、最右列都是 | ,而中间一行(即第2N+1​行)的第 2∼N−1 个字符都是 - ,其余所有字符都是半角小写字母 a。例如,一个 N=5 的 H 字矩阵如下:

|aaa|
|aaa|
|---|
|aaa|
|aaa|

请你帮小杨根据给定的 N 打印出对应的“H 字矩阵”。

输入格式

一行一个整数 N(5≤N≤49 ,保证 N 为奇数)。

输出格式

输出对应的“H 字矩阵”。

请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出 N 行,每行除了换行符外恰好包含 N 个字符,这些字符要么是 - ,要么是 | ,要么是 a 。你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。

输入输出样例

输入 #1

5

输出 #1

|aaa|
|aaa|
|---|
|aaa|
|aaa|

输入 #2

7

输出 #2

|aaaaa|
|aaaaa|
|aaaaa|
|-----|
|aaaaa|
|aaaaa|
|aaaaa|

答案

#include<iostream>
using namespace std;
int main(){
	//1)确定矩阵大小
	int n;
	cin>>n;
	//2)循环输出矩阵
	//2.1)循环行、列
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			//2.2)输出对应字符
			if(j==1||j==n){//如果是第1列、最后1列 
				cout<<"|"; 
			} else if(i==n/2+1){//如果是中间那一行 
				cout<<"-"; 
			}else{//其余所有情况,输出a 
				cout<<"a"; 
			}
		} 
		cout<<endl; 
	} 
}


网站公告

今日签到

点亮在社区的每一天
去签到