一、单选题(每题2分,共30分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | D | C | A | D | B | A | C | C | B | B | A | D | C | D | C |
1.
以下存储器中的数据不会受到附近强磁场干扰的是( )
A
.硬盘
B
.
U
盘
C
.内存
D
.光盘
【答案】
D
【考纲知识点】计算机的存储(二级)
【解析】光盘是光存储介质,是通过激光高温改变光盘涂覆层的形状来记录数据
的,不会因为磁场而改变记录特性。硬盘是磁介质的数据存储设备,会直接受到
磁场干扰。强磁场会在
U
盘和内存的电路中产生感应电流,可能会破坏存储器,
导致数据受损。所以此题正确答案为
D
。
2. 下列流程图,属于计算机的哪种程序结构?( )。

A
. 顺序结构
B
. 循环结构
C
. 分支结构
D
.数据结构
【答案】
C
【考纲知识点】计算机基础结构(一级)
【解析】流程图根据是否按下空格键设置了两个分支,符合分支结构的特征,所
以本题正确答案为
C
。
3.
下列关于
C++
语言的叙述,不正确的是()。
A
.
double
类型的变量占用内存的大小是浮动的
B
.
bool
类型的变量占用
1
字节内存
C
.
int
类型变量的取值范围不是无限的
D
.
char
类型的变量有
256
种取值
【答案】
A
【考纲知识点】计算机的存储(二级)
【解析】在当前
C++
标准下,
double
类型通常占用
8
个字节,
bool
类型占用
1
个
字节,
int
类型通常占用
4
个字节,
char
类型占用
1
字节。
int
类型的取值范围为
− 2
31
~
2
31
− 1
,
char
类型的范围是
-128
~
127
,所以本题正确答案为
A。
4.
下列关于
C++
语言的叙述,不正确的是()。
A
. 变量定义后,可以使用赋值语句改变它的值
B
. 变量定义时,必须指定类型
C
. 变量名必须为合法标识符
D
.合法标识符可以以数字开始
【答案】
D
【考纲知识点】变量的定义与使用(一级)
【解析】变量定义时,必须指定类型,且变量名必须为合法标识符(只能由字母,
数字,下划线组成,且不能以数字开头),所以本题正确答案为
D
。
5.
以下哪个不是
C++
语言的关键字?
A
.
return
B
.
max
C
.
else
D
.
case
【答案】
B
【考纲知识点】程序设计语言的特点(二级)
【解析】本题属于考察
C++
语言的关键字,
max
是
C++
中的一个库函数,不属于
关键字,所以本题正确答案为
B
。
6.
以下哪个不是
C++
语言的运算符?
A
.
\=
B . /=
B . /=
C
.
-=
D
.
!=
【答案】
A
【考纲知识点】算数运算(一级)
【解析】
B
选项
a /= b
,等价于
a = a / b
;
C
选项
a -= b
等价于
a = a – b
;
D
选项
“!=”
是不等于。
A
选项
\=
并不是
C++
语言的运算符,所以本题正确答案为
A
。
7.
如果
a
和
b
都是
char
类型的变量,下列哪个语句不符合
C++
语法?
A
.
b = a + 1;
B
.
b = a + '1';
C
.
b = 'a'++;
D
.
b = 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
。
8.
如果
a
、
b
、
c
和
d
都是
int
类型的变量,则下列哪个表达式能够正确计算它们
的平均值?
A
.
(a + b + c + d) / 4
B
.
(a + b + c + d) % 4
C
.
(a + b + c + d) / 4.0
D
.
(a + b + c + d) % 4.0
【答案】
C
【考纲知识点】算术运算(一级)
【解析】
A
选项中所有参与计算的数都是整型,最终的计算结果也是整型,会默
认向下取整,导致平均值不准确。
B
选项计算的是
a
、
b
、
c
、
d
四个整数的和除
以
4
的余数。
C
选项为
a
、
b
、
c
、
d
四个整数的和除以
4.0
的结果,计算过程中会
将
4.0
视为浮点数,整型与浮点型的计算结果默认为浮点型。
D
选项“
%
”不能
与浮点数参与运算,用法错误。所以本题正确答案为
C
。
9.
如果
a
为
char
类型的变量,且
a
的值为
'2'
,则下列哪条语句执行后,
a
的值
不会变为
'3'
?
A
.
a = a + 1;
B
.
a + 1;
C
.
a = 1 + a;
D
.
++a;
【答案】
B
【考纲知识点】算术运算(一级)
【解析】
B
选项中并未对
a + 1
的结果进行任何处理,变量
a
在计算过程中未发
生改变,所以本题正确答案为
B
。
10.
如果
a
为
int
类型的变量,且
a
的值为
9
,则执行
a -= 3;
之后,
a
的值会是()。
A
.
3
B
.
6
C
.
9
D
.
12
【答案】
B
【考纲知识点】算术运算(一级)
【解析】
a -= 3;
等价于
a = a - 3;
表示把
a - 3
的计算结果重新赋值给
a
变量,所
以本题正确答案为
B
。
11.
如果
a
和
b
均为
int
类型的变量,下列表达式能正确判断
“a
等于
0
或
b
等于
0”
的是()
A
.
(!a) || (!b)
B
.
(a == b == 0)
C
.
(a == 0) && (b == 0)
D
.
(a == 0) - (b == 0) == 0
【答案】
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
。
12.
如果
a
为
char
类型的变量,下列哪个表达式可以正确判断
“a
是小写字母
”
?
A
.
a <= a <= z
B
.
a - 'a' <= 'z' - 'a'
C
.
'a' <= a <= 'z'
D
.
a >= 'a' && a <= 'z'
【答案】
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。
13. 在下列代码的横线处填写(),使得输出是`50 10`。
13. 在下列代码的横线处填写(),使得输出是`50 10`。

A
.
a -= b
B
.
a += b
C
.
a = b - a
D
.
a = b
【答案】
C
【考纲知识点】基本运算(一级)
【解析】本题考察通过算术运算交换两个变量数值,可将选项带入进行计算,本
题正确答案为
C。
14. 在下列代码的横线处填写(),可以使得输出是`5`。
14. 在下列代码的横线处填写(),可以使得输出是`5`。

A
.
ch < '5'
B
.
ch >= 5
C
.
ch >= '4'
D
.
ch % 2 == 1
【答案】
D
【考纲知识点】循环结构,字符型,
ASCII
码,基本运算 (二级)
【解析】可以将选项带入排除
A
,
B
,
C
选项,需要注意
B
选项中
5
没有单引号,
所以表示的不是字符
’5’
,
D
选项中
ch
虽然是字符类型,但计算时会使用对应的
ASCII
码
%2
,字符
’1’
到字符
’9’
之间,所有
ASCII
码中有
5
个是奇数,所以本题正
确答案为
D
。
15.
执行以下 C++语言程序后,输出结果是()。

A
.
false
B
.
true
C
.
0
D
.
1
【答案】
C
【考纲知识点】循环结构,布尔型,基本运算 (二级)
【解析】题目中
i
的循环范围是
2~n
,即分别使用
n
对
2~n
之间的所有数进行求
余运算,由于
n
能够被自身整除,所以循环结束后
isprime
的值一定为
false
,但
是
bool
类型在输出时不会输出
true
或
false
,输出时只会输出
1
或
0
,所以本题
正确答案为
C
。
二、判断题(每题2分,共20分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 |
x
|
x
| √ |
x
|
x
|
x
|
x
| √ | √ | √ |
1.
明明和笑笑在
“
小庙会
”
上分别抽到一个
4GB
和
4096MB
的
U
盘,容量大的盘
是笑笑的( )。
【答案】
x
【考纲知识点】计算机的存储(二级)
【解析】本题属于考察数据单位的换算,
1GB=1024MB
,
4GB
和
4096MB
容量一
样大。所以本题错误。
2. IPv4
的地址通常用
“
点分十进制
”
的表示形式,形如(
a.b.c.d
),其中
a
、
b
、
c
、
d
都是
1~255
之间的十进制整数( )。
【答案】
x
【考纲知识点】计算机网络(二级)
【解析】
IP
地址是一个
32
位的二进制数,通常被分隔为
4
个
8
位二进制数,常
用
“
点分十进制
”
的表示形式,形如(
a.b.c.d
),其中
a
、
b
、
c
、
d
都是
0~255
之间
的十进制整数。所以本题错误。
3. 在 C++ 语言中,一个程序不能有多个 main 函数。
3. 在 C++ 语言中,一个程序不能有多个 main 函数。
【答案】
√
【考纲知识点】程序设计语言的特点(二级)
【解析】本题考察
C++
程序的基本结构,一个程序只能有一个
main
函数。所以
本题正确。
4.
在
C++
语言中,标识符中可以有下划线
_
,但不能以下划线
_
开头。
【答案】
x
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察变量的概念及定义规则。变量定义时,必须指定类型,且变量
名必须为合法标识符(只能由字母,数字,下划线组成,且不能以数字开头)。
所以本题错误。
5.
如果
a
是
int
类型的变量,而且值为
1
,则表达式
'a'
的值为
'1'
。
【答案】
x
【考纲知识点】基本数据类型(一级)
【解析】本题属于考察对不同数据类型的区分,加上单引号后
'a'
表示字符常量,
与变量
a
无关,且与字符常量
'1'
不同。所以本题错误。
6.
在
if ... else
语句中,
else
子句可以嵌套
if ... else
语句,但
if
子句不可以,因
为会造成二义性。
【答案】
x
【考纲知识点】多层分支(二级)
【解析】本题考察
if
语句的用法,
if
语句可以嵌套
if...else
。如果嵌套后与预期语
义不符,可以使用复合语句
{…}
加以区别。所以本题错误。
7. while 语句的循环体至少会执行一次。
7. while 语句的循环体至少会执行一次。
【答案】
x
【考纲知识点】循环结构(二级)
【解析】本题考察
while
语句的用法,
while()
语句是否会执行循环体,取决于小
括号中的条件是否成立,若最开始条件不成立,则一次都不会执行循环体。所以
本题错误。
8. C++
语言中
>=
是运算符,但
=>
不是。
【答案】
√
【考纲知识点】基本运算(一级)
【解析】本题考察运算符,
>=
是表示“大于等于”的关系运算符,
=>
不是
C++
中
的运算符。所以本题正确。
9.
如果
a
为
char
类型的变量,且取值为小写字母,则执行语句
a = a - 'a' + 'A';
后,
a
的值会变为与原值对应的大写字母。
【答案】
√
【考纲知识点】字符型(一级)
【解析】本题考察字符类型中大小写字母转换的方法,小写字母减去
’a’
会得到
0~25
,加上
’A’
后刚好就是对应从
’A’~’Z’
。所以本题正确。
10.
表达式
(10.0 / 2)
的计算结果为
5.0
,且结果类型为
double
。
【答案】
√
【考纲知识点】浮点型(一级)
【解析】本题属于考察浮点数类型的计算,浮点数与整数的计算结果类型为浮点
型。所以本题正确。
三、编程题(每题25分,共50分)
1. 画三角形
【问题描述】
输入一个正整数
n
,请使用大写字母拼成一个这样的三角形图案(参考样例
输入输出):三角形图案的第
1
行有
1
个字母,第
2
行有
2
个字母,以此类推;
在三角形图案中,由上至下、由左至右依次由大写字母
A-Z
填充,每次使用大写
字母
Z
填充后,将从头使用大写字母
A
填充。
【输入描述】
输入一行,包含一个正整数
n
。约定
2≤n≤40
。
【输出描述】
输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【样例输入
1】
3
【样例输出
1
】
A
BC
DEF
【样例输入
2
】
7
【样例输出
2
】
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
【题目大意】输出一个
n
行的大写字母递增的三角形,大写字母递增到
’Z’
后下一
个回到
’A’
重新开始递增。
【考纲知识点】基本运算(一级), 循环结构、
ASCII
码、数据类型转换(二级)
【解题思路】
1.
先把
A,B,C...Z
这些大写字母看作
0,1,2...25
,借助
for
循环嵌套输出数字三角形;
2.
将三角形中需要输出的数在输出时转换为大写字母输出;
3.
将数转换为大写字母时加上
%26
,确保输出到
’Z’
之后下一个字符为
’A’
。
【参考程序】

2. 百鸡问题
【问题描述】
“
百鸡问题
”
是出自我国古代《张丘建算经》的著名数学问题。大意为:
“
每
只公鸡
5
元,每只母鸡
3
元,每
3
只小鸡
1
元;现在有
100
元,买了
100
只鸡,
共有多少种方案?
”
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果
每只公鸡
x
元,每只母鸡
y
元,每
z
只小鸡
1
元;现在有
n
元,买了
m
只鸡,
共有多少种方案?
【输入描述】
输入一行,包含五个整数,分别为问题描述中的
x
、
y
、
z
、
n
、
m
。约定
1≤x,
y, z ≤10
,
1≤ n, m ≤1000
。
【输出描述】
输出一行,包含一个整数
C
,表示有
C
种方案。
【样例输入
1
】
5 3 3 100 100
【样例输出
1
】
4
【样例解释
1
】
这就是问题描述中的
“
百鸡问题
”
。
4
种方案分别为:公鸡
0
只、母鸡
25
只、
小鸡
75
只;公鸡
4
只、母鸡
18
只、小鸡
78
只;公鸡
8
只、母鸡
11
只、小鸡
81
只;公鸡
12
只、母鸡
4
只、小鸡
84
只。。
【样例输入
2
】
1 1 1 100 100
【样例输出
2
】
5151
【题目大意】
百钱买百鸡问题,输入公鸡母鸡和小鸡的价格,以及现有的钱和需要购买的鸡的
数量,计算输出方案数。
【考纲知识点】基本运算(一级), 循环结构(二级)
【解题思路】
使用循环嵌套枚举公鸡和母鸡的数量,根据总价计算要求表示出小鸡数量,通过
判断每种方案鸡的总数是否满足要求,从而统计出正确的方案数;
【参考程序】