2025年3月真题
一、单选题(每题2分,共30分)
正确答案:D
考察知识点:计算机相关知识
解析:《哪吒 2》是贺岁片电影,不是新型操作系统,不具备生成新软件的功能,所以 A、C 错误。DeepSeek 是人工智能模型,不是深海钻探软件,所以 B 错误。
DeepSeek 是人工智能模型,有一定创作能力,可在一定程度上根据电影场景生成剧情脚本 ,所以 D 正确。答案为D。
正确答案:C
考察知识点:流程图的概念与描述
解析:流程图中的图形符号
圆形(或圆角矩形):通常作为流程的起始或结束点,一个流程图一般有一个起始圆形和一个或多个结束圆形。
菱形:用于表示判断或决策点,例如 “是否满足条件”,菱形框内通常会写明判断的条件,根据条件的真假来决定流程的走向。
矩形:表示一个具体的步骤或操作,例如 “输入数据”“计算结果” 等。
箭头:用于连接各个图形符号,表示流程的方向和顺序,箭头的指向明确了流程从一个步骤到下一个步骤的流向。
输出语句应该在矩形,即平行四边形框中。答案为C。
正确答案:A
考察知识点:基本运算
解析:第2、3行代码,两个关系运算符表达式,并不会改变变量a和b的值。答案为A。
正确答案:A
考察知识点:基本运算,流程控制语句-选择
解析:编号1-5为红色球,6-8为绿色球,9-10为蓝色球。remainder=N%10的结果为0~9,即1-5为红色球,6-8为绿色球,9、0为蓝色球。
多分支语句最后一个else if可以修改为else,A选项正确。
remainder<=5,包括0,和原意不符,B选项错误。
6<=remainder<=8这种数学写法,C++不认。C选项错误。
取余运算得余数,除运算得商。D选项错误。
答案为 A。
正确答案:D
考察知识点:流程控制语句-循环、基本运算
解析:i%3的结果为true(不为0),执行tnt+=1,否则执行tnt+=2。当 i 为1,2,4,5,7,8,tnt+=1;当 i 为0,3,6,9,tnt+=2。tnt最终的值为14。答案为D。
正确答案:A
考察知识点:流程控制语句-循环
解析:for循环,循环体只有一句break,作用跳出循环,因此 i 的值没发生改变。答案为A。
正确答案:D
考察知识点:流程控制语句-循环、选择
解析:如果 i%3==0,执行continue,跳过本次循环之后的语句,进入下次循环,因此当 i 为1、2、4、5、7、8时执行第5行。for循环执行完毕,i的值为10,满足第7行 if 条件,执行第 8 行。答案为D。
正确答案:A
考察知识点:多层分支/循环结构
解析:考察双层循环嵌套。答案为A。
正确答案:C
考察知识点:控制语句结构-循环、选择
解析:一个数num能被2整除,即:num%2==0,也可以表示为!(num%2)或者num%2!=1。一个数除以7余数为2,即:num%7==2。组合一下,A、B、D都可以。答案为C。
正确答案:B
考察知识点:控制语句结构-选择、循环
解析:只要包含3,不论是在什么位置上,即为符合条件,不用继续往前查找,因此用break,继续往前查找,去掉最后一位数,使用除以10操作。答案为B。
正确答案:C
考察知识点:控制语句结构-循环、多层分支/循环结构
解析:实现1应用了前项计算结果,计算量更小,因此效率高。实现2更利于理解。答案为C。
正确答案:D
考察知识点:多层分支/循环结构
解析:A 选项:在 C++ 中,isPrime(j) 本身就是返回 bool 值,isPrime(j) && isPrime(i - j) 和 isPrime(j) == true && isPrime(i - j) == true 效果相同,都是判断 j 和 i - j 是不是质数,该说法正确。
B 选项:内层循环从 j = 2 开始,当找到两个质数满足条件时,j 是较小的那个数,i - j 是较大的数 ,所以输出的一对质数一定是小的数在前,该说法正确。
C 选项:程序只是验证有限范围内的偶数,而哥德巴赫猜想是针对大于 2 的所有偶数,有限的验证不能从数学上证明该猜想,该说法正确。
D 选项:break 语句在 if 语句块内,当找到一组满足条件的质数对时,就跳出内层循环,这符合程序验证每个偶数是否能分解为两个质数之和的逻辑,如果移到 if 语句块外,则会导致每个偶数找到一组质数对后还会继续寻找其他质数对,不符合验证的要求,该说法错误。
答案为D。
正确答案:B
考察知识点:多层分支/循环结构、输入输出语句
解析:printf(“\n”)可以实现输出换行,A选项错误。
B选项考察符合赋值运算符,last += 1 等价于 last = last + 1,B选项正确。
C选项,j<i+1,j最大取值为i,但j<i,j的最大取值为i-1,修改后不等价。C选项错误。
D选项,last=1,超过9,从1开始重新计数。如果last等于0,超过9,从0开始重新计数。执行效果不同。D选项错误。
答案为B。
正确答案:C
考察知识点:控制语句结构-循环、随机数函数
解析:考察常用函数-随机数函数。答案为C。
正确答案:C
考察知识点:常用数学函数
解析:二者相差足够小,是a和b的差值足够小,而a和b的关系未知,因此条件应该为(abs(b-a) <= 0.000001)。答案为C。
二、判断题(每题2分,共20分)
正确答案:正确
考察知识点:程序设计语言的特点
解析:C++ 和 Python 属于高级编程语言,它们贴近人类自然语言和数学表达式,便于开发者编写代码。然而计算机硬件只能理解机器指令(二进制代码),所以高级编程语言编写的语句需要通过编译器(如 C++)或解释器(如 Python)转换为机器指令,计算机才能执行 。答案正确。
正确答案:正确
考察知识点:基本运算
解析:N - N / 10 * 10:N / 10 会得到 N 除以 10 的商(向下取整),然后再乘以 10,得到的是一个能被 10 整除且不大于 N 的数,再做减法,得到个位数。
N % 10通过取余运算直接得到个位数。答案正确。
正确答案:正确
考察知识点:基本运算-三目运算符
解析:10 <= N <= 12,和数学中不同,并不表示N大于等于10且N小于等于12,而是先计算10=<N的结果,再拿结果和12进行比较。三目运算符:表达式1? 表达式2 : 表达式3; 表达式1成立,执行表达式2,否则执行表达式3。答案正确。
正确答案:错误
考察知识点:常用数学函数
解析:在 C++ 中,sqrt() 函数用于计算一个数的平方根,其返回值类型通常是 double 类型。由于浮点数在计算机中的存储存在精度问题,对于 sqrt(N) * sqrt(N) == N 这种比较,当 N 为正整数时,理论上开平方再平方应该等于本身,但由于浮点数精度误差,实际计算出来的 sqrt(N) * sqrt(N) 的结果可能与 N 存在极微小的差异,导致比较结果为 false。答案错误。
正确答案:正确
考察知识点:基本运算
解析:第2、3、4行可以完成两个变量的交换,执行完a值为3,b值为2。答案正确。
正确答案:正确
考察知识点:控制语句结构-循环
解析:for循环,关键字continue跳过本次循环之后的语句,进入下次循环,直到循环条件不成立,循环结束 i 为10。答案正确。
正确答案:正确
考察知识点:控制语句结构-循环
解析:关键字break用于结束循环,关键字continue跳过本次循环之后的语句,进入下次循环。for循环,循环体第一句即为break,循环结束,此时 i 的值为1。答案正确。
正确答案:正确
考察知识点:多层分支/循环结构
解析:当i为0,内层循环执行0次;当i为1,内层循环执行1次;当i为2,内层循环执行2次;当i为3,内层循环执行3次;当i为4,内层循环执行4次。循环体一共执行0+1+2+3+4,一共10次。答案正确。
正确答案:正确
考察知识点:流程控制语句-循环
解析:每次循环,将循环变量加在tnt上,当i=1调整为i=0,多加一个0并不会改变最后的结果。答案正确。
正确答案:错误
考察知识点:多层分支/循环结构
解析:每次执行内层循环,i 的值会被赋值为 0,内层循环条件不成立,执行第4行,输出0。回到第1行 i 自增1,i的值为2,外层循环条件成立,执行内层循环,i 的值再次被赋值为0,如此继续,以上代码的循环不会终止,会一直输出0直到程序崩溃。答案错误。
三、编程题(每题25分,共50分)
本题考察循环嵌套 。
#include<iostream>
using namespace std;
int main() {
int n, m;
cin>>n>>m;
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
cout<<i*j<<" ";
}
cout<<endl;
}
return 0;
}
本题考察闰年判断、每月天数、算术运算符、日期推断题
一个简单的模拟,k给的比较小,符合二级的难度,如果k给的很大,这个题难度就大了一点。
#include<iostream>
using namespace std;
int main() {
int y, m, d, h, k;
cin>>y>>m>>d>>h>>k;
h+=k;
if(h>=24){
h-=24;
d++;
int day;
if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) day=31;
else if(m==4 || m==6 || m==9 || m==11) day=30;
else{
if(y%4==0 && y%100!=0 || y%400==0) day=29;
else day=28;
}
if(d>day){
d=1;
m++;
if(m>12){
m=1;
y++;
}
}
}
cout<<y<<" "<<m<<" "<<d<<" "<<h<<endl;
return 0;
}