2023年6月GESP C++ 三级试卷解析

2023年6月GESP C++ 三级试卷解析

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

1.高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。

A.编辑

B.保存

C.调试

D.编译

【答案】D

【考纲知识点】编程环境(一级)

【解析】本题属于考察计算机基础知识中的编辑、编译、解释、调试的概念;其中编辑是编写修改代码,保存是将代码保存下来,调试是测试运行代码,而编译是将源程序翻译成可执行代码,所以本题正确答案为D。

2.二进制数11.01在十进制下是( )。

A. 3.01

B. 3.05

C. 3.125

D. 3.25

【答案】D

【考纲知识点】进制转换(三级)

【解析】本题属于考察计算机基础知识中的进制与进制转换;二进制11.01换算成10进制为3.25。所以本题正确答案为D。

3.已知大写字符'A'的ASCII编码的十六进制表示为0x41,则字符'F'的ASCII编码的十六进制表示为( )。

A. 46

B. 47

C. 48

D. 49

【答案】A

【考纲知识点】ASCII编码(二级)

【解析】本题属于考察计算机基础知识中的ASCII码;已知'A'的ASCII编码十六进制表示为0x41,则'F'的ASCII编码比'A'的ASCII编码大5,所以字符'F'的ASCII编码十六进制表示为46。所以本题正确答案为A。

4.以下哪个不是C++语言中的运算符?( )

A. &

B. &&

C. *

D. **

【答案】D

【考纲知识点】基本运算(一级),位运算(三级)

【解析】本题属于考察计算机基础知识中的运算符,其中&,、&&,、*分别可以表示是按位与,、逻辑与和乘法,但**不是C++语言中的运算符。所以本题正确答案为D。

5.如果字符串定义为char str[] = "Hello";,则字符数组str的长度为( )。

A. 0

B. 5

C. 6

D. 7

【答案】C

【考纲知识点】字符串(三级)

【解析】本题属于考察计算机基础知识中的字符串概念。数组初始化时[]内可省略数组长度,此时数组长度为初始值的长度。, 字符串"Hello"的长度为5,但是字符串最后需要额外保存一个'\0'符号作为结束位,所以字符数组str的长度为6。所以本题正确答案为C。

6.一个数组定义为double array[3];,则这个数组占用内存的大小为( )。

A. 24

B. 12

C. 6

D. 3

【答案】A

【考纲知识点】计算机的存储(二级),一维数组(三级)

【解析】本题属于考察计算机基础知识中的内存概念,double类型的数据占用内存为8字节位,array数组共使用了3个double类型的数据,所以内存大小为24。所以本题正确答案为A。

7.以下数组定义,符合C++语言语法的是( )。

A. int a[];

B. int b['3'];

C. int c[3.0];

D. int[3] d;

【答案】B

【考纲知识点】一维数组(三级)

【解析】本题属于考察计算机基础知识中的数组概念,在C++中每个字符都有对应的asciiASCII编码,当需要使用整数类型的值时,可以将字符通过对应的asciiASCII编码转换为整数,所以int b[’3’]; 等价于int b[51];。所以本题正确答案为B。

8.下列关于进制的叙述,不正确的是( )。

A.正整数的二进制表示中只会出现0和1。

B. 10不是2的整数次幂,所以十进制数无法转换为二进制数。

C.从二进制转换为8进制时,可以很方便地由低到高将每3位二进制位转换为对应的一位8进制位。

D.从二进制转换为16进制时,可以很方便地由低到高将每4位二进制位转换为对应的一位16进制位。

【答案】B

【考纲知识点】进制转换(三级)

【解析】本题属于考察计算机基础知识中的进制与进制转换概念,任意数字都可以在不同的进制之间转换,所以本题正确答案为B。

9.下列关于C++语言中数组的叙述,不正确的是( )。

A.数组必须先定义后使用。

B.数组的所有元素在内存中是连续存放的。

C.除了字符数组,在定义数组时“[]”内必须有常数。

D.不能对数组赋值,但可以对数组的每个基础类型的元素赋值。

【答案】C

【考纲知识点】一维数组(三级)

【解析】本题属于考察计算机基础知识中的数组概念,任意类型的数组,只要有初始化,在数组定义时就可以省略,不仅可以在 “[]”内放常数,也可以放变量[]内的常数。所以本题正确答案为C。

10.一个int类型的值,做以下哪个操作,一定会变回原来的值?( )

A.左移3位,再右移3位。

B.右移3位,再左移3位。

C.按位或7,再按位与-8。

D.按位异或7,再按位异或7。

【答案】D

【考纲知识点】位运算(三级)

【解析】本题属于考察计算机基础知识中的位运算相关概念,A选项可能存在越界的问题,B选项会将低位的3位清零,C选项肯定是错的,D选项异或两次7等同于原数,所以本题正确答案为D。

11.如果a和b均为int类型的变量,下列表达式能正确判断“a等于b”的是( )。

A. ((a / b) == 1)

B. ((a & b) == a)

C. ((a ^ b) == 0)

D. ((a | b) == b)

【答案】C

【考纲知识点】位运算(三级)

【解析】本题属于考察计算机基础知识中的位运算相关概念。

选项A,例如a为5,b为3,则a/b结果为1,但a并不等于b;

选项B,例如a为5,b为15,则a&b结果为5,但a并不等于b;

选项C,,(a ^ b))== 0说明a和b的二进制位上的每一位都相等,等价于“a等于b”;

选项D,例如a为5,b为15,则a|b结果为15,但a并不等于b;

所以本题正确答案为C。

12.如果a为int类型的变量,下列哪个表达式可以正确求出满足“小于等于a且是4的倍数”的整数中最大的?( )

A. (a & (~3))

B. ((a << 2) >> 2)

C. (a ^ 3)

D. ((a - 1) | 3) + 1

【答案】A

【考纲知识点】位运算(三级)

【解析】本题属于考察计算机基础知识中的位运算相关概念,a&一个数得到的必然是小于等于a的数,同时题目要求是4的倍数,也就是最后两位要等于0,&(~3)正好是除了最后两位是0,其余全是1,满足要求,所以本题正确答案为A。

13.在下列代码的横线处填写( ),可以使得输出是“24 12”。

图片

A. a = a ^ b

B. b = a ^ b

C. a = a + b

D. b = a + b

【答案】B

【考纲知识点】位运算(三级)

【解析】本题属于考察计算机基础知识中的位运算相关概念,因为异或运算中a^a=0;a^0=a,当选项为B时,第5行b'=(a^b),,第6行a'=a^b'=a^(a^b)=b,,第7行b"=a^b'b'=b^(a^b)=a,正好对a,、b进行了交换。所以本题正确答案为B。

14.在下列代码的横线处填写( ),可以使得输出是“2”。

图片

A. min > array[i]

B. min < array[i]

C. min = array[i]

D.以上均不对。

【答案】D

【考纲知识点】循环结构(一级),一维数组(三级)

【解析】本题属于考察计算机基础知识中的数组相关概念,从结果输出2以及变量名字min上可以看出,题目本身想求一个最小值,但是初始化为min=0,所以选项ABC的最终结果都不会等于2,所以本题正确答案为D。

15.在下列代码的横线处填写( ),可以使得输出不是“31”。

图片

A. res = res + array[i]

B. res = res & array[i]

C. res = res | array[i]

D. res = res ^ array[i]

【答案】B

【考纲知识点】位运算(三级)

【解析】本题属于考察计算机基础知识中的数组和位运算相关概念,结果输出31的二进制位是11111,而数组中的5个数的二进制分别是1,、10、,100、,1000和10000,所以选项A、,C、,D都会输出31,只有B选项会输出0,所以本题正确答案为B。

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

1.一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然语言描述。

【答案】

【考纲知识点】算法的概念与描述(三级)

【解析】本题属于考察算法相关概念,算法不仅可以用程序语言描述,也可以通过自然语言描述,例如中文等,所以本题错误。

2.域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF编程能力等级认证官方网站的域名是gesp.ccf.org.cn,其中顶级域名是gesp。

【答案】

【考纲知识点】计算机存储与网络(二级)

【解析】本题属于考察域名相关概念,域名是由两个或两个以上的词构成,中间用点号分隔开,最右边的那个词称为顶级域名,所以顶级域名是cn,所以本题错误。

3.数据编码方式只有原码、反码、补码三种。

【答案】

【考纲知识点】数据编码(三级)

【解析】本题属于考察数据编码相关概念,数据编码的方式非常多,例如格雷码、哈夫曼编码等,它们适合使用的场景各不相同例如我们熟悉的哈夫曼编码。所以本题错误。

4.在C++语言中,长度为n的数组,合理的下标范围是从0到n,包括0和n。

【答案】

【考纲知识点】一维数组(三级)

【解析】本题属于考察数组相关概念,长度为n的数组,合理的下标范围是0到n-1,不包括n,所以本题错误。

5.字符常量'\0'常用来表示字符串结束,它和字符常量'0'是不同的。

【答案】

【考纲知识点】字符串(三级)

【解析】本题属于考察字符串相关概念,字符常量'\0'是字符串和字符数组的结束标记,它的ASCII码为0,字符常量'0'的ASCII码为48,与'\0'是不同的字符常量。所以本题正确。

6.在C++语言中,可以使用字符(如'0')作为数组下标。

【答案】

【考纲知识点】位运算(三级)【解析】本题属于考察数组相关概念,在C++中每个字符都有对应的asciiASCII编码遍码,当需要使用整数类型的值时,可以将字符通过对应的asciiASCII遍码转换为整数,'0'的ASCII编码ascii遍码为48,所以int b['0'] 等价于int b[48],所以本题正确。

7.在C++语言中,数组被定义时,它的大小就确定了。

【答案】

【考纲知识点】一维数组(三级)

【解析】本题属于考察数组相关概念,在C++中定义数组的时候就需要有明确的数组大小,所以本题正确。

8.计算机中存储的数据都是二进制形式。因此,在使用C++语言编写程序时,将所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。

【答案】

【考纲知识点】编程环境(一级)

【解析】本题属于考察程序的基本概念,无论编写程序时使用十进制还是二进制,编译器都会翻译为程序都会使用二进制机器指令进行运行,所以运行效率是一样的,所以本题错误。

9.在C++语言中,表达式(0xf == 015)的值为true。

【答案】

【考纲知识点】进制转换(三级)

【解析】本题属于考察程序的进制相关概念,0xf是16进制下的f,等于10进制的15,;015是8进制下的15,等于10进制的13。,可见所以它们不相等,所以本题错误。

10.如果a为int类型的变量,且表达式((a | 3) == 3)的值为true,则说明a在从0到3之间(可能为0、可能为3)。

【答案】

【考纲知识点】位运算(三级)

【解析】本题属于考察位运算相关概念,((a|3)==3)说明a只在二进制的最低位和第二低位可能为1,所以0<=a<=3,所以本题正确。

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

1.春游

【问题描述】

老师带领同学们春游。已知班上有N位同学,每位同学有从0到 N-1 的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗?

【输入描述】

输入包含2行。第一行包含两个整数N和M,表示班级有 N 位同学,同学们共有 M 次报出编号。约定2<=N,M<1000。

第二行包含 M 个整数,分别为 N 次报出的编号。约定所有编号都在合理范围内。

【输出描述】

输出一行。如果所有同学都到达,则输出 N;否则由小到大输出所有未到达的同学编号,空格分隔。

【样例输入1】

图片

【样例输出1】

图片

【样例输入2】

图片

【样例输出2】

图片

【解题思路】

1. 使用arrive数组来记录每个同学是否到达,初始为false,表示没有到达。

2. 每有一个同学报出编号,就将arrive数组对应的编号改为true。

3. 遍历arrive数组,将数组中对应位置为false的下标输出并特判所有人均到达的情况。

【考纲知识点】循环结构(一级),模拟法、一维数组(三级)

【参考程序】

图片

2.密码合规检测

【问题描述】

网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:

1、只能由a-z之间26个小写字母、A-Z之间26个大写字母、0-9之间10个数字以及!@#$四个特殊字符构成。

2、密码最短长度:6个字符,密码最大长度:12个字符。

3、大写字母、小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。

【输入描述】

输入一行不含空格的字符串。约定长度不超过100。该字符串被英文逗号分隔为多段,作为多组被检测密码。

【输出描述】

输出若干行,每行输出一组合规的密码。

输出顺序以输入先后为序,即先输入则先输出。

【样例输入1】

图片

【样例输出1】

图片

【样例解释1】

输入被英文逗号分为了四组被检测密码:“seHJ12!@”、“sjdkffH$123”、“sdf!@&12HDHa!”、“123&^YUhg@!”。其中,“sdf!@&12HDHa!”长度超过12个字符,不合规;“123&^YUhg@!”包含四个特殊字符之外的字符“^”,不合规。

【解题思路】

1. 首先遍历输入的字符串line并按照','进行分隔。

2. 对于分隔出来的每一个密码,先判断密码长度是否符合要求,然后遍历所有的字符,并用hasC,hasL,hasD,hasS分别记录是否存在大写字母,小写字母,数字以及特殊字符,若存在以上四种字符外的其它字符则直接返回非法。

3. 判断是否存在特殊字符,若不存在返回非法。

4. 判断是否存在两种及以上的大写字母、小写字母和数字,若不存在返回非法。

5. 以上情况都存在,返回合法并输出。

【考纲知识点】多层分支/循环结构(二级),模拟法、字符串(三级)

【参考程序】

图片

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

自动化测试 —— Pytest测试框架

01 | 简介 Pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下特点&#xff1a; 简单灵活&#xff0c;容易上手&#xff0c;文档丰富 支持参数化&#xff0c;可以细粒度地控制测试用例 支持简单的单元测试与复杂的功能测试&#xff0c;还可以用来做Seleni…

C/C++ 个人笔记

仅供个人复习&#xff0c; C语言IO占位符表 %d十进制整数(int)%ldlong%lldlong long%uunsigned int%o八进制整型%x十六进制整数/字符串地址%c单个字符%s字符串%ffloat&#xff0c;默认保留6位%lfdouble%e科学计数法%g根据大小自动选取f或e格式&#xff0c;去掉无效0 转义符表…

从零开发HarmonyOS(鸿蒙)手机小游戏——数字华容道

HarmonyOS&#xff08;鸿蒙&#xff09;手机第一个小游戏app——数字华容道 前言概述正文创建项目实现初始界面布局实现数字的随机打乱实现滑动或点击调换数字实现游戏成功界面 源代码结语 前言 2月16号HarmonyOS2.0手机开发者Beta版已经发布了&#xff0c;作为“18N”战略的重…

【180929】败走华容道游戏源码

这是一款基于WPF非常经典的华容道游戏源码。 古老的中国游戏&#xff0c;以其变化多端、百玩不厌的特点与魔方、独立钻石棋一起被国外智力专家并称 为“智力游戏界的三个不可思议”。它与七巧板、九连环等中国传统益智玩具还有个代名词叫作“中国的难题”。 游戏玩法&#xff1…

华容道小游戏

华容道代码&#xff1a; package ytu.jsj.com.cn; import java.awt.*; import java.awt.event.*; import javax.swing.*;public class Hua_Rong_Road extends JFrame implements MouseListener,KeyListener,ActionListener{Person person[]new Person[10];JButton left,right,a…

【180927】华容道游戏源码

本源码是一个采用winform进行开发的华容道游戏源码&#xff0c;华容道游戏作为一个经典游戏&#xff0c;各部分设计都恰到好处&#xff0c;非常巧妙&#xff0c;因此成为世界游戏界的三大不可思议。华容道游戏源于三国时期著名的历史故事。东汉末年&#xff0c;曹操、孙权以及刘…

28连局华容道游戏

华容道游戏取材于三国时期,关羽在华容道放走曹操的故事。这个游戏一共28局,是根据一款手机游戏编写的,希望大家能够喜欢。一个益智类的小游戏,大家可以在工作之余作为消遣之乐。 玩不过去没有关系,我们可以把游戏进度存储起来,下次玩的时候读取进度文件就可以了,我们可以…

华容道游戏VB.NET 2010 版28连局

这一版的华容道游戏,有玩法演示,局数、步数、时间提示完善。新增加了关数名字。 托动处理的更加完美,当鼠标手动图片后图片消失,鼠标变成你托动的图片,产生一种立体的感觉。 请大家查看新版的华容道游戏VB.NET 2010 版28连局。 下载地址:http://blog.sina.com.cn/…

经典华容道游戏(含bfs求解)

前言 这是数据结构的课设作业&#xff0c;也是我第一次写的千行代码小游戏。 学习EasyX图形库写完程序一共用了三天时间&#xff0c;可以说是相当熬人了。 当然&#xff0c;第一次写&#xff0c;难免不怎么好&#xff0c;比如无动画、无音乐、丑得不行的ui等等&#xff0c;体…

206. 反转链表 (简单系列)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例 3&#xff1a; 输…

DebugInfo 模块功能系统介绍 文本上色 文本与表格对齐 分隔线 秒表计算器 语义日期

背景 今天系统性的为大家介绍一下 DebugInfo 模块。这个模块提供了一些丰富的基本功能的封装&#xff0c;希望能给有需要的人带来些许帮助。 文本上色 DebugInfo 模块引入了 colorama提供文本颜色支持。 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugI…

数字时钟器

数字时钟器 一、实现功能&#xff1a; 实现基本的时钟样式实现时间日期的文本显示实现仿真秒针走动时候的音效支持设置时间&#xff0c;点击时钟中间设置时间&#xff0c;点击边缘恢复系统时间。 二、效果截屏&#xff1a; 三、github源码地址 GitHub - LxNoMi/DigitalClock…

FPGA数字时钟

FPGA数字时钟1 本代码借鉴了一些&#xff0c;网上资源。 1.设计目的 &#xff08;1&#xff09;掌握数字电子钟的设计方法&#xff1b; &#xff08;2&#xff09;掌握常用数字集成电路的功能和使用&#xff1b; &#xff08;3&#xff09;巩固数字电路理论知识&#xff0c;掌握…

HSP高度敏感的人应该了解的内容(附图书资源)

推荐图书:《高敏感是种天赋》 在爆炸的信息海中希望你慢慢看&#xff0c;细细品~ 什么是高敏感人群&#xff1f; &#xff08;Highly Sensitive Person&#xff0c;简称HSP&#xff09;是指那些对外界刺激和情绪变化非常敏感&#xff0c;容易受到情绪的影响&#xff0c;并且需…

基于Arduino的多功能数字时钟

实现功能&#xff1a; 显示时间、日期和星期断电保存时间通过按钮设置时间、日期整点响铃自定义闹钟显示温度自定义报警温度按键功能&#xff1a;按选择键进入设置时间功能&#xff1b;同时按 - 键进入闹钟和报警温度设置功能&#xff1b;再按选择键光标跳动&#xff0c;光标…

【Proteus】多功能数字时钟设计

ZQQQ 2021.12.27 课设一:各芯片引脚介绍:1:数码管:[^1]2:CD4511(译码显示):[^2]3:CD4518(计数器)[^3]3:555定时器4:CD4011和CD4012 二:各部分电路图搭建1:校正时间电路2:整点报时电路3:分频电路4:进制电路 课设 我们将该电路分为几个部分: 1:显示电路(用6个共阴数码管来显示) 2…

单片机:数字式时钟—日历

单片机&#xff1a;数字式时钟—日历 功能要求&#xff1a; &#xff08;1&#xff09;显示时分秒&#xff0c;年月日 &#xff08;2&#xff09;具有&#xff1a;启动&#xff08;按下此键后单片机才开始工作&#xff09;、暂停、继续、清零、设置时间/年月日/闹钟的功能 &am…

Quartus ii 13.1 数字时钟

内容摘要&#xff1a; 使用计数器和数据选择器等器件实现数字时钟电路。电路最终在开发板上显示的是时钟的秒和分&#xff08;开发板所限&#xff0c;当然如果开发板支持8位显示的话也可以自己加到小时位的显示&#xff09;。电路包四个部分&#xff1a;时钟信号分频电路&#…

FPGA-Verilog多功能数字时钟

一&#xff0e;数字时钟设计 1.硬件资源&#xff1a;共阴极数码管一块&#xff0c;FPGA开发板一块&#xff08;EP4CE40F23C8&#xff09;&#xff1b; 2. 开发板资源&#xff1a;3颗独立按键&#xff0c;数码管接口&#xff1b; 3. 功能设计&#xff1a;三种功能&#xff1a…

【Java】Java数字时钟

应用名称&#xff1a;Java数字时钟 用到的知识&#xff1a;Java GUI编程&#xff0c;线程 开发环境&#xff1a;win8eclipsejdk1.8 功能说明&#xff1a;可以显示当前系统的年月日、星期以及准确时间&#xff0c;并实时更新显示。 效果图&#xff1a; 源代码&#xff1a; i…