当前位置: 首页 > news >正文

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

2025年6月真题

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

在这里插入图片描述
正确答案:C
考察知识点:计算机相关知识
解析:传感器是获取外界信息(如姿态、平衡相关数据 )并传递给机器人系统,这和计算机输入设备(用于向计算机输入数据和信息,比如键盘输入字符、鼠标输入操作指令 )功能类似;处理器是处理数据,存储器是存储数据,输出设备是输出数据,均不符合传感器功能,所以 C 正确。

在这里插入图片描述
正确答案:A
考察知识点:计算机编程环境,断点调试,首次考察
解析:L1 是变量声明初始化代码行,可设断点;L2 执行前 N 已声明,暂停时能检测 N 值;调试暂停在 L3 时,可修改局部变量 i;若满足 i < 9 条件,执行可能暂停在 L4 。所以 A 说法错误。

在这里插入图片描述
正确答案:D
考察知识点:变量的定义与使用、输入输出语句
解析:考察C语言输出语句printf以及int类型占位符,变量的定义和使用。C++ 中变量区分大小写,first 和 First 是不同变量,代码中 printf 里用 First 但未定义,会编译报错 ,A、B、C 均不符合代码实际情况,所以选 D。

在这里插入图片描述
在这里插入图片描述
正确答案:D
考察知识点:变量的定义与使用
解析:根据变量的命名规则:只能包含字母、数字和下划线;不能以数字开头;不能和关键字重名。A、B、C选项包含了其他字符’.‘,’-‘,’#'。正确答案为D。

在这里插入图片描述
正确答案:C
考察知识点:基本运算
解析:算术运算符的优先级,先算 乘 3*3=9, 再算 取余 9%2=1,最后算 减 14-1=13。答案为C。

在这里插入图片描述
正确答案:B
考察知识点:基本运算
解析:利用加减运算实现两个整数变量值的交换。执行第二行后,x的值为30,y的值为20;执行第三行后,x的值为30,y的值为10;执行第4行后,x的值为20,y的值为10。x、y两个变量的值完成交换。答案为B。

在这里插入图片描述
正确答案:D
考察知识点:基本运算
解析:考察自增运算符和复合赋值运算符,运算符的优先级。自增运算符优先级高于复合赋值运算符。
前加加,先加再使用a,则执行复合赋值运算之前a的值为17,再 += 3,结果为20。答案为D。
注意:自增运算符 ++ 使得变量a增加1,自减运算符 – 使得变量a减少1。自增分前加加(++a)和后加加(a++),自减分前减减(–a)和后减减(a–),区别是表达式的值不同。前加加和前减减,表达式的值为操作之后的值。后加加和后减减,表达式的值是操作之前的值。

在这里插入图片描述
正确答案:C
考察知识点:基本运算
解析:括号提升优先级,执行++X,之后X的值为9,cout<<X++,输出表达式X++的值,后加加表达式的值是操作之前的值,因此输出9,但执行后X的值自增1,X的值为10。答案为C。

在这里插入图片描述
在这里插入图片描述
正确答案:A
考察知识点:基本输入输出
解析:在 C++ 中,C语言的printf函数使用格式控制字符串来格式化输出。
%02d:表示输出一个整数,并且宽度为 2,不足的部分用 0 补齐。
只有一个占位符,用其后a+b的值填充,其余原样输出。答案为A。

在这里插入图片描述
正确答案:B
考察知识点:基本运算
解析:求星期N后M天是星期几?若当前是星期天(用0表示)则1天、8天等后是星期一,2天、9天后是星期二,…;若当前是星期一,则1天、8天等后是星期二,2天、9天后是星期三,…;则该求解可用(N+M)%7做取余运算运算求解,余数为1~6对应星期一到星期六,余数为0对应星期天。答案为B。实际上,周期性问题都可以做类似解答。

在这里插入图片描述
在这里插入图片描述
正确答案:A
考察知识点:控制语句结构-循环、break、continue关键字
解析:break用于终止循环,跳到循环后边的语句;continue用于中断当次循环,进入下一次循环,会跳过其后的循环体语句,跳到for循环的第三条语句循环间隔的位置。
for循环的循环体第一条语句为continue,因此循环内除了continue,其他语句都未被执行过。循环结束于i>=11,8行if语句条件成立,执行第9行。答案为A。

在这里插入图片描述
正确答案:C
考察知识点:控制语句结构-循环、基本运算
解析:求N的所有因数,最小因数为1,最大因数是其本身。因此第9行输出了1,因此循环只需要从其本身循环到2,只有C满足。答案为C。

在这里插入图片描述
正确答案:D
考察知识点:控制语句结构-循环
解析:for循环从0循环到9。i为0,第3行if条件成立,执行continue进入下一次循环;i为1,第3行、第5行if条件都不成立,将其累加到Sum上;i为2,第3行if条件成立,执行continue进入下一次循环;i为3,第3行、第5行if条件都不成立,将其累加到Sum上;i为4,第3行if条件成立,执行continue进入下一次循环;i为5,第5行if条件成立,执行break终止循环。此时Sum中累加了1和3,结果为4,答案为D。

在这里插入图片描述
正确答案:C
考察知识点:基本运算
解析:自增/自减运算符相当于变量加1/减1之后再赋值给变量。
第3行x++,等价于x=x+1,执行完毕x的值为102,cout<<++x,输出表达式的值,前加加,表达式的值为加之后的值103。答案为C。

在这里插入图片描述
在这里插入图片描述
正确答案:B
考察知识点:控制语句结构-循环、选择、基本运算、数位分离
解析:利用除和取余进行数位分离取得个位、十位、百位上的数。第4行求十位上的数,只有B可以做到。答案为C。A取到的是百位上的数;C得到的是0;D得到的是个位上的数。

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

在这里插入图片描述
正确答案:正确
考察知识点:考试规范
解析:闭卷考试为防作弊,禁止带具有信息存储、通信等作弊可能功能的设备,智能手表因有嵌入式系统、通信功能,会被禁止携带,该表述符合实际考试规范 。答案正确。

在这里插入图片描述
正确答案:错误
考察知识点:基本运算、数据真假性
解析:所有数据都可以转为布尔类型,其中,非0数据为真,0数据为假。
N为5,!N,逻辑运算符非 (!) ,运算对象和运算结果都为布尔类型,因此 !N 为假,即0。表达式(N+!N)的值为5+0。答案错误。

在这里插入图片描述
正确答案:正确
考察知识点:控制语句结构-循环、break、continue
解析:break用于终止循环,跳到循环后边的语句;continue用于中断当次循环,进入下一次循环,会跳过其后的循环体语句,跳到for循环的第三条语句循环间隔的位置。
循环体第一条语句为continue,break没有机会被执行到,因此删除对结果没有影响。答案正确。

在这里插入图片描述
正确答案:错误
考察知识点:控制语句结构-循环、continue
解析:关键字continue跳过本次循环后续语句,执行下次循环。在本题代码中,continue之后并没有语句,因此删除并不影响。但本次输出应该是:0#2#4#6#8#END。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:控制语句结构-循环
解析:i = i+1,i 每次增加1; i += i+1,相当于 i = i+i+1,假如当前 i 为 1,则执行完毕,i 的值变为3;实现效果和之前大不相同,输出结果不可能相同。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:控制语句结构-循环
解析:cnt初值为0,每循环一次,cnt+=1,cnt用于记录循环次数,但循环变量 i 未赋初值,因此循环执行次数未知。不管是否交换 i += 2,和cnt += 1,每次运行结果都可能不同。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:控制语句结构-循环
解析:每循环一次,执行一次cnt+=1,若cnt初值为0,则cnt可以用来记录循环执行的次数——10次。但本题cnt未赋初值,因此输出cnt结果不确定。答案错误。

在这里插入图片描述
正确答案:错误
考察知识点:基本运算、类型转换
解析:整数常量12是int类型,浮点数常量12.12是double类型,它们之间可以进行运算,12会转成double类型继续运算,运算结果是double类型。答案错误。

在这里插入图片描述
正确答案:正确
考察知识点:false是C++关键字。答案正确。

在这里插入图片描述
正确答案:错误
考察知识点:基本运算
解析:数学中可以用3<X<5表示4,但在编程语言中,这里出现了两个关系运算符,先算第一个关系运算符组成的表达式3<X的值,再拿这个结果和5进行比较。不管第一个表达式是否成立,其结果要不是true(1),要不是false(0),都比5小,则表达式3<X<5的结果为true(1)。答案错误。

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

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

本题考察算术运算符、分支语句 。

注意:书的页数有可能不够读

#include <bits/stdc++.h>
using namespace std;
int main() { int n, k, t;cin>>n>>k>>t;if(n>=k*t) cout<<k*t;else cout<<n; return 0;
}

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

本题考察 算术运算符、分支语句、循环语句。

小杨每m天值日一次,小红每n天值日一次,因此小杨逢着m的倍数值日,小红逢着n的倍数值日,可以从num=1开始尝试,找到第一个即是m的倍数,又是n的倍数的num即为答案。——两个数的最小公倍数问题。

//找最小公倍数 
#include <bits/stdc++.h>
using namespace std;
int main() { int m, n;cin>>m>>n;int t=1;  //int t=max(m, n);  //优化 既然是倍数,至少是1倍,因此可以从m、n中的最大值开始尝试while(true){if(t%m==0 && t%n==0){cout<<t<<endl;break;}t++;}return 0;
}

对于已经学过递归且学过如何利用递归求解最大公约数的同学,这里有一个更快速的方法。当然这个方法是超纲一级,没学过的同学可以忽略。

对于任意两个数m和n,有: m∗n=最大公约数∗最小公倍数m*n =最大公约数*最小公倍数mn=最大公约数最小公倍数

而最大公约数有高效求解方法:辗转相除法(欧几里得算法)

//找最小公倍数 
#include <bits/stdc++.h>
using namespace std;
//最大公约数 
int gcd(int m, int n){return n==0? m :gcd(n, m%n);
}
int main() { int m, n;cin>>m>>n;//方法1:m*n/最大公约数 cout<<m*n/gcd(m, n)<<endl;return 0;
}
http://www.xdnf.cn/news/1237609.html

相关文章:

  • 推荐系统学习笔记(九)曝光过滤 Bloom Filter
  • 从传热学基础到有限元弱形式推导:拆解热传导问题Matlab有限元离散核心
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | TodoList(代办事项组件)
  • Android 之 MVC架构
  • JVM学习日记(十五)Day15——性能监控与调优(二)
  • IO流-对象流
  • 回归的wry
  • 前后端交流
  • 电路原理图绘制专业实战教程2
  • Nginx负载均衡配置
  • 6. 平台总线
  • 跨语言模型中的翻译任务:XLM-RoBERTa在翻译任务中的应用
  • Compose笔记(四十一)--ExtendedFloatingActionButton
  • 有限元方法中的数值技术:三角矩阵求解
  • Redis面试精讲 Day 10:Redis数据结构底层实现原理
  • 【AI论文】Rep-MTL:释放表征级任务显著性在多任务学习中的潜力
  • 介绍JAVA语言、介绍greenfoot 工具
  • 数据结构中使用到的C语言
  • golang的包和闭包
  • Python 小数据池(Small Object Pool)详解
  • 使用AndroidStudio调试Framework源码
  • 关于域名的级别
  • Linux环境下使用Docker搭建多服务环境
  • Apache Shenyu 本地启动及快速入门
  • Flutter开发 dart异步
  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • 基于springboot的在线考试系统/考试信息管理平台
  • 生成式人工智能展望报告-欧盟-04-社会影响与挑战
  • trace-cmd记录线程被中断打断的时间