2023年3月真题
一、单选题(每题2分,共30分)
正确答案:D
解析:考察知识点:计算机的存储
光盘是光存储介质,是通过激光高温改变光盘涂覆层的形状来记录数据的,不会因为磁场而改变记录特性。硬盘是磁介质的数据存储设备,会直接受到磁场干扰。强磁场会在 U 盘和内存的电路中产生感应电流,可能会破坏存储器,导致数据受损。所以此题正确答案为 D。
正确答案:C
解析:考察知识点:流程控制结构,流程图
流程图根据是否按下空格键设置了两个分支,符合分支结构的特征,所以本题正确答案为 C。
正确答案:A
解析:考察知识点:计算机的存储
在当前 C++标准下,double 类型通常占用 8 个字节,bool 类型占用1个字节,int 类型通常占用 4 个字节,char 类型占用 1 字节。int 类型的取值范围为
−
2
31
~
2
31
−
1
− 2^{31}~2^{31} − 1
−231~231−1,char 类型的范围是-128~127,所以本题正确答案为A。
正确答案:D
解析:考察知识点:变量的定义与使用
变量定义时,必须指定类型,且变量名必须为合法标识符(只能由字母,数字,下划线组成,且不能以数字开头),所以本题正确答案为D。
正确答案:B
解析:考察知识点:程序设计语言的特点
本题属于考察 C++语言的关键字,max 是 C++中的一个库函数,不属于关键字,所以本题正确答案为 B。
正确答案:A
解析:考察知识点:算术运算符
B 选项 a /= b,等价于 a = a / b;
C 选项 a -= b,等价于a = a - b;
D 选项“!=”是不等于。
A 选项“=”并不是 C++语言的运算符,所以本题正确答案为A。
正确答案:C
解析:考察知识点:基本数据类型
A 选项,赋值号右侧表达式对 a 的 ASCII 码数值加 1,结果为int 类型,赋值给b时转换为 char 类型,也即比 a 的 ASCII 码值大 1 的对应字符。符合C++语法。
B 选项,'1’为 char 类型常量,赋值号右侧表达式对 a 的ASCII 码数值加’1’的ASCII
码数值,结果为 char 类型,赋值给 b。符合 C++语法。
C 选项,'a’为 char 类型常量,常量不能进行++自增运算,不符合C++语法。
D 选项,a 为 char 类型常量,可以进行++自增运算。该语句将a 变为ASCII 码值增加 1 的对应字符,并将变化前的 a 值赋值给 b。符合C++语法。所以本题正确答案为 C。
正确答案:C
解析:考察知识点:算术运算符
A 选项中所有参与计算的数都是整型,最终的计算结果也是整型,会默认向下取整,导致平均值不准确。B 选项计算的是 a、b、c、d 四个整数的和除以 4 的余数。
C 选项为 a、b、c、d 四个整数的和除以 4.0 的结果,计算过程中会将 4.0 视为浮点数,整型与浮点型的计算结果默认为浮点型。
D 选项“%”不能与浮点数参与运算,用法错误。所以本题正确答案为 C。
正确答案:B
解析:考察知识点:基本数据类型,算术运算符
B 选项中并未对 a + 1 的结果进行任何处理,变量a 在计算过程中未发生改变,所以本题正确答案为 B。
正确答案:B
解析:考察知识点:算术运算符
a -= 3;等价于 a = a - 3; 表示把 a - 3 的计算结果重新赋值给a 变量,所以本题正确答案为 B。
正确答案:A
解析:考察知识点:逻辑运算符
A 选项中“!a”表示 a 等于 0,同理“!b”表示b 等于0,整个表示式表示 a 等于 0 或 b 等于 0。
B 选项会先判断 a 变量和 b 变量是否相等(若a 和b相等,表达式的值为 1,若 a 和 b 不相等,表达式的值为 0),然后再判断表达式(a==b)的值是否为 0。
C 选项表示 a 等于 0 且 b 等于 0。
D 选项表示表达式(a==0)减表达式(b==0)的计算结果是否为 0,表示 a 和 b 同时为 0 或a 和b 同时都不为0。所以本题正确答案为 A。
正确答案:D
解析:考察知识点:逻辑运算符
A 选项,a <= a 总是成立,因此表达式等价于1 <= z。
B 选项等价于a<=‘z’。
C 选项无论’a’ <= a 是否成立,表达式的值 0 或 1 都小于’z’。
D 选项表示a大于等于’a’,并且 a 小于等于’z’,说明 a 变量的 ASCII 码在字符’a’和字符’z’对应的ASCII 码之间,即 a 变量为小写字母。所以本题正确答案为D。
正确答案:C
解析:考察知识点:基本运算
本题考察通过算术运算交换两个变量数值,可将选项带入进行计算,本题正确答案为 C。
正确答案:D
解析:考察知识点:控制语句结构、字符型、基本运算
可以将选项带入排除 A,B,C 选项,需要注意B 选项中5 没有单引号,所以表示的不是字符’5’,D 选项中 ch 虽然是字符类型,但计算时会使用对应的ASCII 码%2,字符’1’到字符’9’之间,所有 ASCII 码中有5 个是奇数,所以本题正确答案为 D。
正确答案:C
解析:考察知识点:控制语句结构、布尔类型、基本运算
题目中 i 的循环范围是 2~n,即分别使用 n 对2~n 之间的所有数进行求余运算,由于 n 能够被自身整除,所以循环结束后 isprime 的值一定为false,但是 bool 类型在输出时不会输出 true 或 false,输出时只会输出1 或0,所以本题正确答案为 C。
二、判断题(每题2分,共20分)
正确答案:错误
解析:考察知识点:计算机的存储
本题属于考察数据单位的换算,1GB=1024MB,4GB 和4096MB 容量一样大。所以本题错误。
正确答案:错误
解析:考察知识点:计算机网络
IP 地址是一个 32 位的二进制数,通常被分隔为4 个8 位二进制数,常用“点分十进制”的表示形式,形如(a.b.c.d),其中 a、b、c、d 都是0~255 之间的十进制整数。所以本题错误。
正确答案:正确
解析:考察知识点:程序设计语言的特点
本题考察 C++程序的基本结构,一个程序只能有一个main 函数。所以本题正确。
正确答案:错误
解析:考察知识点:变量的定义与使用
本题考察变量的概念及定义规则。变量定义时,必须指定类型,且变量名必须为合法标识符(只能由字母,数字,下划线组成,且不能以数字开头)。所以本题错误。
正确答案:错误
解析:考察知识点:基本数据类型
本题属于考察对不同数据类型的区分,加上单引号后’a’表示字符常量,与变量 a 无关,且与字符常量’1’不同。所以本题错误。
正确答案:错误
解析:考察知识点:控制语句结构-多层分支
本题考察 if 语句的用法,if 语句可以嵌套 if…else。如果嵌套后与预期语义不符,可以使用复合语句{…}加以区别。所以本题错误。
正确答案:错误
解析:考察知识点:控制语句结构-循环结构
本题考察 while 语句的用法,while()语句是否会执行循环体,取决于小括号中的条件是否成立,若最开始条件不成立,则一次都不会执行循环体。所以本题错误。
正确答案:正确
解析:考察知识点:基本运算-比较运算符
本题考察运算符,>=是表示“大于等于”的关系运算符,=>不是C++中的运算符。所以本题正确。
正确答案:正确
解析:考察知识点:字符型
本题考察字符类型中大小写字母转换的方法,小写字母减去’a’会得到025,加上’A’后刚好就是对应从’A’’Z’。所以本题正确。
正确答案:正确
解析:考察知识点:浮点型
本题属于考察浮点数类型的计算,浮点数与整数的计算结果类型为浮点型。所以本题正确。
三、编程题(每题25分,共50分)
循环嵌套输出图形
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
char ch='A';
for(int i=0; i<n; i++){ //控制三角形的行数
for(int j=0; j<=i; j++){ //控制三角形的列数
cout<<ch;
ch++;
//每次使用大写字母Z填充后,将从头使用大写字母A填充。
if(ch>'Z') ch='A';
}
cout<<endl;
}
return 0;
}
循环嵌套解决简单枚举问题
#include<bits/stdc++.h>
using namespace std;
int main() {
int x, y, z, n, m, cnt=0;
cin>>x>>y>>z>>n>>m;
for(int i=0; i<=n/x; i++){ //i表示公鸡的只数
for(int j=0; j<=n/y; j++){ //j表示母鸡的只数
int k=m-i-j; //k表示小鸡的只数
//满足n元买m只
if(k>=0 && z*i*x+z*j*y+k==z*n) cnt++;
}
}
cout<<cnt;
return 0;
}