GESP:2025年3月 C++二级 真题及解析

四季读书网 1 0
GESP:2025年3月 C++二级 真题及解析
师已为大家备好电子打印版,需要完整电子版文件的朋友,可以拉到文末查看
GESP:2025年3月 C++二级 真题及解析-第1张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第2张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第3张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第4张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第5张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第6张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第7张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第8张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第9张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第10张图片-四季读书网

【答案解析】

1.解释:答案选D。
 DeepSeek,是一个国产人工智能大模型,专注于自然语言处理、图像识别和数据分析等任务。它可以生成文本内容,因此可以根据《哪吒2》的场景生成剧情脚本。
 《哪吒2》,是一部动画电影,与操作系统或软件生成无关。
2.解释:答案选C。
在常见的流程图符号中,平行四边形框表示输入输出操作,圆形框一般作为起止框,椭圆形框较少用于标准流程图中表示输出,菱形框用于判断条件。所以输出语句应在平行四边形框中。
相关知识点的复习与拓展:
截至本次考试当年3月,行业公认的常用流程图符号,参见下图——
GESP:2025年3月 C++二级 真题及解析-第11张图片-四季读书网
执行标准为——
GESP:2025年3月 C++二级 真题及解析-第12张图片-四季读书网
3.解释:答案选A。
Line 2 的:a==b;和 Line 3 的 b==a;是逻辑比较,不修改变量值,故输出初始值 3 4,注意中间有一个半角的空格分割。
GESP:2025年3月 C++二级 真题及解析-第13张图片-四季读书网

4.解释:答案选A。

对四个选项分别讨论——

选项A,在原代码逻辑中,remainder的取值范围已由前面的条件限定,所以 Line 9 整体改为else效果相同。选项A正确

选项B,Line 5,修改为remainder<=5会导致判断逻辑错误(没有排除编号0),无法准确判断红色球的编号范围。

选项C6<=remainder<=8在C++中不是合法的条件判断写法。

选项Dremainder=N%10是为了获取编号除以10的余数,从而可以确定球的颜色,改为remainder=N/10会改变计算逻辑,无法正确判断颜色。

5.解释:答案选D。

为了兼容C语言,C++的数值类型(char , short , int ,long long 等)可以隐式类型转换当作布尔类型( bool )。数字 作为假值( false );非零的值,比如 2 ,都会作为真值( true )。

代码思路:在for()循环中,变量i的值从09变化。当变量 i的值不能被3整除时,即 i%3不为0(被隐式转换为true),变量tnt自增1;当变量 i的值能被3整除时,即 i%30(被隐式转换为false),执行 else分支,变量tnt自增2。整数09中,能被3整除的数有 0369这4个数使变量tnt每次循环自增2,共加8;不能被3整除的数有 124578,这6个数使变量tnt每次循环自增1,共加6。所以循环结束后,tnt=8+6=14 。

6.解释:答案选A。

首先,变量i 的是定义在for() 循环体的外面,因此循环结束后i 不会系统被回收。
for()循环中,当第一次进入循环时,变量i=10,然后执行break;语句,直接跳出循环。此时i值并没有在循环中被改变,所以输出为 10
GESP:2025年3月 C++二级 真题及解析-第14张图片-四季读书网
相关知识点的复习与拓展:截至考试当年3月,C++中有关 continue; 和 break; 的运行机制,可以 参考下图——
GESP:2025年3月 C++二级 真题及解析-第15张图片-四季读书网

7.解释:答案选D。

首先,变量i 的是定义在for() 循环体的外面,因此循环结束后i 不会系统被回收。
for()循环中,当 i%3==0  ,即变量 i的值能被3整除时,执行continue;跳过本次循环,不输出内容;否则,当 i%3==0  不成立,
即变量 i的值不能被3整除时,继续运行下面的代码,输出 0#  (变量 i 的值分别为 12457共6次),
循环结束后,变量 i的值变为 10,满足if(i>=10)条件,所以再输出1# 
最终输出 0#0#0#0#0#0#1#

8.解释:答案选A。

外层 for()循环中,变量 i的值从04递增,对于每次 i的值,
内层for()循环中,变量 j的值从 i 递减到 1。当变量 i 赋值为 0 时,内层循环不执行;当变量 i 自增到1 时,输出 1- ;当变量 i 自增到 2 时,输出 2-1- ;当变量 i 自增到 3 时,输出 3-2-1- ;当变量 i 自增到 4 时,输出 4-3-2-1- ,组合起来就是 1-2-1-3-2-1-4-3-2-1- 。
9.解释:答案选C。
选项A,(i%2==0)&&(i%7==2)直接判断变量 i 能被 2 整除且除以 7 余数为 2
选项B, !(i%2) 等价于 i%2==0 ,所以 ((!(i%2))&&(i%7==2)) 也能判断。
选项C((!(i % 2)) && (!(i % 7))) 表示变量 i 能被 2 整除且
且能被 7 整除,选项C不能够实现判断
D选项,(i%2!=1) 同样等价于i%2==0 ,((i%2!=1)&&(i%7==2)) 能够实现判断。

10.解释:答案选B。

外层 for()循环遍历 1 到N ,内层while()循环,将当前

变量 i 的值赋给变量 j ,用等值于变量 i 的变量 j 来判断每个当前变量 i 是否含有 3,这样不会改变变量 i 的值。当j%3==0时,说明变量j的个位数是 3, cnt  自增 1,然后无需判断其他数位,所以要用 break;语句直接退出当前循环,继续判断下一个数;如果变量 j 的个位数不是 3,即j%3==0false时,执行else分支,接着用j/=10;去掉变量 j 的个位,继续判断变量 j 的剩余部分是否还含有 3,直至变量 j 的值归为 0while()循环终止。
截至考试当年3月,C++中有关 continue; 和 break; 的运行机制,可以 参考上面题6的附图。

11.解释:答案选C。

实现1,利用变量
last存储阶乘累积,减少计算量(O(n));实现2,重复计算阶乘(O(n2)),效率差异显著。
12.解释:答案选D。
选项A,isPrime(j) && isPrime(i-j)isPrime(j)==true && isPrime(i-j)==true效果相同,但后者表述偏繁琐。
选项B,由于枚举是从小往大递增进行,可以保证输出的质数对一定是小的数在
选项C,即使扩大验证范围,也只是有限的验证,不能从数学上严格证明哥德巴赫猜想。
选项D,根据本题要求的程序设计思路,应该是在找到质数对后立即用 break;语句退出内层循环, break;语句移至 if()语句外会导致错误跳过后续检查。选项D是错误的说法。

13.解释:答案选B。

选项A,用 printf("\n")语句实现可以输出换行,选项A表述错误。

选项B,last+=1last=last+1都能实现变量last自增 1 的操作,执行效果相同。选项B正确

选项C,j<i+1是正确的,用于控制每行输出的数字个数,不需要修改。

选项D,将last=1改为blast=0会改变输出的起始数字,执行效果不同。

14.解释:答案选C。

函数 
rand()用于生成随机整数。
选项A, rand()%11生成的随机数范围是 0 到 10,不符合题干的要求。

选项B,rand()%10生成的随机数范围是 0 到 9,不符合题干的要求。

选项C,rand()%10+1生成的随机数范围是 1 到 10 ;符合题干的要求

选项D,rand()%9+1生成的随机数范围是 1 到 9,不符合题干的要求。

相关知识点的复习与拓展:

截至考试当年3月份,C++随机数函数的基本用法,可以参考下图——

GESP:2025年3月 C++二级 真题及解析-第16张图片-四季读书网

15.解释:答案选C。

浮点数相等需用绝对值误差判断,选项C,作为判断条件,(abs(b-a)<=0.000001)能够覆盖正负差异。

GESP:2025年3月 C++二级 真题及解析-第17张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第18张图片-四季读书网

【答案解析】

1.解释:正确。
高级编程语言编写的程序需要经过编译或解释过程,最终转换为机器指令在计算机硬件上执行,所以该说法正确。
GESP:2025年3月 C++二级 真题及解析-第19张图片-四季读书网
2.解释:正确。
在整数运算中,N/10进行整除取商,得到的是N去掉个位后的数,
再乘以 10 用N减去,结果就是 N 的个位数;N%10直接计算 N除以10的余数,也就是 N的个位数,所以该说法正确。
相关知识点的复习与拓展:
截至考试当年12月,有关C/C++语言的运算符优先级,详见下表——
GESP:2025年3月 C++二级 真题及解析-第20张图片-四季读书网
3.解释:正确。

本题输出的是三目运算符的结果,对于条件表达式的运算按照从左到右的顺序进行。先计算表达式10<=N的值,再拿该值和 12 进行比较;表达式10<=N的值为1(布尔值true);然后,表达式 1<=12的值为1(布尔值true),程序输出true

GESP:2025年3月 C++二级 真题及解析-第21张图片-四季读书网

4.解释:错误。

由于浮点数精度问题,sqrt(N)返回的结果是一个近似值。例如当N的值为 2 时,sqrt(2)是一个无限不循环小数,sqrt(2)*sqrt(2)与 2 不完全相等,所以该表达式的值不一定为 true,该说法错误。

5.解释:正确。
代码 Line2-4的作用是交换变量 a和 b的值,题目表述正确。
特别要注意的是,采用本题所示的方法交换两个变量的值,极端的情况下有可能出现数据溢出,实践中需要留意运算结果是否会超出数据类型的取值范围。

6.解释:正确。

首先,我们注意到,题干代码中,变量i 的是定义在for() 循环体的外面,因此循环结束后i 不会系统被回收。
循环将变量 i初始化为 1,步长为 1 (循环体中的continue; 语句,作用是提前终止当前循环,对变量 i的值无影响,可以忽略),变量 i 的值自增到 10 时, i<10不成立时,循环结束,程序输出 10
相关知识点的复习与拓展:
截至考试当年3月,C++中有关 continue; 和 break; 的运行机制,请参考下图——
GESP:2025年3月 C++二级 真题及解析-第22张图片-四季读书网

7.解释:正确。

截至考试当年3月,C++中有关 continue; 和 break; 的运行机制,请参考上一题图。
首先,我们注意到,题干代码中,变量 i 的是定义在for() 循环体的外面,因此循环结束后i 不会系统被回收。

在 for() 循环中, break; 语句会使程序立即跳出循环,continue; 语句在break; 语句之后,不会被执行。循环初始,变量 i 的赋值为 1,然后执行 break; 语句跳出循环,此时变量 i 的值保持为 ,但循环已经结束,cout << i << endl; 语句输出的结果是 ,题目说法正确。

8.解释:正确。

外层for() 循环,变量 i 的取值由 0 自增到 4

变量 i 的值为 0 时,内层for() 循环中条件 j<i不成立,不会执行内层循环;

变量 i 的值自增为 1 时,内层for() 循环执行 1 次;

变量 i 的值自增为 2 时,内层for() 循环执行 2 次;

变量 i 的值自增为 3 时,内层for() 循环执行 3 次;

变量 i 的值自增为 4 时,内层for() 循环执行 4 次;

程序总共执行 1+2+3+4=10 次,输出10行 OK ,题目说法正确。

9.解释:正确

本题代码中, for() 循环,由i=0 的起始,相较于由i=1 的起始,

变量tot 多累加了一次整数 0,但不影响最终输出结果。

10.解释:错误。

在题干代码中,外层for() 循环,变量 i 的取值由 0 自增到 4,内

for() 循环,每次都会重新将变量 i 赋值为  0,然后判断i<i 不成立,直接跳过内层循环。当外层循环结束后,变量 i 的值自增为 5,所以最终输出的结果是  5,而不是  0123 ,题目说法错误。

GESP:2025年3月 C++二级 真题及解析-第23张图片-四季读书网

GESP 2025年3月 C++二级 等差矩阵

#include<bits/stdc++.h>using namespace std;int n, m;  // 定义变量n和m,分别表示行数和列数intmain(){    cin >> n >> m;  // 输入行数n和列数m    // 外层循环控制行数    for (int i = 1; i <= n; i++)    {        // 内层循环控制列数        for (int j = 1; j <= m; j++)         {            cout << (i * j) << " ";  // 输出当前行号和列号的乘积        }        cout << endl;  // 每行输出结束后换行    }    return 0;}
GESP:2025年3月 C++二级 真题及解析-第24张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第25张图片-四季读书网
GESP:2025年3月 C++二级 真题及解析-第26张图片-四季读书网

GESP 2025年3月  时间跨越 

#include<bits/stdc++.h>using namespace std;int y, m, d, h, k;  // 定义变量:年、月、日、小时、增加的小时数int month[13] = {0312831303130313130313031};  // 每月的天数intmain(){    // 输入初始日期和时间    cin >> y >> m >> d >> h >> k;    // 判断是否为闰年,如果是则2月有29天    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)        month[2] = 29;    // 计算增加k小时后的时间    int h1 = (h + k) % 24;  // 新小时数    int d1 = d + (h + k) / 24;  // 新天数(可能超过当月天数)    // 处理天数超过当月天数的情况    if (d1 > month[m]) {        d1 = d1 - month[m];  // 减去当月天数        m++;  // 月份加1    }    // 处理月份超过12的情况    if (m > 12) {        y++;  // 年份加1        m = 1;  // 月份重置为1月    }    // 输出新的日期和时间    cout << y << " " << m << " " << d1 << " " << h1 << endl;    return 0;

GESP:2025年3月 C++二级 真题及解析-第27张图片-四季读书网

课程体系——

GESP:2025年3月 C++二级 真题及解析-第28张图片-四季读书网
需要无水印PDF格式文件,或者课程体系咨询,欢迎扫描下面二维码添加加好友垂询。
GESP:2025年3月 C++二级 真题及解析-第29张图片-四季读书网

GESP:2025年3月 C++二级 真题及解析-第30张图片-四季读书网

▍ 声明:本文整理自网络,如有侵权,请联系删除。

本公号刊载此文,是出于合法合理地分享和传播信息,扩大大受众范围,促进学术交流,推动共同进步之目的。公众号持有人郑重声明,本文的发布,将严格遵守相关规定和法律法规,不侵犯任意潜在作者的权益,不改变引用原文(若有)的意图和内容。若有来源标注错误或侵犯了您的合法权益,请随时与我们联系协商,联系(QQ):993225721,我们将及时更正、删除。文章若有幸得到转载,首先,公众号持有人感谢转载人为读者阅读提供了有价值的信息和知识,希望文章能够在被转载的平台上得到更广泛的传播和交流;其次,转载人应充分考虑到转载动作本身所可能带来的相应的风险和责任,包括但不限于侵犯知识产权、侵犯他人权益等行为所引起的法律责任,确保本文的合法传播和使用。同时,本人也极其愿意在转载过程中尽力配合转载人了解、关注、规避、消除相关的潜在风险。若转载人有相任何关疑虑,同样欢迎随时与我们联系协商,联系(QQ):993225721。

喜欢您关注我们哦——

抱歉,评论功能暂时关闭!