GESP-C++-三级-2023/6-样题

满分:100 分 考试时间:90 分钟
*
您的姓名:
一、单选题(每题 2 分,共 30 分)
*
1. 下列关于负数的原码、 反码、 补码的描述中, 正确的是()
补码和原码互为按位取反( 符号位除外), 反码为补码加 1
原码和反码互为按位取反( 符号位除外), 补码为反码加 1
原码和反码互为按位取反( 符号位除外), 补码为原码加 1
反码和补码互为按位取反( 符号位除外), 原码为反码加 1
*
2. 一个 int 类型的值乘以 8, 等价于以下哪个位运算? ()
左移 8 位
右移 8 位
右移 3 位
左移 3 位
*
3. 以下哪个属于 C++语言中的位运算符? ()
+
&
-
*
*
4. 若有以下代码, 则数组 arr 的长度是()
int arr[] = {1, 2, 3, 4, 5};
5
4
6
3
*
5. 在 C++语言中, 可以定义一个一维整型数组的是()
int[] array;
int[5] array;
int array[5];
int array[];
*
6. 枚举算法的主要特点是()
逐个尝试所有可能的解
动态规划
以空间换时间
贪心策略
*
7. 对于一个十进制数 37, 以下哪个是它的二进制表示()
10101
1000101
101001
100101
*
8. 下列关于十六进制的描述中, 正确的是()
使用 0-9 和 A-F 表示
使用 0-9 和 A-E 表示
使用 1-9 和 A-F 表示
使用 1-9 和 A-E 表示
*
9. 下列哪个是 C++语言中用于获取字符串长度的函数()
getLength()
length()
strlen()
len()
*
10. 通常用下列哪种方式来描述算法?()
SQL
汇编语言
伪代码
CSS
*
11. 如果 a 和 b 均为 int 类型的变量, 下列表达式能正确判断“a 等于 0 且 b等于 0” 的是()
((a ^ b) == 0)
((~a) && (~b))
((a | b) == 0)
((a & b) == 0)
*
12. 如果 a 为 int 类型的变量, 下列哪个表达式可以正确求出满足“ 大于等于a 且是 4 的倍数” 的整数中最小的?()
(a / 4 * 4)
(a & (~3))
((a - 1) | 3) + 1
(a << 2)
*
13. 下面流程图, 输入 1 2 3, 会输出()
3
无输出
2
1
*
14. 在下列代码的横线处填写(), 可以保证输出是“ 1357”, 不会有多余字符。
int i = 1; i <= 7; i += 2
int i = 0; str[i] != '\0'; i++
int i = 0; i <= 6; i += 2
int i = 0; i < strlen(str); i++
*
15. 在下列代码的横线处填写(), 可以使得输出是“ 17 11”。
a + b
a - b
a ^ b
a & b
二、判断题(每题 2 分,共 20 分)
*
1. 二进制数据编码中, 负数的补码是通过对原码按位取反并加 1 得到的。
*
2. 在 C++语言中, 数组的下标从 1 开始计数。
*
3. 在 C++语言中, 字符串是以'\0'结尾的字符数组。
*
4. 在 C++语言中, 可以使用浮点数( 如 3.0) 作为数组下标。
*
5. 枚举算法是一种暴力求解方法, 逐个尝试所有可能的解。
*
6. C++语言中数字的符号位是不参与位运算的。
*
7. C++语言中的数组可以根据需要自动调整大小。
*
8. 在 C++语言中, 表达式(0xff == 255)的值为 true。
*
9. 如果 a 为 int 类型的变量, 且表达式((a & 1) == 0)的值为 true, 则说明 a 是偶数。
*
10. 表达式(7 >> 2)的计算结果为 1.75, 且结果类型为 double。
三、编程题 (每题 25 分,共 50 分)
1. 逛商场
小明是个不太有计划的孩子。 这不, 刚到手的零花钱, 就全部拿着逛商场去了。 小明的原则很简单, 只要见到想买的物品而且能买得起, 就一定会买下来之后才会继续往前走。 一天下来, 小明到底买了多少物品呢?

【 输入格式】
输入共 3 行:
第一行是一个整数 N, 表示商场中共有 N 种小明想买的物品( 1≤N≤100);
第二行共有 N 个整数, 分别表示小明先后见到想买的物品的价格;
第三行是一个整数 X, 表示开始时小明共有 X 元零花钱。
【 输出格式】
输出 1 行, 包含一个整数, 表示小明买到的物品数。

【 样例输入】
6
7 5 9 10 7 4
30
【 样例输出】
4
将 .cpp 文件 修改成 .txt文件后再提交
点击上传
2. 进制转换
【 题目描述】
小美刚刚学习了十六进制, 她觉得很有趣, 想到是不是还有更大的进制呢?在十六进制中, 用‘ A’ 表示 10、‘ F’ 表示 15。 如果扩展到用‘ Z’ 表示 35, 岂不是可以表示 36 进制数了嘛!

【 输入格式】
输入 2 行, 第一行包含一个正整数 N, 第二行包含一个正整数 R。
保证 1≤N≤1000000, 2≤R≤36
【 输出格式】
输出 1 行, 为 N 的 R 进制表示。

【 样例输入】
123
25
【 样例输出】
4N
将 .cpp 文件 修改成 .txt文件后再提交
点击上传
问卷星提供技术支持
举报