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

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

一、单选题

第1题

解析:

答案C,计算机常识尽量和计算机相关

第2题

解析:

答案A,

  • b: byte(字节)
  • kb: kilobyte(千字节)
  • mb: megabyte(兆字节)
  • gb: gigabyte(吉字节)

第3题

解析:

答案D

3+3%3*2-1

=3+0*2-1

=3-1

=2

第4题

解析:

答案B,i循环0至9

第5题

解析:

答案D,tnt没有初始值,最终值不确定

第6题

解析:

答案B,i循环到2时,i%2为false,退出循环

第7题

解析:

答案C,for循环,i为0 1 2 3 4 5 6 7 8 9 ,其中0 3 6 9进行%3时为false,所以只执行了4次“0#”,最后i为10才跳出循环,所以输出“1#”,最终输出”0#“四次,“1#”一次

第8题

解析:

答案C,i%7判断的是”不能被7整除“,i%3判断的是”不能被3整除“,不符合题意

第9题

解析:

答案D,取出的个位需累加,tnt=N%10不符合题意

第10题

解析:

答案A

i为0时,j循环不输出

i为1时,j循环输出0

i为2时,j循环输出0 1

i为3时,j循环输出0 1 2

i为4时,j循环输出0 1 2 3 

i为5时,j循环输出0 1 2 3 4

第11题

解析:

答案A,输出完所有列,才可输出换行

第12题

解析:

答案D,nowNum=nowNum+i计算的是当前累加和(1+2+3),而不是当前阶乘(1*2*3)

第13题

解析:

答案B,假设n=2,m=10,只需循环枚举2至8,也就是for(int i=n;i<m-1;i++)

第14题

解析:

答案D,但height=5时

第1行输出4个空格,1个星号

第2行输出3个空格,3个星号

第3行输出2个空格,7个星号

即第i行输出height-i个空格,i*2+1个星号

因为循环从0开始,所以height-i-1

第15题

解析:

答案C,sqrt(10+20+30)结果不为30

二、判断题

第1题

解析:

答案√,Ctrl+C 与Ctrl+V可实现文件复制

第2题

解析:

答案√,N(本身)-N/10*10(去除个位)=个位

第3题

解析:

答案√

10<=n<=12

10<=12<=12

1<=12

1

第4题

解析:

答案√,带入n=4,int(sqrt(4))*int(sqrt(4))==4,条件成立

第5题

解析:

答案×,%%表示输出%,所以”%%a“的输出结果为“%a”

第6题

解析:

答案×,变量只能由数字、字母、下划线组合

第7题

解析:

答案×,continue导致后面的break始终没有执行

第8题

解析:

答案√,i循环为8  6  4,i为8时,j循环8次,即总共循环8+6+4=18次

第9题

解析:

答案√,i为0时,i%2结果为false,不影响cnt

第10题

解析:

答案√,while只是将for(int i=0;i<10+1;i++)拆分开了,效果一样的

三、编程题

第1题 [GESP202412 二级] 寻找数字

题目描述

小杨有一个正整数 a,小杨想知道是否存在一个正整数 b 满足 a=b4。

输入格式

第一行包含一个正整数 t,代表测试数据组数。

对于每组测试数据,第一行包含一个正整数代表 a。

输出格式

对于每组测试数据,如果存在满足条件的正整数 b,则输出 b,否则输出 −1。

输入输出样例

输入 #1

3
16
81
10

输出 #1

2
3
-1

说明/提示

对于全部数据,保证有 1≤t≤10^5,1≤ai​≤10^8。

答案

#include<iostream>
using namespace std;
int main(){
	//1.确定数字的数量
	int n;
	cin>>n;
	//2.输入每个数
	for(int i=1;i<=n;i++){
		int temp;
		cin>>temp;
		//3.判断当前数是否存在a=b*b*b*b
		int b;
		bool flag=false;//假设不成立
		//验证是否成立 
		for(b=1;b*b*b*b<=temp;b++){
			if(temp==b*b*b*b){
				flag=true;
				break;
			}
		}
		//4.能:输出b,否:输出-1
		if(flag) cout<<b<<endl;
		else cout<<-1<<endl;
	}

} 

第2题 [GESP202403 四级] 做题

题目描述

小杨有 n 个正整数,小杨想知道这些正整数的数位和中最大值是多少。“数位和”指的是一个数字中所有数位的和。例如:对于数字 12345,它的各个数位分别是 1,2,3,4,5。将这些数位相加,得到

1+2+3+4+5=15

因此,12345 的数位和是 15。

输入格式

第一行包含一个正整数 n,代表正整数个数。

之后 n 行,每行包含一个正整数。

输出格式

输出这些正整数的数位和的最值。

输入输出样例

输入 #1

3
16
81
10

输出 #1

9

说明/提示

对于全部数据,保证有 1≤n≤10^5,每个正整数不超过 10^12。

答案

#include<iostream>
using namespace std;
int main(){
	//1.确定有几个数
	int n;
	cin>>n;
	//2.输入每个数
	int maxx=0;
	for(int i=1;i<=n;i++){
		long long temp;
		cin>>temp;
		//3.计算出各个位数之和
		int sum=0;
		while(temp){
			sum+=temp%10;
			temp/=10;
		}
		//4.比较找出最大值
		if(sum>maxx) maxx=sum;
	}
	//5.输出结果
	cout<<maxx; 
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值