2024年3月GESP认证C++编程四级真题试卷
剩余时间 --:--:--
单选题 共 15 题
1.

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

2.

下⾯C++代码执⾏后 ,输出的是(  )。

1 int main()
2 {
3  int x[]={2, 0, 2, 4};
4  char geSP[]="Grade Examination of SP";
5
6  cout << geSP[sizeof(x)] << endl;
7
8  cout << endl;
9  return 0;、
10 }
3.

下⾯C++代码执⾏后输出是(  )。

1 int foo(float *f)
2 {
3  return int(*f*2);
4 }
5
6 int main()
7 {
8  float fnum[10]={1.1};
9  fnum[1]=foo(fnum);
10  cout << fnum[0]+fnum[1] << endl;
11
12  cout << endl;
13  return 0;
14 }
4.

对⼆维数组int arr[3][16]; ,则arr[1]占⽤内存的⼤⼩为(  )字节。

5.

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

6.

下⾯C++代码执⾏后输出是(    )。

1 int main(  )
2 {
3  char *p="I love GESP!";
4  cout << p+5 << endl;
5
6  cout << endl;
7  return 0;
8 }
7.

下⾯C++代码执⾏以后输出的是(    )。

1 int rc=5;
2 int main()
3 {
4  int rc;
5  cout << ++rc << endl;
6
7  cout << endl;
8  return 0;
9 }
10
8.

下⾯C++函数中采⽤的算法是(    )。

1 int fib(int n)
2 {
3  int i, f[n]={0, 1};
4
5  for(int i=2; i<=n; i++)
6   f[i]=f[i-1]+f[i-2];
7
8  return f[n];
9 }
10
9.

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

10.

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

1 struct pass{
2  int no;
3  char name[20];
4  int level;
5 };
6
7 int main()
8 {
9  struct pass XiaoYang;
10
11  cout << "&XiaoYang=" << &XiaoYang << endl; //第11行
12  cout << "&(XiaoYang.no)=" << &(XiaoYang.no) << endl; //第12行
13
14  cout << endl;
15  return 0;
16 }
11.

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

1 50 2024 3.16 I

2 love

3 GESP!

1 int main( )
2 {
3  ifstream fin;
4  string line;
5  int x;
6  fin.open("1.txt",ios::in);
7
8  for (int i=0; i< 2; i++){
9   fin >> line;
10  cout << line << endl;
11  }
12  fin>>x;
13  cout << x << endl; //####
14
15  cout << endl;
16  return 0;
17 }
12.

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

1 int main()
2 {
3  char *s[]={(char*)"2024",(char*)"3.16",(char*)"GESP"};
4
5  for (int i=0; i< 2; i++){
6   cout << *s+i << endl;
7  }
8
9  cout << endl;
10  return 0;
11 }
13.

C++语⾔中下⾯哪个关键字能够限定对象的作⽤域(    )。

14.

⼩杨的⽗母最近刚刚给他买了⼀块华为⼿表 ,他说⼿表上跑的是鸿蒙 ,这个鸿蒙是(  )。

15.

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

判断题 共 10 题
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

在C++语⾔中try⼦句⾥抛出的结构体等类型的异常⽆法被catch捕获 。  (  )

8.

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

9.

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

10.

任何⼀个for循环都可以转化为等价的while循环.

问答题 共 2 题
1.

试题名称:相似字符串

3.1.1 问题描述

对于两个字符串A和B,如果A可以通过删除一个字符,或插入一个字符,或修改一个字符变成B,那么我们说A和B是相似的。

比如apple可以通过插入一个字符变成applee,可以通过删除一个字符变成appe,也可以通过修改一个字符变成bpple,因此apple和applee、appe、bpple都是相似的。但applee并不能通过任意一个操作变成bpple,因此它们并不相似。

特别地,完全相同的两个字符串也是相似的。

给定T组A,B,请你分别判断他们是否相似。

3.1.2 输入描述

第一行一个正整数T。

接下来T行,每行两个用空格隔开的字符串A和B。

保证T≤100,A,B的长度不超过50。保证A和B只包含小写字母。

3.1.3 输出描述

输出T行,对于每组A,B,如果它们相似,则输出similar,否则输出not similar。

3.1.4 特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

3.1.5 样例输入 1

3.1.6 样例输出 1

2.

试题名称:做题

3.2.1 题目描述

小杨同学为了提高自己的实力制定了做题计划,在第K天时,他必须要完成K道题,否则他就会偷懒。

小杨同学现在找到了一个题库,一共有n套题单,每一套题单中有一定数量的题目。但是他十分挑剔,每套题单他只会使用一次,每一天也只能使用一套题单里的题目,之后那套题单就会被弃之不用。对于每套题单,他不必完成题单内所有的题。

那么问题来了,小杨同学最多会做题几天才偷懒呢?

3.2.2 输入格式

第一行,1个数为n,表示有多少套题单。

第二行,n个整数a1,a2,......,an,分别表示每套题单有多少道题。

3.2.3 输出格式

输出一行,小杨同学偷懒前最多做题天数。

3.2.4 样例1

对于全部数据 ,保证有1 ≤ n ≤ 106 , 1≤ ai ≤ 109 。

C++ 编辑器
输入
输出