时间限制:1000 ms
内存限制:128 MiB
标准输入输出
题目类型:传统
评测方式:Special Judge
出题人配置了 Special Judge 程序。本题答案可能不唯一或者题目有特殊要求,请注意审题。
一、单选题(每题 2 分,共 30 分)
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”。
#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”。
#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”。
#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 分,共 20 分)
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)。
请使用输出语句输出每个题目的答案,答案之间换行隔开。
Tips: 选择题答案用大写, A、B、C 或 D, 判断题用 T(正确) 或 F(错误)来表示。
样例输入
样例输出
样例解释
样例输出仅是答案的输出格式,并不是答案!