跳到正文
OJ
佛大附属信奥
在线评测 · 分级学习
学习
题库
测验
提交
作业
留言
登录
菜单
学习
题库
测验
提交
作业
留言
登录
GESP C++ 三级 · 2023 年 6 月认证理论卷
登录
后作答才能记录成绩
一、单选题(每题 2 分)
1.
高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。
A. 编辑
B. 保存
C. 调试
D. 编译
2.
二进制数11.01 在十进制下是( )。
A. 3.01
B. 3.05
C. 3.125
D. 3.25
3.
已知大写字符'A'的ASCII编码的十六进制表示为0x41,则字符'F'的ASCII编码的十六进制表示为( )。
A. 46
B. 47
C. 48
D. 49
4.
以下哪个不是C++语言中的运算符?( )
A. &
B. &&
C. *
D. **
5.
如果字符串定义为char str[] = "Hello";,则字符数组str 的长度为( )。
A. 0
B. 5
C. 6
D. 7
6.
一个数组定义为double array[3];,则这个数组占用内存的大小为( )。
A. 24
B. 12
C. 6
D. 3
7.
以下数组定义,符合C++语言语法的是( )。
A. int a[];
B. int b['3'];
C. int c[3.0];
D. int[3] d;
8.
下列关于进制的叙述,不正确的是( )。
A. 正整数的二进制表示中只会出现0 和1。
B. 10 不是2 的整数次幂,所以十进制数无法转换为二进制数。
C. 从二进制转换为8 进制时,可以很方便地由低到高将每3 位二进制位转换为对应的一位8 进制位。
D. 从二进制转换为16 进制时,可以很方便地由低到高将每4 位二进制位转换为对应的一位16 进制位。
9.
下列关于C++语言中数组的叙述,不正确的是( )。
A. 数组必须先定义后使用。
B. 数组的所有元素在内存中是连续存放的。
C. 除了字符数组,在定义数组时"[]"内必须有常数。
D. 不能对数组赋值,但可以对数组的每个基础类型的元素赋值。
10.
一个int 类型的值,做以下哪个操作,一定会变回原来的值?( )
A. 左移3位,再右移3位。
B. 右移3位,再左移3位。
C. 按位或7,再按位与-8。
D. 按位异或7,再按位异或7。
11.
如果a 和b 均为int 类型的变量,下列表达式能正确判断"a 等于b"的是( )。
A. ((a / b) == 1)
B. ((a & b) == a)
C. ((a ^ b) == 0)
D. ((a | b) == b)
12.
如果a 为int 类型的变量,下列哪个表达式可以正确求出满足"小于等于a且是4的倍数"的整数中最大的?( )
A. (a & (~3))
B. ((a << 2) >> 2)
C. (a ^ 3)
D. ((a - 1) | 3) + 1
13.
在下列代码的横线处填写( ),可以使得输出是"24 12"。 ```cpp #include <iostream> using namespace std; int main() { int a = 12, b = 24; ________; // 在此处填入代码 a = a ^ b; b = a ^ b; cout << a << " " << b << endl; return 0; } ```
A. a = a ^ b
B. b = a ^ b
C. a = a + b
D. b = a + b
14.
在下列代码的横线处填写( ),可以使得输出是"2"。 ```cpp #include <iostream> using namespace std; int main() { int array[5] = {3, 7, 5, 2, 4}; int min = 0; for (int i = 0; i < 5; i++) if (________) // 在此处填写代码 min = array[i]; cout << min << endl; return 0; } ```
A. min > array[i]
B. min < array[i]
C. min = array[i]
D. 以上均不对。
15.
在下列代码的横线处填写( ),可以使得输出**不是**"31"。 ```cpp #include <iostream> using namespace std; int main() { int array[5] = {1, 2, 4, 8, 16}; int res = 0; for (int i = 0; i < 5; i++) ____________; // 在此处填写代码 cout << res << endl; return 0; } ```
A. res = res + array[i]
B. res = res & array[i]
C. res = res | array[i]
D. res = res ^ array[i]
二、判断题(每题 2 分)
1.
一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然语言描述。 ( )
对
错
2.
域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是gesp。 ( )
对
错
3.
数据编码方式只有原码、反码、补码三种。 ( )
对
错
4.
在C++语言中,长度为n 的数组,合理的下标范围是从0 到n,包括0 和n。 ( )
对
错
5.
字符常量'\0'常用来表示字符串结束,它和字符常量'0'是不同的。 ( )
对
错
6.
在C++语言中,可以使用字符(如'0')作为数组下标。 ( )
对
错
7.
在C++语言中,数组被定义时,它的大小就确定了。 ( )
对
错
8.
计算机中存储的数据都是二进制形式。因此,在使用 C++语言编写程序时,将所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。 ( )
对
错
9.
在C++语言中,表达式(0xf == 015)的值为true。 ( )
对
错
10.
如果 a 为 int 类型的变量,且表达式((a | 3) == 3)的值为 true,则说明a 在从0到3之间(可能为0、可能为3)。 ( )
对
错