一、单选题(每题 2 分,共 30 分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | A | C | C | D | A | D | D | C | C | B | B | A | C | B | D |
1.以下不属于计算机输出设备的有( )。
A.
麦克风
B.
音箱
C.
打印机
D.
显示器
【答案】
A
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机基础知识中的
“
输入
”
和
“
输出
”
概念;
“
输入
”
指外界
向机器内部传递信息,
“
输出
”
指计算机内部信息向外界展示信息。此题中,
“
麦
克风
”
属于向内部输入声音,属于输入概念,所以本题正确答案为
A
。
2.ChatGPT
是
OpenAI
研发的聊天机器人程序,它能通过理解和学习人类的语言
来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下
面任务中,
ChatGPT不能完成的是( )。
A.
改邮件
B.
编剧本
C.
擦地板
D.
写代码
【答案】
C
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机在现代社会中的常见应用;
ChatGPT
聊天机器人程
序可以帮助我们完成一些计算机上的操作,
A
、
B
、
D
都属于这个范畴,
C
选项擦
地板无法直接实现。所以本题正确答案为
C
。
3.
常量
'3'的数据类型是( )。
A.double
B.float
C.char
D.int
【答案】
C
【考纲知识点】基本数据类型(一级)
【解析】本题属于考察
C++
中的基本数据类型;
C++
中的基本数据类型有:整数
(int
、
longlong)
、实数型
(float
、
double)
、字符型
(char)
、布尔型
(bool)
。本题中
'3'
是用单引号引起来的单个字符
3
,属于字符型
char
,所以本题正确答案为
C
。
4.
下列关于
C++语言变量的叙述,正确的是( )。
A.
变量可以没有定义
B.
对一个没有定义的变量赋值,相当于定义了一个新变量
C.
执行赋值语句后,变量的类型可能会变化
D.
执行赋值语句后,变量的值可能不会变化
【答案】
D
【考纲知识点】变量的定义与使用(一级)
【解析】本题属于考察
C++
程序的基本概念中的
“
变量
”
相关概念;
A
、
B
选项错误
都在于,变量需要
“
先定义,再使用
”
,没有定义过的变量无法直接
“
赋值
”
,故排
除
A
、
B
。
C
选项错误在于,赋值操作不会改变变量数据类型,故排除
C
选项。
如果赋值语句右侧的表达式计算结果与左侧的变量原值相同,则执行赋值语句后
变量的值不会变化,所以本题正确答案为
D
。
5.
以下可以作为
C++标识符的是( )。
A.number_of_Chinese_people_in_millions
B.360AntiVirus
C.Man&Woman
D.break
【答案】
A
【考纲知识点】变量的定义与使用(一级)
【解析】在计算机编程语言中,
“
标识符
”
是用户编程时使用的名字,用于给变量、
常量、函数等命名;
C++
中声明变量名时,变量名中能且只能包含字母、数字、
下划线,且不能用数字开头。另外,
C++
中有一些关键字(如
if
、
while
、
break
等)这些关键字已被编程语言保留,不能用作标识符。选项中
B
、
C
、
D
均不满
足要求,所以本题正确答案为
A
。
6.
以下哪个不是
C++语言的关键字?( )
A.double
B.else
C.while
D.endl
【答案】
D
【考纲知识点】计算机基础与编程环境(一级)
【解析】本题考察对
C++
关键字的认识;
C++
的关键字如下图所示:

所以本题正确答案为
D
。
7.
如果
a
、
b
和
c
都是
int
类型的变量,下列哪个语句不符合
C++语法?( )
A.a=(b==c);
B.b=5.5;
C.c=a+b+c;
D.a+c=b+c;
【答案】
D
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
中的基本运算;首先要了解赋值运算符的使用规则,
将符号右边的值赋值给符号左边的
“
变量
”
。
A
选项,符号右边是一个关系运算,
运算结果是布尔类型,
true
或者
false
,对应的值是
1
或者
0
,可以直接赋值给整
型变量,正确。
B
选项,实数类型的值可以赋值给
int
类型,结果只取整数部分,
正确。
C
选项,符合要求,正确。
D
选项,赋值运算符左边是一个
“
算术运算
”
,
而不是一个
“
变量
”
,所以本题正确答案为
D
。
8.
如果用一个
int
类型的变量
a
表达正方形的边长,则下列哪个表达式不能用来
计算正方形的面积?( )
A.a*a
B.1*a*a
C.a^2
D.a*2*a/2
【答案】
C
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
的基本运算中的位运算;边长为
a
的正方形的面积是
a*a
,
A
、
B
、
D
的运算结果均正确。
C
选项错误在于,
^
符号在一些其他语言中表
示乘方运算,但在
C++
中表示
“
异或运算符
”
,会将符号两边的值按二进制位进行
异或运算,不满足要求,所以本题正确答案为
C
。
9.
表达式
(4*(11+12)/4)
的计算结果为()。
A.47
B.20
C.23
D.56
【答案】
C
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
的基本运算中的运算优先级;小括号
()
:优先级最高,
括号内的计算最先进行,再按从左往右的顺序进行乘除法计算。所以本题正确答
案为
C
。
10.
如果
a
为
int
类型的变量,且
a
的值为
6
,则执行
a%=4;之后,a的值会是( )。
A.1
B.2
C.3
D.4
【答案】
B
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
的基本运算中的赋值运算;首先需要了解复合赋值运
算符
"%="
的规则,
a%=4
等价于
a=a%4
,即先进行求余运算,再将得到的结果赋
值给符号左边的变量。
6
除以
4
的余数为
2
,所以本题正确答案为
B
。
11.
如果
a
和
b
均为
int
类型的变量,下列表达式能正确判断
“a
等于
0
且
b
等于
0”的是( )。
A.(a==b==0)
B.!(a||b)
C.(a+b==0)
D.(a==0)+(b==0)
【答案】
B
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
的基本运算中的逻辑运算;
A
选项会先判断
a
和
b
是否相等,只有
a
和
b
不相等,
a==b
表达式的值才为
0
,
所以
A
选项判断是
a
不等于
b
。
B选项中,若!(a||b)
为真,则
(a||b)
结果为
0
,若
a
和
b
有任意一个不为
0,(a||b)
的值都为
1
,所以当
a
等于
0
且
b
等于
0
时,
(a||b)
的结果才为
0
,
!(a||b)
的值
才为
1
。
C
选项判断的是
a+b
的和是否为
0
,当
a
和
b
互为相反数时条件即可成立,
a
和
b
不一定为
0
。
D
选项判断的时表达式
(a==0)
和表达式
(b==0)
的和,只要
a
和
b
中有任意一个为
0
,
最终表达式的值都大于
0
,即为真。
所以本题正确答案为
B
。
12.
如果
a
和
b
为
int
类型的变量,且值分别为
7
和
2
,则下列哪个表达式的计
算结果不是
3.5?( )
A.0.0+a/b
B.(a+0.0)/b
C.(0.0+a)/b
D.a/(0.0+b)
【答案】
A
【考纲知识点】基本运算(一级)
【解析】本题属于考察
C++
的基本运算中的实数算数运算。
B
、
C
、
D
选项中,小
括号里的运算结果数据类型是
“
实数型
”
,与整数进行除法运算,结果依旧是实数,
可以得到
3.5
,正确。
A
选项错误在于,除法运算优先级高于加法运算,两个整
数
7
和
2
相除的结果是整数
3
,再加上实数
0.0
,得到的结果是
3.0
,不满足要求,
所以本题正确答案为
A
。
13.在下列代码的横线处填写( ),使得输出是
“2010”
。

A.a+b
B.b
C.a-b
D.b-a
【答案】
C
【考纲知识点】基本运算(一级)
【解析】由于题目中没有分支、循环语句,可以尝试由结果反推。已知在第
8
行,输出“
2010
”,因此此时
a
为
20
、
b
为
10
。第
7
行对
a
赋值后得到的就是
第
8
行时
a
的值
20
,而且
b
的值不变,可知第
7
行语句执行前
a
、
b
分别为
-10
、
10
。同理,第
6
行对
b
赋值后得到的就是第
8
行时
b
的值
10
,而且
a
的值不变,
可知第
6
行语句执行前
a
、
b
分别为
-10
、
20
。于是,第
5
行语句对
a
赋值后,
a
的值应变为
-10
。第
5
行语句执行前,
a
为
10
、
b
为
20
,四个选项中,只有选项
C
的表达式的计算结果为
-10
。所以本题正确答案为
C
。
14.在下列代码的横线处填写( ),可以使得输出是
“147”
。

A.i%2==1
B.i%3==1
C.i=i+3
D.i+3
【答案】
B
【考纲知识点】循环结构、基本运算(一级)
【解析】本题主要考察
for
循环中变量的取值,与求余运算符的使用;可以使用
代入法进行排除。
A
选项中,只有
i
为奇数,才会输出,输出结果为
1357
,不满足题目要求。
B
选项带入,
1
,
4
,
7
除以
4
的刚好余
1
,输出结果为
147
,满足题目要求。
C
选项为赋值表达式,表达式的值为真,输出结果为
48
,不满足要求。
D
选项只要
i+3
的值不为
0
表达式都成立,输出结果为
12345678
,不满足要求
所以本题正确答案为
B
。
15.
执行以下
C++语言程序后,输出结果是( )。

A.63
B.98
C.113
D.
无法确定
【答案】
D
【考纲知识点】变量的定义与使用(一级)
【解析】本题主要考察
C++
程序基本概念中的变量定义规则,本题中,变量
sum
的作用是累加求和,定义在主函数内,但是并没有进行初始化,无法保证其初始
值为
0
,故运行结果无法确定,所以本题正确答案为
D
。
二、判断题(每题2分,共20分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 |
√
|
√
|
×
|
×
|
√
|
√
|
√
|
×
|
×
|
√
|
1.
计算机硬件主要包括运算器、控制器、存储器、输入设备和输出设备。
【答案】
√
【考纲知识点】计算机基础(一级)
【解析】本题考察计算机基础知识中的计算机组成五大部分;分别是:存储器、
控制器、运算器、输入设备和输出设备,所以本题正确。
2.
诞生于
1958
年的
103
机是中国第一台通用数字电子计算机,比
1946
年在美
国诞生的第一台通用电子计算机
ENIAC
晚了十多年。
【答案】
√
【考纲知识点】计算机的历史(一级)
【解析】本题属于对计算机历史的考察;中国第一台通用数字电子计算机于
1958
年
8
月研制成功,美国第一台通用电子计算机
ENIAC
诞生于
1946
年
2
月
14
日。
所以本题正确。
3.
在
C++
语言中,计算结果必须存储在变量中才能输出。
【答案】
×
【考纲知识点】输入输出语句(一级)
【解析】本题考察计算机基本语言中的输出语句;输出语句可以直接输出表达式,
输出的内容是表达式运算结果。所以本题错误。
4.
在
C++
语言中,标识符的命名不能完全由数字组成,至少有一个字母就可以。
【答案】
×
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察
C++
语言中标识符的命名规则;
C++
语言中,标识符的命名能
且只能包含字母、数字、下划线,且不能用数字开头。可以没有字母,例如_
123
是合理的标识符;有字母也可能不能作为标识符,例如
2ab
不是合理的标识符。
所以本题错误。
5.10
是一个
int
类型常量。
【答案】
√
【考纲知识点】基本数据类型(一级)
【解析】本题考察
C++
语言中常量的概念;常量是固定值,在程序执行期间不会
改变,可以是任何的基本数据类型,
10
是一个整型常量,默认类型为
int
类型。
所以本题正确。
6.if
语句可以没有
else
子句。
【答案】
√
【考纲知识点】选择结构(一级)
【解析】本题考察
C++
中分支结构中的
if
语句,
if...else...
语句的区别;
if...else...
语句中,当
if
语句条件不满足,会执行
else
中的语句;
if
语句可以独立存在,条
件满足,执行下级代码,条件不满足,跳过下级代码继续执行。所以本题正确。
7.do...while
语句的循环体至少会执行一次。
【答案】
√
【考纲知识点】循环结构(一级)
【解析】本题主要考察
C++
中的
do...while
语句执行逻辑;
do...while
会先执行一
次循环体,然后再判别表达式。当表达式结果为
“
真
”
时,返回重新执行循环体,
如此反复,直到表达式结果为
“
假
”
为止,此时循环结束。所以本题正确。
8.
如果
a
和
b
为
int
类型的变量,则表达式
a=b
可以判断
a
和
b
是否相等。
【答案】
×
【考纲知识点】基本运算(一级)
【解析】本题考察
C++
基本运算中关系运算符的使用;
C++
中,判断相等需要使
用两个等于号
(==)
,一个等于号
(=)
是赋值符号。所以本题错误。
9.
如果
a
为
int
类型的变量,则表达式
(a%4==2)
可以判断
a
的值是否为偶数。
【答案】
×
【考纲知识点】基本运算(一级)
【解析】本题主要考察
C++
基本运算中的求余运算,与偶数判断;偶数是指在整
数中能被
2
整除的数。题中表达式表达“被
4
除余
2
”,这样的数一定是偶数,
但偶数不一定满足该条件。例如,
4
是偶数,被
4
除余
0
。所以本题错误。
10.
表达式
(37/4)
的计算结果为
9
,且结果类型为
int
。
【答案】
√
【考纲知识点】基本运算(一级)
【解析】本题主要考察
C++
基本运算中的整数除法运算;在
C++
语言中,除号
/
左右均为整数类型时,表示整数除法,运算结果向下取整(舍弃小数部分),且
结果为整数类型。所以本题正确。
三、编程题(每题25分,共50分)
1.时间规划
【问题描述】
小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能
通过编程帮他做到吗?
【输入描述】
输入4
行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为
结束时刻的小时,第四行为结束时刻的分钟。
输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用24
小时制,即小时在
0
到
23
之间,分钟在
0
到
59
之间。
【输出描述】
输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
【样例输入
1
】
9
5
9
6
【样例输出
1
】
1
【样例输入
2
】
9
5
10
0
【样例输出
2
】
55
【题目大意】时间转换问题,输入开始时刻和结束时刻,时刻使用
24
小时制,
保证两个时刻是同一天,且开始时刻一定在结束时刻之前,计算两者中间的时间,
转化为分钟进行输出。
【考纲知识点】变量的定义与使用、顺序结构、基本运算、输入输出语句(一级)
【解题思路】
按题目要求定义好需要的变量,并实现输入;
利用结束时刻的小时减开始时刻的小时,结果乘
60
,得到小时数之差对应的分
钟数;
利用结束时刻的分钟减开始时刻的分钟,得到分钟数之差;
将将上述结果相加并输出;
【参考程序】

2.累计相加
【问题描述】
输入一个正整数?,求形如:1+(1+2)+(1+2+3)+(1+2+3+4)+...···(1+2+3+4+5+...···+n)的累计相加。
【输入描述】
输入一个正整数。约定1≤n≤100
。
【输出描述】
输出累计相加的结果。
【样例输入
1
】
3
【样例输出
1
】
10
【样例输入
2
】
4
【样例输出
2
】
20
【样例输入
3
】
10
【样例输出
3
】
220
【题目大意】多项式求和问题,多项式的每一项,都是从
1
开始,累加到当前项
数结束。累加每项之和求出整个多项式的和。
【考纲知识点】循环结构、基本运算、输入输出语句(一级)
【解题思路】
1.
分析出参与求和运算的每一项的规律:第
1
项为
1
,第
2
项从
1
开始加到
2
,
第
3
项从
1
开始加到
3
,依次类推,第
i
项从
1
开始一直加到当前项数
i
,利用求
和公式可以表示为
(i+1)*i/2
;
2.
借助
for
循环,把每个多项式的结果累加到
sum
中;
3.
按要求完成输入和输出。
解题过程中应注意变量
sum
初始化,循环条件
i<=n
是否包含等于情况,表达式
(i+1)*i/2
的运算顺序等问题。
如果不了解等差数列求和公式,也可以使用二重循环解题,需要更加注意循环条
件的处理。
【参考程序】
