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

2024年6月真题

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

在这里插入图片描述
正确答案:A
考察知识点:变量的定义与使用
解析:变量的命名规则:1、只能包含字母、数字、下划线;2、不能以数字开头;3、不能和关键字重名。A 选项中含有特殊符号,答案为A。

在这里插入图片描述
正确答案:D
考察知识点:基本运算
解析:表达式和运算符优先级。算术运算符先算乘除取余后算加减。答案为D。

在这里插入图片描述
正确答案:B
考察知识点:基本数据类型、基本运算
解析:a%b取余运算的结果 0 ~ b-1,当N为20,N%3取余得最大值为2,N%7取余得最大值为6。答案为B。

在这里插入图片描述
正确答案:C
考察知识点:输入输出语句、基本运算
解析:printf 函数中,双引号内的普通字符会原样输出,而 % 后跟特定字符表示格式控制符,会被对应的数据替换。如果想要输出 % 本身,需要使用 %% 来表示。int类型数据占位符 %d 被其后整数替换,5%2 得余数1。答案为 C。

在这里插入图片描述
在这里插入图片描述
正确答案:B
考察知识点:输入输出语句
解析:i 为整数变量,因此当输入 5+2 时只会将 5 输入赋值给变量 i,输出 i 自然只输出 5。答案为B。

在这里插入图片描述
正确答案:C
考察知识点:基本数据类型、输入输出语句、基本运算
解析:变量 a 为 float 浮点类型,经过两次赋值,a的值为最后一次赋值结果 101,用 a+1 替换占位符 %.0f,这里的 .0 表示保留0位小数输出。答案为C。

在这里插入图片描述
正确答案:B
考察知识点:表达式,基本运算
解析:运算符的优先级,小括号优先级最高,算术运算符先算乘除取余后算加减。答案为B。

在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-分支,基本运算
解析:10%3 结果为1,第四行条件为真。答案为C。

在这里插入图片描述
在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-循环、基本运算
解析:++ 自增运算符,分为 前加加 (++i) 和 后加加(i++),前加加:先自增1后使用,后加加:先使用后自增1。代码分析:初始化整数变量Sum、i为0;for循环,语句1、语句3缺省,语句2循环条件 i<10,条件成立,循环继续,条件不成立,循环结束;循环语句:Sum += i++,将 i 累加到Sum上,然后自增1;整体代码功能:0~9累加到Sum,代码执行结果为:10 45。答案为C。

在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-分支、循环
解析:选项A:输入负整数,第7行条件不成立,跳到第16行条件不成立,输出 不是质数,A表述错误。
选项B:输入2,第7行条件成立,将Flag置为true,第9行循环条件不成立,跳到第16行条件成立,输出 是质数,B表述错误。
选项D:更改之后,无法对N为2的情况进行准确判断。D表述错误。
答案为C。

在这里插入图片描述
在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-分支、循环
解析:选项A、选项B 代码推演一下,表述正确。
选项D:循环变量初始化为1,将 i+=1 改为 i+=2,循环步长为2,则循环变量的值为1, 3, 5, …一直为奇数,因此可以去掉奇数判断的条件,D表述正确。
选项C:将 i+=1 移到 if 条件之前,奇数累加会丢到1,C表述错误。答案为C。

在这里插入图片描述
正确答案:D
考察知识点:控制语句结构-分支、循环
解析:完全平方数:N=X*X,X最小为1,最大为其本身,可以遍历一遍加判断条件。答案为D。

在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-循环
解析:循环遍历初始化为0;循环条件 i*i<64,则 i 最大为7;i+=2 循环步长为2;则循环变量值为0、2、4、6,cnt记录循环次数为4。答案为C。

在这里插入图片描述
正确答案:C
考察知识点:计算机基础与编程环境
解析:CCF 组织的 GESP 认证考试第 1 级可选择的认证语言有 Scratch、Python、C++ ,共 3 种。答案为C。

在这里插入图片描述
在这里插入图片描述
正确答案:B
考察知识点:计算机历史
解析:ENIAC(电子数字积分计算机)是世界上第一台真正意义上的通用电子计算机,于 1946 年投入运行。它主要由电子管组成,体积庞大,耗电量惊人。主要部件的发展历程为:电子管—>晶体管—>集成电路—>大规模集成电路。答案为B。

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

在这里插入图片描述
正确答案:错误
考察知识点:基本数据类型、基本运算
解析:变量 X 未指定数据类型,如果X是整数类型,则执行输出未1,如果X是浮点类型,则输出结果不为1。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:基本运算
解析:N为10,N / 4是整数除法得2,N % 4是取余得2,N / 4.0是浮点数除法得2.5。答案错误。

在这里插入图片描述
正确答案:正确
考察知识点:数据类型的转换(二级考点)
解析:cin >> N可输入正负整数和浮点数,int(float(N))先将可能的输入转为float再转为int,会进行取整。答案正确。

在这里插入图片描述
正确答案:错误
考察知识点:输入输出语句
解析:printf("%d2",N)中不是合法格式控制符,不能按预期输出10。答案错误。

在这里插入图片描述
正确答案:正确
考察知识点:控制语句结构-循环
解析:break在C++中用于终止当前层循环,对for和while循环都适用。答案正确。

在这里插入图片描述
正确答案:正确
考察知识点:控制语句结构-循环、分支(循环嵌套分支 二级考点)
解析:continue在C++中用于跳过当次循环,直接进入下次循环,常和if配合,当满足if条件时跳过本次循环后续代码。答案正确。

在这里插入图片描述
正确答案:错误
考察知识点:变量的定义与使用
解析:printf不是C++关键字,而是标准库函数名,不能作为变量名是为避免命名冲突。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:表达式、基本运算
解析:N += 8/4/2按从左到右运算为N += 1,N += 8/(4/2)是N += 4,两者不等。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:基本数据类型、基本运算
解析:!!N先对N逻辑取反再取反,若N为非零值结果为1,若N为0结果为0,不一定等于N。答案错误。

在这里插入图片描述
正确答案:正确
考察知识点:计算机基础与编程环境
解析:GESP测试主要考察编程能力,同一级别能力要求不局限于特定编程语言。答案正确。

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

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

本题考察变量的定义与使用、基本运算、输入输出语句。

时间换算问题是一级经常出现的一种题目

#include<iostream>
using namespace std;
int main() {
    
    
	int h, m, s, k;
	cin>>h>>m>>s>>k;
	int t=h*3600+m*60+s+k;
	s = t%60;
	m = t/60%60;
	h = t/60/60%60;
	cout<<h<<" "<<m<<" "<<s;
	return 0;
}

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

本题考察 控制语句结构-循环、基本运算等。

#include<iostream>
using namespace std;
int main() {
    
    
	int n, flag=0;
	cin>>n;
	for(int i=1; i<=n; i++){
    
    
		if(i*i*i == n){
    
    
			flag=1;
			break;
		}
	}
	if(flag) cout<<"Yes";
	else cout<<"No";
	return 0;
}