#1386. GESP三级真题(202309)

GESP三级真题(202309)

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

1、⼈们所使⽤的⼿机上安装的App通常指的是( )。 {{ select(1) }}

  • ⼀款操作系统
  • ⼀款应⽤软件
  • ⼀种通话设备
  • 以上都不对

2、下列流程图的输出结果是?( )

image{{ select(2) }}

  • 60
  • 20
  • 5
  • 1

3、已知⼤写字符 'A' 的ASCII编码的⼗六进制表⽰为 0x41 ,则字符 'L' 的ASCII编码的⼗六进制表⽰为()。 {{ select(3) }}

  • 4A
  • 4B
  • 4C
  • 52

4、以下哪个不是C++语⾔中的运算符?( ) {{ select(4) }}

  • ~
  • ~~
  • <
  • <<

5、如果数组定义为long long array[] = {3, 5, 7, 2};,则数组 array 占⽤的字节数为( )。 {{ select(5) }}

  • 32
  • 16
  • 8
  • 4

6、⼀个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标最⼤为( )。 {{ select(6) }}

  • 2
  • 3
  • 23
  • 24

7、以下数组定义,符合C++语⾔语法的是( )。 {{ select(7) }}

  • double a[];
  • double b[] = {1, 2.0, '3'};
  • double c[3.0]
  • double[] d = new double[3];

8、下列关于进制的叙述,正确的是( )。 {{ select(8) }}

  • 只有⼗进制和⼆进制能够⽤来表⽰⼩数,⼋进制和⼗六进制不可以。
  • 常⽤的进制包括⼆进制、⼋进制、⼗进制、⼗六进制,其他进制在⽇常⽣活中很少使⽤。
  • 对任意正整数,其⼆进制表⽰不会⽐它的⼗进制表⽰更短。
  • 正整数的⼋进制表⽰中,每⼀位可能出现的最⼤数字是8。

9、下列关于C++语⾔中数组的叙述,不正确的是( )。 {{ select(9) }}

  • 可以定义 0 个元素的数组。
  • 不能定义 -1 个元素的数组。
  • 数组下标越界访问会产⽣编译错误。
  • 程序运⾏时发⽣数组下标的越界访问,程序依然可能正常结束。

10、如果 aint 类型的变量,下列哪个表达式的值⼀定为 true ?( ) {{ select(10) }}

  • a + 1000- 1000 == a
  • a * 2 / 2 == a
  • (a & 1) == 1
  • (a | 1) == a + 1

11、如果 ab 均为 int 类型的变量,下列表达式不能正确判断“ a 等于 b ”的是( )。 {{ select(11) }}

  • ((a >= b) && (a <= b))
  • ((a >> 1) == (b >> 1))
  • ((a + b) == (a + a))
  • ((a ^ b) == 0)

12、如果 achar 类型的变量,下列哪个表达式可以正确判断“a是⼤写字母”?( ) {{ select(12) }}

  • a- 'A' <= 26
  • 'A' <= a <= 'Z'
  • 'A' <= 'a' <= 'Z'
  • ('A' <= a) && (a <= 'Z')

13、在下列代码的横线处填写( ),可以使得输出是“20 10”。

#include<iostream>
using namespace std;

int main(){
	int a = 10, b = 20;
	a = (a << 8) | b;
	___________;//在此处填入代码 
	cout << a << " " << b << endl;
	return 0;
}

{{ select(13) }}

  • a = a >> 8; b = a & 0xff
  • b = a >> 8; a = a & 0xff;
  • a = b; b = a & 0xff;
  • b = a; a = b;

14、在下列代码的横线处填写( ),可以使得输出是“120”。

#include<iostream>
using namespace std;

int main(){
	int array[5] = {1, 2, 3, 4, 5};
	int res = 0;
	for(int i = 0; i < 5; i++)
		___________;//在此处填入代码 
	cout << res << endl;
	return 0;
}

{{ select(14) }}

  • res += array[i];
  • res *= array[i]
  • res = array[i]
  • 以上均不对。

第 15 题 在下列代码的输出是( )。

#include<iostream>
using namespace std;

int main(){
	int array[10];
	for(int i = 0; i < 10; i++)
		array[i] = i;
	for(int p = 2; p < 10; p++)
		if(array[p] == p)
			for(int n = p; n < 10; n += p)
				array[n] = array[n] / p * (p-  1);
	int res = 0;
	for(int n = 1; n < 10; n++)
		res += array[n];
	cout << res << endl;
	return 0;
}

{{ select(15) }}

  • 15
  • 28
  • 45
  • 55

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

1、⼆进制数 101.101 在⼗进制下是 5.005。 {{ select(16) }}

2、在C++语⾔中,位运算符也有类似“先乘除、后加减”的优先级规则。因此,使⽤时应注意合理使⽤括号。 {{ select(17) }}

3、字符常量 '3' 的值和 int 类型常量 3 的值是相同的,只是占⽤的字节数不同。 {{ select(18) }}

4、在C++语⾔中,长度为 nn 的数组,访问下标为 nn 的元素会引起编译错误。 {{ select(19) }}

5、在C++语⾔中,所有 int 类型的值,经过若⼲次左移操作( << )后,它们的值总会变为 0 。 {{ select(20) }}

6、在C++语⾔中,数组下标的⼤⼩决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序⽆关。 {{ select(21) }}

7、在C++语⾔中,定义数组时, [] 中必须指定元素个数。 {{ select(22) }}

8、著名的哥德巴赫猜想:任⼀⼤于2的偶数都可写成两个素数之和。我们可以通过枚举法来证明它。 {{ select(23) }}

9、在C++语⾔中,表达式 (0xff == 255) 的值为 true 。 {{ select(24) }}

10、如果 aint 类型的变量,且表达式 ((a & 1) == 0) 的值为 true ,则说明 a 是偶数。 {{ select(25) }}