5297:[GESP202603三级] 客观题

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:8 解决:0

题目描述

## 一、单选题(每题 2 分,共 30 分) **第 1 题** 如果字符变量 `_1` 的值是字符$1$ ,那么 `(int)_1` 的值是? ( ) - $1$ - $-1$ - $49$ - $+1$ 或者 $-1$ **第 2 题** $a,b$ 是整型变量,各自有互不相同的初始值。下列程序实现了什么效果 ( ) ```cpp 01 a = a^b; 02 b = a^b; 03 a = a^b; ``` - $a,b$ 的值从始至终都没有改变。 - $a,b$ 的值实现了互换。 - $a,b$ 的值互换了以后,又还回去了,相当于没有变化。 - $a,b$ 的值最后和原值不一样,没有任何意义。 **第 3 题** 关于下列正确的程序段,说法正确的是 ( ) ```cpp 01 char str1[] = "Hello"; 02 char str2[] ={'H','e','l','l','0'}; ``` - 字符数组 `str1` 和 `str2` 完全相同 - ```cpp 01 cout << str1 << endl; 02 cout << str2 << endl; ``` 这段程序将输出不同的结果。 - 字符数组 `str1` 和 `str2` 不相等。 - 这两个赋值方式完全相同。 **第 4 题** 关于以下程序段,说法正确的是 ( ) ```cpp 01 int x=10; 02 cout<<(x++) + (++x)<< endl; ``` - `C++11` 标准中,这是未定义⾏为,不同的环境有可能出现不同的结果 - $22$ - $21$ - $20$ **第 5 题** $8$ 位二进制下,十进制数 $-15$ 的补码是 ( ) - $11110000$ - $10001111$ - $10010000$ - $11110001$ **第 6 题** 三进制数 $2102_{(3)}$ 转换成十进制是: ( ) - $63$ - $65$ - $67$ - $69$ **第 7 题** 二进制数 $10110101$ 是某数的$8$ 位补码,该数的十进制是 ( ) - $-73$ - $-75$ - $-77$ - $75$ **第 8 题** 已知 `unsigned char c = 0xOF;` (十六进制 `0F = 二进制00001111`),执行 `c = c << 3;` 后,`c` 的十进制值是 ( ) - $64$ - $72$ - $80$ - $120$ **第 9 题** 补码的情况下,关于按位取反运算,用笔计算的情况下,以下说法错误的是: ( ) - `~5` 的结果是 $-6$ (`int` 类型,$32$ 位) - `~0` 的结果是 $0$ (`int` 类型,$32$位) - `~(-3)` 的结果是 $2$ (`int` 类型,$32$ 位) - `~8` 的结果是 $-9$ (`int` 类型,$32$位) **第 10 题** 执行以下 `C++` 代码后,`sub` 的值是 ( ) ```cpp 01 string str = "GESP2026"; 02 string sub = str.substr(4, 2); ``` - $20$ - $02$ - $2026$ - $026$ **第 11 题** 执行以下代码后,输出结果是: ( ) ```cpp 01 int arr[] = {5, 10, 15, 20, 25, 30}; 02 int count = sizeof(arr) / sizeof(arr[0]); 03 cout << count; ``` - $4$ - $6$ - $24$ - $30$ **第 12 题** 执行以下代码后,输出结果是: ( ) ```cpp 01 char s[10] = "abcde"; 02 int a = sizeof(s) / sizeof(s[0]); 03 int b = strlen(s); 04 cout << a - b; ``` - $4$ - $5$ - $6$ - $10$ **第 13 题** 以下问题中,最不适合用枚举法解决的是: ( ) - 找出 $1 \sim 100$ 之间所有能被 $7$ 整除的数 - 找出 $100 \sim 200$ 之间的所有质数 - 计算 $1+2+3+...+1000$ 的和 - 找出三位数中个位、十位、百位数字之和等于 $10$ 的数 **第 14 题** 用枚举法解决“鸡兔同笼问题:头共 $35$ 个,脚共 $94$ 只,求鸡和兔的数量”,以下枚举逻辑最合理的是:( ) - 枚举鸡的数量 `x` ($0 \sim 35$),兔的数量 `y=35-x`,判断 `2*x+4*y== 94` - 枚举兔的数量 `y`($0 \sim 94$),鸡的数量 `x=35-y`,判断 `2*x+ 4*y== 94` - 枚举所有整数 `x`($0-100$)和 `y` ($0-100$),判断 `x+y==35 &&2*x+4*y==94` - 枚举脚的总数 `sum` ($0 \sim 94$),判断 `sum == 94` **第 15 题** 模拟“字符串加密”:规则为“每个字符 `ASCII` 码 $+3$,若超过`z`($122$)则从 `a` 重新开始”,以下代码中正确的条件判断是 ( ) ```cpp 01 for (int i = 0; i < str.length(); i++) { 02 // 需补充条件: 03 _______________________ 04 else { 05 str[i] += 3; 06 } 07 } ``` - `if (str[i]> 122) str[i] = str[i] + 3 - 26;` - `if (str[i] > 122) str[i] = str[i] - 26;` - `if (str[i] + 3 > 122) str[i] = str[i] - 23;` - `if (str[i] + 3 > 'z') str[i] = 'a' + (str[i] + 3 - 'z') - 1;` ## 二、判断题(每题 2 分,共 20 分) **第 1 题** 定义 `int arr[5] = {1,2,3};`,则 `arr[3]` 的值为 $0$, `arr[5]` 是合法下标。 - 正确 - 错误 **第 2 题** 定义 `double arr[10];`,未手动初始化时,数组中所有元素的默认值为 `0.0`。 - 正确 - 错误 **第 3 题** 定义 `int arr[] = {1,2,3};`则 `sizeof(arr)` 的结果为 $12$ (`int` 占 $4$ 字节)。 - 正确 - 错误 **第 4 题** 下面的流程图是用来求`1+2+3+...+10` 的和。 请判断:这个流程图的逻辑正确还是错误? ![](/upload//20260319/9qQ8p0_6ofhq6pS3S5Zmy.png) - 正确 - 错误 **第 5 题** 下面流程图的功能是计算 $5$ 对 $2$ 取余数,输出结果为 $1$。 ![](/upload//20260319/nVkO-WuL7i5IzPiM-VsM2.png) - 正确 - 错误 **第 6 题** 已知大写字符 $A$ 的 `ASCII`编码的十六进制表示为 `0x41`,计算字符 `m` 的 `ASCII` 编码的八进制表示为 $155$ (八进制)。 - 正确 - 错误 **第 7 题** 在 `C++` 位运算中,各种不同的运算符有优先级的区分,使用括号能够解决优先级的问题。 - 正确 - 错误 **第 8 题** 由于在 $0 \sim -255$ 范围内,`char` 类型和 `int` 类型可以互换,因此在这里 `x` 和 `y` 相等。 ```cpp 01 char x='1'; 02 int y=1; ``` - 正确 - 错误 **第 9 题** 在 `C++` 语言中,表达式`((0xf0+0x15)==255)` 的值为 `true`。 - 正确 - 错误 **第 10 题** 如果 `a` 为 `int` 类型的变量,且 `a` 的二进制最低位为 $0$,则表达式 `((a &3&1)==0)` 的值为 `true`。 - 正确 - 错误

来源/分类