CCF编程能力等级认证GESP—C++4级—20231209

CCF编程能力等级认证GESP—C++4级—20231209

  • 单选题(每题 2 分,共 30 分)
  • 判断题(每题 2 分,共 20 分)
  • 编程题 (每题 25 分,共 50 分)
    • 小杨的字典
    • 田忌赛马
  • 参考答案
    • 单选题
    • 判断题
    • 编程题1
    • 编程题2

单选题(每题 2 分,共 30 分)

1、下面有关函数参数的说法,正确的是( )。

A. 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。
B. 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。
C. 函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。
D. 函数参数传递可以不满足子函数的参数个数要求。

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

	int arr[10] = {1};string strArr = "chen a dai";cout << strArr[arr[1]] << endl;	 
A. chen
B. c
C. chen a dai
D. dai

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

int fun1(int *n){return *n**n;
}
int main() {int arr[10] = {2};arr[1] = fun1(arr);cout << arr[1] << endl;
}
A. 1
B. 2
C. 3
D. 4

4、下面C++代码执行后的结果是( )。

	int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};for (int i = 0; i < 3; i++){for (int j = 2; j >= 0; j--){cout << arr[i][j] << " ";}cout << endl;}
  1 2 3
A.4 5 67 8 9B.1 2 3 4 5 6 7 8 93 2 1
C.6 5 49 8 7D.9 8 7 6 5 4 3 2 1

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

	int arr[3] = {1, 2, 3};int *p = NULL;p = arr;p++;cout << *p << endl;
A. 1,2,3
B. 1
C. 2
D. 3

6、如果变量x的地址是0x6ffe14,下面C++代码执行以后输出的是( )。

	int *p = NULL;int x = 2;p = &x;p++;cout << p << endl;
A. 0x6ffe11
B. 0x6ffe14
C. 0x6ffe18
D. 0x6ffe15

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

int point(int *p){return *p**p;
}
int main() {int a = 20;int *p = &a;*p = point(p);cout << *p << endl;
}
A. 400
B. 200
C. 20
D. 100

8、下列C++语句执行以后结果是true的是( )。

A. 3&&false
B. 5&&2
C. 101&&000
D. 4&true

9、在如下的C++代码中实现了对字符串中出现的26个字母的个数统计,横线处应填入是( )。

	string str = "HELLO CHEN A DAI";int strlen = str.length();char alpha[26] = {65};int cnt[26] = {0};for (int i = 1; i < 26; i++){________;}for (int i = 0; i < 26; i++){cout << alpha[i] << " "; }cout << endl;for (int i = 0; i < 26; i++){for (int j = 0; j < strlen; j++){if (alpha[i] == str[j]){cnt[i]++;}}}for (int i = 0; i < 26; i++){cout << cnt[i] << " ";}
A. alpha[i]=alpha[i-1]+1;
B. alpha[i]=alpha[i]+1;
C. alpha[i+1]=alpha[i]+1;
D. alpha[i-1]=alpha[i]+1;

10、下面C++代码执行后生成的文件其字节数为( )。

	ofstream fout;fout.open("1.txt");for (int i = 1; i <= 10; i++){if (i % 5 == 0){int x = 6;fout << x;}else{char ch = 'A';fout << ch;}} 
A. 10
B. 16
C. 40
D. 24

11、 下列C++代码输入 1,2,3,4 执行后,将输出的是( )。

	string str = "";cin >> str;int strlen = str.length();for (int i = 0; i < strlen; i++){if (str[i] <= '9' && str[i] >= '0'){cout << str[i];}else{cout << "#";}}
A. 1#4#
B. 1#3#
C. 1#2#3#4#
D. 1#2#3#4

12、以下C++代码用于实现每个整数对应的因数,如输入 12 ,则输出 1 2 3 4 6 12 ;如输入 18 ,则输出 1 2 3 6 9 18 。横线处应填入代码是( )。

	int n;cin >> n;for (int i = 1; i <= n; i++){____{cout << i << " ";}}
A. if(n%i==0)
B. if(n/i==0)
C. if(n%i!=0)
D. if(n/i!=0)

13、某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )

A. 麦克风
B. 扬声器
C. 油量表
D. 传感器

14、现代计算机是指电子计算机,它所基于的是( )体系结构。

A. 艾伦·图灵
B. 冯·诺依曼
C. 阿塔纳索夫
D. 埃克特-莫克利

15、输入一个正整数N,想找出它所有相邻的因数对,比如,输入12,因数对有(1,2)、(2,3)、(3,4)。下面哪段代码找不到所有的因数对?( )

A. for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
B. for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
C. for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
D. for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

判断题(每题 2 分,共 20 分)

1、C++的内置函数 sort() 支持数组的局部排序。例如 int a={10,9,8,7,6,5,4,3,2,1} ,可以用sort(a,a+5) ,排序成 {6,7,8,9,10,5,4,3,2,1} 。( )

2、用递归法求 n 的阶乘,时间复杂度是 O(n) 。

3、 [(1,2)*2]*3 在C++中是合法的表达式。( )

4、在下面的C++代码中,将对1.txt文件写入 hello 。( )

ifstream filein;
ofstream fileout;
filein.open("1.txt");
fileout << "hello";

5、文本文件 1.txt 第1行由 01234 共5个字符组成其间没有空格,当用C++代码正常打开文件成功并执行如下代码以后,第1行长度为5( )

ifstream filein;
int buff;
filein.open("1.txt");
filein >> buff;
cout << buff << endl;

6、执行C++代码 cout<<(5||2); 后将输出 1 。( )

7、在C++中,两个字符串相加的运算符为+相当于字符串的合并运算。下面C++代码执行后,将输出chenadai 。( )

string a = "chen";
string b = "a";
string c = "dai";
string name = a + b + c;
cout << name << endl;

8、C++内置函数 sort() 可以对整数、浮点数、字符数组进行从大到小,从小到大,局部排序。( )

9、小杨最近在准备考GESP,他用的Dev C++来练习和运行程序,所以Dev C++也是一个小型操作系统。( )

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

编程题 (每题 25 分,共 50 分)

小杨的字典

【问题描述】
在遥远的星球,有两个国家 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.
【样例输入 2】
3
abc a
d def
abcd xxxx
abc,(d)d!-abc?abcd
【样例输出 2】
a,(def)def!-a?xxxx
【样例输入 3】
1
abcdefghij klmnopqrst
!()-[]{}|;:'”,./?<>abcdefghijklmnopqrstuvwxyz
【样例输出 3】
!()-[]{}|;:'",./?<>UNK

田忌赛马

【问题描述】
你要和田忌赛马。你们各自有 N 匹马,并且要进行 N 轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。
你的马匹的速度分别为u1, u2, …, uN ,田忌的马匹的速度分别为 u1, u2, …, uN。田忌会按顺序派出他的马匹,请问
你要如何排兵布阵,才能赢得最多轮次的比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现
平局。
【输入描述】
第一行一个整数 N 。保证 1 < = N < = 5 ∗ 1 0 4 1 <= N <= 5 * 10^4 1<=N<=5104
接下来一行 N 个用空格隔开的整数,依次为 u1, u2, …, uN ,表示你的马匹们的速度。保证 1 < = u i < = 2 N 1 <= ui <= 2N 1<=ui<=2N
接下来一行 N 个用空格隔开的整数,依次为 v1, v2, …, vN ,表示田忌的马匹们的速度。保证 1 < = v i < = 2 N 1 <= vi <= 2N 1<=vi<=2N
【输出描述】
输出一行,表示你最多能获胜几轮。
【特别提醒】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入 1】
3
1 3 5
2 4 6
【样例输出 1】
2
【样例解释 1】
第 1 轮,田忌派出速度为 的马匹,你可以派出速度为 的马匹迎战,本轮你获胜。
第 2 轮,田忌派出速度为 的马匹,你可以派出速度为 的马匹迎战,本轮你获胜。
第 3 轮,田忌派出速度为 的马匹,你可以派出速度为 的马匹迎战,本轮田忌获胜。
如此,你可以赢得 2 轮比赛。
【样例输入 2】
5
10 3 5 8 7
4 6 1 2 9
【样例输出 2】
5

参考答案

单选题

题号123456789101112131415
答案ABDCCCABAADACBB

判断题

题号12345678910
答案××××

编程题1


编程题2


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

近几年计算机毕设之论文参考文献(Java参考文献、MySQL参考文献、jsp参考文献、Python参考文献、微信小程序参考文献、外文参考文献)(10个一组)

目录 1、Java参考文献 2、JavaWeb参考文献 3、MySQL参考文献 4、Python参考文献 5、微信小程序参考文献 6、Jsp参考文献 7、SpringBoot参考文献 8、vue参考文献 9.ASP.NET参考文献 10、外文参考文献 1、Java参考文献 [1] 丁玉青;孙逸飞;朱敏.基于JAVA的共享蓝牙耳机小…

智能扭矩系统——SunTorque

随着工业自动化的不断发展&#xff0c;智能扭矩系统作为一种新型的扭矩控制技术&#xff0c;逐渐受到广泛关注。智能扭矩系统是一种基于传感器技术和计算机控制的扭矩管理系统&#xff0c;它能够实时监测和调整设备的扭矩输出&#xff0c;以确保生产过程中的稳定性和安全性。 搭…

国产计算机的种类和应用

国产计算机的种类和应用 国产计算机的种类繁多&#xff0c;根据不同的应用场景和需求&#xff0c;可以分为个人计算机、服务器、工业控制计算机、嵌入式计算机等。 个人计算机是国产计算机中最常见的类型&#xff0c;包括台式机、笔记本电脑、平板电脑等。这些计算机广泛应用于…

采用文件路径安装库到不同的python环境

C:\Users\Administrator>pip3 install --targetD:\PycharmProjects\pythonProject3\venv\Lib\site-packages configparser

Aquarius Fantasy Series Orcs

使用标准管道创建。目前不支持URP或HDRP。 - 如果想将其转换为URP或类似材质。90%的材质可以完美转换。但是树叶材质和岩石顶盖材质无法转换,除非有自己的材质,无论是自己制作的,还是其他资源包。布料也是如此,每块布料都是单面的,使用简单的材质来达到双面效果。所有其他…

IOC理解总结

IOC 控制反转&#xff08;Inversion of Control&#xff0c;缩写为IoC&#xff09;&#xff0c;是面向对象编程中的一种设计原则&#xff0c;可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09…

21种matlab信号分解方法汇总

21中信号分解方法汇总 CEEMD(互补集合经验模态分解)CEEMDAN(自适应噪声完备集合经验模态分解) EEMD(集合经验模态分解&#xff09;EMD(经验模态分解)ESMD(极点对称模态分解&#xff09;EWT(经验小波变换分解)FEEMD(快速EEMD分解)ICEEMDAN(改进自适应噪声完备集合经验模态分解)L…

非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解

前言&#xff1a; 在我们的日常开发中&#xff0c;关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了。那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗&#xff1f;下面我们来详细的介绍一下。 关系…

阿里云第七代云服务器ECS计算c7、通用g7和内存r7配置如何选择?

阿里云服务器配置怎么选择合适&#xff1f;CPU内存、公网带宽和ECS实例规格怎么选择合适&#xff1f;阿里云服务器网aliyunfuwuqi.com建议根据实际使用场景选择&#xff0c;例如企业网站后台、自建数据库、企业OA、ERP等办公系统、线下IDC直接映射、高性能计算和大游戏并发&…

BuildAdmin - 免费开源可商用!基于 ThinkPHP8 和 Vue3 等流行技术栈打造的商业级后台管理系统

一款包含 PHP 服务端和 Vue 前端代码的 admin 管理系统&#xff0c;实用性很强&#xff0c;推荐给大家。 BuildAdmin 是一个成熟的后台管理系统&#xff0c;后端服务采用 ThinkPHP8 &#xff0c;数据库使用 Mysql&#xff0c;前端部分则使用当前流行的 Vue3 / TypeScript / Vi…

HDFS 命令实操

在hdfs中创建文件夹&#xff1a;/itcast/itheima&#xff0c;如存在请删除&#xff08;跳过回收站&#xff09; 上传Linux文件系统中的/etc/hosts文件到hdfs的/itcast/itheima内 查看hdfs中刚刚上传的文件内容 向hdfs中上传的文件追加&#xff1a;itheima到最后一行 下…

从物联网到数字孪生:智慧社区的演变

随着科技的飞速发展和数字化转型的深入推进&#xff0c;智慧社区已成为提升城市治理水平和居民生活质量的重要方向。在这一演变过程中&#xff0c;物联网和数字孪生技术起到了至关重要的作用。本文将深入探讨从物联网到数字孪生的演变过程&#xff0c;分析这一转变对智慧社区建…

初识数据库:探索数据的世界

初识数据库&#xff1a;探索数据的世界 1. 什么是数据库&#xff1f;2. 数据库的类型2.1 关系型数据库&#xff08;RDBMS&#xff09;2.2 非关系型数据库&#xff08;NoSQL&#xff09; 3. 为什么使用数据库&#xff1f;4. 如何选择合适的数据库&#xff1f;5. 结语 在信息技术…

面试题-重点

11、深拷贝和浅拷贝的区别是什么 浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象. 深拷贝:被复制对象的所有变量都含有与原来的对象相同的值.而那些引用其他对…

Python中 ‘==‘ 与‘is‘的区别

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 比较判断逻辑是在代码中经常使用的&#xff0c;在Python中常用 ‘’ 和 is 来做比较判断。 : 双等号是用来比较变量所指向内存单元中的值是否相等&#xff0c;它只关心值&#xff0c;并不在意值的内存地址&#xff0c;也就是说…

前端给后端传值

在 Vue 2 中&#xff0c;你可以通过发送 HTTP 请求来将前端的数据传递到后端。这通常涉及到使用像 axios 这样的库来发送请求。以下是一个基本的步骤和示例&#xff0c;展示了如何通过按钮点击将 data 数据发送到后端&#xff1a; <template> <div> <input v…

Python+appium框架原生代码实现App自动化测试

step1&#xff1a;首先介绍下pythonappium的框架结构&#xff0c;如下截图所示 (1)&#xff1a;apk目录主要放置待测app的apk资源&#xff1b; (2)&#xff1a;config目录主要放置配置文件信息&#xff0c;包含&#xff1a;数据库连接配置、UI自动化脚本中所需的页面元素信息及…

Rust中的字符串处理及相关方法详解

在Rust中&#xff0c;字符串是一种非常重要的数据类型&#xff0c;而String类型则提供了对动态可变字符串的支持。本文将介绍一些常见的字符串处理方法以及相关示例代码。 创建字符串 在Rust中&#xff0c;有多种方式创建字符串&#xff0c;以下是一些常见的例子&#xff1a;…

C++中的原始字符串字面量

C中的原始字符串字面量 在编程语言中&#xff0c;字符串是一种基本的数据类型&#xff0c;用于表示和处理文本。然而&#xff0c;在很多情况下&#xff0c;我们需要在字符串中使用一些特殊字符&#xff0c;比如换行符 \n&#xff0c;制表符 \t&#xff0c;或者引号 "。在…

了解代码签名证书

作用 确认开发者身份&#xff1a;通过代码签名证书&#xff0c;用户可以验证软件的开发者是否是可信的。这有助于建立用户对软件的信任&#xff0c;降低用户对于恶意软件的风险。保证软件完整性&#xff1a;代码签名证书还可以确保软件在传输和安装过程中未被篡改。用户在安装…