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

2023年12月真题

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


正确答案:C

考察知识点:一维数组

解析:C选项定义的是字符类型的数组,字符:单引号内有且只有一个符号,该选项的初始化不符合语法。


正确答案:D

考察知识点:进制转换

解析:题目中的二进制转成10进制为221,转成8进制为335,转成16进制是dd。D选项错误。


正确答案:C

考察知识点:字符串

解析:字符串可以使用字符数组或者string类型来存储。本题考察使用string类型存储字符串,A、B、C、D都是正确的字符串初始化方式。对于字符串"GESP",它在内存中的存储形式是'G' 'E' 'S' 'P' '\0',其中'\0'是字符串的结束标志,对应下标为0、1、2、3,4。因此C选项无法正确输出"GESP"。



正确答案:C

考察知识点:多层分支/循环结构

解析:满足 i/j 的结果为2是,计数器加1,满足条件的i、j分别为 (2, 1), (4, 2), (5, 2), (6, 3),一共4对,答案为C。


正确答案:C

考察知识点:字符串及其函数

解析:length()函数用来求string类型存储的字符串的长度,字符串"chen"的长度为4,计算长度不包括结尾字符'\0'。循环从0开始,到x结束,循环步长为1,每循环一次,temp自增1,因此temp最后的值为5,答案为C。


正确答案:A

考察知识点:字符串及其函数

解析:length()函数用来求string类型存储的字符串的长度,字符串"chen"的长度为4,计算长度不包括结尾字符'\0',答案为A。


正确答案:A

考察知识点:字符串及其函数

解析:本题考察string类型存储的字符串,对于字符串str = "chen",它在内存中的存储形式是'c' 'h' 'e' 'n' '\0',其中'\0'是字符串的结束标志,对应下标为0、1、2、3、4。代码中访问下标5位置的元素,是未知数据,答案为A。



正确答案:D

考察知识点:一维数组

解析:本题考察字符数组的定义以及初始化。当定义char ch[10] = {'1'};时,只初始化了数组的第一个元素(下标为0)为'1',其余元素默认初始化为'\0'(空字符)。则输出下标为2的元素,也即输出空字符,即什么也不输出,答案为D。


正确答案:C

考察知识点:字符串及其函数

解析:输出为3,则本题代码是统计字符'0'出现的次数,A、B、D都满足要求。C选项ASCII编码115对应的字符为's',出现了四次,不符合要求,答案选C。


正确答案:C

考察知识点:基本数据类型

解析:考察了int类型能够表示的数据范围,答案为C。


正确答案:A

考察知识点:多层分支/循环结构

解析:本题考察 for 循环结构 嵌套分支,统计0~20之间既是3的倍数也是5的倍数的数的个数,只有0和15,答案选 A。



正确答案:B

考察知识点:基本运算,数据类型转换

解析:a/b两个整数相除,结果保留整数部分,为整数1,再乘以1.0,结果为double类型 1。答案为B。


正确答案:A

考察知识点:字符串及其函数

解析:遍历字符串,如果字符是数字字符,将其存入字符串tel中;否则如果tel不为空,意味着tel存了一组电话号码,进行换行输出,将tel置为空,以备存储新的电话号码。答案为A。


正确答案:C

考察知识点:计算机基础

解析:声控智能驾驶系统,需要声音的输入设备和输出设备,A、B必须,需要设备感知周围环境自动选择优化路线,D必须。只有油量表不是必须的,本题答案C。


正确答案:B

考察知识点:计算机历史

解析:现代计算机基于 冯.诺伊曼 体系结构:运算器、控制器、存储器、输入设备、输出设备。

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


正确答案:正确

考察知识点:基本数据类型,基本运算

解析:本题考察数据的真假性和逻辑运算。整数常量5和整数常量2都为真,进行逻辑与运算,运算结果为真,输出1。表述正确。


正确答案:正确

考察知识点:输入输出语句、字符串

解析:在 C++ 中,cin>>操作符用于从标准输入读取数据。当使用cin>>读取字符串时,它会以空格为分隔符进行读取。对于输入chen a dai,cin>>会读取第一个单词chen,并将其存储到str变量中,因此输出str,输出结果为chen,表述正确。


正确答案:正确

考察知识点:基本数据类型,基本运算

解析:本题考察数据的真假性和逻辑运算。整数常量5和整数常量2都为真,进行逻辑或运算,运算结果为真,输出1。表述正确。


正确答案:正确

考察知识点:字符串及其函数

解析:replace(pos, len, s) 函数,将从pos开始,长度为len的一段字符串替换成字符串s,本题中即将字符'c'替换成字符'C'。输出为"China",表述正确。


正确答案:错误

考察知识点:多层分支/循环,一位数组

解析:当i是5的倍数时,输出下标i的元素。输出结果为1 6 。本题表述错误。


正确答案:错误

考察知识点:一维数组

解析:数组名是数组中第一个元素的地址,而不是第一个元素中存储的数据。本题表述错误。


正确答案:正确

考察知识点:一维数组

解析:int arr[10]={1}; 定义整数数组arr,并对其第一个元素进行初始化,通过数组名和下标访问数组元素,第一个元素的下标为0。因此输出arr[0]即输出第一个元素1。表述正确。


正确答案:正确

考察知识点:一维数组、循环结构

解析:循环从0开始,到9结束,循环步长为2,依次输出下标0、2、4、6、8对应的元素值,每个数据后跟一个空格,即1 3 5 7 9 。表述正确。


正确答案:错误

考察知识点:计算机基础、计算机编程环境

解析:Dev C++(通常简称为 DevC)是一个集成开发环境(IDE)软件,是专门用于开发 C 和 C++ 程序的工具,为程序员提供了代码编辑、编译、调试和运行等功能的集成开发环境。操作系统(Operating System,OS)是管理计算机硬件与软件资源的计算机程序。Dev C++不属于操作系统软件。答案错误。


正确答案:正确

考察知识点:控制语句结构-循环

解析:本题考察 while 循环和 for 循环,他们之间可以进行等价转化。表述正确。

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



本题考察枚举算法。

从1开始枚举最后一只小猫拿走的鱼数,在此基础上,如果可以推出第一只小猫拿鱼之前的鱼数,则求出答案。

需要清楚:每只小猫都把多的i个扔入海中,拿走一份,剩下n-1份,因此除第一只小猫之外,其余小猫拿鱼之前的鱼数一定是n-1的倍数,如果不是,则无法继续往前推

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n, i;
	cin>>n>>i;
	int k=1; //k初始化为最后一只小猫拿走的鱼数
	int ans; //保存每只小猫拿走鱼之前的鱼的数量
	while(true){
		bool flag=true; //假设可以推到第一只小猫拿鱼之前的鱼数 
		ans = k*n+i; //最后一只小猫拿走鱼之前鱼的数量
		for(int j=1; j<n; j++){ 
			//每只小猫把多的i个扔入海中,拿走一份,剩下n-1份,因此ans一定是n-1的倍数,如果不是,则无法继续往前推 
			if(ans%(n-1) != 0){ 
				flag=false;
				break;
			}
			ans = ans/(n-1)*n+i;
		}
		if(flag) break; 
		k++;
	}
	cout<<ans;
	return 0;
}




本题考察 模拟算法

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main() {
	int n, a, b;
	cin>>n;
	string unit1, unit2;
	char ch;
	while(n--){
		cin>>a>>unit1>>ch>>ch>>unit2;
		//根据题目列出所有的可能性 
		if(unit1=="m" || unit1=="km" && unit2=="m") b=a*1000;
		if(unit1=="km" && unit2=="mm") b=a*1000000;
		if(unit1=="g" || unit1=="kg" && unit2=="g") b=a*1000;
		if(unit1=="kg" && unit2=="mg") b=a*1000000;
		cout<<a<<" "<<unit1<<" "<<"= "<<b<<" "<<unit2<<endl;
	}
	return 0;
}
相关推荐
一只小bit21 分钟前
数据结构之栈,队列,树
c语言·开发语言·数据结构·c++
沐泽Mu2 小时前
嵌入式学习-QT-Day05
开发语言·c++·qt·学习
szuzhan.gy2 小时前
DS查找—二叉树平衡因子
数据结构·c++·算法
火云洞红孩儿3 小时前
基于AI IDE 打造快速化的游戏LUA脚本的生成系统
c++·人工智能·inscode·游戏引擎·lua·游戏开发·脚本系统
FeboReigns4 小时前
C++简明教程(4)(Hello World)
c语言·c++
FeboReigns4 小时前
C++简明教程(10)(初识类)
c语言·开发语言·c++
zh路西法4 小时前
【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(二):从FSM开始的2D游戏角色操控底层源码编写
c++·游戏·unity·设计模式·状态模式
.Vcoistnt5 小时前
Codeforces Round 994 (Div. 2)(A-D)
数据结构·c++·算法·贪心算法·动态规划
小k_不小5 小时前
C++面试八股文:指针与引用的区别
c++·面试
沐泽Mu5 小时前
嵌入式学习-QT-Day07
c++·qt·学习·命令模式