2023年12月真题
一、单选题(每题2分,共30分)
正确答案:C
考察知识点:变量的定义与使用
解析:变量命名规则:1、只能包括数字、字母和下划线;2、不能以数字开头;3、不能和关键字重名。C选项以数字开头,不能作为变量名,因此选 D。
正确答案:A
考察知识点:控制语句结构-循环
解析:题目中循环从10开始,到19结束,循环步长为2,相当于输出10~19之间所有的偶数。只有A选项可以得到相同的输出结果。
正确答案:D
考察知识点:控制语句结构-循环、分支、基本运算
解析:一个数最小的因子是1,最大的因子是其本身。循环应从1开始,到N结束,循环步长为1。只有D选项满足要求。
正确答案:D
考察知识点:控制语句结构-循环、分支、基本运算
解析:数位分离求得原数的逆序数,逆序之后的数和原数进行相等比较。但第3、4、5、6行循环结束的条件是N为0,循环结束后虽然得到了逆序数,但原数为0,因此不能达成预期目标,答案选D。
正确答案:D
考察知识点:控制语句结构-循环、分支、基本运算
解析:素数:只有1和其本身两个因数。如果小于等于N/2,存在某个数N的因数,则大于N/2也一定存在N的因数,因此只需要找2~N/2即可。题目中代码的边界不对,第2行循环条件应为 i<=N/2。答案选D。
正确答案:A
考察知识点:多层循环结构
解析:外层循环的循环变量 i:0~(N-1),内层循环的循环变量 j:1~(i-1),根据第4行,当 i*j 为偶数时,输出 i 跟着#。
当i为0、1时,内存循环不执行,当i为2时,内层循环循环变量j:1,满足条件,输出2#,当i为3时,内层循环循环变量j:1、2,当 j 为2时,满足条件,输出3#。循环嵌套结束,输出"0",答案为A。
正确答案:D
考察知识点:多层循环结构
解析:本题考察程序模拟结果,当 ij 为偶数时,cnt自增1,执行break,结束内层循环。第3行内层循环从1开始,循环步长为2,因此 j 的值为奇数,要想 ij 为偶数,只能 i 为偶数,i从1开始,循环条件 i<10,循环步长1,i为2、4、6、8时满足if条件,cnt自增1,外层循环结束条件时i>=10,因此循环嵌套结束后,cnt的值为4,i 的值为10,答案为D。
正确答案:C
考察知识点:多层分支 / 循环结构
解析:本题考察程序模拟结果,循环内嵌套多分支,如果N为奇数,break结束循环,否则如果N是3的倍数时,N自减5,否则,N自减20。N的值依次为100、80、60、55。答案为C。
正确答案:D
考察知识点:多层分支 / 循环结构
解析:本题考察程序模拟结果,循环内嵌套多分支,循环条件x<100,循环内部分支:如果x不是3的倍数,输出x加逗号;否则如果x大于等于10,break结束循环,否则x自增5。循环必执行语句,x自增2。x的值依次为1(输出1加逗号),3,10(输出10加逗号),12(大于等于10,结束循环)。循环结束,输出x。答案为D。
正确答案:B
考察知识点:多层循环结构
解析:本题考察多层循环结构,循环执行次数,i为0,内层循环不执行;i为1,j为0;;i为2,j为0、1;;i为3,j为0、1、2;;i为4,j为0、1、2、3。累加起来为10,答案为B。
正确答案:C
考察知识点:多层分支 / 循环结构、数学函数、数据类型的转化
解析:sqrt(i)函数,求一个数的开方,结果是double类型,要将其转成int类型,如果一个数开方的平方是其本身,则其是完全平方数。答案选 C。
正确答案:D
考察知识点:多层分支 / 循环结构、基本运算
解析:输出N行,第i行有i个数,从0~9进行从小到大循环输出。给出的代码中缺少换行,需要加在内存循环执行完后,也即第9行之后,答案选D。
正确答案:C
考察知识点:计算机基础
解析:声控智能驾驶系统,需要声音的输入设备和输出设备,A、B必须,需要设备感知周围环境自动选择优化路线,D必须。只有油量表不是必须的,本题答案C。
正确答案:B
考察知识点:计算机历史
解析:现代计算机基于 冯.诺伊曼 体系结构:运算器、控制器、存储器、输入设备、输出设备。
正确答案:B
考察知识点:多层分支 / 循环结构、基本运算
解析:因数对:同为某个数的因数,且值相差1,根据这个概念,只有B选项找不到所有的因数对。C、D选项,除了数本身之外,一个数最大的可能因子为N/2,因此循环条件设在 i<N/2也是可以的,减少了循环次数。
二、判断题(每题2分,共20分)
正确答案:正确
考察知识点:基本运算
解析:在C++中,两个整数常量相除,结果为整数。-7除以2结果为-3,答案正确。
正确答案:错误
考察知识点:基本运算,ASCII编码、数据类型转换
解析:将字符常量’9’转成int类型值48+9,表达式:2572,结果为228,答案错误。
正确答案:正确
考察知识点:基本运算,基本数据类型
解析:3+2结果为5,真;5-5结果为0,假。真和假进行逻辑与运算,结果为假。表述正确。
正确答案:错误
考察知识点:常用函数-随机数函数
解析:如果srand()使用相同的种子值初始化,那么后续调用rand()函数将产生相同的随机数序列。srand(0),随机数生成器的种子被设置为固定值0。重复执行程序,输出结果相同。但在一个程序中写的两行rang(),产生的随机数是不同的。本题表述错误。
正确答案:错误
考察知识点:循环结构、数据的真假性
解析:任何数据都具有真假性。四假:整数0,字符’\0’,布尔类型false,NULL,除此之外都为真。因此基本判断条件不是逻辑值,也不会导致语法错误。本题表述错误。
正确答案:错误
考察知识点:控制语句结构-循环
解析:循环从-500开始,循环条件 i<500,不包括500,循环步长1,累加循环变量。算最终的结果为-500。本题表述错误。
正确答案:错误
考察知识点:数据类型转换
解析:不同数据类型可以进行运算,比如’0’+9。类型不同时,会自动进行类型转换。本题表述错误。
正确答案:正确
考察知识点:数据类型转换
解析:当将一个类型的数据赋值不同类型的变量时,会发生自动类型转换,将赋值符号右边的数据转成左边的类型再进行赋值。本题表述正确。
正确答案:错误
考察知识点:计算机基础、计算机编程环境
解析:Dev C++(通常简称为 DevC)是一个集成开发环境(IDE)软件,是专门用于开发 C 和 C++ 程序的工具,为程序员提供了代码编辑、编译、调试和运行等功能的集成开发环境。操作系统(Operating System,OS)是管理计算机硬件与软件资源的计算机程序。Dev C++不属于操作系统软件。答案错误。
正确答案:正确
考察知识点:控制语句结构-循环
解析:本题考察 while 循环和 for 循环,他们之间可以进行等价转化。
三、编程题(每题25分,共50分)
本题考察:循环、分支、基本运算、斐波那契数列。
#include<bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, m, n, sum=0;
cin>>a>>b>>m>>n; //a、b:第一天、第二天的做题数目
sum = a+b; //总做题数
for(int i=3; i<=n; i++){
c=a+b; //第i的做题数是前两天的总和
sum+=c;
if(c>=m) break; //做题数大于或等于m题,停止做题
a=b;
b=c;
}
cout<<sum;
return 0;
}
本题考察 多层循环结构-输出图形。
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
//n*n的矩阵图形
for(int i=0; i<n; i++) { //行
for(int j=0; j<n; j++) { //列
//根据条件进行输出
if(j==0 || j==n-1) cout<<"|";
else if(i==n/2) cout<<"-";
else cout<<"a";
}
cout<<endl;
}
return 0;
}