#895. GESP-202309三级-选择判断题
GESP-202309三级-选择判断题
满分:100 分 考试时间:90 分钟 一、单选题(每题 2 分,共 30 分)
- 人们所使用的手机上安装的App通常指的是( )。 {{ select(1) }}
- 一款操作系统
- 一款应用软件
- 一种通话设备
- 以上都不对
- 下列流程图的输出结果是?( )
{{ select(2) }}
- 60
- 20
- 5
- 1
- 已知大写字符 'A' 的ASCII编码的十六进制表示为 0x41 ,则字符 'L' 的ASCII编码的十六进制表示为( )。 {{ select(3) }}
- 4A
- 4B
- 4C
- 52
- 以下哪个不是C++语言中的运算符?( ) {{ select(4) }}
- ~
- ~~
- <
- <<
- 如果数组定义为 long long array[] = {3, 5, 7, 2}; ,则数组 array 占用的字节数为( )。 {{ select(5) }}
- 32
- 16
- 8
- 4
- 一个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标最大为( )。 {{ select(6) }}
- 2
- 3
- 23
- 24
- 以下数组定义,符合C++语言语法的是( )。 {{ select(7) }}
- double a[];
- double b[] = {1, 2.0, '3'};
- double c[3.0];
- double[] d = new double[3];
- 下列关于进制的叙述,正确的是( )。 {{ select(8) }}
- 只有十进制和二进制能够用来表示小数,八进制和十六进制不可以。
- 常用的进制包括二进制、八进制、十进制、十六进制,其他进制在日常生活中很少使用。
- 对任意正整数,其二进制表示不会比它的十进制表示更短。
- 正整数的八进制表示中,每一位可能出现的最大数字是8。
- 下列关于C++语言中数组的叙述,不正确的是( )。 {{ select(9) }}
- 可以定义 0 个元素的数组。
- 不能定义 -1 个元素的数组。
- 数组下标越界访问会产生编译错误。
- 程序运行时发生数组下标的越界访问,程序依然可能正常结束。
- 如果 a 是 int 类型的变量,下列哪个表达式的值一定为 true ?( ) {{ select(10) }}
- a + 1000 - 1000 == a
- a * 2 / 2 == a
- (a & 1) == 1
- (a | 1) == a + 1
- 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“ a 等于 b ”的是( )。 {{ select(11) }}
- ((a >= b) && (a <= b))
- ((a >> 1) == (b >> 1))
- ((a + b) == (a + a))
- ((a ^ b) == 0)
- 如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a是大写字母”?( ) {{ select(12) }}
- a - 'A' <= 26
- 'A' <= a <= 'Z'
- 'A' <= 'a' <= 'Z'
- ('A' <= a) && (a <= 'Z')
- 在下列代码的横线处填写( ),可以使得输出是“20 10”。
{{ select(13) }}
- a = a >> 8; b = a & 0xff
- b = a >> 8; a = a & 0xff;
- a = b; b = a & 0xff;
- b = a; a = b;
- 在下列代码的横线处填写( ),可以使得输出是“120”。
{{ select(14) }}
- res += array[i];
- res *= array[i]
- res = array[i]
- 以上均不对。
-
在下列代码的输出是( )。
{{ select(15) }}
- 15
- 28
- 45
- 55
二、判断题(每题 2 分,共 20 分)
- 二进制数 101.101 在十进制下是 5.005。 {{ select(16) }}
- 正确√
- 错误×
2.在C++语言中,位运算符也有类似“先乘除、后加减”的优先级规则。因此,使用时应注意合理使用括号。 {{ select(17) }}
- 正确√
- 错误×
- 字符常量 '3' 的值和 int 类型常量 3 的值是相同的,只是占用的字节数不同。 {{ select(18) }}
- 正确√
- 错误×
- 在C++语言中,长度为 n 的数组,访问下标为 n 的元素会引起编译错误。 {{ select(19) }}
- 正确√
- 错误×
- 在C++语言中,所有 int 类型的值,经过若干次左移操作( << )后,它们的值总会变为 0 。 {{ select(20) }}
- 正确√
- 错误×
- 在C++语言中,数组下标的大小决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序无关。 {{ select(21) }}
- 正确√
- 错误×
- 在C++语言中,定义数组时, [] 中必须指定元素个数。 {{ select(22) }}
- 正确√
- 错误×
8.著名的哥德巴赫猜想:任一大于2的偶数都可写成两个素数之和。我们可以通过枚举法来证明它。 {{ select(23) }}
- 正确√
- 错误×
- 在C++语言中,表达式 (0xff == 255) 的值为 true 。 {{ select(24) }}
- 正确√
- 错误×
- 如果 a 为 int 类型的变量,且表达式 ((a & 1) == 0) 的值为 true ,则说明 a 是偶数。 {{ select(25) }}
- 正确√
- 错误×
三、编程题(每题 25 分,共 50 分)
- 小杨的储蓄(请在P896题中提交答案)
【问题描述】
小杨共有 个储蓄罐,编号从 到 N-1。从第 1 天开始,小杨每天都会往存钱罐里存钱。具体来说,第 天他会挑选一个存钱罐 ,并存入 元钱。过了 天后,他已经忘记每个储蓄罐里都存了多少钱了,你能帮帮他吗?
【输入描述】
输入 2 行,第一行两个整数 N,D;第二行D个整数,其中第 i 个整数为 ai(保证 0 <= ai <= 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
- 进制判断(请在P897题中提交答案)
【问题描述】
N进制数指的是逢 进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母 A 至 F 表示十至十五)。
现在有 N 个数,请你分别判断他们是否可能是二进制、八进制、十进制、十六进制。例如, 15A6F 就只可能是十六进制,而 1011 则是四种进制皆有可能。
【输入描述】
输入的第一行为一个十进制表示的整数N 。接下来 N行,每行一个字符串,表示需要判断的数。保证所有字符串均由数字和大写字母组成,且不以 0 开头。保证不会出现空行。
保证 1 <= N <= 1000,保证所有字符串长度不超过 10 。
【输出描述】
输出 行,每行 个数,用空格隔开,分别表示给定的字符串是否可能表示一个二进制数、八进制数、十进制数、十六进制数。使用 1 表示可能,使用 0 表示不可能。
例如,对于只可能是十六进制数的 15A6F ,就需要输出 0 0 0 1 ;而对于四者皆有可能的 1011 ,则需要输出 1 1 1 1 。
【特别提醒】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入 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