试卷 2024年3月GESP认证C++编程四级真题试卷
2024年3月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) ;

第 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 }
A.

G

B.

e

C.

n

D.

P

第 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 }
A.

1

B.

1.1

C.

 3

D.

3.1

第 4 题    单选题

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

A.

4

B.

16

C.

48

D.

64

第 5 题    单选题

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

A.

0x28cbc4

B.

0x28cbd0

C.

 0x28cc00

D.

不确定

第 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 }
A.

e

B.

 I lov

C.

 e GESP!

D.

GESP!

第 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
A.

0

B.

1

C.

6

D.

不确定

第 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
A.

递推

B.

 递归

C.

迭代

D.

循环

第 9 题    单选题
插⼊排序在最好情况下的时间复杂度是(     )。
A.

O(1)

B.

O(N/2)

C.

O(N)

D.

O(N2)

第 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 }
A.

 X>Y

B.

X==Y

C.

X<Y

D.

不确定

第 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 }
A.

5

B.

2024

C.

3

D.

0

第 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 }
A.

2024

B.

3.16

C.

024

D.

3

第 13 题    单选题

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

A.

extern

B.

static

C.

inline

D.

public

第 14 题    单选题

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

A.

⼩程序

B.

计时器

C.

 操作系统

D.

神话⼈物

第 15 题    单选题

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

A.

制造⾃动驾驶汽车

B.

创⽴培训学校

C.

发明汉字激光照排系统

D.

成⽴⽅正公司

判断题
第 16 题    判断题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A.
正确
B.
错误
编程题
第 26 题    问答题
试题名称:⼩杨的字典
在遥远的星球,有两个国家A国和B 国,他们使⽤着不同的语⾔:A语⾔和B 语⾔。⼩杨是B 国的翻译官,他的⼯ 作是将A语⾔的⽂章翻译成B 语⾔的⽂章。
 
为了顺利完成⼯作,⼩杨制作了⼀本字典,⾥⾯记录了   N    个A语⾔单词对应的B 语⾔单词,巧合的是,这些单词都 由地球上的26 个⼩写英⽂字母组成。
 
⼩杨希望你写⼀个程序,帮助他根据这本字典翻译⼀段A语⾔⽂章。这段⽂章由标点符号!()-[]{}\|;:'",./? <> 和⼀些A语⾔单词构成,每个单词之间必定由⾄少⼀个标点符号分割,你的程序需要把这段话中的所有A语⾔ 单词替换成它的B 语⾔翻译。特别地,如果遇到不在字典中的单词,请使⽤⼤写UNK 来替换它。
 
例如,⼩杨的字典中包含2 个A语⾔单词abc 和d,它们的B 语⾔翻译分别为a 和def,那么我们可以把A 语⾔⽂章abc.d.d.abc.abcd. 翻译成B 语⾔⽂章a.def.def.a.UNK.,其中,单词abcd 不在词典内,因此我 们需要使⽤UNK 来替换它。
 
输入描述
第⼀⾏⼀个整数  N    ,表⽰词典中的条⽬数。保证   N<=100   。
 
接下来   N    ⾏,每⾏两个⽤单个空格隔开的字符串    A,B      ,分别表⽰字典中的⼀个A语⾔单词以及它对应的B 语⾔翻 译。保证所有   A   不重复;保证   A   和   B   的长度不超过  10  。
 
最后⼀⾏⼀个字符串 S,表⽰需要翻译的A语⾔⽂章。保证字符串  S    的长度不超过      1000     ,保证字符串 S     只包含⼩写 字母以及标点符号!()-[]{}\|;:'",./?<>。
输出描述 
输出⼀⾏,表⽰翻译后的结果。
特别提醒
在常规程序中,输⼊、输出时提供提⽰是好习惯。但在本场考试中,由于系统限定,请不要在输⼊、输出中附带任 何提⽰信息。
样例输入1
2
abc a 
d def
abc.d.d.abc.abcd.
样例输出1
a.def.def.a.UNK.
第 27 题    问答题
试题名称:⽥忌赛马
你要和⽥忌赛马。你们各⾃有 N  匹马,并且要进⾏   N  轮⽐赛,每轮⽐赛,你们都要各派出⼀匹马决出胜负。
 
你的马匹的速度分别为   u1,u2....un  ,⽥忌的马匹的速度分别为  v1,v2....vn。⽥忌会按顺序派出他的马匹,请问 你要如何排兵布阵,才能赢得最多轮次的⽐赛?巧合的是,你和⽥忌的所有马匹的速度两两不同,因此不可能出现 平局。
 
输入描述
第⼀⾏⼀个整数      。保证   。 
接下来⼀⾏    N   个⽤空格隔开的整数,依次为u1,u2....un,表⽰你的马匹们的速度。保证      。
接下来⼀⾏    N   个⽤空格隔开的整数,依次为v1,v2....vn,表⽰⽥忌的马匹们的速度。保证    。
输出描述
 
输出⼀⾏,表⽰你最多能获胜⼏轮。
特别提醒
 在常规程序中,输⼊、输出时提供提⽰是好习惯。但在本场考试中,由于系统限定,请不要在输⼊、输出中附带任 何提⽰信息。
样例输入1
 
3
1 3 5 
2 4 6
样例输出1
2
样例解释1
 
第1 轮,⽥忌派出速度为 2 的马匹,你可以派出速度为3  的马匹迎战,本轮你获胜。
 
第2 轮,⽥忌派出速度为 4 的马匹,你可以派出速度为5 的马匹迎战,本轮你获胜。
 
第3 轮,⽥忌派出速度为6 的马匹,你可以派出速度为1 的马匹迎战,本轮⽥忌获胜。 
如此,你可以赢得2 轮⽐赛。
 
样例输入2
5
10 3 5 8 7
4 6 1 2 9
样例输出2
5
答题卡
选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
判断题
编程题
26 27
题目总数:27
总分数:100
时间:120分钟
QQ
微信