一、单选题(每题2分,共30分)
1.以下不属于计算机输入设备的有(B )。(2分)
A.键盘
B.音箱
C.鼠标
D.传感器
2.计算机系统中存储的基本单位用 B 来表示,它代表的是(A )。 (2分)
A. Byte
B. Block
C. Bulk
D. Bit
3.常量 7.0 的数据类型是(A)。 (2分)
A. double
B. float
C. void
D. int
4.下列关于 C++语言的叙述,不正确的是(C)。(2分)
A. 变量定义时可以不初始化
B. 变量被赋值之后的类型不变
C. 变量没有定义也能够使用
D. 变量名必须是合法的标识符
5.以下不可以作为 C++标识符的是(B)。(2分)(2分)
A. x321
B. 0x321
C. x321_
D. _x321
6.以下哪个不是 C++语言的关键字? (D)(2分)
A. int
B. for
C. do
D. cout
7.如果 a、b 和 c 都是 int 类型的变量,下列哪个语句不符合 C++语法? (D)(2分)
A. c = a + b;
B. c += a + b;
C. c = a = b;
D. c = a ++ b;
8.如果用两个 int 类型的变量 a 和 b 分别表达长方形的长和宽,则下列哪个表达式不能用来计算长方形的周长? (A)(2分)
A. a + b * 2
B. 2 * a + 2 * b
C. a + b + a + b
D. b + a * 2 + b
9. 表达式((3 == 0) + 'A' + 1 + 3.0)的结果类型为(A)。(2分)
A. double
B. int
C. char
D. bool
10.如果 a 为 int 类型的变量,且 a 的值为 6,则执行 a *= 3;之后,a 的值会是(D)。 (2分)
A. 3
B. 6
C. 9
D. 18
11.如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 0 且 b等于 0”的是(B) (2分)
A. (a == 0) && (b == 0)
B. (a == b == 0)
C. (!a) && (!b)
D. (a == 0) + (b == 0) == 2
12.如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足“大于等于a 且是 4 的倍数”的整数中最小的? (C)(2分)
A. a * 4
B. a / 4 * 4
C. (a + 3) / 4 * 4
D. a - a % 4 + 4
13.在下列代码的横线处填写(),可以使得输出是“20 10”。 (D)(2分)
A. a + b
B. (a + b) * 100
C. b * 100 + a
D. a * 100 + b
14.在下列代码的横线处填写(),可以使得输出是“1248”。 (B)(2分)
A. i++
B. i *= 2
C. i += 2
D. i * 2
15.执行以下 C++语言程序后,输出结果是()。 (C)(2分)
A. 210
B. 113
C. 98
D. 15
二、判断题(每题 2 分,共 20 分)
1.在 Windows 系统中通过键盘完成对选定文本移动的按键组合是先 Ctrl+X, 移动到目标位置后按 Ctrl+V。 (对)
2.程序员用 C、C++、Python、Scratch 等编写的程序能在 CPU 上直接执行。(错)
3. 在 C++语言中,注释不宜写得过多,否则会使得程序运行速度变慢。 (错)
4.在 C++语言中,标识符中可以有数字,但不能以数字开头。 (对)
5.'3'是一个 int 类型常量。 (错)
6.if 语句中的条件表达式的结果必须为 bool 类型。 (错)
7.for 语句的循环体至少会执行一次。 (错)
8.如果 a 为 int 类型的变量,则赋值语句 a = a + 3;是错误的,因为这条语句会导致 a 无意义。 (错)
9. 如果 a 为 int 类型的变量,则表达式(a / 4 == 2)和表达式(a >= 8 && a <= 11)的结果总是相同的。 (对)
10. 表达式(3.5 * 2)的计算结果为 7.0,且结果类型为 double。(对)
三、编程题(每题 25 分,共 50 分)
1、每月天数
【问题描述】
小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?
【输入描述】
输入一行,包含两个整数,分别表示一个日期的年、月。
【输出描述】
输出一行,包含一个整数,表示输入月份有多少天。 【样例输入 1】2022 1
【样例输出 1】31
【样例输入 2】2020 2
【样例输出 2】29
【参考程序】
#include <iostream>
using namespace std;
int main(){
int y =0, m = 0;
cin >> y >> m;
bool leap = false; //判断闰年
if(y % 400 == 0)
leap = true;
if(leap % 4 == 0 && y % 100 != 0)
leap = true;
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m ==12)
cout << 31 << endl;
else if (m ==4 || m == 6 || m == 9 || m == 11)
cout << 30 << endl;
else if (leap)
cout << 29 << endl;
else
cout << 28 << endl;
return 0;
}
2、长方形面积
【问题描述】
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
【输入描述】
输入一行,包含一个整数𝐴,表示长方形的面积。约定2 ≤ 𝐴 ≤ 1000。
【输出描述】
输出一行,包含一个整数𝐶,表示有𝐶种可能的长方形。
【样例输入 1】4
【样例输出 1】2
【样例解释 1】
2 种长方形面积为 4,它们的长宽分别为2 × 2、4 × 1。
【样例输入 2】6
【样例输出 2】2
【样例解释 2】
2 种长方形面积为 6,它们的长宽分别为3 × 2、6 × 1。
【参考程序】
#include <iostream>
using namespace std;
int main(){
int area = 0,cnt = 0;
cin >> area;
for(int i=1, i * i < =area, i++){
if (area % i == 0)
cnt++;
}
cout << cnt << endl;
return 0;
}