GESP_C++_四级[2023.9]

题目总数:27
总分数:135
时间:不限时
第 1 题    单选题

 ⼈们所使用的手机上安装的App通常指的是( 

A.

 ⼀款操作系统

B.

 ⼀款应用软件

C.

 ⼀种通话设备

D.

 以上都不对

第 2 题    单选题

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

A.

9

B.

7

C.

5

D.

11

第 3 题    单选题

 对包含n个元素的数组进⾏冒泡排序 ,平均时间复杂度一般为( )。

A.

 O(n)

B.

 O(n log n)

C.

 O(n²)

D.

 以上都不正确

第 4 题    单选题

 下列关于C++语⾔中指针的叙述 ,不正确的是( )。

A.

 可以定义指向int类型的指针。

B.

 .可以定义指向⾃定义结构体类型的指针。

C.

 ⾃定义结构体类型可以包含指针类型的元素。

D.

 不能定义指向void类型的指针 ,那没有意义

第 5 题    单选题

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

A.

 一维数组可以用来表示数列。

B.

 .二维数组可以用来表示矩阵

C.

 三维数组可以用来表示空间中物体的形状

D.

 .世界是三维的 ,所以定义四维数组没有意义

第 6 题    单选题

 下列关于C++语⾔中函数的叙述 ,正确的是( )。

A.

 函数调用前必须定义。

B.

 函数调用时必须提供足够的实际参数。

C.

 .函数定义前必须声明。

D.

 函数声明只能写在函数调用前。

第 7 题    单选题


  • 下列关于C++语⾔中函数的叙述 ,不正确的是( )。

A.

 两个函数的声明可以相同。

B.

 .两个函数的局部变量可以重名。

C.

 两个函数的参数可以重名。

D.

 两个函数可以重名。

第 8 题    单选题

 ⼀个二维数组定义为 char array[3][10]; ,则这个二维数组占用内存的大⼩ 为( )。

A.

10

B.

30

C.

32

D.

48

第 9 题    单选题

 如果n为int类型的变量,⼀个指针变量定义为int *p=&n; ,则下列说法正确的 是( )

A.

 指针变量p的值与变量n是相同

B.

 指针变量p的值与变量n的地址是相同的。

C.

 指针变量p指向的值为 'n'。

D.

 指针变量p指向的值与变量n的地址是相同的。

第 10 题    单选题

 ⼀个三维数组定义为 long long array[6][6][6]; ,则array[1][2][3]和 array[3][2][1]在内存中的 位置相差多少字节?( )

A.

 70字节

B.

 198字节

C.

 . 560字节

D.

 无法确定

第 11 题    单选题

 如果 a 为 int 类型的变量,且 a 的值为6,则执⾏a = ~a; 之后,a的值会 是( )。

A.

-6

B.

6

C.

-7

D.

7

第 12 题    单选题

 ⼀个数组定义为int a[5] = {1, 2, 3, 4, 5}; ,⼀个指针定义为int * p = &a[2]; ,则执⾏*p = a[1]; 后 ,数组a中的值会变为

A.

  {1, 2, 2, 4, 5}

B.

  {1, 3, 3, 4, 5}

C.

 {1, 2, 3, 3, 5}

D.

 {1, 2, 4, 4, 5}

第 13 题    单选题

 下列关于C++语言中异常处理的叙述,正确的是( )

A.

 ⼀个try⼦句可以有多个catch⼦句与之对应。

B.

 如果try⼦句在执⾏时发⽣异常 ,就⼀定会进⼊某⼀个catch⼦句执⾏。

C.

 如果try⼦句中没有可能发⽣异常的语句 ,会产⽣编译错误

D.

 catch ⼦句处理异常后 ,会重新执⾏与之对应的try⼦句

第 14 题    单选题

 执⾏以下C++语⾔程序后,输出结果是( )。

A.

0

B.

5

C.

55

D.

  ⽆法确定。

第 15 题    单选题

 在下列代码的横线处填写( ),完成对有 n个int类型元素的数组 array 由⼩到⼤排序。

A.

  int j = 1; j < n; j++

B.

 int j = 0; j < n; j++

C.

 int j = 0; j < i - 1; j++

D.

  int j = 0; j < i; j++

第 16 题    判断题

 通过使用文件重定向操作,可以将程序中输出到cout的内容输出到文件中, 这是常用的记录程序运⾏日志的方法之⼀

A.
正确
B.
错误
第 17 题    判断题

 ==和:=都是C++语⾔的运算符。

A.
正确
B.
错误
第 18 题    判断题

 一个可能抛出异常的函数,调用它的位置没有在try⼦句中,会引起编译错 误。

A.
正确
B.
错误
第 19 题    判断题

 如果希望记录10个最长为99字节的字符串,可以将字符串数组定义 为 char

A.
正确
B.
错误
第 20 题    判断题

 在C++语⾔中 ,可以定义结构体类型的数组变量 ,定义结构体时也可以包 含数组成员。

A.
正确
B.
错误
第 21 题    判断题

 在C++语⾔中,可以通过定义结构体,定义⼀个新的数据类型。

A.
正确
B.
错误
第 22 题    判断题

 在C++语⾔中 ,在函数调用时 ,通过引用传递的参数不会复制实际参数, 因此不会额外占用内存

A.
正确
B.
错误
第 23 题    判断题

 在C++语⾔中 ,每个变量都有其作用域。

A.
正确
B.
错误
第 24 题    判断题

 对N个元素的数组执⾏插⼊排序算法 ,通常的时间复杂度是O(N²) 。

A.
正确
B.
错误
第 25 题    判断题

 在C++语言中 ,指针变量在逻辑上指向另⼀个变量在内存中的位置 ,指针 变量本身不占用内存。

A.
正确
B.
错误
第 26 题    问答题

 问题描述

小明刚刚学习了三种整数编码方式:原码、反码、补码,并了解到计算机存储整
数通常使用补码。但他总是觉得生活中很少用到231-1这么大的数,生活中常用
的0 ~ 100这种数也同样需要用4个字节的补码表示,太浪费了些。热爱学习的小
明通过搜索,发现了一种正整数的变长编码方式。这种编码方式的规则如下:
1.对于给定的正整数,首先将其表达为二进制形式。例如,(0){10} =(0){2},
(926){10}=(1110011110){2}。
2.将二进制数从低位到高位切分成每组7 bit,不足7bit的在高位用0填补。例如
,(0){2}变为0000000的一组,(1110011110){2}变为0011110和0000111的两组。
3.由代表低位的组开始,为其加入最高位。如果这组是最后一组,则在最高位
填上0,否则在最高位填上1。于是,0的变长编码为00000000一个字节,926的
变长编码为10011110和00000111两个字节。
这种编码方式可以用更少的字节表达比较小的数,也可以用很多的字节表达非
常大的数。例如,987654321012345678的二讲制为(0001101 1011010 0110110
1001011 1110100 0100110 1001000 0010110 1001110){2}于是它的变长编码为(十
六进制表示) CE 96 C8 A6 F4 CB B6 DA OD,共9个字节。
查看答案

第 27 题    问答题


  • 1、进制转换
    问题描述
    N进制数指的是逢N进⼀的计数制。例如,⼈们日常⽣活中⼤多使用⼗进制计数
    ,而计算机底层则⼀般使用二进制。除此之外,⼋进制和⼗六进制在⼀些场合
    也是常⽤的计数制(⼗六进制中,⼀般使用字母A 至F表⽰⼗⾄⼗五;本题中,
    ⼗⼀进制到⼗五进制也是类似的)。
    在本题中,我们将给出 N个不同进制的数。你需要分别把它们转换成⼗进制
    数。
    提示
    对于任意⼀个L位K进制数,假设其最右边的数位为第 0位,最左边的数位为
    第 L - 1 位,我们只需要将其第i位的数码乘以权值 K
    i,再将每位的结果相加
    ,即可得到原K进制数对应的⼗进制数。下⾯是两个例⼦:
    1.⼋进制数1362 对应的⼗进制数为1 × 8
    3+3 × 8
    查看答案