跳到正文
OJ
佛大附属信奥
在线评测 · 分级学习
学习
题库
测验
提交
作业
留言
登录
菜单
学习
题库
测验
提交
作业
留言
登录
GESP C++ 三级 · 2023 年 9 月认证理论卷
登录
后作答才能记录成绩
一、单选题(每题 2 分)
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'
C. 'A' <= 'a' <= 'Z'
D. ('A' <= a) && (a <= 'Z')
13.
在下列代码的横线处填写( ),可以使得输出是"20 10"。 ```cpp #include <iostream> using namespace std; int main() { int a = 10, b = 20; a = (a << 8) | b; ________ // 在此处填入代码 cout << a << " " << b << endl; return 0; } ```
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"。 ```cpp #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; } ```
A. res += array[i];
B. res *= array[i]
C. res = array[i]
D. 以上均不对。
15.
在下列代码的输出是( )。 ```cpp #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; } ```
A. 15
B. 28
C. 45
D. 55
二、判断题(每题 2 分)
1.
二进制数101.101在十进制下是 5.005。 ( )
对
错
2.
在C++语言中,位运算符也有类似"先乘除、后加减"的优先级规则。因此,使用时应注意合理使用括号。 ( )
对
错
3.
字符常量'3'的值和int类型常量3的值是相同的,只是占用的字节数不同。 ( )
对
错
4.
在C++语言中,长度为n的数组,访问下标为n的元素会引起编译错误。 ( )
对
错
5.
在C++语言中,所有int类型的值,经过若干次左移操作(<<)后,它们的值总会变为0。 ( )
对
错
6.
在C++语言中,数组下标的大小决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序无关。 ( )
对
错
7.
在C++语言中,定义数组时,[]中必须指定元素个数。 ( )
对
错
8.
著名的哥德巴赫猜想:任一大于2的偶数都可写成两个素数之和。我们可以通过枚举法来证明它。 ( )
对
错
9.
在C++语言中,表达式(0xff == 255)的值为true。 ( )
对
错
10.
如果a为int类型的变量,且表达式((a & 1) == 0)的值为true,则说明a是偶数。 ( )
对
错