一、单选题
(每题 2 分,共 30 分)
1) ⼈们所使用的手机上安装的App通常指的是( )。
查看答案
2)
下列流程图的输出结果是?( )

查看答案
3) 已知⼤写字符'A'的ASCII编码的⼗六进制表⽰为0x41 ,则字符'L'的ASCII编 码的⼗六进制表⽰为 ( ) 。
查看答案
4) 4、 以下哪个不是C++语⾔中的运算符?( )
查看答案
5) 如果数组定义为long long array[] = {3, 5, 7, 2};,则数组array占⽤的字节数为( )。
查看答案
6) ⼀个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标最⼤为( )。
查看答案
7) 以下数组定义 ,符合C++语⾔语法的是( )。
查看答案
8) 下列关于进制的叙述 ,正确的是( )。
查看答案
9) 下列关于C++语⾔中数组的叙述 ,不正确的是( )。
查看答案
10) 如果 a是int类型的变量 ,下列哪个表达式的值⼀定为 true?( )
查看答案
11) 如果 a和b均为int类型的变量,下列表达式不能正确判断“ a等于b ” 的是( )。
查看答案
12) 如果 a为char类型的变量 ,下列哪个表达式可以正确判断“a是⼤写字母”?( )
查看答案
13) 在下列代码的横线处填写( ),可以使得输出是“20 10”。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = (a << 8) | b;
________ // 此处填入代码
cout << a << " " << b << endl;
return 0;
}
查看答案
14) 在下列代码的横线处填写( ),可以使得输出是“120”。
#include <iostream>
using namespace std;
int main() {
int array[5] = {1, 2, 3, 4, 5};
int res = 0;
for (int i = 0; i < 5; i++)
________ // 在此处填入代码
cout << res << endl;
return 0;
}
查看答案
15) 在下列代码的输出是( )。
#include <iostream>
using namespace std;
int main() {
int array[10];
for (int i = 0; i < 10; i++)
array[i] = i;
for (int p = 2; p < 10; p++)
if (array[p] == p)
for (int n = p; n < 10; n += p)
array[n] = array[n] / p * (p - 1);
int res = 0;
for (int n = 1; n < 10; n++)
res += array[n];
cout << res << endl;
return 0;
}
查看答案
二、判断题
(每题 2 分,共 20 分)
16) 二进制数101.101在⼗进制下是5.005。
查看答案
17) 在C++语⾔中,位运算符也有类似“先乘除、后加减”的优先级规则。因此, 使⽤时应注意合理使⽤括号。
查看答案
18) 字符常量'3'的值和int类型常量3的值是相同的,只是占⽤的字节数不同。
查看答案
19) 在C++语⾔中,长度为n的数组,访问下标为n的元素会引起编译错误。
查看答案
20) 在C++语⾔中,所有int类型的值,经过若⼲次左移操作(<<)后,它们的值总会变为0。
查看答案
21) 在C++语⾔中,数组下标的⼤⼩决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序⽆关。
查看答案
22) 在C++语⾔中,定义数组时,[]中必须指定元素个数。
查看答案
23) 著名的哥德巴赫猜想:任⼀⼤于2的偶数都可写成两个素数之和。我们可以通过枚举法来证明它。
查看答案
24) 在C++语⾔中,表达式(0xff == 255) 的值为true。
查看答案
25) 如果a为int类型的变量,且表达式((a & 1) == 0) 的值为true,则说明a是偶数。
查看答案
三、编程题
(每题 25 分,共 50 分)
26) ⼩杨的储蓄
【问题描述】
⼩杨共有 N个储蓄罐,编号从0到N-1。从第1天开始,⼩杨每天都会往存钱罐里存钱。具体来说,第i天他会挑选一个存钱罐ɑi,并存⼊i元钱。过了D天后,他已经忘记每个储蓄罐里都存了多少钱了,你能帮帮他吗?
【输入描述】
输⼊2⾏,第一行两个整数N,D;第二行D个整数,其中第i个整数为ɑi(保证0≤ɑi≤ N-1)。
每⾏的各个整数之间⽤单个空格分隔。
保证1≤N≤1000 ;1≤D≤1000
【输出描述】
输出N个用单个空格隔开的整数,其中第i个整数表示编号为i-1的存钱罐中有多少钱(i = 1,...,N)。
【样例输入1】
2 3
0 1 0
【样例输出1】
4 2
【样例解释1】
小杨在第1天、第2天、第3天分别向0号、1号、0号存钱罐存了1元钱、2元钱、3 元钱,因此0号存钱罐有1+3=4元钱,而1号存钱罐有2元钱。
【样例输入2】
3 5
0 0 0 2 0
【样例输出2】
11 0 4
查看答案
27) 进制判断
【问题描述】
N进制数指的是逢N进一的计数制。例如,人们日常生活中大多使用十进制计数, 而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母A至F表示十至十五)。 现在有N个数,请你分别判断他们是否可能是二进制、八进制、十进制、十六进制。例如,15A6F就只可能是十六进制,而1011则是四种进制皆有可能
【输入描述】
输入的第一行为一个十进制表示的整数N。接下来 N行,每行一个字符串,表示需要判断的数。保证所有字符串均由数字和大写字母组成,且不以 0 开头。保证不会出现空行。 保证 1≤N≤1000,保证所有字符串长度不超过10。
【输出描述】
输出N行,每行4个数,用空格隔开,分别表示给定的字符串是否可能表示一个二进制数、八进制数、十进制数十六进制数。使用 1 表示可能,使用 0 表示不可能。例如,对于只可能是十六进制数的 15A6F,就需要输出0001;而对于四者皆有可能的 1011,则需要输出1111。
【样例输入1】
2
15A6F
1011
【样例输出1】
0 0 0 1
1 1 1 1
【样例输入2】
4
1234567
12345678
FF
GG
【样例输出2】
0 1 1 1
0 0 1 1
0 0 0 1
0 0 0 0
查看答案