GESP认证C++编程真题解析 | 202403 四级

附上汇总帖:GESP认证C++编程真题解析 | 汇总


单选题

第1题

若函数声明为 int f(int &x){ x+=3; return x; } ,则对声明的变量 int a=3 ,下面哪个调用能够改变a 的值( )。

A. f(&a) ;

B. f(*a) ;

C. f(a) ;

D. f(a-3) ;

【答案】:C

【解析】

&x是对传入变量a的引用,此时修改x,a也会被修改

第2题

下面C++代码执行后,输出的是( )。

int main()
{
	int x[]={2, 0, 2, 4};
	char geSP[]="Grade Examination of SP";

	cout << geSP[sizeof(x)] << endl;

	cout << endl;
	return 0;
}

A. G

B. e

C. n

D. P

【答案】:C

【解析】

sizeof(x)为4 * 4 = 16,输出geSP[16],即为n

第3题

下面C++代码执行后输出是( )。

int foo(float *f)
{
	return int(*f*2);
}

int main()
{
	float fnum[10]={1.1};
	fnum[1]=foo(fnum);
	cout << fnum[0]+fnum[1] << endl;

	cout << endl;
	return 0;
}

A. 1

B. 1.1

C. 3

D. 3.1

【答案】:D

【解析】

fnum为数组首元素,即2.2,所以foo(fnum)得到结果为2,复制给fnum[1],fnum[0]+fnum[1] = 1.1 + 2 = 3.1

第4题

对二维数组 int arr[3][16]; ,则 arr[1] 占用内存的大小为( )字节。

A. 4

B. 16

C. 48

D. 64

【答案】:D

【解析】

arr[3][16]可以看成3个arr[16],每个arr[16]占用16 * 4 = 64个字节

第5题

对二维数组 int arr[3][16]; ,若 arr 的地址是 0x28cbc0 ,则 arr[1] 的值是( )。

A. 0x28cbc4

B. 0x28cbd0

C. 0x28cc00

D. 不确定

【答案】:C

【解析】

0x28cbc0是arr[0]的地址,arr[1] = arr[0] + 64字节 = 0x28cbc0 + 0x40 = 0x28cc00

第6题

下面C++代码执行后输出是( )。

int main()
{
	char *p="I love GESP!";
	cout << p+5 << endl;

	cout << endl;
	return 0;
}

A. e

B. I lov

C. e GESP!

D. GESP!

【答案】:C

【解析】

p为字符数组的指针,如果直接cout << p,则打印整个字符串,p+5就是偏移5个后一直输出到末尾(遇到'\n'停止)

第7题

下面C++代码执行以后输出的是( )。

int rc=5;
int main()
{
	int rc;
	cout << ++rc << endl;

	cout << endl;
	return 0;
}

A. 0

B. 1

C. 6

D. 不确定

【答案】:D

【解析】

就近原则,即在局部变量rc上++,因为是局部定义且未赋初值,所以是个野值,不确定是什么

第8题

下面C++函数中采用的算法是( )。

int fib(int n)
{
	int i, f[n]={0, 1};

	for(int i=2; i<=n; i++)
		f[i]=f[i-1]+f[i-2];

	return f[n];
}

A. 递推

B. 递归

C. 迭代

D. 循环

【答案】:A

【解析】

斐波那契公式,属于递推公式

第9题

插入排序在最好情况下的时间复杂度是( )。

A. \(O(1)\)

B. \(O(N/2)\)

C. \(O(N)\)

D. \(O(N^2)\)

【答案】:

【解析】

插入排序平均复杂度为,最好情况比较N-1就可以排完,时间复杂度就是O(N)

第10题

在如下的C++代码执行后,设第11和12行的输出地址值分别为 XY ,则下面正确的是( )。

struct pass{
	int no;
	char name[20];
	int level;
};

int main()
{
	struct pass XiaoYang;

	cout << "&XiaoYang=" << &XiaoYang << endl; //第11行
	cout << "&(XiaoYang.no)=" << &(XiaoYang.no) << endl; //第12行

	cout << endl;
	return 0;
}

A. X>Y

B. X==Y

C. X<Y

D. 不确定

第11题

如果文件 1.txt 中的内容如下,则执行下面C++代码时,注释了 #### 那行代码所输出的 x 的值为( )。

50 2024 3.16 I
love
GESP!
int main()
{
	ifstream fin;
	string line;
	int x;
	fin.open("1.txt",ios::in);

	for (int i=0; i< 2; i++){
		fin >> line;
		cout << line << endl;
	}
	fin>>x;
	cout << x << endl; //####

	cout << endl;
	return 0;
}

A. 5

B. 2024

C. 3

D. 0

【答案】:C

【解析】

第9行循环两次,分别读入字符串50和2024(fin与cin一样,以空格或回车为分隔符)。第12行读入int类型,将3.16转为3

第12题

执行下列C++代码时输出中的第2行是( )。

int main()
{
	char *s[]={(char*)"2024",(char*)"3.16",(char*)"GESP"};

	for (int i=0; i< 2; i++){
		cout << *s+i << endl;
	}

	cout << endl;
	return 0;
}

A. 2024

B. 3.16

C. 024

D. 3

【答案】:C

【解析】

s表示数组中首元素的地址,*s指向地址里面的内容,因为地址里面也是个char指针,指向“2”,i=0时输出2024。i=1时,地址加1个字节,指向“0”,输出024。

第13题

C++语言中下面哪个关键字能够限定对象的作用域( )。

A. extern

B. static

C. inline

D. public

【答案】:

【解析】

extern声明一个变量是在其他文件中定义。static限定对象作用域,修饰全局变量时,使其只能在声明这个变量的文件中可见。inline内联函数,用于提高程序运行效率。public让一个类外面也可以用。

第14题

小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是( )。

A. 小程序

B. 计时器

C. 操作系统

D. 神话人物

【答案】:C

【解析】

(常识)

第15题

中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。

A. 制造自动驾驶汽车

B. 创立培训学校

C. 发明汉字激光照排系统

D. 成立方正公司

【答案】:C

【解析】

(常识)

判断题

第1题

int a[]={2,0,2,4,3,1,6} ,执行第一趟选择排序处理后 a 中数据变为 {0,2,2,4,3,1,6}。( )

A. 正确

B. 错误

【答案】:A

【解析】

选出最小的数0,放到的第一的位置

第2题

如果待排序数据不能都装进内存,需要使用外排序算法。( )

A. 正确

B. 错误

【答案】:A

【解析】

外排序算法主要用来处理在内存内容装不下的数据,例如数据库、大型文件等

第3题

定义变量 int a=5 ,则 cout << &++a 会输出 6。( )

A. 正确

B. 错误

【答案】:B

【解析】

不会输出6,而是输出内存的地址

第4题

两个函数之间可以使用全局变量来传递数据。( )

A. 正确

B. 错误

【答案】:A

【解析】

每一个函数都可以使用全局变量,也可以改变全局变量

第5题

定义数组 int a[2024][3][16]={2,0,2,4,3,1,6} ,则 cout << a[2023][2][15] 的结果不确定。( )

A. 正确

B. 错误

【答案】:B

【解析】

数组进行了部分初始化,没有初始化的数据均为0

第6题

在C++语言中,函数的参数为指针时,可以在函数内部修改该参数的值。( )

A. 正确

B. 错误

【答案】:B

【解析】

参数为指针时,函数内部只能修改指针指向的地址的值,不能修改指针的值。如果要修改需要**p

第7题

在C++语言中 try 子句里抛出的结构体等类型的异常无法被 catch 捕获。( )

A. 正确

B. 错误

【答案】:B

【解析】

try中抛出的异常,都可以被catch所捕获

第8题

C++语言中 cout << 9^2 << endl; 会输出81。( )

A. 正确

B. 错误

【答案】:B

【解析】

^在编程中是异或,不是数学中的平方

第9题

小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。( )

A. 正确

B. 错误

【答案】:A

【解析】

常识,盒子要能分配IP地址给电视机,电视机才能上网

第10题

任何一个 for 循环都可以转化为等价的 while 循环( )。

A. 正确

B. 错误

【答案】:

【解析】

for循环有三要素,初值、条件和增量。任何一个for循环都可以用while来替代

编程题

题解:洛谷 B3958 [GESP202403 四级] 相似字符串

题解:洛谷 B3959 [GESP202403 四级] 做题

posted @ 2026-07-17 15:36  团爸讲算法  阅读(13)  评论(0)    收藏  举报