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

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

2025年9月真题

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

在这里插入图片描述


正确答案:D
考察知识点:计算机相关知识
解析:在人工智能领域,“大模型” 最贴切的通常是指大语言模型。大语言模型是基于大规模文本数据训练的,能够理解和生成自然语言等内容,像常见的 ChatGPT 等就属于大语言模型范畴。而选项 A “大电脑模型” 表述不准确;选项 B “大规模智能” 不是对 “大模型” 的准确指代;选项 C “智能的单位” 也不符合 “大模型” 的定义。答案为D。

在这里插入图片描述


正确答案:C
考察知识点:流程控制语句
解析:计算 1 到 10001 之间的所有偶数和,需要重复累加操作(循环结构),且需判断是否为偶数(分支结构)。仅用顺序结构无法实现重复操作和条件判断,所以C 选项最不合适。答案为C。

在这里插入图片描述


正确答案:C
考察知识点:标识符的命名规则
解析:根据变量的命名规则:只能包含字母、数字和下划线;不能以数字开头;不能和关键字重名。B、D选项包含了其他字符’ ‘,’-',不能作为变量名。A选项,汉语拼音只要符合变量的命名规则,也可以作为变量名。答案为C。

在这里插入图片描述


在这里插入图片描述


正确答案:C
考察知识点:基本运算符、C++语法、注释
解析:C++代码中,一条完整语句以 分号(;)结尾,因此本题中,输出语句是:cout << a/b << a%a*b;
a / b = 13 / 5 = 2,a % a * b = 13 % 13 * 5 = 0 *5 = 0,代码中输出格式无分隔,所以输出20。答案为C。
注释作用:提升代码的可读性和可维护性,它不会被编译器或解释器执行,仅为开发者服务。分当行注释、多行注释。
单行注释:使用//符号,从//开始到该行末尾的所有内容都会被编译器忽略。对本题来说,忽略 //之后所有内容,此时该行还没有 分号,也即语句没有结束,下一行直到 分号之前 属于同一条语句。

在这里插入图片描述


正确答案:D
考察知识点:基本运算符
解析:本题中,表示式中只存在乘、取余、除运算符,优先级相同,从左往右计算,3*4 结果为12, 12%5 结果为2,2/4 结果为0。答案为D。

在这里插入图片描述


正确答案:A
考察知识点:基本输入输出
解析:考察了C语言风格的输入输出;scanf(“%d”)会跳过制表符(tab键,空格组成)等空白字符,正确读取N=10、M=20,计算N+M=30,按格式输出{30}。答案为A。

在这里插入图片描述


正确答案:D
考察知识点:控制语句结构-选择
解析:需计算 9 月过N个月后的月份,利用取模运算处理循环。公式为(9 + N) % 12,当结果为 0 时对应 12 月,否则为计算结果。答案为D。刷过真题的一定做过关于星期的那道题,一样道理哈。

在这里插入图片描述


正确答案:C
考察知识点:控制语句结构-循环
解析:i从 0 到 99 循环,共 100 次。i%2在奇数时为 1,偶数时为 0。0 到 99 中有 50 个奇数,所以n累加后为 50。答案为C。

在这里插入图片描述


在这里插入图片描述


正确答案:C
考察知识点:控制语句结构-循环
解析:i从 - 100 到 99 循环,共 199 次。i % 10的结果在每 10 个数中对称抵消(如 - 100%10=0,-99%10=-9,9%10=9 等),总和为 0。因此N最终为 0。答案为C。

在这里插入图片描述


正确答案:A
考察知识点:控制语句结构-循环、break关键字
解析:循环中 i 取 1、2 时,因i%3 != 0,输出1#、2#;i 为 3 时 i%3 == 0,执行break跳出循环。
循环结束后 i 为 3,不满足i>5,END不输出。答案为A。

在这里插入图片描述


正确答案:C
考察知识点:流程控制语句-循环、数位分离
解析:该代码的逻辑是通过循环取出N的每一位数字,构建逆序结果rst。循环应在N的所有数字处理完毕(即N变为 0)时结束。
选项 A(N != 0)、B(not (N == 0),即N != 0)、D(N > 0)都能保证循环在N处理完后终止;而选项 C(N = 0)是赋值操作,会导致循环条件恒为0(逻辑假),循环一次都不执行,无法正确计算镜面数。答案为C。

在这里插入图片描述


在这里插入图片描述


正确答案:D
考察知识点:基本数据类型、基本运算符
解析:python语言中可以使用D选项的方式完成两个变量的交换,但C++不支持这种方式。答案为D。
A选项借助于第三个变量完成两个变量值的交换。
B、C选项借助于数的运算完成两个变量值的交换,可以自己手动推一推。

在这里插入图片描述


正确答案:D
考察知识点:基本运算符、流程控制语句-循环
解析:首先,div的作用是通过循环乘以 10,得到一个数,使得N / div可以把第M位及更高位的数保留,去掉低位。比如N = 1234,M = 2时,循环后div = 10。然后N / div得到123(整数除法),再对10取余,就得到第2位的数字3。所以横线处应填N / div % 10。答案为D。

在这里插入图片描述


在这里插入图片描述


正确答案:A
考察知识点:控制语句结构-循环、continue关键字
解析:初始num = 0,进入while循环(num <= 5)。
第一次循环:num += 1后num = 1,num != 3,执行printf,输出1#。
第二次循环:num += 1后num = 2,num != 3,执行printf,输出2#。
第三次循环:num += 1后num = 3,num == 3,执行continue,跳过printf。
第四次循环:num += 1后num = 4,num != 3,执行printf,输出4#。
第五次循环:num += 1后num = 5,num != 3,执行printf,输出5#。
第六次循环:num += 1后num = 6,num != 3,执行printf,输出6#。
最终输出为1#2#4#5#6#。答案为A。

在这里插入图片描述


正确答案:D
考察知识点:流程控制语句-循环
解析:选项 A:若第一个数输入-999,min_num和max_num会被赋值为-999,且循环不执行,输出-999 -999,该选项正确。
选项 B:若第一个数不是-999,且后续没有-999,程序会正常比较每个输入数,求出最大和最小数,该选项正确。
选项 C:考试成绩中无-999,程序能正常运行求出最高和最低成绩,该选项正确。
选项 D:D循环有点描述不清,但无论是移动第1行还是第11行,都会出现问题。
移动第一行,则min_num和max_num的初值变为未知值,后续无法比较。
移动第11行,输入的第一个数作为最大、最小值没问题,进入循环即输入下一个数,这个数参与比较,如果这个是-999,会产生错误。答案为D。

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

在这里插入图片描述


正确答案:错误
考察知识点:集成开发环境
解析: 在现代集成开发环境(如 Visual Studio、Eclipse 等)中,调试过程中是可以修改源程序的,很多集成开发环境支持 “编辑并继续” 功能,修改后不需要终止调试、关闭文件再重新打开,能在调试过程中直接应用修改并继续调试。表述错误。

在这里插入图片描述


正确答案:正确
考察知识点:基本运算符
解析:取余运算符的两个操作数要求必须是整数,小数会报错。表述正确。

在这里插入图片描述


正确答案:错误
考察知识点:流程控制语句-循环、break
解析:循环中只有一条语句,进入循环执行break,终止循环,此时 i 的值为0,因此输出为0。表述错误。

在这里插入图片描述


正确答案:错误
考察知识点:流程控制语句-循环
解析:for循环,循环变量 i 初始值为0,循环条件是i > -10,循环步长i–。所以i的取值依次为0, -1, -2, …, -9,共10 次循环。每次循环,将 i*-1 累加到n上,计算可得 循环结束 n 的值为45。表述错误。

在这里插入图片描述


正确答案:正确
考察知识点:流程控制语句-循环
解析:for循环,循环变量 i 初始值为0,循环条件是i < 100,循环步长i++。所以i的取值依次为0, 1, 2, …, 99。每次循环执行cnt+=i,因此本题代码实现的功能是将0~99累加到cnt上,将 i=0 修改为 i=1,代码功能变成了将1~99 累加到cnt上,累计和上少一个0并不会改变结果,输出自然相同。表述正确。

在这里插入图片描述


正确答案:错误
考察知识点:流程控制语句-循环
解析:变量 n 和变量 i 赋值为0,while循环 循环条件为 i<10,循环内执行语句 n+=i,i+=1,所以 i 的取值依次为0, 1, 2, …, 9,每次将 i 累加到 n 上,代码实现的功能是0~9的累加和。如果将 i<10 更改为 i<=10,则代码实现的功能是0~10的累加和,输出结果显然不同,表述错误。

在这里插入图片描述


正确答案:错误
考察知识点:控制语句结构-循环
解析:while循环,i 从 0 开始,每次循环 i 加 1,直到 i < 10 不成立。i 的取值为 1,2,…,10,共循环 10 次。
n 初始为 0,每次循环 n += i,即 n = 1 + 2 + 3 + … + 10,计算结果为 55,输出55。表述错误。

在这里插入图片描述


正确答案:错误
考察知识点:基本数据类型
解析:数字常量 12 默认为int类型,浮点数常量 12.12默认为double类型,int类型和double类型可以进行运算,运算中会将int类型转成double类型,运算结果为double类型,不会报错。表述错误。

在这里插入图片描述


正确答案:错误
考察知识点:控制语句结构-循环、continue语句
解析:count 初始为 0,循环条件是 count < 5。每次循环 count 加 1,当 count == 3 时执行 continue(跳过本次循环剩余代码,进入下一次循环)。
count 的取值依次为 1,2,4,5(当 count=3 时跳过输出但继续循环),当 count=5 时,循环条件 count < 5 不成立,循环结束。因此不会导致无限循环。 表述错误。

在这里插入图片描述


正确答案:正确
考察知识点:控制语句结构-循环
解析:初始化a = 0(对应斐波那契数列第 1 个数),b = 1(对应第 2 个数)。
循环执行n次:
每次先输出a;
然后通过b = b + a计算下一个数的和,再通过a = b - a更新a为原来的b(即下一个斐波那契数)。
例如,若n = 5,输出为0 1 1 2 3,符合斐波那契数列规律,因此该代码能实现功能。表述正确。

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

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

本题考察分支结构。

解析:方案1:满 x 元减 y 元,只能使用一次 。 方案2:直接打 n 折,也就是说价格变为原先的 n/10,输入为四个正整数,直接写n/10会导致丢小数点后数据,因此要写成n/10.0。

#include<bits/stdc++.h>usingnamespace std;intmain(){int x, y, n, p; cin>>x>>y>>n>>p;//方案1:满 x 元减 y 元,只能使用一次 double t1=(p>=x?p-y:p);//这里使用了条件运算符代替双分支语句//方案2:直接打 n 折,注意数据类型 double t2=p*n/10.0;//比较方案1和方案2,保留两位小数输出方案1和方案2中更小的那一个if(t1<t2)printf("%.2lf", t1);elseprintf("%.2lf", t2);return0;}
在这里插入图片描述


在这里插入图片描述

本题考察 循环结构。

一共n层,遍历n层,依次将每层的石块进行累加,根据题意,第i层需要i*i个石块。

#include<bits/stdc++.h>usingnamespace std;intmain(){int n,s=0;//注意累加求和的s要初始化为0  cin>>n;//遍历n层,依次将每层的石块进行累加 for(int i=1; i<=n; i++){ s+=i*i;//根据题意,第i层需要i*i个石块 } cout<<s;return0;}

Read more

【文心智能体】使用文心一言来给智能体设计一段稳定调用工作流的提示词

【文心智能体】使用文心一言来给智能体设计一段稳定调用工作流的提示词

🌹欢迎来到《小5讲堂》🌹 🌹这是《文心智能体》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 目录 * 前言 * 智能体信息 * 名称 * 简介 * 人设 * 开场白 * 工作流 * 消息节点 * 文本处理节点 * 插件节点 * 图片消息节点 * 输出效果 * 小技巧 * 一、结构化框架设计 * 1. **角色定位+任务拆解** * 2. **四要素公式法** * 二、多轮对话优化 * 1. **分步骤引导** * 2. **示例参考法** * 三、细节强化技巧 * 1. **输出格式标准化** * 2. **专业术语与风格** * 四、避免常见误区 * 1. **模糊需求导致输出偏差** * 2. **过度复杂导致理解困难** * 相关文章

By Ne0inhk
Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 1. Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 2. Visual Studio 安装和管理 GitHub Copilot 3. Visual Studio 使用 GitHub Copilot 扩展 4. Visual Studio 使用 GitHub Copilot 聊天 5. Visual Studio 使用 GitHub Copilot 协助调试 6. Visual Studio 使用 IntelliCode AI 辅助代码开发 7. Visual Studio 玩转 IntelliCode AI辅助开发

By Ne0inhk

Llama-Factory是否支持Transformer-XL结构?

Llama-Factory 是否支持 Transformer-XL 结构? 在当前大语言模型(LLM)快速迭代的背景下,微调已成为将通用预训练模型适配到垂直场景的核心手段。随着 LoRA、QLoRA 等参数高效微调技术的普及,开发者不再需要从零搭建训练流水线,而是借助如 LLama-Factory 这类“一站式”框架,实现低门槛、高效率的模型定制。 这类工具之所以流行,关键在于其对主流架构的高度抽象与统一支持——无论是 LLaMA、Qwen 还是 ChatGLM,用户只需指定模型路径和配置参数,即可启动完整的微调流程。但当面对一些早期或非典型的模型结构时,比如 Transformer-XL,问题就变得复杂了:这些模型是否也能被无缝接入?它们的设计特性是否会打破现有框架的假设前提? 要回答这个问题,不能只看官方文档有没有列出某个名字,而必须深入理解 LLama-Factory 的底层机制,以及 Transformer-XL 本身的架构特点。 LLama-Factory 并不是一个独立的模型实现库,它本质上是建立在 Hugging Face Transformers 和

By Ne0inhk
从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

🏡作者主页:点击!  🤖编程探索专栏:点击! ⏰️创作时间:2024年12月24日10点02分 神秘男子影,   秘而不宣藏。 泣意深不见, 男子自持重,    子夜独自沉。  AI绘画一键生成美图-变成画家 本地部署SD模型,一键即可生成自己想要绘制的图画,本文包括论文原理讲解和代码复现 论文讲解 论文题目:High-Resolution Image Synthesis with Latent Diffusion Models(基于潜在扩散模型的高分辨率图像合成) 论文被计算机视觉顶会CVPR 2022收录 Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。它建立在自注意力机制和扩散过程的基础上。它的设计灵感来自于扩散过程模型(Diffusion Models),这些模型在自然图像建模领域取得了巨大成功。 Stable Diffusion通过一系列的扩散步骤来生成图像。在每一步中,模型逐渐“扩散”图像,从含有较少信息的噪声开始,到包含更多细节的图像。

By Ne0inhk