2024年9月GESPC++三级真题解析

news2024/12/13 5:17:46

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

题目123456789101112131415
答案

B

C

A

D

C

B

C

C

A

D

D

C

D

C

B

1.下列代码中,输出结果是( )
#include<iostream>

using namespace std;

int main()

{

double a=0.9;

double b=1.0;

if(((b-a)==0.1))

{

cout<<"Equal"<<endl;

}

else

{

cout<<"Not equal"<<endl;

}

}

A. Equal

B. Not equal

C. 程序不能正确执行

D. 没有输出
【答案】B

【考纲知识点】

【解析】考察浮点数知识题目,浮点数在计算机中是以二进制形式存储的,而某些十进制小数无法精确表示成二进制小数。因此,在进行浮点数运算时可能会出现微小的舍入误差。例如,0.9和0.1都无法在二进制下精确表示,这可能导致b - a的结果不完全等于0.1,因此选择B选项。

2.关于计算机中的编码,下列说法中正确的是()

A. 机器数的形式值和真值是一致的

B. 原码就是符号位加上真值

C. 机器数是带符号的

D. [-1]=[1000 0001]原=[1111 1111]反

【答案】C

【考纲知识点】

【解析】计算机基础知识题目,对于正数形式值和真值相等,如果是负数有符号位的区别并不一致,原码应是符号位加上形式值,-1的原码表示正确,但是反码应该是1111 1110,因此选择C选项。

3. 8进制数3703转换成16进制数是()

A.7C3

B.7A3

C.7B3

D.7D3
【答案】A

【考纲知识点】

【解析】进制转换知识题目,可以采用常规方法,先将八进制3703转换成十进制,再转换为十六进制,也可采用快捷方法利用一分三的技巧将3703转二进制,再利用四合一技巧转换为十六进制,最终结果是7C3,因此选择A选项。

4.0.8125变成二进制是( )。

A. 0.1110

B. 0.1 1111 1011 1101

C. 0.1 1111 1011 1100

D. 0.1101

【答案】D

【考纲知识点】

【解析】考察浮点数进制转换知识题目,将十进制小数转换为二进制小数可以采用不断的乘以2并且记录每次乘积的整数部分来完成,0.8125*2=1.625整数部分为1,0.625*2=1.25整数部分为1,0.25*2=0.5整数部分为0,0.5*2=1整数部分为1,最终是0.1101,因此选择D选项。

5.下面说法正确的是( )
A. (22&01)==(22&&01)成立

B. (23|11)==30

C. (23|10)==31

D. (23|01)==31

【答案】C

【考纲知识点】

【解析】考察位运算知识题目,a选项计算后左侧为false右侧为true所以是不成立的,b选项计算结果应为31即(10111)|(1011),c选项正确,d选项计算结果应为0,因此选择C选项。

6.下列说法正确的是()
A. 2>>1和1>>1的值是一样的

B. (2>>2)和(1>>1)的值是一样的

C. (11^00)和(1^0)的值是一样的

D. (~0的输出值是1)

【答案】B

【考纲知识点】

【解析】考察位运算知识题目,a选项计算结果是1和0选项错误,b选项计算结果都为0选项正确,从选项计算结果是11和1选项错误,d选项按位取反,不同类型的输出也不同,对于有符号整数int输出的是-1,因为补码形式是1111 1111,因此选择B选项。

7.下列代码实现的是( )
void Swap(int &a, int &b) {

if (a != b) {

a ^= b;

b ^= a;

a ^= b;

}

}

A. a和b的异或

B. a和b的同或

C. a和b的值交换

D. a和b的高低位互换

【答案】C

【考纲知识点】

【解析】考察位运算知识题目,最终实现效果就是a和b的值互换,此题可以采用举出具体实例的方式求解,可以设置a=2,b=3即a为0010,b为0011,第一步后a为0001,第二步骤后b为0010,第三步骤后a为0011,因此选择C选项。

8.a&~1运算实现的是( )。

A. 使a的最低位为1

B. 使a的最高位为1
C. 使a的最低位为0

D. 使a的最高位为0

【答案】C

【考纲知识点】

【解析】考察位运算知识题目,变量a和~1做按位与操作,常规32位整数下1的最低位是1,取反后最低位为0,a变量最低位无论是1还是0计算结果都会是使最低位为0,因此选择C选项。

9.a=1010 1110,a<<2,下面关于这个说法正确的是 ( )。

A. a的值变为1011 1000

B. a的值变为1011 1010

C. a的值变为0101 1101

D. a的值变为0101 1100

【答案】A

【考纲知识点】

【解析】考察位运算知识题目,此题目直接移动即可,整体左移两位低位补0,最终结果是1011 1000,因此选择A选项。

10.下列程序中,result和result2输出分别是 ( )

long a = 123;

int b = 1;

long result = a & b;

cout<<result<<endl;

long a2 = -123;

unsigned int b2 = -1;

long result2 = a2 & b2;

cout<<result2<<endl;
A. 123 -1

B. 123 -123

C. 1 -1

D. 1 -123

【答案】D

【考纲知识点】

【解析】考察位运算知识题目,首先是a和b做按位与运算,(0111 1011)&(0000 0001)最终结果是1,第二组是a2和b2按位与运算,(0111 1011)&(1111 1111)结果是0111 1011也就是123,因为a2是-123最高位是1,b2是无符号int即所有位数位1的最大值,最高位也为1,相当于符号位计算后也为1,最终是-123,所以选择D选项。

11.陈A歹种植一批农作物,第一天需要浇水一次,随后的两天(第2、第3天),每天需要浇水2次,再随后的3天(第4、第5、第6天),需要每天浇水3次,这样持续下去,随后的n天,每天需要浇水n次。请问在100天里,总

共浇了多少次水( )

A. 994

B. 996

C. 995

D. 945

【答案】D

【考纲知识点】

【解析】考察逻辑运算题目,按照题面描述分阶段第一天浇水次数是1*1次,第二天浇水次数是2*2次...以此类推到所有阶段累加的天数到100天,最终是累加到13的平方和共91天总次数819次,剩余9天第14阶段每天14次再加9*14次共819+126=945次,因此选择D选项。

12.关于一维数组,下列程序能够正确执行的是( )。

A. 
int a[10];

int sum=0;

for(int i=0;i<=10;i++) {

sum=sum+a[i];

}

B.
int a[10]={1,2,3,4,5,6,7,8,9,10};

int sum=0;

for(int i=0;i<=10;i++) {

sum=sum+a[i];

}

C.

int a[10]={1,2,3,4,5,6,7,8,9,10};

int sum=0;

for(int i=0;i<10;i++) {

um=sum+a[i];

}

D.
int a[10]={0};

int sum=0;

for(int i=0;i<=10;i++) {

sum=sum+a[i];

}

【答案】C

【考纲知识点】

【解析】考察一维数组知识题目,题目中明显的错误比较容易发现其中ABD三个选项中循环都超范围,设置长度为10数组位置共10个但是下标是0~9不存在a[10]三个选项中都是i<=10,因此选择C选项。

13.下面的程序中,会输出( )。
int a[10]={1,2,3,4,5,6,7,8,9,10};

cout<<a[10]<<endl;

A. 1

B. 0

C. 10

D. 不确定的值

【答案】D

【考纲知识点】

【解析】考察一维数组知识题目,设置长度为10数组位置共10个但是下标是0~9不存在a[10],会输出不确定的值,因此选择D选项。

14.有ABCD4个人,其中一个是小偷,每个人说一句话,只有小偷说的是假话,其中A说:不是我。B说:是C。C说:是D。D说:C瞎说,请问谁是小偷( )。

A. A

B. B

C. C

D. D
【答案】C

【考纲知识点】

【解析】考察逻辑推理知识题目,此题可以采用假设法分别假设四人中的一人是小偷,也就是说的是假话,看是否与另外三人说的话相悖,如果是则排除,如果都不相悖就是小偷,或者其他合理推理方法均可,因此选择C选项。

15.下列程序输出的是()
string str = "Hello,CHAD";

cout << str.find("A") << '\n';

A. 9

B. 8

C. 7
D. 6

【答案】B

【考纲知识点】

【解析】考察字符串汉字字节数知识题目,find函数返回的是字符A的位置,但是前面是一个汉字占用两字节,输出显示的位置会是8并不是7,因此选择B选项。

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

题目12345678910
答案

×

×

×

1.+1和-1的原码进行1+(-1)计算的结果是-2 。( )

【答案】正确

【考纲知识点】

【解析】考察编码知识题目,最高位符号位是0+1=1为负数,低位的1+1结果为2,因此题目说法正确。

2.~1 的输出值是 -2 。( )

【答案】正确

【考纲知识点】

【解析】考察编码知识题目,~1可以理解为对0000 0001进行取反1111 1110,这个编码恰好是-2的补码,程序中用补码表示,所以输出值是-2,因此题目说法正确。

3.~1 = 1111 1110 。( )

【答案】正确

【考纲知识点】

【解析】考察编码知识题目,与第二题相同,~1是对0000 0001按位进行取反1111 1110,因此题目说法正确。

4.取 X 的低四位,可以用 Y = 0000 1111 ,用 X&Y 获取 X 的低四位。( )

【答案】正确

【考纲知识点】

【解析】考察位运算知识题目,y = 0000 1111,最低位是四个1,可以通过和1做&运算的结果来判断出x的低四位分别是什么,因此题目说法正确。

5.下列程序输出的是 A 。( )
char x=65;

x++;

cout<<x++<<endl;

【答案】错误

【考纲知识点】

【解析】题面给定的程序中char类型变量x为65,加1后为66由于类型是char类型,输出的内容是字符B并不是A,因此题目说法错误。

6.下列程序输出的是 3 。( )
string str="CHADai";

size_t pos = str.find('D');

cout<<pos<<endl;

【答案】正确

【考纲知识点】

【解析】考察编码字符串知识,下标从0开始汉字两个字节,所以字符A下标是2,字符D下标是3,题面中的size_t通常是无符号整数类型,此处当作int理解即可,不影响题目判断,因此题目说法正确。

7.下列程序将输出 1 。( )
int a[10]={1};

cout<<a[1]<<endl;

【答案】错误

【考纲知识点】

【解析】考察数组知识,题面中这种数组初始化方式,是将a[0]设置为1,其余位置都是0填充,所以应该是输出0而不是1,因此题目说法错误。

8.下列程序将输出 A 。( )
int a=65;

cout<<(char)a<<endl

【答案】正确

【考纲知识点】

【解析】考察数据类型转换知识,题目中的65转换成字符char类型,对应ASCII码关系,对应字符A,因此题目说法正确。

9.16进制数 AB ,表示成2进制数是 10101011 。( )

【答案】正确

【考纲知识点】

【解析】考察进制转换知识,将十六进制数字转换成二进制可以采用一分四的方式,A对应1010,B对应1011,因此题目说法正确

10.def (十六进制) = 103231 (五进制)。( )

【答案】错误

【考纲知识点】

【解析】考察进制转换知识,def转换为十六进制可以先将十六进制转换为十进制,再将十进制转换成五进制,def分别对应13、14、15,转为十进制是13*16²+14*16+15*1=3567,转为五进制后是103232,题目中103231最后一位书写错误,因此题目说法错误。

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

 

1、平衡序列

【问题描述】

小杨有一个包含n个正整数的序列a,他认为一个序列是平衡的当且仅当存在一个正整数i(1≤ i<n)使得序列第1个到第i个数字的总和等于第i+1个到第n个数字的总和。

小杨想请你判断序列a是否是平衡的。

【输入描述】

第一行包含一个正整数t,代表测试用例组数。

接下来是t组测试用例。对于每组测试用例,一共两行。

第一行包含一个正整数n,代表序列长度。

第二行包含n个正整数,代表序列a。

【输出描述】

对于每组测试用例,如果序列a是否是平衡的,输出Yes,否则输出No。

【样例输入 1】

3

3

1 2 3

4

2 3 1 4

5

1 2 3 4 5

【样例输出 1】

Yes
Yes
No

【题目大意】

【考纲知识点】

【解题思路】
根据题面描述的要求,先按着数据组数设置好循环次数,即t次。每组数据正常输入且输入过程中累加求出总和,接下来从第1个位置到第n-1个位置遍历,如果累加中tot变量等于了数组总和得一半,则剩下的一定就是另一半了,这也是为什么遍历到n-1位置的原因,至少保留一个作为平衡的另一半,最后每组数据对应一个输出(Yes/No)配合换行格式即可。

【参考程序】

#include<bits/stdc++.h>

using namespace std;

int a[10010];

int main(){

int t;

cin>>t;

while(t--){

int n;

cin>>n;

int sum=0;

for(int i=1;i<=n;i++){

cin>>a[i];

sum+=a[i];

}

int tot=0,fl=0;

for(int i=1;i<n;i++){

tot+=a[i];

if(tot*2==sum){

fl=1;

break;

}

}

if(fl)cout<<"Yes\n";

else cout<<"No\n";

}

}

2、回文拼接

【问题描述】

一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,aabaa和ceddcc都是回文串,但abcd不是。

小杨有n个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为2的回文串前后拼接而成。

【输入描述】

第一行包含一个正整数n,代表字符串数量。

之后n行每行一个仅包含小写字母的字符串。

【输出描述】

对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出Yes,否则输出No。


【样例输入】

4

Abcd

Aabbb

Aaac

abcdd

【样例输出】

No

Yes

No

No

【题目大意】

【考纲知识点】

【解题思路】

首先需要清楚回文格式这样一个小概念,题面描述要求是整个字符串是否为连个回文格式的子串拼接而成的,所以可以使用循环从中间切开,分成前后很多组尝试,检测前后两个字串是否都是回文格式,题目是多组输入数据,所以循环n次,每次一个输入是,对应一个输出(Yes/No)。由于题目要求长度至少为2,所以对于每个string s,测量长度后从2开始循环到m-2位置,这样变量j刚好用于strsub函数中的位置和长度,求得两个字串s1和s2后使用两个关于k的循环分别反向拼接形成两个反向的串t1和t2,如果t1==s1 && t2==s2证明前后两个字符串都是回文格式的,标记fl = 1,根据fl的状态分支判断,输出答案即可。

【参考程序】
#include<bits/stdc++.h>

using namespace std;

int main(){

int n,k;

cin>>n;

for(int i=1;i<=n;i++){

string s;

cin>>s;

int m = s.length();

int fl = 0;

for(int j=2;j<=m-2;j++){

string s1=s.substr(0,j);

string s2=s.substr(j,m-j);

string t1="",t2="";

for(int k=(int)s1.size()-1;k>=0;k--)t1+=s1[k];

for(int k=(int)s2.size()-1;k>=0;k--)t2+=s2[k];

if(t1==s1&&t2==s2){

fl=1;

break;

}

}

if(fl)cout<<"Yes\n";

else cout<<"No\n";

}

}

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

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

相关文章

《庐山派从入门到...》IDE启动

《庐山派从入门到...》IDE启动 《庐山派从入门到...》IDE启动 IDE&#xff08;Integrated Development Environment&#xff09;&#xff0c;即集成开发环境&#xff0c;是一种软件应用程序&#xff0c;旨在为软件开发人员提供一个全面的工具集合&#xff0c;以便可以更高效地编…

打电话玩手机识别-支持YOLO,COCO,VOC格式的标记,超高识别率可检测到手持打电话, 非接触式打电话,玩手机自拍等

打电话玩手机识别-支持YOLO&#xff0c;COCO&#xff0c;VOC格式的标记&#xff0c;超高识别率可检测到手持打电话&#xff0c; 非接触式打电话&#xff0c;玩手机自拍等1275个图片。 手持打电话&#xff1a; 非接触打电话 玩手机 数据集下载 yolov11:https://download.csdn…

【智体OS】官方上新发布智体电视:基于rtpc和rttouchpad实现智体电视的手机遥控-可安装任意PC应用用于智体电视

【智体OS】官方上新发布智体电视&#xff1a;基于rtpc和rttouchpad实现智体电视的手机遥控-可安装任意PC应用用于智体电视 dtns.network是一款主要由JavaScript编写的智体世界引擎&#xff08;内嵌了three.js编辑器的定制版-支持以第一视角浏览3D场馆&#xff09;&#xff0c;…

Flink+Paimon实时数据湖仓实践分享

随着 Paimon 近两年的推广普及&#xff0c;使用 FlinkPaimon 构建数据湖仓的实践也越来越多。在 Flink 实时数据开发中&#xff0c;对于依赖大量状态 state 的场景&#xff0c;如长周期的累加指标计算、回撤长历史数据并更新等&#xff0c;使用实时数仓作为中间存储来代替 Flin…

Stable Diffusion本地部署:从零开始的完整指南

1、引言 Stable Diffusion是计算机视觉领域的一个生成式大模型&#xff0c;能够进行文生图&#xff08;txt2img&#xff09;和图生图&#xff08;img2img&#xff09;等图像生成任务。它利用深度学习技术&#xff0c;特别是RealisticVision v2.0模型&#xff0c;能够创造出接近…

鸿蒙元服务上架

鸿蒙元服务上架 一、将代码打包成 .app 文件1. 基本需求2. 生成密钥和证书请求文件3. 申请发布证书4. 申请发布Profile5. 配置签名信息6. 更新公钥指纹7. 打包项目成 .app 文件 二、发布元服务1. 进入应用信息页面2. 上传软件包3. 配置隐私协议4. 配置版本信息5. 提交审核&…

【论文阅读】PRIS: Practical robust invertible network for image steganography

内容简介 论文标题&#xff1a;PRIS: Practical robust invertible network for image steganography 作者&#xff1a;Hang Yang, Yitian Xu∗, Xuhua Liu∗, Xiaodong Ma∗ 发表时间&#xff1a;2024年4月11日 Engineering Applications of Artificial Intelligence 关键…

day2 数据结构 结构体的应用

思维导图 小练习&#xff1a; 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学…

特征交叉-CAN学习笔记代码解读

一 核心模块coaction 对于每个特征对(feature_pairs)weight, bias 来自于P_inductionP_fead是MLP的input 举个例子&#xff1a;如果是用户ID和产品ID的co-action&#xff0c;且产品ID是做induction&#xff0c;用户ID是做feed。 step1 用户ID/产品ID都先形成一个向量&#xf…

EfficientNet与复合缩放理论(Compound Scaling Theory) 详解(MATLAB)

1.EfficientNet网络与模型复合缩放 1.1 EfficientNet网络简介 1.1.1 提出背景、动机与过程 EfficientNet是一种高效的卷积神经网络&#xff08;CNN&#xff09;&#xff0c;由Google的研究团队Tan等人在2019年提出。EfficientNet的设计目标是提高网络的性能&#xff0c;同时减…

SQL语句在MySQL中如何执行

MySQL的基础架构 首先就是客户端&#xff0c;其次Server服务层&#xff0c;大多数MySQL的核心服务都在这一层&#xff0c;包括连接、分析、优化、缓存以及所有的内置函数&#xff08;时间、日期、加密函数&#xff09;&#xff0c;所有跨存储引擎功能都在这一层实现&#xff1…

开源低代码平台-Microi吾码-表单控件数据源绑定配置

表单控件数据源绑定配置 平台简介普通数据源数据源引擎Sql数据源通过其它字段来动态绑定数据源关于绑定数据源后的显示字段和存储字段 平台简介 技术框架&#xff1a;.NET8 Redis MySql/SqlServer/Oracle Vue2/3 Element-UI/Element-Plus平台始于2014年&#xff08;基于Av…

Y3编辑器文档4:触发器1(对话、装备、特效、行为树、排行榜、不同步问题)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 函数库与触发器复用 二、触发器的多层结构2.1 子触发器&#xff08;在游戏内对新的事件进行注册&#xff09;2.2 触发器变量作用域2.3 复合条件2.4 循环2.5 计时器2.6…

Redis原理—4.核心原理摘要

大纲(9870字) 1.Redis服务器的Socket网络连接建立 2.Redis多路复用监听与文件事件模型 3.基于队列串行化的文件事件处理机制 4.完整的Redis Server网络通信流程 5.Redis串行化单线程模型为什么能高并发 6.Redis内核级请求处理流程与原理 7.Redis通信协议与内核级请求数据…

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统&#xff0c;与其他日志系统不同的是&#xff0c;Loki最初设计的理念是为了为日志建立标签索引&#xff0c;而非将原日志内容进行索引。 现在目前成熟的方案基本上都是&#xff1a;L…

【规范一】JAVA静态代码规范

1.规范的划分 将Java代码规范分为 风格规范 和 质量规范 &#xff0c;主要是因为这两种规范关注的方面不同&#xff0c;各自解决的问题也不同。下面详细解释为什么需要将代码规范分为这两种 1.1 风格规范&#xff08;Coding Style Guidelines&#xff09; 风格规范主要关注代码…

Angular由一个bug说起之十二:网页页面持续占用CPU过高

随着网络日益发达&#xff0c;网页的内容也更加丰富&#xff0c;形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结&#xff0c;我在面对性能问题的一些解决步骤&#xff0c;希望能对大家有所启发。 查找问题原因 我接触的…

WordPress全能CDN插件_自动刷新预热_缓存优化|国内国外集成CDN配置

WordPress全网独家原创CDN插件 自动刷新预热 缓存优化 国内国外集成CDN配置 支持白山云 cdnfly Cloudflare PS:目前国内集成了CDNfly,白山云国外集成了Cloudflare,更新手动刷新&#xff0c;全站刷新&#xff0c;优化提交线程&#xff0c;根据网友建议适配阿里云&#xff0c;le…

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip&#xff1b;Wav2Lip是一种用于生成唇形同步&#xff08;lip-sync&#xff09;视频的深度学习算法&#xff0c;它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 &#xff08;Paper&#xff09; Wav2Lip模型…

【汽车】-- 燃油发动机3缸和4缸

3缸和4缸燃油发动机是小轿车常见的发动机配置。以下从结构特点、性能、经济性等方面对两者进行对比&#xff0c;并分析优缺点及使用注意事项&#xff1a; 1. 结构与运行原理 3缸发动机 特点&#xff1a;少一个气缸&#xff0c;内部零部件更少&#xff0c;整体结构更紧凑。优点…