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

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

2025年9月真题

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

在这里插入图片描述


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

在这里插入图片描述


正确答案:C
考察知识点:计算机的存储与网络
解析:在 TCP 协议中,建立连接需要通过三次握手。第一次握手是客户端向服务器发送连接请求;第二次握手是服务器收到请求后,向客户端发送确认和自己的连接请求;第三次握手是客户端收到服务器的回复后,再向服务器发送确认,这样双方就建立起可靠的连接了。答案为C。

在这里插入图片描述


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

在这里插入图片描述


在这里插入图片描述


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

在这里插入图片描述


正确答案:D
考察知识点:基本运算符
解析:首先这里变量a,b,c没有定义,写法是不合法的。
假定第一行代码之前定义了整形变量a,b,c,则第一行执行结束,a没有赋值,b赋值为3;第二行代码先执行比较运算符==,再执行赋值运算符=,因a没有赋值,其值未知,因此a==b的结果未知,则c的值未知,输出结果当然未知。答案为D。

在这里插入图片描述


正确答案:A
考察知识点:基本运算、流程控制语句-选择
解析:第7-10,根据part1的值选择不同的输出格式,XX从00变化到11,即part1,对12取余结果为0~11;Y从0变化到9,即part2,对10取余结果为0~9;答案为A。

在这里插入图片描述


在这里插入图片描述


正确答案:D
考察知识点:控制语句结构-循环
解析:i 的值为-10~0,内层循环的循环条件不成立,cnt+=1未被执行;i的值为1~9,根据内层循环的循环条件,cnt+=1被执行次数为 i 次,则cnt+=1一个执行了:1+2+…+9=45次,答案为D。

在这里插入图片描述


正确答案:B
考察知识点:循环嵌套、流程控制语句、break、continue
解析:外层循环i从1到11(因为i < 12)。当i为偶数时,执行continue,跳过本次循环剩余部分,所以只看i为奇数的情况(i = 1,3,5,7,9,11)。内层循环 j 从0到 i,当 i*j 为奇数时,执行break,终止内层循环。当 i 等于11,j 等于1时,第6行条件成立,终止内层循环,此时i再增大为12,外层循环条件不成立,循环结束。此时i的值为12,j的值为1。答案为B。

在这里插入图片描述


正确答案:D
考察知识点:控制语句结构-循环、基本运算符
解析:在 C++ 中,取余运算a % b里,b不能为0,否则会导致运行时错误(除以零错误),但本题中b等于0不会进入循环,也即不会执行到a%b,选项A错误;
a和b的大小关系不影响取余运算的合法性,只是结果不同,选项 B 错误;
a和b可以是负整数,取余运算在 C++ 中有相应规则,并非必须为正整数才合法,选项 C 错误;
选项 D:如果a输入为0,当b为非零值时,第一次循环remainder = 0 % b = 0,然后a = b,b = 0,循环结束,输出a(即b的原始值),
如果b为0,不进入循环,直接输出a(和b的值相等)。答案为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。

在这里插入图片描述


正确答案:C
考察知识点:控制语句结构-循环、循环嵌套、数位分离、break、continue
解析:第3行 if 语句判断是否是5的倍数,如果是则cnt++,执行continue进入下一次循环;否则数位分离判断是否含有5;
A选项,删除continue,对于5这样既是5的倍数,也含有5的数,cnt+=1会被执行2次,不符合要求,A错误。
选项 B:j = i是为了在不改变i的情况下,对i的每一位进行判断。若删除j = i并将while循环内的j改为i,会改变i的值,影响外层循环的次数和逻辑,影响结果,B错误。
选项 D:原while (j > 0)是判断j为正整数时进行位判断。若改为while (j >= 0),当j = 0时还会进入循环,j % 10 == 0,会执行else里的j /= 10(j还是 0),进入死循环,影响结果,D错误。
选项 C:break的作用是当发现数字含 5 时,跳出while循环。将break改为j = 0,也能跳出while循环(因为j > 0不成立了),效果相同,不影响程序执行结果,C正确。答案为C。

在这里插入图片描述


在这里插入图片描述


正确答案:A
考察知识点:循环嵌套
解析:当N为10时,第1行输出9个空格,第2行输出8个空格,以此类推,第i行输出N-i个空格。
当N为10时,第1行输出1个数字,第2行输出2个数字,以此类推,第i行输出i个数字。
循环条件用的小于号,循环变量从1开始,横线处应该填写:N-i+1,i+1。答案为A。

在这里插入图片描述


正确答案:A
考察知识点:基本数据类型、基本运算、ASCII码
解析:a=‘a’+‘b’,字符类型参与运算,实际上是其对应的ASCII参与运算,且a是整数类型,因此 a 的值为97+98=195。
同,b的值为97-98=-1。此时a=a-b=196。答案为A。

在这里插入图片描述


在这里插入图片描述


正确答案:D
考察知识点:基本运算
解析:代码中G = (N - 1) / 9和R = (N - 1) % 9是对N-1进行九进制相关的分解,后续根据余数R的不同范围计算对应重量。选项 A 中说必须同时修改 L1 和 L2 才能实现功能,没有依据;选项 B 说必须同时修改 L3 和 L4,也无依据;选项 C 说必须同时修改 L3 和 L5,同样无依据。所以其他说法都不对。答案为D。

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

在这里插入图片描述


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

在这里插入图片描述


正确答案:正确
考察知识点:基本运算
解析:在 C++ 中,整数除法是取整运算(舍去小数部分)。当 N 是正整数且大于 100 时,比如 N = 1234,1234 / 100 = 12.34,整数除法会舍去小数部分,得到 12,也就是舍弃了个位(4)和十位(3);当 N 小于 100 时,比如 N = 50,50 / 100 = 0.5,整数除法后结果为 0。表述正确。

在这里插入图片描述


正确答案:错误
考察知识点:基本运算
解析:上述C++代码执行后输出确实为1,但不是题目描述中的原因。
原因是:a<10 and 20 出现了比较运算符和逻辑运算符,比较运算符的优先级更高,a的值为5,a<10的结果为真,true and 20 结果为真。实际上,只要 a<10 成立,输出即为1。表述错误。

在这里插入图片描述


正确答案:正确
考察知识点:基本运算
解析:第1行代码执行完毕,x,y值未知,z赋值为5,x<y<z,先执行x<y,因为x,y值未知,因此x<y结果未知,但不是true就是false,用此结果和z比较,z的值为5,比较结果result是true,输出为1。表述正确。

在这里插入图片描述


正确答案:正确
考察知识点:基本数据类型
解析:输入99.99,存入int类型变量score中,score只存储整数部分99,99>=60成立,执行第5行代码,输出 及格,表述正确。

在这里插入图片描述


正确答案:错误
考察知识点:基本运算、数据类型转换
解析:当输入123时,进入while循环:
第一次循环:a%10 = 123%10 = 3,‘A’ + 3 = ‘D’,输出D;然后a = 123 / 10 = 12。
第二次循环:a%10 = 12%10 = 2,‘A’ + 2 = ‘C’,输出C;然后a = 12 / 10 = 1。
第三次循环:a%10 = 1%10 = 1,‘A’ + 1 = ‘B’,输出B;然后a = 1 / 10 = 0,循环结束。
最终输出为DCB,所以该判断题答案为正确。表述错误。

在这里插入图片描述


正确答案:正确
考察知识点:控制语句结构-循环、continue关键字
解析:执行for循环:
当i = 0时,不满足if条件,执行printf(“+#”),输出+#;
当i = 1时,不满足if条件,执行printf(“+#”),输出+#;
当i = 2时,满足if条件,执行continue,跳过本次循环剩余语句;
循环结束后,i的值为3,执行cout << i << ‘#’,输出3#。
最终输出为+#+#3#,所以该判断题答案为正确。表述正确。

在这里插入图片描述


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

在这里插入图片描述


正确答案:正确
考察知识点:控制语句结构-循环
解析:原代码中,当i == j时执行continue,会跳过cout << 0;(L1),导致对角线外的位置无法输出0。
若将cout << 0;移到if块外面(或 L2 位置),则无论i和j是否相等,都会执行输出0的操作,只是当i == j时先输出i+1,再输出0(或在循环结构中合理输出),从而实现题目中的矩阵输出格式。因此该判断题答案为正确。 表述正确。

在这里插入图片描述


正确答案:错误
考察知识点:基本运算、基本数据类型、数据类型转换
解析:字符类型参与运算,实际上是其对应的ASCII码参与运算,运算结果为整数。‘5’+4=53+4=58。表述错误。

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

在这里插入图片描述


在这里插入图片描述

本题考察循环嵌套、数位分离。

解析:统计不超过n的优美正整数,优美数:十进制下的所有数位都相同。

显然,遍历 1~n 的所有数用一层for循环;判断优美数用while循环数位分离

#include<bits/stdc++.h>usingnamespace std;intmain(){int n, cnt=0; cin>>n;for(int i=1; i<=n; i++){//不超过n的优美正整数,遍历1~n //判断i是否是优美数:十进制下的所有数位都相同,用flag标记是否是优美数bool flag=true;int t=i%10;//t存储i的个位数//数位分离判断i的所有数位是否都等于t int tmp=i;//不能直接对循环变量i操作,使用tmp存储i,操作tmp while(tmp!=0){if(tmp%10!=t){//当前数位不等于t,不是优美数,终止循环  flag=false;break;} tmp/=10;}if(flag) cnt++;//flag为true意味着i是优美数 } cout<<cnt;return0;}
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

本题考察 循环嵌套输出矩形图形。

循环嵌套输出矩形图案的题目在二级中已经出了非常多次了。方法就是观察符号出现的规律,在本题中,很显然,# 号出现的比较有规律,实际上,# 号组成了一个空心菱形。而输出空心菱形在讲循环嵌套的时候很多老师会作为一个例题来讲

第一版:分上下两部分来写

单看上部分,行编号 i 为:0~n/2,可以观察到 # 号出现的列编号 j 为 n/2-i 以及 n/2+i,可以用行编号表示出来。

再看下部分,和上部分对称,如果从大到小遍历行编号,也即行编号 i 为:n/2~0,则 # 号出现的列编号和行编号的关系同上部分。

#include<bits/stdc++.h>usingnamespace std;intmain(){int n; cin>>n;//上部分for(int i=0; i<=n/2; i++){for(int j=0; j<n; j++){if(j==n/2-i || j==n/2+i) cout<<"#";else cout<<".";} cout<<endl;}//下部分for(int i=n/2-1; i>=0; i--){for(int j=0; j<n; j++){if(j==n/2-i || j==n/2+i) cout<<"#";else cout<<".";} cout<<endl;}return0;}

第二版:行编号 i :0~n,找 # 号 出现的位置行编号和列编号的关系,下半部分找起来麻烦点。

#include<bits/stdc++.h>usingnamespace std;intmain(){int n; cin>>n;for(int i=0; i<n; i++){for(int j=0; j<n; j++){if(i<=n/2&&(j==n/2-i || j==n/2+i)) cout<<"#";elseif(i>=n/2&&(j==n/2-(n-1-i)|| j==n/2+(n-1-i))) cout<<"#";else cout<<".";} cout<<endl;}return0;}

Read more

ctfshowweb入门 SSTI模板注入专题保姆级教程(一)

ctfshowweb入门 SSTI模板注入专题保姆级教程(一)

前言:本来这篇是不打算写的,自己稍微记录一下就行了,但是我发现后面的题难度也挺大的,而且好多更细的不记录后面也容易忘记,并且网上很多师傅讲的直接是payload(我还是太菜了看不懂),有很多都是我没见到过的,因此这里综合记录一下(其实最重要的是在这里写的能保存成pdf)同时也是对自己找的资料进行一个汇总 web361 这里我之前详细讲过了就不再赘述,ctfshowweb361--一道题从0入门SSTI模板注入,这里面也是直接从0基础讲起,如果还是有不懂的网上再找点资料看看【我最后也放了参考】,后续题目都是在这基础上进行的,熟悉了361的方法之后才能继续做后面题目。 web362 按照之前的方法进行尝试,发现过滤了除1和7以外的数字,而我们要找的是132,因此这里可以采用全角符号绕过【具体怎么开问下AI就行,因为我用的是Windows自带的,在设置里面进行设置,然后可能有的人用了其他输入法之类的,所以这里就不上图了】 实在找不到的话我直接打在下面: 1234567890 (全角 可以对比半角:1234567890) 然后就是输入我们的payload: ?name={{

By Ne0inhk
Java Web 网上商城系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web 网上商城系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着电子商务的快速发展,网上商城系统已成为现代商业活动的重要组成部分。传统的单体架构系统在应对高并发、分布式部署及快速迭代需求时面临诸多挑战,亟需采用更高效、灵活的技术架构进行升级。本论文基于实际需求,设计并实现了一个基于前后端分离架构的Java Web网上商城系统,旨在解决传统系统性能瓶颈、维护成本高等问题。系统采用SpringBoot2、Vue3、MyBatis-Plus和MySQL8.0等技术栈,具备良好的扩展性和可维护性,能够满足中小型电商平台的业务需求。关键词:网上商城、SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0。 本系统采用前后端分离架构,后端基于SpringBoot2框架实现RESTful API,提供高效的数据交互能力;前端使用Vue3框架构建响应式用户界面,提升用户体验;数据库采用MySQL8.0存储业务数据,结合MyBatis-Plus简化数据操作逻辑。系统功能模块包括用户管理、商品管理、订单管理、购物车管理及支付集成等,支持多角色权限控制、商品分类检索、订单状态追踪等功能。通过分布式缓存和异步消息队列优化系统性能,确保高

By Ne0inhk

ComfyUI vs WebUI对比实测:云端GPU 1小时低成本体验

ComfyUI vs WebUI对比实测:云端GPU 1小时低成本体验 对于资深AI图像生成用户来说,选择合适的工具直接关系到生产效率和创作质量。当需要评估ComfyUI工作流与传统WebUI在运行Qwen-Image-2512时的性能差异时,一个独立、可快速启停的临时环境显得尤为重要。本文将带你通过云端GPU资源,在1小时内完成对两种主流界面的全面对比测试,帮助你做出最适合自身生产流程的技术选型。 本次实测聚焦于Qwen-Image-2512这一先进模型——它在人物真实感、自然细节和文本渲染方面均有显著提升,甚至在盲测中超越部分闭源商业模型。我们将从部署效率、操作逻辑、生成质量、资源占用等多个维度进行深度剖析,确保你能获得客观、实用的决策依据。无论你是希望优化现有工作流的专业设计师,还是想探索更高效创作方式的技术爱好者,这篇文章都能为你提供清晰的指引。 1. 环境准备:为什么选择云端GPU进行对比测试 1.1 资深用户的典型困境与解决方案 作为一名资深AI创作者,你可能经常面临这样的挑战:现有的本地设备已经满载运行着多个重要任务,无论是训练模型、渲染视频还是处理大量数据,

By Ne0inhk

解放双手:用自动化工具实现前端国际化自动翻译的终极方案

解放双手:用自动化工具实现前端国际化自动翻译的终极方案 【免费下载链接】auto-i18n-translation-pluginsWeb automatic translation, supports custom translators, default support for Youdao Translation and Google Translate, compatible with webpack, vite, rollup and other build and development tools, support all front-end frameworks compiled into js, allowing you to translate with just one click. 项目地址: https://gitcode.com/gh_mirrors/au/

By Ne0inhk