C++编程等级认证三级 2023 年 9 月

*
您的姓名:
一、单选题(每题 2 分,共 30 分)
*
1、⼈们所使用的手机上安装的App通常指的是()。
A.-款操作系统
B.-款应用软件
C.-种通话设备
D. 以上都不对
*
2、下列流程图的输出结果是?()

A. 60
B. 20
C. 5
D. 1
*
3、已知大写字符'A' 的ASCII编码的十六进制表示为0x41 ,则字符'L' 的ASCII编
码的十六进制表示为 () 。
A. 4A
B. 4B
C. 4C
D. 52
*
4、 以下哪个不是C++语言中的运算符?()
A. ~
B. ~~
C. <
D. <<
*
5、如果数组定义为long long array[] = {3, 5, 7, 2}; ,则数组array占用的字节
数为()。
A. 32
B. 16
C. 8
D. 4
*
6、 —个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标
最大为()。
A. 2
B. 3
C. 23
D. 24
*
7、 以下数组定义 ,符合C++语言语法的是()。
A. double a[];
B. double b[] = {1, 2 .0, '3'};
C. double c[3.0];
D. double[] d = new double[3];
*
8、 下列关于进制的叙述 ,正确的是()。
A.只有十进制和二进制能够用来表示小数 ,八进制和十六进制不可以。
B.常用的进制包括二进制、八进制、十进制、十六进制,其他进制在日常生活中很少使用。
C.对任意正整数 ,其二进制表示不会比它的十进制表示更短。
D.正整数的八进制表示中 ,每—位可能出现的最大数字是 8。
*
9、下列关于C++语言中数组的叙述 ,不正确的是()。
A.可以定义 0 个元素的数组。
B.不能定义-1 个元素的数组。
C.数组下标越界访问会产生编译错误。
D.程序运行时发生数组下标的越界访问 ,程序依然可能正常结束。
*
10、 如果 a是int类型的变量 ,下列哪个表达式的值⼀定为 true?()
A. a + 1000 - 1000 == a
B. a * 2 / 2 == a
C. (a & 1) == 1
D. (a | 1) == a + 1
*
11、 如果 a和b均为int类型的变量 ,下列表达式不能正确判断“ a等于b ”的是()
A. ((a >= b) && (a <= b))
B. ((a >> 1) == (b >> 1))
C. ((a + b) == (a + a))
D. ((a ^ b) == 0)
*
12、 如果 a为char类型的变量 ,下列哪个表达式可以正确判断“a是大写字母”?()
A. a - 'A' <= 26
B. 'A' <= a <= 'Z'
'A' <= 'a' <= 'Z'
D. ('A' <= a) && (a <= 'Z')
*
13、 在下列代码的横线处填写() ,可以使得输出是“20 10”。
A. a = a >> 8; b = a & 0xff
B. b = a >> 8; a = a & 0xff;
C. a = b; b = a & 0xff;
D. b = a; a = b;
*
14、 在下列代码的横线处填写() ,可以使得输出是“ 120”。

A. res += array[i];
B. res *= array[i]
C. res = array[i]
D. 以上均不对。
*
15、 在下列代码的输出是()

A. 15
B. 28
C. 45
D. 55
二、判断题(每题 2 分,共 20 分)



*
1 、二进制数101.101在+进制下是5.005。()
A、正确
B、错误
*
2 、在C++语言中,位运算符也有类似“先乘除、后加减 ”的优先级规则。因此,
使用时应注意合理使用括号。()
A、正确
B、错误
*
3 、字符常量'3' 的值和int类型常量3的值是相同的,只是占用的字节数不同。()
A、正确
B、错误
*
4 、 在C++语言中,长度为 的数组,访问下标为 的元素会引起编译错误。()
A、正确
B、错误
*
5 、在C++语言中,所有int类型的值,经过若干次左移操作(<< )后,它们的值
总会变为0。()
A、正确
B、错误
*
6 、 在C++语言中,数组下标的大小决定元素在逻辑上的先后顺序,与元素在内
存中位置的先后顺序无关。()
A、正确
B、错误
*
7 、 在C++语言中,定义数组时,[]中必须指定元素个数。()
A、正确
B、错误
*
8、著名的哥德巴赫猜想:任⼀大于2的偶数都可写成两个素数之和。我们可以通
过枚举法来证明它。()
A、正确
B、错误
*
9 、 在C++语言中,表达式(0xff == 255) 的值为true。()
A、正确
B、错误
*
10 、 如果a为int类型的变量,且表达式((a & 1) == 0) 的值为true ,则说明a是偶数。 ()
A、正确
B、错误

三、编程题(每题25分,共50分)

*

1、小杨的储蓄

问题描述

小杨共有 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


样例输出1


样例解释1

小杨在第1天、第2天、第3天分别向0号、1号、0号存钱罐存了1元钱、2元钱、 3元钱,因此0号存钱罐有1+3=4元钱,而1号存钱罐有2元钱。

样例输入2


样例输出2


*

2、进制判断

题描述

N进制数指的是逢N进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母A至F表示十至十五)。

现在有N个数,请你分别判断他们是否可能是二进制、八进制、十进制、十六进制。例如,15A6F就只可能是十六进制,而1011则是四种进制皆有可能

输入描述

输入的第一行为一个十进制表示的整数N。接下来 N行,每行一个字符串,表示需要判断的数。保证所有字符串均由数字和大写字母组成,且不以 0 开头。保证不会出现空行。

保证 1≤N≤1000,保证所有字符串长度不超过10。

输出描述

输出N行,每行4个数,用空格隔开,分别表示给定的字符串是否可能表示一个二进制数、八进制数、十进制数十六进制数。使用 1 表示可能,使用 0 表示不可能。

例如,对于只可能是十六进制数的 15A6F,就需要输出0001;而对于四者皆有可能的 1011,则需要输出1111。

样例输入1


样例输出1


样例输入2


样例输出2


问卷星提供技术支持
举报