求gesp4级 23年12月题的答案!
我想对一对答案!
看看我能不能过!
2条回答 默认 最新
- tiger_mushroom 2023-12-10 14:55关注
2023 年 6 月 GESP C++ 四级真题解析
CCF 编 程 能 力 等 级 认 证 , 英 文 名 Grade Examination of Software
Programming(以下简称 GESP),由中国计算机学会发起并主办,是为青少年计
算机和编程学习者提供学业能力验证的平台。GESP 覆盖中小学全学段,符合条
件的青少年均可参加认证。GESP 旨在提升青少年计算机和编程教育水平,推广
和普及青少年计算机和编程教育。
GESP 考察语言为图形化(Scratch)编程、Python 编程及 C++编程,主要考
察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过
设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程
能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是 2023 年 6 月份,C++ 四级考试真题解析。
一、单选题(每题 2 分,共 30 分)- 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的
可执行代码。
A. 编辑
B. 保存
C. 调试
D. 编译
【答案】D
【考纲知识点】编程环境(一级)
【解析】本题属于考察计算机基础知识中的编辑、编译、解释、调试的概念;其
中编辑是编写修改代码,保存是将代码保存下来,调试是测试运行代码,而编译
是将源程序翻译成可执行代码,所以本题正确答案为 D。 - 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数
据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R
也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。
A. 冒泡排序是不稳定的。
B. 插入排序是不稳定的。
C. 选择排序是不稳定的。
D. 以上都不正确。
【答案】C
【考纲知识点】排序算法 (四级)
【解析】本题属于考察排序的基本概念;冒泡排序、插入排序一般是稳定的,而
选择排序一般是不稳定的,所以本题正确答案为 C。 - 下列关于 C++语言中指针的叙述,不正确的是( )。
A. 指针变量中存储的是内存地址。
B. 定义指针变量时必须指定其指向的类型。
C. 指针变量只能指向基本类型变量,不能指向指针变量。
D. 指针变量指向的内存地址不一定能够合法访问。
【答案】C
【考纲知识点】指针(四级)
【解析】本题属于考察指针的基本概念;指针变量不仅可以指向基本类型的变量
也可以指向其它的指针变量,所以本题正确答案为 C。 - 下列关于 C++语言中数组的叙述,不正确的是( )。
A. 一维数组在内存中一定是连续存放的。
B. 二维数组是一维数组的一维数组。
C. 二维数组中的每个一维数组在内存中都是连续存放的。
D. 二维数组在内存中可以不是连续存放的。
【答案】D
【考纲知识点】二维及多维数组(四级)
【解析】本题属于考察二维数组的基本概念;数组(包括多维数组)在内存中必
须要连续存放,所以本题正确答案为 D。 - 下列关于 C++语言中函数的叙述,正确的是( )。
A. 函数必须有名字。
B. 函数必须有参数。
C. 函数必须有返回值。
D. 函数定义必须写在函数调用前。
【答案】A
【考纲知识点】函数(四级)
【解析】本题属于考察函数的基本概念;函数可以没有参数和返回值,同时函数
定义可以在调用之后,只需要在调用前要加函数声明,但是函数必须要有名字,
所以本题正确答案为 A。
注:如果了解“匿名函数”概念(该概念超出考纲范围),应注意区分:匿名函
数,正式名称为“�表达式”,是一种可捕捉参数变量的无命名函数对象,属于
“函数对象”的一种,并不属于“函数”范畴。函数对象与函数在使用时经常可
以自动相互转换,但二者在实现机制上完全不同。 - 下列关于 C++语言中变量的叙述,正确的是( )。
A. 变量定义后可以一直使用。
B. 两个变量的变量名不能是相同的。
C. 两个变量的变量名可以相同,但它们的类型必须是不同的。
D. 两个变量的变量名可以相同,但它们的作用域必须是不同的。
【答案】D
【考纲知识点】全局/局部作用域(四级)
【解析】本题属于考察变量定义域的基本概念;在 C++中两个变量可以取相同的
变量名,只要它们在不同的作用域下即可,所以本题正确答案为 D。 - 一个二维数组定义为 double array[3][10];,则这个二维数组占用内存的大小为
( )。
A. 30
B. 60
C. 120
D. 240
【答案】D
【考纲知识点】二维及多维数组(四级)
【解析】本题属于考察内存的基本概念; double 类型的数据占用内存是 8 字节,
array 数组共使用了 30 个 double 类型的数据,占用内存为 30*8=240 字节。所以
本题正确答案为 D。 - 一个变量定义为 int *p = nullptr;,则下列说法正确的是( )。
A. 该指针变量的类型为 int。
B. 该指针变量指向的类型为 int。
C. 该指针变量指向的内存地址是随机的。
D. 访问该指针变量指向的内存会出现编译错误。
【答案】B
【考纲知识点】指针(四级)
【解析】本题属于考察指针的基本概念。指针变量的类型为 int *,A 选项错误;
nullptr 指向的是固定的内存地址 0,C 选项错误;nullptr 指向的内存位置通常不
存放有效数据,因此常用来表示未指向有效数据,访问它可能出现运行时错误,
但不会出现编译错误,D 选项错误。本题正确答案为 B。 - 一个二维数组定义为 int array[5][3];,则 array[1][2]和 array[2][1]在内存中的位
置相差多少字节?( )
A. 2 字节。
B. 4 字节。
C. 8 字节。
D. 无法确定。
【答案】C
【考纲知识点】二维及多维数组(四级)
【解析】本题属于考察内存地址的基本概念;array[1][2]和 array[2][1]中间差了
array[2][0],相当于差了 2 个 int,也就是 8 字节,所以本题正确答案为 C。 - 如果 a 为 int 类型的变量,且 a 的值为 6,则执行 a &= 3;之后,a 的值会是( )。
A. 3
B. 9
C. 2
D. 7
【答案】C
【考纲知识点】位运算(三级)
【解析】本题属于考察位运算的基本概念;a &= 3;等价于 a = a & 3;。&为按位与
运算,a 的原值为 6,6 & 3 的结果为 2。所以本题正确答案为 C。 - 一个数组定义为 int a[5] = {1, 2, 3, 4, 5};,一个指针定义为 int * p = &a[2];,则
执行 a[1] = *p;后,数组 a 中的值会变为( )。
A. {1, 3, 3, 4, 5}
B. {2, 2, 3, 4, 5}
C. {1, 2, 2, 4, 5}
D. {1, 2, 3, 4, 5}
【答案】A
【考纲知识点】指针(四级)
【解析】本题属于考察指针的基本概念;首先让指针 p 指向变量 a[2]的内存地址,
然后让 a[1]=*p,也就是让 a[1]=a[2],所以 a 数组变为 {1, 3, 3, 4, 5}。所以本题正
确答案为 A。 - 以下哪个函数声明在调用时可以传递二维数组的名字作为参数?( )
A. void BubbleSort(int a[][4]);
B. void BubbleSort(int a[3][]);
C. void BubbleSort(int a[][]);
D. void BubbleSort(int ** a);
【答案】A
【考纲知识点】函数、指针、二维及多维数组(四级)
【解析】本题属于考察函数参数的基本概念。当把数组作为函数的一个参数时,
实际上只传递了数组的首指针。于是,传递多维数组时,只有形式参数的第一维
的长度可以省略,形式参数的其他维的长度都不能省略。所以本题正确答案为 A。 - 在下列代码的横线处填写( ),可以使得输出是“20 10”。
A. int x, int y
B. int * x, int * y
C. int a, int b
D. int & a, int & b
【答案】B
【考纲知识点】函数、指针(四级)
【解析】本题属于考察指针的基本概念; 题目要求输出 20 10,也就是把 a 和 b
进行交换,参数中传递了 a 和 b 的内存地址,需要使用相应类型的指针来存放,
所以本题正确答案为 B。 - 执行以下 C++语言程序后,输出结果是( )。
A. 3
B. 30
C. 33
D. 无法确定。
【答案】D
【考纲知识点】全局/局部作用域(四级)
【解析】本题属于考察变量初始化相关概念;因为 sum 是在函数内部定义的,
所以 sum 的初始值并不一定是 0,也就无法确定最终的输出了,所以本题正确答
案为 D。 - 在下列代码的横线处填写( ),完成对有 n 个 int 类型元素的数组 array 由
小到大排序。
A. array[min] > array[j]
B. array[min] > array[i]
C. min > array[j]
D. min > array[i]
【答案】A
【考纲知识点】排序算法(四级)
【解析】本题属于考察选择排序算法;选择排序每次会从待排序的数据元素中选
出最小的一个元素,存放在序列的起始位置,也就是对于所有的 i+1<=j<n,找到
最小的 array[j],所以本题正确答案为 A。
二、判断题(每题 2 分,共 20 分) - 域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,
CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是 gesp。
【答案】×
【考纲知识点】计算机存储与网络(二级)
【解析】本题属于考察域名相关概念,域名是由两个或两个以上的词构成,中间
用点号分隔开,最右边的那个词称为顶级域名,顶级域名是 cn,所以本题错误。 - 数列 1, 1, 2, 3, 5, 8 ... 是以意大利数学家列昂纳多·斐波那契命名的数列,从第
三个数开始,每个数是前面两项之和。如果计算该数列的第 n 项(其中 n>3)
fib(n),我们采用如下方法:① 令 fib(1)=fib(2)=1 ②用循环 for i=3 to n 分别计
算 f(i) ③输出 fib(n)。这体现了递推的编程思想。
【答案】√
【考纲知识点】递推算法(四级)
【解析】本题属于考察递推相关概念,递推是按照一定的规律来计算序列中的每
个项,本题中规律是从第三个数开始,每个数是前面两项之和,且我们按照从小
到大的顺序依次计算数列中的每个项,这和递归的编程思想一致,所以本题正确。 - 在 C++语言中,函数的参数默认以引用传递方式进行传递。
【答案】×
【考纲知识点】函数(四级)
【解析】本题属于考察函数相关概念,函数的参数默认以值传递方式进行传递,
所以本题错误。 - 在 C++语言中,可以定义四维数组,但在解决实际问题时不可能用到,因为世
界是三维的。
【答案】×
【考纲知识点】二维及多维数组(四级)
【解析】本题属于考察数组相关概念。实际问题中是有可能使用到四维甚至更多
维数组的,所以本题错误。 - 在 C++语言中,一个函数没有被调用时,它的参数不占用内存。
【答案】√
【考纲知识点】函数(四级)
【解析】本题属于考察函数相关概念。函数的参数只有在函数被调用时才会在调
用栈上分配对应内存,并在函数返回时回收,这也形成了函数参数的生命周期。
因此,函数的参数在没有被调用时不会占用内存,本题正确。 - 在 C++语言中,如果一个函数可能抛出异常,那么一定要在 try 子句里调用这
个函数。
【答案】×
【考纲知识点】异常处理(四级)
【解析】本题属于考察异常处理相关概念,即使一个函数可能抛出异常,也不一
定要在 try 子句里调用这个函数。可正常调用,异常会向调用更上层抛出,如上
层调用在 try 子句中,则可以在上层捕获处理。所以本题错误。 - 如果希望记录 10 个最长为 99 字节的字符串,可以将字符串数组定义为 char
s[100][10];。
【答案】×
【考纲知识点】二维及多维数组(四级)
【解析】本题属于考察数组相关概念。最长为 99 个字节的字符串,应申请 100
个 char 的数组;要定义 10 个最长为 99 字节的字符串,应该将字符串数组定义
为 char s[10][100],所以本题错误。 - 字符常量'0'和'\0'是等价的。
【答案】×
【考纲知识点】字符串(三级)
【解析】本题属于考察字符串相关概念,'0'是一个字符常量,它的 ASCII 码值为
48;'\0'也是一个字符常量,它的 ASCII 码值为 0,通常用来表示字符串或字符数
组的结束标志。可见它们不等价,所以本题错误。 =和>>=都是 C++语言的运算符。
【答案】√
【考纲知识点】基本运算(一级),位运算(三级)
【解析】本题属于考察运算符相关概念。>=是关系运算符大于等于;>>=是复合
位右移赋值运算符,a >>= b;等价于 a = a >> b;。所以本题正确。- 由于文件重定向操作,程序员在使用 C++语言编写程序时无法确定通过 cout
输出的内容是否会被输出到屏幕上。
【答案】√
【考纲知识点】文件操作(四级)
【解析】本题属于考察文件操作相关概念。使用文件重定向操作后,cout 输出的
内容可能被写入文件而不是屏幕上。这是由程序用户决定的,编写程序的程序员
无法确定,所以本题正确。
https://gesp.ccf.org.cn/101/attach/1569361716314144.pdf
解决 无用评论 打赏 举报 编辑记录 - 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的
悬赏问题
- ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
- ¥15 Apache显示系统错误3该如何解决?
- ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
- ¥20 js怎么实现跨域问题
- ¥15 C++dll二次开发,C#调用
- ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
- ¥15 Python easyocr无法顺利执行,如何解决?
- ¥15 为什么会突然npm err!啊
- ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
- ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("