CCF-GESP 等级考试 2024年12月认证C++二级真题解析

2024年12月真题

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

在这里插入图片描述
正确答案:C. 人工智能
解析:
瑞典皇家科学院10月8日宣布,将2024年诺贝尔物理学奖授予约翰·J·霍普菲尔德(John J。 Hopfield)和杰弗里·E·辛顿(Geoffrey E。 Hinton),以表彰他们利用人工神经网络实现机器学习的奠基性发现和发明。

在这里插入图片描述

正确答案:A.
解析:
A:字节,Byte B;1 字节等于 8 比特位
D:位,Bit(比特),b

在这里插入图片描述
正确答案:D.
解析:考察运算符以及运算符的优先级。先算取余,再算乘,再算加,最后算减。

在这里插入图片描述
在这里插入图片描述

正确答案:B.
解析:

在这里插入图片描述
正确答案:D.
解析:tnt未赋初值,因此累加之后的值也不确定,选D

在这里插入图片描述

正确答案:B.
解析:考察数据的真假性。这里continue的条件是奇数。i 为 1 continue,i 为 2 break。

在这里插入图片描述

正确答案:C
解析:考察数据的真假性。i 不能被 3 整除时跳过,当 i 为0、3、6、9时候输出“0#”,一共输出4次,循环结束 i 的值为10,输出一次“1#”。答案是C

在这里插入图片描述

正确答案:C
解析:考察数据的真假性。
可以表示能被7整除:i%7==0; !(i%7);
可以表示不能被3整除:i%3!=0; (i%3); !(i%3==0)
组合一下,只有C不能表示能被7整除但不能被3整除。

在这里插入图片描述

正确答案:D
解析:数位分离。横线处取十进制数的个位数累加到tnt上。取十进制数的个位数用取余 % 运算。

在这里插入图片描述
正确答案:A
解析:注意循环条件

在这里插入图片描述
在这里插入图片描述

正确答案:A
解析:. 将L1注释的 printf(“\n”) 移到L2注释所在行,会使得一个式子换一次行,效果不同。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

正确答案:D
解析:知识点:复合赋值运算符 *=,+=
nowNum用来保存当前的数值的阶乘,是乘出来的。。
tnt用来保存阶乘和,是加出来的。

在这里插入图片描述

正确答案:B
解析:孪生素数是指间隔为2的两个数均为素数。要保证两个数都在数据范围呢,因此 i+2 最大为M,i < M-1,选B

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

正确答案:D
解析:当高度为5时,第一行*号之前4个空格,第二行*号之前3个空格,…,空格数为 高度-行号。下标从0开始,则为height-i-1; 同理找出*号个数的规律

在这里插入图片描述

正确答案:C
解析:
A:求三个数中的最大值,结果是30
B:求a+b和c中的最小值,结果是30
C:求三数和的平方根,结果不是30。
D:求三数和的一半,结果是30。

二、判断题(每题2分,共20分)

在这里插入图片描述

正确答案:正确,正确,正确,正确
解析:
第1题:建立副本,用复制(Ctrl+C)、粘贴(Ctrl+V)快捷键。正确
第2题:N/1010的值为原数去掉个位,N-N/1010 正好得到个位数。正确
第3题:先计算表达式 10<=N 的值,再拿值和12进行比较,不论表达式的值是0还是1,和12比较,结果都成立,值为1。正确。
第4题:int(sqrt(N)) 强制类型转换,得到整数部分。此题正确。

在这里插入图片描述
正确答案:错误
解析:输出结果为 %a*%b=6。%d是int类型的占位符。

在这里插入图片描述
正确答案:错误
解析:变量的命名规则,单一个“ _” 也符合变量的命名规则。

在这里插入图片描述

正确答案:错误
解析:continue在break之前,先执行continue,实际上,在这个代码中,break就没有没执行过。最后输出10。

在这里插入图片描述
正确答案:正确
解析:双层循环,当i=8,j 范围0~7;当i=6,j 范围0~5,当i=4,j 范围 0~3。8+6+4=18。

在这里插入图片描述
正确答案:正确
解析:代码功能:统计奇数个数,将 i = 1 调整为 i = 0 的,并没有增加奇数个数,对结果无影响。

在这里插入图片描述
正确答案:正确
解析:通常说来,for循环都可以用while循环实现。

三、编程题(每题25分,共50分)

在这里插入图片描述

//用了两个数学函数:平方根函数sqrt(num), 幂函数 pow(num, n)  
#include<iostream>
#include<cmath>
using namespace std;
int main() {
	int t, a, b;
	cin>>t;
	while(t--){
		cin>>a;
		b = pow(a, 1.0/4); //a的四次方根 
		//b = sqrt(sqrt(a)); //也可以对a进行两次开平方得到四次方根 
		if(pow(b,4) == a) cout<<b<<endl;
		else cout<<-1<<endl;
	}
	return 0;
}

在这里插入图片描述
在这里插入图片描述

//数位分离思想,求所有数位的和
#include<iostream>
using namespace std;
int main() {
	int n, sum, res=0;
	long long num;
	cin>>n;
	while(n--) {
		cin>>num;
		sum=0;
		while(num) {
			sum+=num%10;
			num/=10;
		}
		if(sum > res) res=sum;
	}
	cout<<res;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值