跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

CCF-GESP 2025 年 9 月 C++ 三级真题深度解析

CCF-GESP 2025 年 9 月 C++ 三级考试涵盖数据类型、数组操作、函数作用域及模拟算法等核心知识点。对单选、判断及编程题进行逐题剖析,重点讲解整数除法陷阱、变量作用域冲突、循环终止条件及日期计算逻辑。通过实战代码示例,帮助考生理解常见易错点,如数组越界、整型溢出及宏定义展开规则,为备考提供清晰的技术路径。

苹果系统发布于 2026/1/26更新于 2026/6/513 浏览
CCF-GESP 2025 年 9 月 C++ 三级真题深度解析

2025 年 9 月真题详解

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

题目截图

答案:C 考察基本数据类型与运算符。在 C++ 中,int 类型相除执行整数除法,10÷3 结果为 3。赋值给 double 类型 c 后值为 3.0。

题目截图

答案:C 考察逻辑运算符优先级与结合性。选项 A 和 D 因&&要求全真而失败;B 项!取反后为假;C 项||只要有一真即为真,(10!=10) 为假但 (5>=3) 为真,整体结果 true。

题目截图

答案:D 数组下标从 0 开始。定义 int arr[5] 合法范围为 0~4,访问 arr[5] 属于越界,会导致未定义行为。

题目截图

答案:B 涉及循环与变量作用域。外层 sum 初始为 0。循环内定义的局部 sum 仅在该作用域有效,不影响外层累加。i=1,3,5 时分别累加 1,3,5,最终 sum 为 9。

题目截图

答案:B 函数定义规范。返回值需明确类型,参数也需指定类型。A、D 返回 void 错误,C 参数无类型,仅 B 符合语法且逻辑正确。

题目截图

答案:B 数组初始化规则。arr[4] 未显式初始化元素默认为 0,即 {1, 2, 3, 0}。执行 arr[3] = arr[0] + arr[2] 后变为 {1, 2, 3, 4}。

题目截图

答案:B 函数特性辨析。函数可无参,main 函数虽特殊但仍可被调用(如递归),C++ 不支持嵌套定义函数。return 虽只返回一个值,但可通过指针或引用间接传递多个数据。

题目截图

答案:D continue 语句跳过本次循环剩余部分。i -= 3 后直接 continue,count++ 从未执行,循环结束 count 仍为 0。

题目截图

答案:A 循环嵌套输出规律。i=0 输出 0#,i=1 输出 01#,依此类推,最终结果为 0#01#012#0123#。

题目截图

答案:C 全局变量作用域。外部声明的变量作用域至程序结束,但在多文件结构中若未 extern 声明,跨文件不可见。

题目截图

答案:D 整数反转与溢出判断。int 范围限制在 -2147483648~2147483647。1463847412 反转后为 2147483641,未溢出;更大数值则可能超出范围。

题目截图

答案:C 数组最大值查找(打擂台法)。假设第一个元素最大,遍历后续元素比较更新。

题目截图

答案:D 函数参数与返回类型。C++11 起必须显式声明返回类型。形参存储在栈中,函数结束释放。void 函数可含 return 语句用于提前退出。

题目截图

题目截图

答案:C 数组越界检查。for 循环条件 i <= SIZE 导致访问 arr[SIZE] 越界,且 cout << arr[SIZE] 同样越界,共两处错误。

题目截图

答案:D 字符串比较。string 对象可用 == 比较内容,字符数组需用 strcmp() 函数。

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

题目截图

答案:错误 sizeof('a') 在 C++ 中 char 类型为 1 字节,C 语言中常为 int 大小。表述称总是 1 不准确。

题目截图

答案:正确 全局变量未显式初始化时,编译器自动初始化为 0,避免未定义行为。

题目截图

答案:正确 do-while 先执行循环体再判断条件,至少执行一次。

题目截图

答案:正确 ++i 返回左值(引用),i++ 返回右值(临时副本)。

题目截图

答案:错误 枚举值是独立类型,非 int 类型,虽可隐式转换但本质不同。

题目截图

答案:错误 宏定义是文本替换。SQUARE(2+3) 展开为 2+3*2+3=11,而非 25,需加括号处理优先级。

题目截图

答案:错误 char 类型可能是 signed 或 unsigned,取决于编译器实现,范围不固定。

题目截图

答案:错误 条件运算符优先级高于赋值,但表达式合法性取决于操作数是否可修改(如常量不可赋值)。

题目截图

答案:错误 #include "" 优先搜当前目录,< > 搜系统路径,搜索策略不同。

题目截图

答案:错误 extern 用于声明而非定义,同一作用域内变量不能多次定义。

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

1. 数组模拟操作

本题核心在于模拟算法与数组遍历。由于操作次数未知,采用 while(true) 配合内部终止条件判断更为稳妥。逻辑是找到最大值下标,减去最小非零值,直到全为 0。

#include <bits/stdc++.h>
using namespace std;

int n, arr[105];

int main() {
    cin >> n;
    for (int i = 0; i < n; i++) cin >> arr[i];
    
    int cnt = 0;
    while (true) {
        int maxid = 0, minn = 100;
        for (int i = 0; i < n; i++) {
            if (arr[i] >= arr[maxid]) maxid = i;
            if (arr[i] != 0 && arr[i] < minn) minn = arr[i];
        }
        
        if (arr[maxid] == 0) break;
        arr[maxid] -= minn;
        cnt++;
    }
    cout << cnt;
    return 0;
}
2. 日期计算与格式化输出

这道题涉及闰年判断、星期推算及周期性问题。需要掌握每月天数表,根据目标月份与基准日(2025 年 9 月 1 日周一)计算偏移量。注意负数取余的处理方式,以及 setw 格式控制。

#include <bits/stdc++.h>
using namespace std;

int n, months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main() {
    cin >> n;
    cout << "MON" << " " << "TUE" << " " << "WED" << " " << "THU" << " " << "FRI" << " " << "SAT" << " " << "SUN" << endl;
    
    int start = 1; // 2025 年 9 月 1 日是星期一
    if (n < 9) {
        for (int i = 8; i >= n; i--) start -= months[i];
    } else if (n > 9) {
        for (int i = 9; i < n; i++) start += months[i];
    }
    
    // 处理负数取余
    start = (start % 7 + 7) % 7;
    if (start == 0) start = 7;
    
    for (int i = 1; i < start; i++) cout << setw(3) << ' ' << " ";
    
    for (int i = 1; i <= months[n]; i++) {
        cout << setw(3) << i << " ";
        if (start % 7 == 0) cout << endl;
        start++;
    }
    return 0;
}

对于固定年份输出,也可考虑纯打表方式,关键在于理解基础逻辑。

目录

  1. 2025 年 9 月真题详解
  2. 一、单选题(每题 2 分,共 30 分)
  3. 二、判断题(每题 2 分,共 20 分)
  4. 三、编程题(每题 25 分,共 50 分)
  5. 1. 数组模拟操作
  6. 2. 日期计算与格式化输出
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • JS 逆向断点调试与前端加密对抗及企业 SRC 实战案例
  • HuggingFace 镜像与反向代理加速 GLM-4.6V-Flash-WEB 模型加载
  • 基于 Python 的跨境电商数据采集实战与代理 IP 应用
  • Python 通达信数据获取技术解析与应用
  • CoPaw 个人助理部署与使用指南:从零搭建专属 AI 数字搭档
  • IT 行业热门岗位薪资分析与 Python 学习路线指南
  • Python 调用高德地图 MCP 服务查询天气示例
  • 闲鱼 x-sign 生成算法逆向分析
  • GLM-5 与 Qwen3.5 双模型对比:一句话生成 HTML 小游戏
  • Windows 安装 Docker 解决 No default Boot2Docker ISO found locally 错误
  • OpenClaw 本地部署:Web 面板调试与大模型集成
  • AI 入门:常见术语解释与误区澄清
  • AI 数据标注平台选型与实践:效率提升背后的技术逻辑
  • 普通人如何靠提问和评论参与 AI 创作?
  • 常见 AIGC 检测规避工具与方法介绍
  • 算法模拟专题:LeetCode 精选例题解析
  • Python 月相可视化系统:天文计算与 Web 界面实现
  • 前端 Canvas 基础与实战应用
  • SRC 漏洞挖掘实战指南:信息收集、逻辑漏洞与绕过技巧
  • AgentScope Java 多智能体框架

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online