一、单选题(每题2分,共30分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | A | A | C | B | D | D | A | A | D | B | C | D | B | C |
1.以下不属于计算机输入设备的有( )。
A
.键盘
B
.音箱
C
.鼠标
D
.传感器
【答案】
B
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机基础知识中的
“
输入
”
和
“
输出
”
概念;
“
输入
”
指外界
向机器内部传递信息,
“
输出
”
指计算机内部信息向外界展示。此题中,
“
音箱
”
属
于向外部播放声音,故属于输出概念,所以本题正确答案为
B
。
2.
计算机系统中存储的基本单位用
B来表示,它代表的是( )。
A.Byte
B.Block
C.Bulk
D.Bit
【答案】
A
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机基础知识中,关于存储的基本单位;计算机中,表
示存储大小的最小单位为
“
字节
”
,英文为
“Byte”
,表示一个字节存储空间大小的
单位,用大写字母
B
表示,所以本题正确答案为
A
。
3.
常量
7.0
的数据类型是()。
A.double
B.float
C.void
D.int
【答案】
A
【考纲知识点】基本数据类型(一级)
【解析】本题考察考生对于
C++
基本数据类型的了解:关于基本数据类型,有整
型
int
,浮点型
double
、
float
,字符型
char
,布尔型
bool
,本题中
7.0
是小数形
式,属于浮点型,
C++
中浮点型默认是
double
,所以本题正确答案为
A
。
4.
下列关于
C++
语言的叙述,不正确的是()。
A.
变量定义时可以不初始化
B.
变量被赋值之后的类型不变
C.
变量没有定义也能够使用
D.
变量名必须是合法的标识符
【答案】
C
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察
C++
语言中变量的定义与使用;关于变量的定义与使用,变量
在定义时可以不初始化,变量名必须是合法的标识符,并且变量被赋值之后的类
型不变,均不符合题意,故
A
、
B
、
D
排除;选项
C
变量必须定义才能使用,没
有定义变量就使用会造成编译错误,所以本题正确答案为
C
。
5.
以下不可以作为
C++
标识符的是()。
A.x321
B.0x321
C.x321_
D._x321
【答案】
B
【考纲知识点】变量的定义与使用(一级)
【解析】本题察
C++
语言中变量的定义与使用;根据变量的命名规则:
1.
只能包
含大小写字母、数字、下划线;
2.
必须以大小写字母或者下划线开头;
3.
不能使
用
C++
的指令或关键字。选项
B
为
0x321
,以数字开头,违反变量的命名规则,
所以本题正确答案为
B
。
6.
以下哪个不是
C++
语言的关键字?
A.int
B.for
C.do
D.cout
【答案】
D
【考纲知识点】计算机基础与编程环境(一级)
【解析】本题考察输入输出语句及变量的定义与使用两部分内容;输入输出的
cin
和
cout
都是
C++
的常对象,但不是关键字。
C++
的关键字如下图所示:
所以本题正确答案为
D
。
7.
如果
a
、
b
和
c
都是
int
类型的变量,下列哪个语句不符合
C++
语法?
A.c=a+b;
B.c+=a+b;
C.c=a=b;
D.c=a++b;
【答案】
D
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
基本运算中的算术运算;选项
A
是将
a
加
b
的和赋值
给
c
;选项
B
等价于
c=c+(a+b)
,将
a
和
b
的值相加,再加上
c
的值之后,赋给
c
;
选项
C
是将
b
赋给
a
,再将
a
赋给
c
;选项
D
中
++
是自增运算符,
a++
表示的是
a
在原本的值上自增
1
,后面跟上
b
不符合
C++
语法,所以本题正确答案为
D
。
8.
如果用两个
int
类型的变量
a
和
b
分别表达长方形的长和宽,则下列哪个表达
式不能用来计算长方形的周长?
A.a+b*2
B.2*a+2*b
C.a+b+a+b
D.b+a*2+b
【答案】
A
【考纲知识点】基本运算(一级)
【解析】本题主要考察基本运算中的算术运算;长方形的周长公式是(长
+
宽)
*2
或者长
*2+
宽
*2
或四条边相加;选项
A
根据运算规则,先算乘法
b*2
,后算加
法
a+b*2
,不能用来计算长方形的周长,所以本题正确答案为
A
。
9.
表达式
((3==0)+'A'+1+3.0)
的结果类型为()。
A.double
B.int
C.char
D.bool
【答案】
A
【考纲知识点】基本运算(一级)
【解析】本题考察
C++
基本运算过程中的隐式类型转换;算式中,
(3==0)
的计算
结果为
bool
类型、
’A’
为
char
类型常量、
1
为
int
类型常量、
3.0
为
double
类型常
量,将它们相加时会从低精度的高精度的进行类型转换,最终结果为
double
类
型,所以本题正确答案为
A
。
10.
如果
a
为
int
类型的变量,且
a
的值为
6
,则执行
a*=3;
之后,
a
的值会是()。
A.3
B.6
C.9
D.18
【答案】
D
【考纲知识点】基本运算(一级)
【解析】本题考察
C++
基本运算;
a*=3
相当于
a=a*3
,
a
的值一开始是
6
,所以
6*3=18
,将这个结果再赋给
a
,
a
的值变为
18
,所以本题正确答案为
D
。
11.
如果
a
和
b
均为
int
类型的变量,下列表达式不能正确判断
“a
等于
0
且
b
等
于
0”
的是()
A.(a==0)&&(b==0)
B.(a==b==0)
C.(!a)&&(!b)
D.(a==0)+(b==0)==2
【答案】
B
【考纲知识点】基本运算(一级)
【解析】本题主要考察
C++
基本运算中的逻辑运算;
选项
A
条件
1
是
a==0
,条件
2
是
b==0
,两个条件之间用逻辑与
&&
,两个条件都
满足,整个条件就满足,符合
a
等于
0
且
b
等于
0
;
选项
B
是先判断
a
和
b
是否相等,若相等表达式
a==b
的值为
1
,若不相等
a==b
的值为
0
,再判断表达式
a==b
的值是否等于
0
,只有
a
和
b
不相等时,整个表达
式成立;
选项
C
条件
1
是
!a
,
a
为
0
时,
!a
为
1
,条件成立,条件
2
是
!b
,
b
为
0
时,
!b
为
1
,条件成立,两个条件之间是逻辑与
&&
关系,两个条件都满足,整个条件
就满足,符合
a
等于
0
且
b
等于
0
;
选项
D
中
a==0
条件满足为
1
,
b==0
条件满足也为
1
,两个都满足相加结果为
2
,
两个条件有任意不满足则相加结果可能为
0
或
1
。因此,判断相加结果是否等于
2
,符合
a
等于
0
且
b
等于
0
;
所以本题正确答案为
B
。
12.
如果
a
为
int
类型的变量,下列哪个表达式可以正确求出满足
“
大于等于
a
且
是
4
的倍数
”
的整数中最小的?
A.a*4
B.a/4*4
C.(a+3)/4*4
D.a-a%4+4
【答案】
C
【考纲知识点】基本运算(一级)
【解析】本题考察
C++
基本运算中的算术运算;
选项
A
,假设
a
为
3
,
a*4
即为
3*4=12,12
虽然满足大于等于
a
且是
4
的倍数,但
不是满足条件的整数中最小的,排除
A
;
选项
B
,假设
a
为
3
,
a/3
结果为
0
,因为
a
为
int
类型,
int
类型进行计算,结果
还是
int
,会把小数部分舍去,故
a/3*4
结果为
0
,不满足条件,排除
B
;
选项
C
,令
a=4k+t
,
k
是一个整数,
0<=t<=3
,则
(a+3)/4=(4k+t+3)/4=k+(t+3)/4
。如
果
a
是
4
的倍数,则
t=0,(a+3)/4*4=k*4=a
,等于
a
且是
4
的倍数;否则
t>=1
,
(4k+4)/4*4<=(a+3)/4*4<=(4k+6)/4*4
,即
(4k+4)<=(a+3)/4*4<=(4k+4)
,结果为
4k+4
,大于
a
且是
4
的倍数的整数中最小的,满足题意;
选项
D
,假设
a
为
4,4%4=0
,
a-a%4+4=8
,
8
虽然满足大于等于
a
且是
4
的倍数,
但不是满足条件的整数中最小的,排除
D
;
所以本题正确答案为
C
。
13.
在下列代码的横线处填写(),可以使得输出是
“2010”
。
A.a+b
B.(a+b)*100
C.b*100+a
D.a*100+b
【答案】
D
【考纲知识点】基本运算(一级)
【解析】由于题目中没有分支、循环语句,可以尝试由结果反推。已知在第
8
行,输出“
2010
”,因此此时
a
为
20
、
b
为
10
。第
7
行对
a
赋值后得到的就是
第
8
行时
a
的值
20
,可知第
7
行语句执行前
a
除以
100
的余数为
20
。由于第
7
行未改变
b
的值,第
6
行对
b
赋值后得到的就是第
8
行时
b
的值
10
,可知第
6
行语句执行前
a
除以
100
的商为
10
。由于第
6
行未改变
a
的值,综合第
7
行得
到的线索,可知第
6
行语句执行前,
a
应为
1020
。第
5
行语句执行前,
a
为
10
、
b
为
20
,四个选项中,只有选项
D
的表达式的计算结果为
1020
。所以本题正确
答案为
D
。
14.
在下列代码的横线处填写(),可以使得输出是
“1248”
。
A.i++
B.i*=2
C.i+=2
D.i*2
【答案】
B
【考纲知识点】控制语句结构(一级)
【解析】本题考察控制语句结构中的循环结构。变量
i
的初始值是
1
,循环条件
是
i
小于等于
8
,循环范围是从
1
到
8
,循环体中输出
i
,得到的输出是
1248
,规
律是在前一个的基础上乘
2
,每次
i*2
之后赋给
i
,所以本题正确答案为
B
。
15.
执行以下
C++
语言程序后,输出结果是()。
A.210
B.113
C.98
D.15
【答案】
C
【考纲知识点】控制语句结构(一级)
【解析】本题考察循环结构和选择结构。循环范围是从
1
到
20
,每次循环结束
后
i++
,
i
自增
1
;循环内判断当前数是
3
或者是
5
的倍数,就将
i
累加到
sum
当
中,故从
1
到
20
,满足条件的数有
35691012151820
,相加结果为
98
,所以
本题正确答案为
C
。
二、判断题(每题2分,共20分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 |
√
|
×
|
×
|
√
|
×
|
×
|
×
|
×
|
√
|
√
|
1.
在
Windows
系统中通过键盘完成对选定文本移动的按键组合是先
Ctrl+X
,移动
到目标位置后按
Ctrl+V
。
【答案】
√
【考纲知识点】计算机基础(一级)
【解析】本题考察计算机基础中快捷键的使用。
Ctrl+X
表示剪切文件
(
复制并从原
位置删除
)
,
Ctrl+V
表示粘贴所剪切的文件。所以本题正确。
2.
程序员用
C
、
C++
、
Python
、
Scratch
等编写的程序能在
CPU
上直接执行。
【答案】
×
【考纲知识点】计算机基础(一级)
【解析】本题属于对编程语言特点的考察。题目中所列举的编程语言,均无法在
CPU
上直接执行,而是需要通过各自的方式,转换成机器语言后才能被
CPU
识
别和执行,所以本题错误。
3.
在
C++
语言中,注释不宜写得过多,否则会使得程序运行速度变慢。
【答案】
×
【考纲知识点】计算机编程环境(一级)
【解析】本题考察计算机的编程环境。注释信息是写在代码当中方便程序阅读者
理解代码的,养成书写注释的好习惯能够为编写更大规模的程序及团队合作打好
基础。注释信息会在编译过程中被去掉,不会产生机器指令,也就不会影响程序
运行速度,所以本题错误。
4.
在
C++
语言中,标识符中可以有数字,但不能以数字开头。
【答案】
√
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察
C++
语言中变量的定义与使用。根据变量的命名规则:
1.
只能
包含大小写字母、数字、下划线;
2.
必须以大小写字母或者下划线开头;
3.
不能
使用
C++
的关键字。故标识符中可以有数字,但不能以数字开头,所以本题正确。
5.'3'
是一个
int
类型常量。
【答案】
×
【考纲知识点】基本数据类型(一级)
【解析】本题主要考察基本数据类型。
int
是整型,例如
3
是一个
int
类型常量。
但
3
加上单引号之后
'3'
在
C++
语言中表示字符,它是
char
类型常量。所以本题错
误。
6.if
语句中的条件表达式的结果必须为
bool
类型。
【答案】
×
【考纲知识点】控制语句结构(一级)
【解析】本题主要考察控制语句结构。
if
语句的条件表达式不一定是
bool
类型,
也可能是其他类型,任何非零值都会被视为真,而零值会被视为假。例如,如果
a
为
int
类型变量,则
if(a);
是否符合
C++
语法的
if
语句,表示判断
a
是否为
0
:
a
不等于
0
时,则视为真,
if
条件成立;反之,如果
a
等于
0
,则视为假,
if
条件
不成立。但
a
的类型为
int
类型,并不是
bool
类型,所以本题错误。
7.for
语句的循环体至少会执行一次。
【答案】
×
【考纲知识点】控制语句结构(一级)
【解析】本题主要考察
for
循环结构,
for
循环分四步走:
1.
执行第一个分号前
的初始表达式;
2.
判断两个分号之间的循环条件表达式结果是否为真;
3.
执行
循环体;
4.
执行第二个分号后的步进表达式,并回到第
2
步重新判断。其中第
2
步,如果执行初始表达式后的状态循环条件表达式为假,则不会执行循环体。此
时循环体一次也没有执行就结束了循环,所以本题错误。
8.
如果
a
为
int
类型的变量,则赋值语句
a=a+3;
是错误的,因为这条语句会导
致
a
无意义。
【答案】
×
【考纲知识点】变量的定义与使用(一级)
【解析】本题主要考察变量的定义与使用。尽管数学上
a=a+3
是无解的,但在
C++
语言中
a=a+3
并不表示方程或恒等式。
a
为
int
类型的变量,执行
a=a+3;
,会
让
a
的值变为在原值的基础上增加
3
,不会导致
a
无意义。所以本题错误。
9.
如果
a
为
int
类型的变量,则表达式
(a/4==2)
和表达式
(a>=8&&a<=11)
的结
果总是相同的。
【答案】
√
【考纲知识点】基本运算(一级)
【解析】本题考察基本运算。由于
a
为
int
类型,表达式
a/4
中的除号
/
为整除运
算。因此表达式
(a/4==2)
表示
a
除以
4
的商为
2
,于是
a
的值从
8
到
11
时表达式
结果为真,否则为假。这与表达式
(a>=8&&a<=11)
的结果总是相同的,所以本
题正确。
10.
表达式
(3.5*2)
的计算结果为
7.0
,且结果类型为
double
。
【答案】
√
【考纲知识点】基本运算(一级)
【解析】本题考察了基本运算中的算术运算,在
C++
语言中,
3.5
为
double
类型
常量,
2
为
int
类型的常量,
double
类型与
int
类型做乘法运算的结果是
double
类型,结果为
7.0
,所以本题正确。
三、编程题(每题25分,共50分)
1.每月天数
【问题描述】
小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编
程方法求出给定的月份有多少天。你能做到吗?
【
输入描述】
输入一行,包含两个整数,分别表示一个日期的年、月。
【
输出描述】
输出一行,包含一个整数,表示输入月份有多少天。
【
样例输入1
】
2022 1
【
样例输出1
】
31
【样例输入
2
】
2020 2
【样例输出
2
】
29
【题目大意】条件判断问题,主要分清平年和闰年,平年
2
月
28
天,闰年
2
月
29
天,其余按照大小月取分,输出对应的天数。
【考纲知识点】基本数据类型、控制语句结构、输入输出语句、变量的定义与使
用(一级)
【解题思路】
1.
定义变量:年份
y
、月份
m
为
int
类型、判断是否为闰年的
bool
类型
leap
并赋
值为
false
(一开始让它为平年);
2.
输入年份、月份;
3.
判断是否为闰年,如果是
400
的倍数,或者是
4
的倍数但不是
100
的倍数,就
是闰年,将
leap
改为
true
;
4.
判断是否为大月:
1
、
3
、
5
、
7
、
8
、
10
、
12
月为大月,输出
31
;小月:
4
、
6
、
9
、
11
月为小月,输出
30
;如果不是大月也不是小月,看下是否为闰年,闰年输
出
29
,否则输出
28
。
【参考程序】
2.长方形面积
【问题描述】
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都
是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有
多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形
的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
【输入描述】
输入一行,包含一个整数,表示长方形的面积。约定
2 ≤ A ≤ 1000
。
【输出描述】
输出一行,包含一个整数,表示有种可能的长方形。
【样例输入1
】
4
【样例输出1】
2
【样例解释1
】
2
种长方形面积为
4
,它们的长宽分别为
2 x 2
,
4 x 1
。
【样例输入2】
6
【样例输出2】
2
【样例解释
2
】
2
种长方形面积为
6
,它们的长宽分别为
3 x 2
,
6 x 1
。
【题目大意】统计长方形的个数。两个长方形的长和宽相等算一种情况,所以规
定长大于宽;长和宽相等是正方形,是长方形的特例,算一种情况。统计完个数
之后输出。
【考纲知识点】变量的定义与使用、控制语句、基本运算、输入输出语句(一级)
【解题思路】
1.
定义变量:面积
area
、计数变量
cnt
、宽
w
;
2.
利用循环列举所有宽的可能性,从
1
开始,到宽
*
宽小于等于面积即可,后面
大于宽的就是长了,和前面统计过的算一种情况,所以不用往后遍历。
3.
每次循环判断面积对宽取余是不是为
0
,如果为
0
,说明长、宽都是整数,满
足题意,计数变量
cnt++
;
4.for
循环结束后输出计数变量
cnt
。
【参考程序】