CCF-GESP 等级考试 2023年9月认证C++四级真题

2023年9月

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

第 1 题 ⼈们所使⽤的⼿机上安装的App通常指的是( )。

  • A. ⼀款操作系统
  • B. ⼀款应⽤软件
  • C. ⼀种通话设备
  • D. 以上都不对

第 2 题 下列流程图的输出结果是?( )
在这里插入图片描述

  • A. 9
  • B. 7
  • C. 5
  • D. 11

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

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. 以上都不正确

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

  • A. 可以定义指向int 类型的指针。
  • B. 可以定义指向⾃定义结构体类型的指针。
  • C. ⾃定义结构体类型可以包含指针类型的元素。
  • D. 不能定义指向void类型的指针,那没有意义。

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

  • A. ⼀维数组可以⽤来表⽰数列。
  • B. ⼆维数组可以⽤来表⽰矩阵。
  • C. 三维数组可以⽤来表⽰空间中物体的形状。
  • D. 世界是三维的,所以定义四维数组没有意义。

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

  • A. 函数调⽤前必须定义。
  • B. 函数调⽤时必须提供⾜够的实际参数。
  • C. 函数定义前必须声明。
  • D. 函数声明只能写在函数调⽤前。

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

  • A. 两个函数的声明可以相同。
  • B. 两个函数的局部变量可以重名。
  • C. 两个函数的参数可以重名。
  • D. 两个函数可以重名。

第 8 题 ⼀个⼆维数组定义为char array[3][10]; ,则这个⼆维数组占⽤内存的⼤⼩为( )。

  • A. 10
  • B. 30
  • C. 32
  • D. 48

第 9 题 如果n 为int类型的变量,⼀个指针变量定义为int *p = &n;
,则下列说法正确的是( )。

  • A. 指针变量p的值与变量n是相同的。
  • B. 指针变量p的值与变量n的地址是相同的。
  • C. 指针变量p指向的值为’n’。
  • D. 指针变量p指向的值与变量n的地址是相同的。

第 10 题 ⼀个三维数组定义为long long array[6][6][6]; ,则array[1][2][3] 和array[3][2][1] 位置相差多少字节?( )

  • A. 70字节
  • B. 198字节
  • C. 560字节
  • D. ⽆法确定

第 11 题 如果a 为int类型的变量,且a的值为6,则执⾏a = ~a; 之后,a的值会是( )。

  • A. -6
  • B. 6
  • C. -7
  • D. 7

第 12 题 ⼀个数组定义为int a[5] = {1, 2, 3, 4, 5}; ,⼀个指针定义为int * p = &a[2]; ,则执⾏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}

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

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

第 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. ⽆法确定。

第 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++

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

第 1 题 在C++语⾔中,指针变量在逻辑上指向另⼀个变量在内存中的位置,指针变量本⾝不占⽤内存。( )

第 2 题 对 (n) 个元素的数组执⾏插⼊排序算法,通常的时间复杂度是 (O(n^2))。( )

第 3 题 在C++语⾔中,每个变量都有其作⽤域。( )

第 4 题 在C++语⾔中,在函数调⽤时,通过引⽤传递的参数不会复制实际参数,因此不会额外占⽤内存。( )

第 5 题 在C++语⾔中,可以通过定义结构体,定义⼀个新的数据类型。( )

第 6 题 在C++语⾔中,可以定义结构体类型的数组变量,定义结构体时也可以包含数组成员。( )

第 7 题 如果希望记录10个最长为99字节的字符串,可以将字符串数组定义为 char s[10][100];。( )

第 8 题 ⼀个可能抛出异常的函数,调⽤它的位置没有在 try ⼦句中,会引起编译错误。( )

第 9 题 ==:= 都是C++语⾔的运算符。( )

第 10 题 通过使⽤⽂件重定向操作,可以将程序中输出到 cout 的内容输出到⽂件中,这是常⽤的记录程序运⾏⽇志的⽅法之⼀。( )

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

3.1 编程题 1

3.1.1 问题描述

N进制数指的是逢N进⼀的计数制。例如,⼈们⽇常⽣活中⼤多使⽤⼗进制计数,⽽计算机底层则⼀般使⽤⼆进制。除此之外,⼋进制和⼗六进制在⼀些场合也是常⽤的计数制(⼗六进制中,⼀般使⽤字母 A ⾄ F 表⽰⼗⾄⼗五;本题中,⼗⼀进制到⼗五进制也是类似的)。

在本题中,我们将给出N个不同进制的数。你需要分别把它们转换成⼗进制数。

3.1.2 提示

对于任意⼀个L位K进制数,假设其最右边的数位为第0位,最左边的数位为第L-1 位,我们只需要将其第 i 位的数码乘以权值 ( K^i ),再将每位的结果相加,即可得到原K进制数对应的⼗进制数。下⾯是两个例⼦:

  1. ⼋进制数 1362 对应的⼗进制数为 1 * (8^3) + 3 * (8 ^ 2) + 6 * (8^1) + 2 * (8 ^ 0) = 754;
  2. ⼗六进制数 3F0 对应的⼗进制数为 3 * (16^2) + 15 * (16^1) + 0 * (16 ^ 0) = 1008。
3.1.3 输入描述

输⼊的第⼀⾏为⼀个⼗进制表⽰的整数 N。接下来 N⾏,每⾏⼀个整数K,随后是⼀个空格,紧接着是⼀个K进制数,表⽰需要转换的数。保证所有K 进制数均由数字和⼤写字母组成,且不以 0 开头。保证K进制数合法。保证N ≤ 1000; 保证 2 ≤ K ≤16;
保证所有K进制数的位数不超过9。

3.1.4 输出描述

输出N⾏,每⼀个⼗进制数,表⽰对应K进制数的⼗进制数值。

3.1.5 样例输入 1
2
8 1362
16 3F0
3.1.6 样例输出 1
754
1008
3.1.7 样例输入 2
2
2 11011
10 123456789
3.1.8 样例输出 2
27
123456789

3.2 编程题 2

3.2.1 问题描述

⼩明刚刚学习了三种整数编码⽅式:原码、反码、补码,并了解到计算机存储整数通常使⽤补码。但他总是觉得⽣活中很少⽤到(2^31) - 1这么⼤的数,⽣活中常⽤的0 - 100这种数也同样需要⽤4个字节的补码表⽰,太浪费了些。

热爱学习的⼩明通过搜索,发现了⼀种正整数的变长编码⽅式。这种编码⽅式的规则如下:

  1. 对于给定的正整数,⾸先将其表达为⼆进制形式。例如,(0){10} = (0){2},(926){10} = (1110011110){2}。
  2. 将⼆进制数从低位到⾼位切分成每组 7 bit,不⾜ 7 bit 的在⾼位⽤ 0 填补。例如,(0){2}变为0000000 的⼀组,(1110011110){2}变为0011110和 0000111的两组。
  3. 由代表低位的组开始,为其加⼊最⾼位。如果这组是最后⼀组,则在最⾼位填上 0,否则在最⾼位填上 1。于是,0的变长编码为00000000一个字节,926的变长编码为 10011110 和 00000111两个字节。

这种编码⽅式可以⽤更少的字节表达⽐较⼩的数,也可以⽤很多的字节表达⾮常⼤的数。例如,987654321012345678 的⼆进制为(0001101 1011010 0110110 1001011 1110100 0100110 1001000 0010110 1001110){2},于是它的变长编码为(⼗六进制表⽰)CE 96 C8 A6 F4 CB B6 DA 0D,共 9 个字节。

你能通过编写程序,找到⼀个正整数的变长编码吗?

3.2.2 输入描述

输⼊第⼀⾏,包含⼀个正整数N。约定 0 ≤ N ≤ (10 ^ 18)

3.2.3 输出描述

输出⼀⾏,输出N对应的变长编码的每个字节,每个字节均以 2 位⼗六进制表⽰(其中 A-F 使⽤⼤写字母表⽰),两个字节间以空格分隔。

3.2.4 样例输入 1
0
3.2.5 样例输出 1
00
3.2.6 样例输入 2
926
3.2.7 样例输出 2
9E 07
3.2.8 样例输入 3
987654321012345678
3.2.9 样例输出 3
CE 96 C8 A6 F4 CB B6 DA 0D

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【30天精通Prometheus:一站式监控实战指南】第4天:node_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

搜索插入位置 ---- 二分查找

题目链接 题目: 分析: 因为数排序数组, 所以具有"二段性", 可以使用二分查找题目中, 我们如果找到目标值 , 则返回下标, 如果没找到目标值, 应该返回的是>target的第一个位置, 所以应该将数组分成< target 和 > target当<target时, 应该移动left, left…

3DMax

先转换为可编辑多边形 按“1”选择为点&#xff0c;点击目标焊接&#xff08;CtrlShiftw&#xff09;&#xff0c;然后点击一个顶点拉到另一个定点上&#xff1b; 选择一个面&#xff0c;点击塌陷&#xff08;CtrlAltC&#xff09;&#xff0c;四点合并为一个点&#xff1b; …

《艺术大观》知网艺术刊:可加急, 出刊上网快

《艺术大观》 《艺术大观》征文通知 《艺术大观》期刊诚邀学者、艺术家和文化工作者积极投稿&#xff0c;共同探索艺术领域的前沿问题&#xff0c;促进学术交流和艺术创作的发展。我们欢迎各类艺术形式的研究与评论&#xff0c;包括但不限于绘画、雕塑、音乐、舞蹈、戏剧、电…

代码随想录算法训练营第三十四天 | 理论基础、455.分发饼干、376、摆动序列、53.最大子序和

目录 理论基础 455.分发饼干 思路 代码 376.摆动序列 思路 代码 53.最大子序和 思路 代码 理论基础 代码随想录 455.分发饼干 代码随想录 思路 可以是大饼干优先满足大胃口&#xff0c;也可以是小饼干优先满足小胃口。 代码 class Solution:def findContentChildre…

springsecurity入门登录授权

①我们需要自定义登陆接口&#xff0c;也就是在controller目录新建LoginController类&#xff0c;在controller方法里面去调用service接口&#xff0c;在service接口实现AuthenticationManager去进行用户的认证&#xff0c;注意&#xff0c;我们定义的controller方法要让Spring…

在Windows操作系统中克隆SD卡的简单方法!

如今&#xff0c;在数据备份和传输方面&#xff0c;SD卡克隆软件发挥着重要作用。本文将向大家介绍一款好用的Windows SD卡克隆软件&#xff0c;可以帮助你轻松将数据克隆到新卡中。 为什么需要在Windows中进行SD卡克隆&#xff1f; 在许多情况下&#xff0c;你可能需要将SD卡…

react中怎么为props设置默认值

在React中&#xff0c;你可以使用ES6的类属性&#xff08;class properties&#xff09;或者函数组件中的默认参数&#xff08;default parameters&#xff09;来定义props的默认值。 1.类组件中定义默认props 对于类组件&#xff0c;你可以在组件内部使用defaultProps属性来…

css左右滚动互不影响

想实现左右都可以滚动&#xff0c;且互不影响。 只需要再左边的css里面 .threedlist {cursor: pointer;width: 280px;position: fixed;height: 100vh; /* 定义父容器高度 */overflow-y: auto; /* 只有在内容超过父容器高度时才出现滚动条 */} 如果想取消滚动条样式 .threedli…

【NumPy】关于numpy.reshape()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

AI视频教程下载:用ChatGPT和React.js开发AI聊天机器人

这门课程面向初出茅庐的开发者和技术爱好者&#xff0c;深入探讨了使用两种强大工具&#xff1a;React.js 和 OpenAI 的 ChatGPT 的人工智能聊天机器人开发的迷人世界。通过注重实践、动手学习&#xff0c;该课程引导您完成创建动态、人工智能驱动的聊天机器人应用程序的每一步…

第17讲:C语言内存函数

目录 1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用 1.memcpy使用和模拟实现 void * memcpy (void * destination, const void * source, size_t num);• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存…

高效利用键盘上的 caps lock(大写键)实现中英切换

先看效果 在中文输入环境中&#xff0c;Caps Lock 键经常被忽视&#xff0c;占据了键盘上的黄金位置却很少派上用场。接下来&#xff0c;我将介绍如何将这个闲置的键合理利用&#xff0c;让它变得更加实用。 第一步 设置&#xff1a; 我以五笔为例&#xff1a; 1.输入法默认…

python-鸡兔同笼问题:已知鸡和兔的总头数与总脚数。求笼中鸡和兔各几只?

【问题描述】典型的鸡兔同笼问题。 【输入形式】输入总头数和总脚数两个实数&#xff1a;h&#xff0c;f 【输出形式】笼中鸡和兔的个数&#xff1a;x&#xff0c;y 【样例输入】16 40 【样例输出】鸡12只&#xff0c;兔4只 【样例说明】输入输出必须保证格式正确。…

服务器没有图形界面没有显示器怎么办

可以用vnc。 vnc是开元的。什么是vnc&#xff1f; 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令&#xff1a; start a new session: vncserver。 如果没有会话&#xff0c;一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…

Python 渗透测试:MySQL 数据库 弱密码测试.(3306 端口)

什么是 MySQL 数据库 MySQL 是一种开源的关系型数据库管理系统(RDBMS)。它是目前世界上最流行的数据库之一,被广泛应用于各种类型的网站和应用程序中。MySQL 数据库爆破是一种非法和危险的黑客攻击手段。它指的是通过暴力猜测密码的方式,试图获取未授权访问 MySQL 数据库的行为…

PyMySQL:连接Python与MySQL的桥梁

系列文章目录 更新ing... MySQL操作全攻略&#xff1a;库、表、数据、事务全面指南深入探索MySQL SELECT查询&#xff1a;从基础到高级&#xff0c;解锁数据宝藏的密钥MySQL SELECT查询实战&#xff1a;练习题精选&#xff0c;提升你的数据库查询技能PyMySQL&#xff1a;连接P…

C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作

在C#编程中&#xff0c;对象之间的属性复制和操作是一个常见的需求。为此&#xff0c;.NET Framework提供了多种实用工具库&#xff0c;如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码&#xff0c;提高了开发效率。本文将介绍这些工具库&#xff0c;比较它们…

框架学习之SpringMVC学习笔记(一)

一、SpringMVC简介 1-介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#xff0c;但它通常被称为“Spring MVC”。 在控制层…

中文信息期刊投稿邮箱

《中文信息》杂志是国家新闻出版总署批准的国家级刊物&#xff08;月刊&#xff09;&#xff0c;国内外公开发行&#xff0c;大十六开印刷。本刊主要反映我国中文信息处理的学术水平&#xff0c;重点刊登科技、经济、教育等领域的基础理论、科研与应用技术的学术论文&#xff0…