师已为大家备好电子打印版,需要完整电子版文件的朋友,可以拉到文末查看。 【答案解析】
1.解释:答案选D。 ● DeepSeek,是一个国产人工智能大模型,专注于自然语言处理、图像识别和数据分析等任务。它可以生成文本内容,因此可以根据《哪吒2》的场景生成剧情脚本。 ● 《哪吒2》,是一部动画电影,与操作系统或软件生成无关。 2.解释:答案选C。 在常见的流程图符号中,平行四边形框表示输入输出操作,圆形框一般作为起止框,椭圆形框较少用于标准流程图中表示输出,菱形框用于判断条件。所以输出语句应在平行四边形框中。 相关知识点的复习与拓展: 截至本次考试当年3月,行业公认的常用流程图符号,参见下图—— 执行标准为—— 3.解释:答案选A。 Line 2 的: a==b;和 Line 3 的b==a;是逻辑比较,不修改变量值,故输出初始值 3 4,注意中间有一个半角的空格分割。4.解释:答案选A。
对四个选项分别讨论—— 选项A,在原代码逻辑中,
remainder的取值范围已由前面的条件限定,所以 Line 9 整体改为else效果相同。选项A正确。选项B,Line 5,修改为
remainder<=5会导致判断逻辑错误(没有排除编号0),无法准确判断红色球的编号范围。选项C,
6<=remainder<=8在C++中不是合法的条件判断写法。选项D,
remainder=N%10是为了获取编号除以10的余数,从而可以确定球的颜色,改为remainder=N/10会改变计算逻辑,无法正确判断颜色。5.解释:答案选D。
为了兼容C语言,C++的数值类型( char,short,int,long long等)可以隐式类型转换当作布尔类型(bool)。数字 0 作为假值(false);非零的值,比如 2 ,都会作为真值(true)。代码思路:在
for()循环中,变量i的值从0到9变化。当变量i的值不能被3整除时,即i%3不为0时(被隐式转换为true),变量tnt自增1;当变量i的值能被3整除时,即i%3为0时(被隐式转换为false),执行else分支,变量tnt自增2。整数0到9中,能被3整除的数有 0、3、6、9,这4个数使变量tnt每次循环自增2,共加8;不能被3整除的数有 1、2、4、5、7、8,这6个数使变量tnt每次循环自增1,共加6。所以循环结束后,tnt=8+6=14 。6.解释:答案选A。
首先,变量i的是定义在for()循环体的外面,因此循环结束后i不会系统被回收。在 for()循环中,当第一次进入循环时,变量i=10,然后执行break;语句,直接跳出循环。此时i值并没有在循环中被改变,所以输出为 10。相关知识点的复习与拓展:截至考试当年3月,C++中有关 continue;和break;的运行机制,可以 参考下图——7.解释:答案选D。
首先,变量 i的是定义在for()循环体的外面,因此循环结束后i不会系统被回收。在 for()循环中,当i%3==0,即变量i的值能被3整除时,执行continue;跳过本次循环,不输出内容;否则,当i%3==0不成立,即变量 i的值不能被3整除时,继续运行下面的代码,输出 0# (变量i的值分别为 1,2,4,5,7,8 共6次),循环结束后,变量 i的值变为 10,满足if(i>=10)的条件,所以再输出1# 。最终输出 0#0#0#0#0#0#1#。 8.解释:答案选A。
外层for()循环中,变量i的值从0到4递增,对于每次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==0为false时,执行else分支,接着用j/=10;去掉变量j的个位,继续判断变量j的剩余部分是否还含有 3,直至变量j的值归为 0,while()循环终止。截至考试当年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,根据本题要求的程序设计思路,应该是在找到质数对后立即用 选项A,break;语句退出内层循环,break;语句移至if()语句外会导致错误跳过后续检查。选项D是错误的说法。13.解释:答案选B。
选项A,用
printf("\n")语句实现可以输出换行,选项A表述错误。选项B,
last+=1和last=last+1都能实现变量last自增 1 的操作,执行效果相同。选项B正确。选项C,
j<i+1是正确的,用于控制每行输出的数字个数,不需要修改。选项D,将
last=1改为blast=0,会改变输出的起始数字,执行效果不同。14.解释:答案选C。
函数rand()用于生成随机整数。rand()%11生成的随机数范围是 0 到 10,不符合题干的要求。选项B,
rand()%10生成的随机数范围是 0 到 9,不符合题干的要求。选项C,
rand()%10+1生成的随机数范围是 1 到 10 ;符合题干的要求。选项D,
rand()%9+1生成的随机数范围是 1 到 9,不符合题干的要求。相关知识点的复习与拓展:
截至考试当年3月份,C++随机数函数的基本用法,可以参考下图——
15.解释:答案选C。
浮点数相等需用绝对值误差判断,选项C,作为判断条件,
(abs(b-a)<=0.000001)能够覆盖正负差异。【答案解析】
1.解释:正确。 高级编程语言编写的程序需要经过编译或解释过程,最终转换为机器指令在计算机硬件上执行,所以该说法正确。 2.解释:正确。 在整数运算中, N/10进行整除取商,得到的是N去掉个位后的数,再乘以 10 用 N减去,结果就是N的个位数;N%10直接计算N除以10的余数,也就是N的个位数,所以该说法正确。相关知识点的复习与拓展: 截至考试当年12月,有关C/C++语言的运算符优先级,详见下表—— 3.解释:正确。 本题输出的是三目运算符的结果,对于条件表达式的运算按照从左到右的顺序进行。先计算表达式
10<=N的值,再拿该值和 12 进行比较;表达式10<=N的值为1(布尔值true);然后,表达式1<=12的值为1(布尔值true),程序输出true。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;的运行机制,请参考下图——7.解释:正确。
截至考试当年3月,C++中有关 continue;和break;的运行机制,请参考上一题图。首先,我们注意到,题干代码中,变量 i的是定义在for()循环体的外面,因此循环结束后i不会系统被回收。在
for()循环中,break;语句会使程序立即跳出循环,continue;语句在break;语句之后,不会被执行。循环初始,变量i的赋值为 1,然后执行break;语句跳出循环,此时变量i的值保持为 1 ,但循环已经结束,cout << i << endl;语句输出的结果是 1 ,题目说法正确。8.解释:正确。
外层
for()循环,变量i的取值由 0 自增到 4。变量
i的值为 0 时,内层for()循环中条件j<i不成立,不会执行内层循环;变量
i的值自增为 1 时,内层for()循环执行 1 次;变量
i的值自增为 2 时,内层for()循环执行 2 次;变量
i的值自增为 3 时,内层for()循环执行 3 次;变量
程序总共执行 1+2+3+4=10 次,输出10行 OK ,题目说法正确。i的值自增为 4 时,内层for()循环执行 4 次;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++二级 等差矩阵
#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月 时间跨越
#include<bits/stdc++.h>using namespace std;int y, m, d, h, k; // 定义变量:年、月、日、小时、增加的小时数int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每月的天数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++; // 年份加1m = 1; // 月份重置为1月}// 输出新的日期和时间cout << y << " " << m << " " << d1 << " " << h1 << endl;return 0;}
课程体系——
需要无水印PDF格式文件,或者课程体系咨询,欢迎扫描下面二维码添加加好友垂询。
▍ 声明:本文整理自网络,如有侵权,请联系删除。
本公号刊载此文,是出于合法合理地分享和传播信息,扩大大受众范围,促进学术交流,推动共同进步之目的。公众号持有人郑重声明,本文的发布,将严格遵守相关规定和法律法规,不侵犯任意潜在作者的权益,不改变引用原文(若有)的意图和内容。若有来源标注错误或侵犯了您的合法权益,请随时与我们联系协商,联系(QQ):993225721,我们将及时更正、删除。文章若有幸得到转载,首先,公众号持有人感谢转载人为读者阅读提供了有价值的信息和知识,希望文章能够在被转载的平台上得到更广泛的传播和交流;其次,转载人应充分考虑到转载动作本身所可能带来的相应的风险和责任,包括但不限于侵犯知识产权、侵犯他人权益等行为所引起的法律责任,确保本文的合法传播和使用。同时,本人也极其愿意在转载过程中尽力配合转载人了解、关注、规避、消除相关的潜在风险。若转载人有相任何关疑虑,同样欢迎随时与我们联系协商,联系(QQ):993225721。 喜欢您关注我们哦——





























