#GESP1310. [GESP202512三级] 客观题

[GESP202512三级] 客观题

一、单选题(每题 2 分,共 30 分)

第 1 题 请将二进制数 (1101.101)2(1101.101)_2,转换为等值的1010 进制数 ( )

{{ select(1) }}

  • 14.2514.25
  • 13.62513.625
  • 13.513.5
  • 14.514.5

第 2 题 以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )

{{ select(2) }}

  • 数组的下标从 00 开始。
  • 数组在内存中是连续存放的。
  • 数组的长度只能在运行时才能确定。
  • 可以在程序中修改数组某个元素的值。

第 3 题 下列代码段执行后,变量 sumsum 的值是 ( )

01 {
02     int sum = 0;
03     for (int i = 1; i <= 10; i++) {
04         if (i % 3 == 8>>2) 
05             continue;
06         sum += i;
07     }
08 }

{{ select(3) }}

  • 1212
  • 1717
  • 3333
  • 4040

第 4 题 执行以下程序段,输出值是( )

01 int x = 5;
02 if (x == 3 >> 2) x = 8 >> 3;
03 cout << x << endl;

{{ select(4) }}

  • 00
  • 55
  • 120120
  • 11

第 5 题 已知字符串 s="C++ Programming",下列程序运行的结果是( )

01 cout << (int)(s.length() | 3) << endl;

{{ select(5) }}

  • 1414
  • 1515
  • 1616
  • 1717

第 6 题 以下代码是一个程序的部分代码,能够正确执行,输出的结果是 ( )

01 int arr[5] = {1, 2, 3, 4, 5};
02 int p = arr[1];
03 cout << (p + 2) << endl;

{{ select(6) }}

  • 11
  • 22
  • 33
  • 44

第 7 题 以下关于 C++ 求最小值函数 min() 的描述,不正确的是 ( )

{{ select(7) }}

  • 函数必须返回一个值
  • 该函数可以嵌套调用
  • 调用 min(5) 是错误的,不能通过编译
  • 调用 min()(不传任何参数)可以通过编译,结果为 00

第 8 题 在一个特定的计算机系统中,假如 unsigned int 类型需要占用 22 个字节的存储空间(每个字节有 88 位)则 unsignedint 可以表示的数据范围是( )

{{ select(8) }}

  • 0 ~ 65535
  • 0 ~ 65536
  • -65536 ~ 65535
  • 0 ~ 32767

第 9 题 以下代码执行后,数组 arrarr 的内容是( )

01 int arr[6] = {1, 2, 3, 4, 5, 6};
02 for (int i = 0; i < 6; i += 2) {
03     arr[i] = arr[i] + arr[i+1];
04     arr[i+1] = arr[i] - arr[i+1];
05    arr[i] = arr[i] - arr[i+1];
06 }

{{ select(9) }}

  • {2,1,4,3,6,5}
  • {1,2,3,4,5,6}
  • {3,1,4,2,5,3}
  • {1,3,2,5,4,6}

第 10 题 a & b| (c^d),其中 a=3,b=7,c=15,d=4a=3,b=7,c= 15,d=4,计算结果是( )

{{ select(10) }}

  • 十进制 1111
  • 二进制 1111
  • 八进制 1111
  • 十六进制 1111

第 11 题 整型变量 xx 的初始值为 1010,以下代码的输出结果是 ( )

01 int t = x--;
02 t -=  x;
03 cout << t << endl;

{{ select(11) }}

  • 00
  • 1-1
  • 11
  • 死循环

第 12 题 根据下面的流程图,如果成绩 score 输入6060,输出的结果是( )

{{ select(12) }}

  • 优秀
  • 及格
  • 不及格
  • 没有输出

第 13 题 以下代码运行后,sum 的结果是( )

01 int arr[5] = {2, 4, 6, 8, 10};
02 int sum = 0;
03 for (int i = 0; i < 5; i++) {
04     switch (arr[i] % (1|2)) {
05         case 0: sum += 1; break;
06         case 1: sum += 2; break;
07         case 2: sum += 3; break;
08     }
09 }

{{ select(13) }}

  • 1010
  • 1111
  • 1414
  • 1515

第 14 题 以下关于 C++abs() 函数的描述,正确的是( )

{{ select(14) }}

  • 函数可用于计算 int 类型整数的绝对值,头文件为<cmath><cstdlib>
  • abs(调用abs(3.14) 可以四舍五入得到 3
  • abs(-1,-2) 的返回值是 11
  • 若传入负数浮点数,abs() 会自动截断小数部分后返回整数绝对值

第 15 题 如果字符串 s 的值是 GESP,以下代码 s 的最后结果是( )

01 for (int i = 0; i < s.length(); i++) {
02     s[i] = toupper(s[i] + i);
04 }

{{ select(15) }}

  • GESP
  • HFTR
  • hesp
  • GFUS

二、判断题(每题 2 分,共 20 分)

第 1 题C++ 中,数组名不能改变,数组名不能被赋值。

{{ select(16) }}

  • 正确
  • 错误

第 2 题 整型变量 aa 的值为 33,浮点数变量 bb 的值为 3.53.5,在 C++ 编译环境下,经过 a*=b 计算后,aa 的值变为 10.510.5,此时如果输出 aa,将输出 10.510.5

{{ select(17) }}

  • 正确
  • 错误

第 3 题 strcmp(str1,str2) 返回 00 表示 str1大于 str2,返回正数表示两者相等。

{{ select(18) }}

  • 正确
  • 错误

第 4 题 以下代码输出结果为 88

01 int a = 5, b = 3;
02 int c = a++ + ++b;
03 cout << c << endl;

{{ select(19) }}

  • 正确
  • 错误

第 5 题 位运算符 &|~ 的优先级高于算术运算符+-*/

{{ select(20) }}

  • 正确
  • 错误

第 6 题C++ 中,int a[]={1,2,3,4,5}; 可以定义一个包含 55 个元素的整型数组。

{{ select(21) }}

  • 正确
  • 错误

第 7 题 C++ 表达式 z = a > b ? x : y 等同于:

01 if (a > b) {
02     z = x;
03 } else {
04     z = y;
05 }

以下代码执行后,输出将会是 22

01 int main() {
02     int arr[5] = {1, 2, 3, 4, 5};
03     cout << arr[3 > 2 ? 1 : 2] << endl;
04     return 0;
05 }

{{ select(22) }}

  • 正确
  • 错误

第 8 题C++ 中,++-- 运算符只能用于整型变量,不能用于浮点数变量。

{{ select(23) }}

  • 正确
  • 错误

第 9 题 给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。

{{ select(24) }}

  • 正确
  • 错误

第 10 题 以下代码中,Hello 将被输出 55 次。

01 for (int i = 0; i < 5; i++);
02 {
03     cout << "Hello" << endl;
04 }

{{ select(25) }}

  • 正确
  • 错误