一、单选题(每题 2 分,共 30 分)
1. 以下不属于计算机输出设备的有( )。
A. 麦克风
B. 音箱
C. 打印机
D. 显示器
答案:A
解析:略
2. ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言 来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下 面任务中,ChatGPT 不能完成的是( )。
A. 改邮件
B. 编剧本
C. 擦地板
D. 写代码
答案:C
解析:略
3. 常量
'3'
的数据类型是( )。
A.
double
B.
float
C.
char
D.
int
答案:C
解析:略
4. 下列关于 C++语言变量的叙述,正确的是( )。
A. 变量可以没有定义
B. 对一个没有定义的变量赋值,相当于定义了一个新变量
C. 执行赋值语句后,变量的类型可能会变化
D. 执行赋值语句后,变量的值可能不会变化
答案:D
解析:A. 变量必须有定义。B.在C++中,对一个没有定义的变量赋值会导致编译错误,而不会被认为是定义了一个新变量。在使用变量之前,必须先进行定义,赋值只是为已经存在的变量赋予一个值。C. 执行赋值语句后,变量的类型不会变化
5. 以下可以作为 C++标识符的是( )。
A.
number_of_Chinese_people_in_millions
B.
360AntiVirus
C.
Man&Woman
D.
break
答案:A
解析:标识符又称变量名,可以由字母、数字和下划线,注意首字符不能是数字
6. 以下哪个不是 C++语言的关键字?( )
A.
double
B.
else
C.
while
D.
endl
答案: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
解析:选项D错误,不能将表达式赋值给另一个表达式
8. 如果用一个
int
类型的变量
a
表达正方形的边长,则下列哪个表达式不能用来计算正方形的面积?( )
A.
a * a
B.
1 * a * a
C.
a ^ 2
D.
a * 2 * a / 2
答案:C
解析:选项C是a的值与数字2进行按位异或运算
9. 表达式
(4 * (11 + 12) / 4)
的计算结果为( )。
A.
47
B.
20
C.
23
D.
56
答案:C
解析:略
10. 如果
a
为
int
类型的变量,且
a
的值为 6,则执行
a %= 4;
之后,
a
的值会是( )。
A. 1
B. 2
C. 3
D. 4
答案: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
解析:A. (a == b == 0)正确格式是“(a == 0&&b == 0)”;C. (a + b == 0)表示“a+b”的和等于0;D. (a == 0) + (b == 0),“(a == 0)”和“(b == 0)”bool值相加与题目不符合
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
解析:选项A的值等于3.0
13. 在下列代码的横线处填写( ),使得输出是“20 10
”。

A.
a + b
B.
b
C.
a - b
D.
b - a
答案:C
解析:根据程序:b=a+b=10,a=b-a=(a+b)-a=b=20,所以a=-10,已知a=10,b=20,所以横线上a=a-b
14. 在下列代码的横线处填写( ),可以使得输出是“147
”。

A.
i % 2 == 1
B.
i % 3 == 1
C.
i = i + 3
D.
i + 3
答案:B
解析:略
15. 执行以下 C++语言程序后,输出结果是( )。

A.
63
B.
98
C.
113
D. 无法确定
答案:D
解析:sum没有初始化,所以不确定sum的值是多少
二、判断题(每题 2 分,共 20 分)
1. 计算机硬件主要包括运算器、控制器、存储器、输入设备和输出设备。
答案:正确
解析:略
2. 诞生于 1958 年的 103 机是中国第一台通用数字电子计算机,比 1946 年在美国诞生的第一台通用电子计算机 ENIAC 晚了十多年。
答案:正确
解析:略
3. 在 C++语言中,计算结果必须存储在变量中才能输出。
答案:错误
解析:
在 C++ 语言中,并不是计算结果必须存储在变量中才能输出的。您可以直接将表达式的计算结果输出到标准输出流(通常是屏幕),而不必将结果存储在变量中。这通常使用流插入运算符 <<
来实现。
例如,以下代码会将计算结果直接输出到屏幕上:
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 3;
cout << "Sum: " << (a + b) << endl;
cout << "Product: " << (a * b) << endl;
return 0;
}
在上面的示例中,(a + b)
和 (a * b)
是表达式,它们的计算结果直接通过 cout
输出,而不需要显式地存储在变量中。
4. 在 C++语言中,标识符的命名不能完全由数字组成,至少有一个字母就可以。
答案:错误
解析:标识符又称变量名,可以由字母、数字和下划线,注意首字符不能是数字
5.
10
是一个
int
类型常量。
答案:正确
解析:略
6.
if
语句可以没有
else
子句。
答案:正确
解析:略
7.
do ... while
语句的循环体至少会执行一次。
答案:正确
解析:因为“do ... while 语句”至少会一次执行do里面的语句,注意for循环可以一次都不执行
8. 如果
a
和
b
为
int
类型的变量,则表达式
a = b
可以判断
a
和
b
是否相等。
答案:错误
解析:表达式 a == b 可以判断 a 和 b 是否相等
9. 如果
a
为
int
类型的变量,则表达式
(a % 4 == 2)
可以判断
a
的值是否为偶数。
答案:错误
解析:把8带入a中表达式(a % 4 == 2)结果是false,但是8是偶数
10. 表达式
(37 / 4)
的计算结果为
9
,且结果类型为
int
。
答案:正确
解析:略
三、编程题(每题 25 分,共 50 分)
1. 时间规划
【问题描述】
小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能
通过编程帮他做到吗?
【输入描述】
输入 4 行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为
结束时刻的小时,第四行为结束时刻的分钟。
输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用 24
小时制,即小时在 0 到 23 之间,分钟在 0 到 59 之间。
【输出描述】
输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
【样例输入 1】
9
5
9
6
【样例输出 1】
1
【样例输入 2】
9
5
10
0
【样例输出 2】
55
【参考程序】
#include <iostream>
using namespace std;
int main() {
int h1 = 0, m1 = 0, h2 = 0, m2 = 0;
cin >> h1 >> m1;
cin >> h2 >> m2;
cout << (h2 - h1) * 60 + (m2 - m1) << endl;
return 0;
}
2. 累计相加
【问题描述】
输入一个正整数
?
,求形如:
1 + 1 + 2 + 1 + 2 + 3 + 1 + 2 + 3 + 4 +
…⋯(1 + 2 + 3 + 4 + 5 + …⋯?)
的累计相加。
【输入描述】
输入一个正整数。约定
1 ≤ ? ≤ 100
。
【输出描述】
输出累计相加的结果。
【样例输入 1】
3
【样例输出 1】
10
【样例输入 2】
4
【样例输出 2】
20
【样例输入 3】
10
【样例输出 3】
220
【参考程序】
#include <iostream>
using namespace std;
int main() {
int n = 0;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++)
sum += (i + 1) * i / 2;
cout << sum << endl;
return 0;
}