欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

2023年 9月 GESP C++ 四级真题解析 选择题

时间:2024-05-05 15:31 作者:admin 点击:
一、单选题(每题2分,共30分) 1、⼈们所使用的手机上安装的App通常指的是( )。 A.⼀款操作系统 B.⼀款应用软件 C.⼀种通话设备 D.以上都不对 【答案】B 【考纲知识点】 计算机基础

一、单选题(每题2分,共30分)
1、⼈们所使用的手机上安装的App通常指的是( )。

A.⼀款操作系统
B.⼀款应用软件
C.⼀种通话设备
D.以上都不对
【答案】B
【考纲知识点】 计算机基础
【解析】本题属于考察计算机基础知识。APP是英语单词application的简写,代表应用软件的意思。

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


A. 9
B. 7
C. 5
D. 11
【答案】A
【考纲知识点】 流程图和多层循环语句
【解析】本题属于考察计算机循环结构嵌套选择结构知识。根据流程图,n<=5时会一直循环,每次循环先判断是否满足m*n>20的条件,然后对m进行不同的赋值。例如:n=1,m=1,m*n不大于20,m会计算,赋值为3,依次类推,最终m的结果是9,选A。

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

A.O(n)
B.O(n log n)
C.O(n2)
D.以上都不正确
【答案】C
【考纲知识点】 冒泡排序
【解析】本题属于考察简单排序算法的时间复杂度,选C。

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

A.可以定义指向int类型的指针。
B.可以定义指向⾃定义结构体类型的指针。
C.⾃定义结构体类型可以包含指针类型的元素。
D.不能定义指向void类型的指针 ,那没有意义。
【答案】D
【考纲知识点】 指针的概念及使用
【解析】本题属于考察计算机指针知识。可以指向void类型。

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

A.一维数组可以用来表示数列。
B.二维数组可以用来表示矩阵。
C.三维数组可以用来表示空间中物体的形状。
D.世界是三维的 ,所以定义四维数组没有意义。
【答案】D
【考纲知识点】 数组
【解析】本题属于考察计算机数组知识。世界可以用多维描述,定义四维也有意义。

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

A.函数调用前必须定义。
B.函数调用时必须提供足够的实际参数。
C.函数定义前必须声明。
D.函数声明只能写在函数调用前。
【答案】B
【考纲知识点】 函数的概念及使用
【解析】本题属于考察计算机函数知识。函数调用时如果缺少实参将不能正确运行。

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

A.两个函数的声明可以相同。
B.两个函数的局部变量可以重名。
C.两个函数的参数可以重名。
D.两个函数可以重名。
【答案】A
【考纲知识点】 函数的概念及使用
【解析】本题属于考察计算机函数知识。函数声明时不能相同。

8、⼀个二维数组定义为 char array[3][10]; ,则这个二维数组占用内存的大⼩为( )。
A. 10
B. 30
C. 32
D. 48
【答案】B
【考纲知识点】 二维数组知识
【解析】本题属于考察C++二维字符数组知识。内存大小和数组需要用的空间有关。3行10列,需要3*10=30个空间,选B

9、如果n为int类型的变量,⼀个指针变量定义为int *p=&n; ,则下列说法正确的是( )。
A.指针变量p的值与变量n是相同
B.指针变量p的值与变量n的地址是相同的。
C.指针变量p指向的值为 'n'。
D.指针变量p指向的值与变量n的地址是相同的。
【答案】B
【考纲知识点】 指针
【解析】本题属于考察C++指针知识。指针的值保存的是变量的地址,所以选B。

10、⼀个三维数组定义为 long long array[6][6][6]; ,则array[1][2][3]和array[3][2][1]在内存中的 位置相差多少字节?( )
A. 70字节
B. 198字节
C. 560字节
D.无法确定
【答案】C
【考纲知识点】 三维数组
【解析】本题属于考察C++三维数组知识。数组是long long类型,每间隔一下数字就间隔8个字节,假设三维数组用长宽高来描述,array[0][0][0]到array[0][5][5]有36个元素,array[1][2][3]包含36+12+4=52个元素;到长度3宽度2高度1,包括36*3+12+2=122个元素,隔离70个元素,因此长度是560,选C。

11、如果 a 为 int 类型的变量,且 a 的值为6,则执⾏a = ~a; 之后,a的值会是( )。
A. -6
B. 6
C. -7
D. 7
【答案】C
【考纲知识点】 位运算
【解析】本题属于考察C++位运算知识。6按位取反运算,注意符号位也取反,呈现的是补码,转换过来就是-7。具体过程:00000110(取反操作)11111001(补码)11111000(补码-1=反码)10000111(负数的原码,注意此时取反符号位不变)

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}
【答案】A
【考纲知识点】 指针和数组
【解析】本题属于考察C++指针和数组知识。P指针指向的是a[2],将a[1]的值赋值给p指向的变量a[2],数组中a[1]将等于a[2]。

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

A.⼀个try⼦句可以有多个catch⼦句与之对应。
B.如果try⼦句在执⾏时发⽣异常 ,就⼀定会进⼊某⼀个catch⼦句执⾏。
C.如果try⼦句中没有可能发⽣异常的语句 ,会产⽣编译错误。
D. catch ⼦句处理异常后 ,会重新执⾏与之对应的try⼦句。

【答案】A
【考纲知识点】 异常处理
【解析】本题属于考察C++处理异常知识。A是正确的。B选项中,得到对应类型中的异常才能catch操作。

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

#include<iostream>
using namespace std;
int main(){	 
	int fib[10];
	fib[0] = 0;
	fib[1] = 1;
	for (int i = 2; i < 10; i++)
		fib[i] = fib[i-1] + fib[i-2];
	cout << fib[10] << endl;
	return 0;
}

A. 0
B. 5
C. 55
D. ⽆法确定。
【答案】D
【考纲知识点】 循环和一维数组的基本运用
【解析】本题属于考察C++循环结构和一维数组的知识。这是求斐波那契数列的代码,数组的范围是[0,9],所以对fib[10]操作后,越界访问结果无法确定。

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

void BubbleSort(int array[], int n){
	for (int i = n; i >= 2; i--)
		for(_________)//此处填写代码
			if(array[j] > array[j+1]){
				int t = array[j];
				array[j] = array[j+1];
				array[j+1] = t;
			}
}

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++
【答案】C
【考纲知识点】 函数和数组的知识
【解析】本题属于考察C++函数和数组的知识。题目已知,要求从小到大的冒泡排序,如果前一个比后一个大,就交换位置,外层循环从n开始,判断的区间逐渐减小,判断循环范围C正确。

(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%