老师已为大家备好电子打印版,需要完整电子版文件的朋友,可以拉到文末查看。 【答案解析】
1.解释:答案选D。 ● DeepSeek,是一个国产人工智能大模型,专注于自然语言处理、图像识别和数据分析等任务。它可以生成文本内容,因此可以根据《哪吒2》的场景生成剧情脚本。 ● 《哪吒2》,是一部动画电影,与操作系统或软件生成无关。 2.解释:答案选D。 详细解释如下—— 选项A:在集成开发环境中编辑源代码文件时,修改变量定义是非常常见的操作。开发者可以根据需求对变量的类型、名称、初始值等进行修改,以满足程序的逻辑和功能要求。所以在集成开发环境中可以执行修改变量定义的操作。 选项B:保存代码修改是集成开发环境的基本功能之一。当开发者对源代码文件进行了修改后,需要将这些修改保存到磁盘上,以便后续继续使用或进行版本控制。集成开发环境通常会提供保存文件的快捷键或菜单选项,方便开发者保存代码。所以在集成开发环境中可以执行保存代码修改的操作。 选项C:撤销代码修改也是集成开发环境中常用的功能。在编辑代码的过程中,开发者可能会不小心进行了错误的修改,或者想要回到之前的某个状态。此时,集成开发环境提供的撤销功能可以帮助开发者撤销上一步或多步的操作,恢复到之前的代码状态。所以在集成开发环境中可以执行撤销代码修改的操作。 选项D:集成开发环境主要用于编写、编辑、调试和编译源代码文件,其核心功能围绕代码的处理展开。虽然有些集成开发环境可能具备一定的文档编辑或注释功能,但通常不会直接支持在源代码文件中插入执行截图。执行截图更多地用于文档记录、问题反馈等场景,而不是直接插入到源代码文件中。所以在集成开发环境中编辑源代码文件时不可以执行插入执行截图的操作。选项D错误。 3.解释:答案选D。 相关知识点的复习与拓展: 本题考察C++变量的命名规则。变量命名时需要满足:
①变量名只能由大小写字母、数字和下划线
_组成;②首位字符不能是数字;
③变量名不能是C++中的关键字(保留字)。
选项A:在该选项中,变量名包含了连字符 -,根据 C++ 变量命名规则,变量名只能由字母、数字和下划线组成,所以连字符Var-1不符合变量命名规则,不能作为变量。选项 B:变量名的第一个字符是美元符号 $,且美元符号并不在 C++ 允许的变量名组成字符范围内,所以$1不符合变量命名规则,不能作为变量。选项C:变量名包含了百分号 %,而百分号不在 C++ 允许的变量名组成字符范围内,所以%%1不符合变量命名规则,不能作为变量。选项D:该选项的变量名由下划线、字母和数字组成,且第一个字符是下划线,符合 C++ 变量命名规则,可以作为变量。选项D正确。 相关知识点的复习与拓展: 下图为截至本次考试当年3月份,C++的关键字列表——
4.解释:答案选C。
C++ 关键字是指在 C++ 语言中有特定含义,被编译器预先定义好的单词,用户不能将其作为变量名、函数名等标识符使用。
选项 A:
abs是 C++ 标准库<cstdlib>中提供的一个函数,用于计算整数的绝对值。它不是 C++ 语言的关键字,而是一个库函数名。选项 B:
cin是 C++ 标准输入流对象,在<iostream>头文件中定义,用于从标准输入设备(通常是键盘)读取数据。它不是 C++ 语言的关键字,而是标准库中的一个对象。选项 C:
do是 C++ 语言的关键字,用于构成do-while循环语句。C++ 语言在执行do-while时,会先执行一次循环体,然后再判断循环条件是否成立——若成立则继续循环,不成立则退出循环。选项C正确。选项 D:
endl是 C++ 标准库在<iostream>头中定义的一个操纵符,用于在输出流中插入一个换行符,并刷新输出缓冲区。它不是 C++ 语言的关键字,而是标准库中的一个操纵符。相关知识点的复习与拓展:
截至本次考试当年3月份,C++的关键字列表详见上题解释图。
5.解释:答案选C。
C++中, break语句的主要作用是跳出循环语句(for()、while()、do-while()),或者构成switch()语句。如果break语句不在这些结构内部,就会导致编译错误。选项A:在 L1处填入 do {,L2 处填入} while (i != 0);,这样,break语句处于do-while循环内部。break语句在do-while循环中是合法的,它会使程序跳出当前的do-while循环,所以该代码可以通过编译。选项B:在 L1处填入 for (; i < 10; i++) {,L2 处填入},此时break语句处于for()循环内部。break语句语句在for()循环中是合法的,它会使程序跳出当前的for()循环,所以该代码可以通过编译。选项C:在 L1处填入 if (i == 0) {,L2 处填入},此时break语句处于if()语句内部。但if()语句不是break语句适用的结构,因为break语句只能用于循环语句(for()、while()、do-while())或者switch()语句中,所以该代码不能通过编译。选项D:在 L1处填入 相关知识点的复习与拓展:switch (i) {语句,L2 处填入},此时break语句处于switch()语句内部。break语句在switch()语句是合法的,它会使程序跳出当前的switch()语句,所以该代码可以通过编译。特别需要要指出的是,
switch()语句的运行逻辑与循环语句(for()、while()、do-while())不同,参考下图可以帮助更好的理解——6.解释:答案选B。
本题考查
printf()语句的格式化输出。选项D,下划线
_的个数不对,C选项,$的个数不对,首先排除。%02d表示输出两位整数,不足时用0补齐;%2d表示输出两位整数,不足时用半角的空格补齐。选项A错误。对于整数 22,其位数为 2,满足宽度要求,直接输出 22。
相关知识点的复习与拓展:
截至本次考试当年3月份,命令语句
printf()语句的常用输出格式控制符及其意义详见下图——7.解释:答案选C。
选项A:C++支持在字符串中使用英文字符,编译器没有问题,所以选项A正确。 选项B:这里涉及到中文字符的处理。在C++中,如果源文件的编码是UTF-8,并且编译器支持,那么直接写中文是没问题的。因此,选项B是正确的。 选项C:一对单引号用于引用字符型常量,在 printf()中,字符"不允许用两个'替换,从另一个角度来说,可以理解为不能将一个字符用两个字符来替换。选项C的表达是错误的。选项D:一对双引号用于表示字符串,讲一个双引号替换为三个双引号后,本质上可以理解为中间的两对双引号表示为空串,因此不影响程序输出。选项D是正确的。 相关知识点的复习与拓展: 如果需要用 printf()输出字符"或',需要在上述两个字符前加上反义字符\,如下图所示——8.解释:答案选D。
在 C++ 中,运算符乘除取模( *、/、%)的优先级相同,且相同优先级的运算符按照从左到右的顺序依次计算:先进行整除运算(/),再进行取模运算(%)。步骤一:计算 16/4 根据除法运算规则,16/4 的结果为 4,此时原表达式 16/4%2 变为 4%2。 步骤二:计算 4%2 取模运算(%)的作用是计算两个数相除的余数。4 除以 2 的商为 2,余数为 0,即 4%2 的结果为 0。 因此,表达式 16/4%2 的值是 0,选项D正确。 相关知识点的复习与拓展: 截至本次考试当年3月份,C++运算符的优先级顺序,如下图所示—— 9.解释:答案选D。
相关知识点的复习与拓展: 截至本次考试当年3月份,C++运算符的优先级顺序,如上图所示。 在 C++ 中,运算符乘除取模(
*、/、%)的优先级相同,且高于运算符加减(+、-)。变量N初始赋值为 12。步骤一:计算 12%3,1结果为 0;12/5,结果为 2。 步骤二:计算 0+2=2。 因此,表达式N%3+N/5的结果是 2,选项D正确。10.解释:答案选D。
在这个代码中,格式化字符串是 "{N}*{N}={%d*%d}",后续有三个参数N、N和N*N,其值分别为 10、10 和 100。对于格式化字符串中的普通字符(非占位符部分), printf()函数会原样输出。所以{N}*{N}={会被原样输出。格式化字符串中有两个 %d占位符,%d用于输出整数。printf()函数会按照顺序用后续的参数替换这些占位符。第一个 %d会被替换为N的值 10,第二个%d同样会被替换为N的值 10。而格式化字符串中没有第三个 %d来对应参数N*N(值为100),所以这个参数不会影响输出。相关知识点的复习与拓展:
截至本次考试当年3月份,命令语句
printf()语句的常用输出格式控制符及其意义详见下图——11.解释:答案选D。
截至本次考试当年3月份,C++运算符的优先级顺序,如上面第8题的题解附图所示。
运算符
/与*优先级相同,计算顺序从左到右,100/200 得到 0 ,0*200 得到 0。12.解释:答案选C。
为了兼容C语言,C++的数值类型( 表达式char,short,int,long long等)可以隐式类型转换当作布尔类型(bool)。数字 0 作为假值(false);非零的值,比如 2 ,都会作为真值(true)。!x等价于x==0与!(x%7)等价于x%7==0,选项C不能实现题干的要求。13.解释:答案选A。
根据题干代码,变量
tnt的值为 -1000 到 999 的所有整数之和,结果为 -1000。14.解释:答案选A。
首先,我们注意到,题干代码中,变量i的是定义在for()循环体的外面,因此循环结束后i不会系统被回收。循环将变量i初始化为 1,步长为 5 (循环体中的continue;语句,作用是退出当前循环,对变量i的值无影响,可以忽略),变量i的值依次变化为:1,6,11,16,……,96,101,当i<100不成立时,循环结束,此时i的值为 101,程序输出 101 。截至考试当年3月,C++中有关 continue;和break;的运行机制,请参考下图——15.解释:答案选C。 代码使用 for()循环从i=5开始,每次递增 5,直到当i>=100时停止循环。在循环体中,首先判断 i是否能被 2 整除:如果能,则执行continue;语句,跳过本次循环的剩余部分,直接进入下一次循环;如果i不能被 2 整除,则直接将tnt的值加 1。接着判断 i是否能同时被 3 和 7 整除,如果能,则执行break;语句,跳出整个循环。手搓模拟程序的运行过程—— 第一轮循环, i=5,执行tnt+=10;;第二轮循环, i=10,执行continue;;第三轮循环, i=15,执行tnt+=10;;…… 观察规律,当 i的值分别是 5,15,25,…… ,95 时,执行tnt+=10;。循环过程中i的值不会同时为 3 和 7 的倍数,循环不会中途结束,所以最终tnt的值为10。相关知识点的复习与拓展: 截至考试当年3月,C++中有关continue;和break;的运行机制,请参考上题的解释图。【答案解析】
1.解释:正确。 C++ 和 Python 都属于高级编程语言。高级编程语言编写的代码不能直接被计算机硬件理解和执行,需要通过编译(如 C++)或者解释(如 Python)的方式将其转换为机器指令,计算机硬件才能依据这些机器指令完成相应的操作。 2.解释:错误。 在 C++ 里,表达式 N*2%N运用了乘法和取模运算。根据运算符优先级,先进行乘法运算,再进行取模运算。假设N是正整数,N*2%N等同于(N*2)%N。因为N*2是N的两倍,所以N*2除以N的余数必然是 0,并非 2。相关知识点的复习与拓展: 截至本次考试当年3月份,C++运算符的优先级顺序,如下图所示—— 3.解释:错误。 首先,
N被定义为char类型。当使用cin>>N是输入 10 时,实际存储到 N 中的是字符'1'(因为char类型只能存储一个字符),而不是整数 10。接着,N*2是字符'1'对应的 ASCII 码值( 49 )乘以 2,结果为 98。截至考试当年3月的ASCII码表,参见下图—— 4.解释:正确。 C++语言中, 相关知识点的复习与拓展:continue;语句的作用是跳过本次循环体中剩余的语句,直接进入下一次循环。在题干的代码里,当i是偶数时,会输出偶数,然后执行continue;语句,跳过else分支;当i是奇数时,会输出 奇数 。若删除continue;语句,当i是偶数时,输出偶数后会正常结束本次循环,不会执行else分支,程序的执行效果和有continue;语句时是一样的。C++中有关 continue;和break;的运行机制,请参考下图——5.解释:错误。 本题考察变量的命名规则。变量命名时需要满足:
①变量名只能由大小写字母、数字和下划线
_组成;②首位字符不能是数字;
③变量名不能是C++中的关键字(保留字)。
题干代码 Line 1 中,变量 _仅由下划线构成,符合 C++ 变量名的命名规则,能够作为变量名使用。6.解释:错误。 根据题干代码手搓,
for()循环初始时,i的值为 3,满足i<5的条件,输出 3,接着i的值变为 3 + 2 = 5,此时不满足i<5的条件,循环结束。所以只会输出输出 3,不会输出输出 5 。7.解释:错误。
手搓代码分析, i*2<i*i这个条件表达式在i的值从 0 到 9 递增时的结果:当 i=0时,0 * 2 < 0 * 0 为false。当 i=1时,1 * 2 < 1 * 1 为false。当 i=2时,2 * 2 < 2 * 2 为false。当 i>1时,i * 2 < i * i 为true。所以,输出 0 0 0 1 1 1 1 1 1 1,并非 7 个 true。 请注意:关系表达式的值是 bool类型,输出时会输出 0 或 1,而不是为 false或true。8.解释:错误。 本题考察变量的命名规则。变量命名时需要满足:
①变量名只能由大小写字母、数字和下划线
_组成;②首位字符不能是数字;
③变量名不能是C++中的关键字(保留字)。
题干的四个变量名中, 相关知识点的复习与拓展:user_Name、_userName以及userName都符合变量名的命名规则,而user-Name包含了连字符-,不符合变量名的命名规则。下图为截至本次考试当年3月份,C++的关键字列表——
9.解释:错误。
在 C++ 里,
continue;语句的作用是跳过本次循环体中剩余的语句,直接进入下一次循环,它并不会提前结束整个循环。如果要提前结束整个循环,需要用到的是break;语句。10.解释:错误。 相关知识点的复习与拓展: C++中有关 continue;和break;的运行机制,请参考下图——题干中,
scanf(“%d”, &N);要求输入一个整数,当输入 3.6 时,scanf会读取整数部分 3 并存储到N中。接着,计算N/3*5,运算符/和*,优先级相同,算式应从左往右计算。因为N的值为 3,3/ 3*5 = 1*5 = 5,并非 6。相关知识点的复习与拓展: 截至本次考试当年3月份,C++运算符的优先级顺序,如下图所示—— GESP 2025年3月 C++一级 图书馆里的老鼠
#include<bits/stdc++.h>using namespace std;intmain(){int n, x, y;cin >> n >> x >> y;if (y % x == 0){cout << n - y / x;}else{cout << n - y / x - 1;}return 0;}GESP 2025年3月 C++一级 四舍五入
#include<bits/stdc++.h>using namespace std;intmain(){int n,a;cin>>n;for(int i=1;i<=n;i++){cin>>a;cout<<round(a/10.0)*10<<endl;}return 0;}课程体系——
需要无水印PDF格式文件,或者课程体系咨询,欢迎扫描下面二维码添加加好友垂询。
▍ 声明:本文整理自网络,如有侵权,请联系删除。
本公号刊载此文,是出于合法合理地分享和传播信息,扩大大受众范围,促进学术交流,推动共同进步之目的。公众号持有人郑重声明,本文的发布,将严格遵守相关规定和法律法规,不侵犯任意潜在作者的权益,不改变引用原文(若有)的意图和内容。若有来源标注错误或侵犯了您的合法权益,请随时与我们联系协商,联系(QQ):993225721,我们将及时更正、删除。文章若有幸得到转载,首先,公众号持有人感谢转载人为读者阅读提供了有价值的信息和知识,希望文章能够在被转载的平台上得到更广泛的传播和交流;其次,转载人应充分考虑到转载动作本身所可能带来的相应的风险和责任,包括但不限于侵犯知识产权、侵犯他人权益等行为所引起的法律责任,确保本文的合法传播和使用。同时,本人也极其愿意在转载过程中尽力配合转载人了解、关注、规避、消除相关的潜在风险。若转载人有相任何关疑虑,同样欢迎随时与我们联系协商,联系(QQ):993225721。 喜欢您关注我们哦——
































