2020年计挑赛往届真题(C++)

因为17号要开赛了,甚至是用云端编辑器,debuff拉满,只能临时抱佛脚了

各个选择题的选择项我就不标出来了,默认ABCD排,手打太麻烦了

目录

单选题:

1.阅读以下语句:double m=0;for(int i=3;i>0;i--)m+=1/i;将m保留三位小数输出,结果为()

2.下列选项中,不是C++关键字的是()       

3.下列选项中,运算结果的数据类型为double的选项是()   

 4.下列运算结果的数据类型是int的选项为()   

5. 关于C++数据类型,下列描述错误的是() 

6."阅读以下代码:int main(){    int x=100;    cout<<__①__<<<__②__<<"">

8.关于C++输入输出,下列描述错误的是()    

9.若有int a;char b;string c;cin>>a>>b>>c;则下列输入形式错误的是()  

10.下列位运算表达式的结果为2的选项是()    

11.对于32位机,已知int x=1;下列选项中错误的是()    

x << 36 的值与 x << 4 相等

~(-(x + 1000)) 的值等于 1000

-1的二进制为32个1

x << 31 + 1 的值为负数

 12.下列运算符中,不属于关系运算符的是()    

 13.设char型变量x中的值为1010 1010,则表达式(x+5)^(-1)的计算结果的二进制为()     

14.关于位运算,下列描述正确的是()  

操作题

1."Excel表列名称由字母A~Z组成,列字母的规律如下:A、B、C.....Z、AA、AB......AZ、BA、BB.......ZZZZY、ZZZZZ.......输入:输入包含两个列名称字符串,长度均小于等于5。输出:输出两个列名称之间共有多少列样例输入:AA AZ样例输出:24"    

代码:

2."九键拼音中数字与英文字母成对应关系:2--abc, 3-def, 4-ghi, 5--jkl, 6--mno, 7--pqrs, 8--tuv, 9--wxyz。输入:输入一个由英文小写字母组成的字符串(长度<=100000)输出:输出其对应的九键数字。样例输入:fwgeta样例输出:394382" 

代码:

3."给定两个字符串str1和str2(长度均<=10000),问字符串str2内每个字符是否能在字符串str1内找到输入:第一行输入字符串str1第二行输入字符串str2输出:若能找到,则输出‘Y’,否则输出‘N’;样例输入:abdcdewrtde wbaqx样例输出:YYYNN"           

代码:         

4."有N个正整数,求这N个正整数两两之间的最大公约数之积输入:第一行输入正整数N(N<=100)第二行有N个正整数(<10000)输出:输出这N个正整数两两之间的最大公约数之积,结果对1000000007取模样例输入:46 8 9 10 样例输出:24"   

代码:   

             

    

    


单选题:

1.阅读以下语句:double m=0;for(int i=3;i>0;i--)m+=1/i;将m保留三位小数输出,结果为()

A 0 

B  1    

C1.833    

D6

答案:B

解析:涉及到了数据类型的特点,i是int类型,所以不能有小数,所以计算1/i这个过程中,三次计算的结果分别是0,0,1。因此,m的结果也就是在0,0,1。最终结果也就是1

2.下列选项中,不是C++关键字的是()       

namespace    

typename    

main    

class

答案:C

解析:

解释:

  • namespace 是 C++ 关键字,用于定义命名空间。
  • typename 是 C++ 关键字,用于声明类型名称。
  • main 不是关键字,它是 C++ 程序的入口函数名称。
  • class 是 C++ 关键字,用于定义类。

3.下列选项中,运算结果的数据类型为double的选项是()   

A'+'B'-'C'  

 2-3.0*0    

(int)1.0+5    

10LL-10

答案:B

解析:这里涉及的是数据类型的转换,

解释:

  • A'+'B'-'C':此表达式中,字符常量 'A'、'B'、'C' 会先转换为它们的 ASCII 值,这些都是整数运算,结果是整数类型。
  • 2-3.0*0:此表达式中,3.0 是一个 double 类型的常量,乘法运算会导致整个表达式的结果类型为 double。即使是 0,运算的结果也会保持为 double 类型。
  • (int)1.0+5:这里将 1.0 强制类型转换为整数,结果是整数类型,然后加上 5,最终结果也是整数类型。
  • 10LL-10:这里使用的是长长整型(long long int),减去一个整数 10,结果仍然是长长整型。

 4.下列运算结果的数据类型是int的选项为()   

1    

1LL  

 'A'    

'A'+1

答案:D

解析:这里涉及的同为数据类型转换,

  • 1:这是一个整数常量,数据类型为 int,但是我想的是这个过程并没有运算,所以不符合题意
  • 1LL:这是一个 long long int 类型的常量,数据类型是 long long int,而不是 int
  • 'A':字符常量 'A' 没有表达式的话就是默认的char类型。
  • 'A' + 1:这个表达式首先会将 'A' 转换为整数值 65,然后与 1 相加,结果是 66,仍然是 int 类型。

5. 关于C++数据类型,下列描述错误的是() 

相同数据类型所占字节数在不同系统中可能不同    

枚举类型是C++中的一种派生数据类型    

对于小数1.0,其默认数据类型是float    

数据类型转换有自动转换、赋值转换、强制转换

答案:C

解析:对于小数 1.0,C++ 默认的数据类型是 double,而不是 float。这是因为浮点数常量默认会被视为 double 类型,除非明确指定 f 后缀。例如:

  • 1.0double 类型。
  • 1.0ffloat 类型。

6."阅读以下代码:
int main()
{
    int x=100;
    cout<<__①__<<x<<__②__<<"" ""<<x;
    return 0;
},若程序输出结果为64 144,则下列选项中描述正确的是()"    

可将①补全为oct,②补全为hex,输出结果为64 144    

100的二进制为11000010    

cout是一个ostream类的对象    

变量x与0x144相等

答案:C

解析:对于A,答案反了,oct是八进制,答案是144,hex是16进制,答案是64

对于B:单纯的算错了

C:属于 ostream 类的实例。ostream 类用于输出数据。正确

D:0x是16进制的意思,这里算出来就是324,和选项A对应

7. 下列选项中与控制输出精度有关的函数为()  

setf()    

width()    

setprecision()    

fill()

答案:C

解析:认单词

  • setf():用于设置输出格式标志,例如 setf(ios::fixed) 可以控制输出为定点格式,但它本身并不直接控制精度。
  • width():设置输出的最小宽度,但不控制精度。它定义输出内容的最小宽度,内容不足时会填充空格。
  • setprecision():用于设置浮点数输出的精度,控制小数点后位数。
  • fill():用于设置填充字符,常用于设置 width() 中空白位置的填充字符,而不是控制精度。

8.关于C++输入输出,下列描述错误的是()    

getline()可以接收一个字符串,包括空格    

ofstream类的对象可以输出到文件    

cin.getline()和getline()是一样的函数    

cerr和clog流对象都是标准错误流,但存在一些区别    

答案:C

解析:cin.getline()istream 类的成员函数,专门用于从标准输入流读取一行字符串。而 getline()(不带 cin)是全局函数,通常用于读取字符串数据,无论是从标准输入流还是从其他输入流(如文件流)中读取。

9.若有int a;char b;string c;cin>>a>>b>>c;则下列输入形式错误的是()  

1<回车>a<回车>abc    

1 a abc    

1a abc    

"1,a,abc"    

答案:D

解析:char后面不是空格的任何输入都会算成string类型

10.下列位运算表达式的结果为2的选项是()    

~(-2)&2+1    

5^6+1    

4%3*7/2    

4>=5?1+2:2+3

答案:选B

解析:5 ^ 6 + 1:

  • 先计算 6 + 1
    6 + 1 = 7
  • 然后表达式变为:
    5 ^ 7
  • 计算 5 ^ 75 的二进制是 01017 的二进制是 0111,按位异或:
    0101 ^ 0111 = 0010,即结果是 2

11.对于32位机,已知int x=1;下列选项中错误的是()    

x&lt;&lt;36的值与x&lt;&lt;4的相等    

~(-(x+1000))的值等于1000  

 -1的二进制为32个1    

x&lt;&lt;31+1的值为负数

答案:D

x << 36 的值与 x << 4 相等

  • 对于32位整数,位移的最大有效范围是 0 到 31。
  • 位移操作的位数实际上是对32取模,因此 x << 36 等价于 x << (36 % 32),也就是 x << 4
  • 这个选项是正确的,因为 36 % 32 = 4,所以 x << 36x << 4 是相等的。

~(-(x + 1000)) 的值等于 1000

  • 先计算 x + 1000x = 1,所以 x + 1000 = 1001
  • 1001 取负值:-1001
  • 然后对 -1001 进行按位取反(~ 运算符):按位取反相当于将每一位的 01 反转,即 ~(-1001) 会得到 1000,这是因为按位取反后,我们得到的是 -1001 的补码表示反转的结果。
  • 这个选项是正确的,因为 ~(-(x + 1000)) = 1000

-1的二进制为32个1

  • 在32位机器上,-1 的二进制表示是补码表示,补码表示中,-1 的二进制是 11111111 11111111 11111111 11111111,即 32个 1
  • 这个选项是正确的,因为 -1 的二进制表示确实是32个 1

x << 31 + 1 的值为负数

  • 优先级问题:运算符优先级中,<<(位移操作符)优先级高于 +,所以 x << 31 + 1 会被解析为 x << (31 + 1),也就是 x << 32
  • 对于32位整数,位移32位会将值移动回原来的位置(即 x << 32 实际上等价于 x)。所以 x << 32 结果是 1
  • 这个选项是错误的,因为 x << 31 + 1 的值是 1,而不是负数

 12.下列运算符中,不属于关系运算符的是()    

!=    

==    

&lt;&lt;=    

&lt;=

答案:C

解析:c选项就是<<,位移运算符,

 13.设char型变量x中的值为1010 1010,则表达式(x+5)^(-1)的计算结果的二进制为()     

0101 0000    

1010 1111    

1111 1111    

0101 0001

答案:A

解析:计算就是175的二进制对-1进行异或运算,

14.关于位运算,下列描述正确的是()  

位运算适用于所有基本数据类型    

位运算的效率普遍较低    

~(-3)的值为2    

符号位不参与位运算

答案:C

解析:

  • 位运算适用于所有基本数据类型

    • 错误。位运算通常适用于整数类型(如 int, char, long 等),而不适用于浮点型(如 float, double)等数据类型。浮点数在内存中的存储方式与整数不同,因此无法直接进行位运算。
  • 位运算的效率普遍较低

    • 错误。位运算实际上是非常高效的,通常比加法、乘法等算术运算要快,因为它直接操作位级数据,不涉及复杂的算术计算。所以这句话是错误的,位运算的效率通常较高。
  • 符号位不参与位运算

    • 错误。符号位是会参与位运算的。在二进制补码表示法中,符号位实际上也是一个位,并且在进行位运算(如按位与、按位或、按位异或等)时,符号位也会参与运算。因此,符号位会影响运算的结果。

15.若有一个3*3的int型二维数组n,第一、二、三行分别存储数据为{1,2,3}、{4,5,6}、{7,8,9},有一个int型指针p,p=n[0];则(*(p+2)+2)的值为()    

2    

3    

4    

答案:选D

解析:

  • p 是指向 n[0][0] 的指针,也就是说 p 当前指向数组 n[0] 的第一个元素(值为 1)。
  • p + 2 会使指针向后偏移两个元素(即跳过 n[0][0]n[0][1],指向 n[0][2],即值为 3)。
  • *(p + 2) 解引用该指针,得到值为 3(即 n[0][2] 的值)。
  • 然后,*(p + 2) + 2 就是 3 + 2 = 5

操作题

必须要提的是,这是我第一次参加这个计挑赛,对比赛用的云端编辑器一点了解都没有

1."Excel表列名称由字母A~Z组成,列字母的规律如下:
A、B、C.....Z、AA、AB......AZ、BA、BB.......ZZZZY、ZZZZZ.......
输入:
输入包含两个列名称字符串,长度均小于等于5。
输出:
输出两个列名称之间共有多少列
样例输入:
AA AZ
样例输出:
24"    

代码:
#include<bits/stdc++.h>using namespace std;int satoi(string s){int num = 0;for(int i =0;i<s.size();i++){num *=26;num+= s[i] - 'A'+1;}return num;
}int main()
{string ar1,ar2;cin>>ar1>>ar2;int num1 =satoi(ar1);int num2 = satoi(ar2);cout<<num2-num1-1<<endl;return 0;
}

2."九键拼音中数字与英文字母成对应关系:2--abc, 3-def, 4-ghi, 5--jkl, 6--mno, 7--pqrs, 8--tuv, 9--wxyz。
输入:
输入一个由英文小写字母组成的字符串(长度<=100000)
输出:
输出其对应的九键数字。
样例输入:
fwgeta
样例输出:
394382" 

代码:
#include<bits/stdc++.h>using namespace std;int main()
{map<char,int>ar;int len =0;int num =2;for(char a = 'a';a<='o';a++){ar[a]=num;len++;if(len==3){num++;len=0;}}for(char a = 'p';a<='z';a++){ar[a]=num;len++;if(len==4){num++;len=0;}}ar['w']=9;string s;cin>>s;const char* s1 = s.c_str();for(int i=0;i<s.size();i++){cout<<ar[s1[i]];}return 0;
}

3."给定两个字符串str1和str2(长度均<=10000),问字符串str2内每个字符是否能在字符串str1内找到
输入:
第一行输入字符串str1
第二行输入字符串str2
输出:
若能找到,则输出‘Y’,否则输出‘N’;
样例输入:
abdcdewrtde 
wbaqx
样例输出:
YYYNN"           

代码:         
#include<bits/stdc++.h>using namespace std;int main()
{string str1,str2;cin>>str1>>str2;for(int i=0;i<str2.size();i++){if(str1.find(str2[i])!=string::npos){cout<<"Y";}elsecout<<"N";}return 0;
}

4."有N个正整数,求这N个正整数两两之间的最大公约数之积
输入:
第一行输入正整数N(N<=100)
第二行有N个正整数(<10000)
输出:
输出这N个正整数两两之间的最大公约数之积,结果对1000000007取模
样例输入:
4
6 8 9 10 
样例输出:
24"   

代码:   
             
#include<bits/stdc++.h>using namespace std;const int n =1000000007;int main()
{int res =  1;int N;cin>>N;vector<int>ar(N+1);for(int i=0;i<N;i++){cin>>ar[i];}for(int i=0;i<N-1;i++){for(int j=i+1;j<N;j++){res*=__gcd(ar[i],ar[j]);}}cout<<res%n;return 0;
}
    
 
    

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

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

相关文章

ubuntu20.04默认的python3.8升级到python3.10

Python 3.8 于 2019 年 10 月发布&#xff0c;距今已有五年时间。2024 年 10 月是 Python 3.8 版本发布的最后一个月&#xff0c;从 2024 年 10 月开始&#xff0c;如果存在安全错误&#xff0c;Python 开发团队将不会修复该错误。有必要把python3.8升级python3.10。 新加apt源…

数据结构 ——— 层序遍历链式二叉树

目录 链式二叉树示意图​编辑 何为层序遍历 手搓一个链式二叉树 实现层序遍历链式二叉树 链式二叉树示意图 何为层序遍历 和前中后序遍历不同&#xff0c;前中后序遍历链式二叉树需要利用递归才能遍历 而层序遍历是非递归的形式&#xff0c;如上图&#xff1a;层序遍历的…

DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能

DevOps的兴起&#xff0c;得益于敏捷软件开发的普及与IT基础设施代码化管理的革新。敏捷宣言虽已解决了研发流程中的诸多挑战&#xff0c;但代码开发仅是漫长价值链的一环&#xff0c;开发前后的诸多问题仍亟待解决。与此同时&#xff0c;虚拟化和云计算技术的飞跃&#xff0c;…

python json详解

json 是 Python 中用于处理 JSON 数据的标准库。JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人类阅读和编写&#xff0c;同时也易于机器解析和生成。Python 的 json 模块提供了将 Python 对象与 JSON 数据相互转换的功…

WPS宏编辑器开发,单元格内容变更自动触发事件

WPS中Excel的“触发器” 写在前面宏的开发1、切换宏编辑器开发环境2、小练习&#xff1a;自定义函数3、完成功能需求&#xff1a;单元格内容变更自动触发事件 总结 写在前面 我先生用EXCEL做了一张学生存款表。设计得很简单&#xff0c;A学生已存款X元&#xff0c;A学生再次存…

新版Apache Tomcat ⽬目录文件讲解(笔记)

简介&#xff1a;Tomcat⽬目录⽂文件讲解 bin &#xff08;关注&#xff09; 启动和关闭tomcat脚本 startup.sh/startup.bat (Linux平台或Mac上的启动脚本/Windows平台上的启动脚本) shutdown.sh/shutdown.bat (Linux平台或Mac上的关闭脚本/Windows平台上的关闭脚本) conf&am…

Go 语言已立足主流,编程语言排行榜24 年 11 月

Go语言概述 Go语言&#xff0c;简称Golang&#xff0c;是由Google的Robert Griesemer、Rob Pike和Ken Thompson在2007年设计&#xff0c;并于2009年11月正式宣布推出的静态类型、编译型开源编程语言。Go语言以其提高编程效率、软件构建速度和运行时性能的设计目标&#xff0c;…

Kettle配置数据源错误“Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found”解决记录

问题描述 错误提示&#xff1a;“Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.” 原因分析&#xff1a; 根据错误提示是缺少了相关的数据源连接jar包。 解决方案&#xff1a; 安装对应的Mysql…

PCA 原理推导

针对高维数据的降维问题&#xff0c;PCA 的基本思路如下&#xff1a;首先将需要降维的数据的各个变量标准化&#xff08;规范化&#xff09;为均值为 0&#xff0c;方差为 1 的数据集&#xff0c;然后对标准化后的数据进行正交变换&#xff0c;将原来的数据转换为若干个线性无关…

河道无人机雷达测流监测系统由哪几部分组成?

在现代水利管理中&#xff0c;河道无人机雷达监测系统正逐渐成为一种重要的工具&#xff0c;为河道的安全和管理提供了强大的技术支持。那么&#xff0c;这个先进的监测系统究竟由哪几部分组成呢&#xff1f; 河道无人机雷达监测系统工作原理 雷达传感器通过发射电磁波或激光束…

DDRPHY数字IC后端设计实现系列专题之数字后端floorplanpowerplan设计

3.2.3 特殊单元的布局 布图阶段除了布置 I/O 单元和宏单元&#xff0c;在 28nm 制程工艺时&#xff0c;还需要处理两种特 殊的物理单元&#xff0c;Endcap 和 Tapcell。 DDRPHY数字IC后端设计实现系列专题之后端设计导入&#xff0c;IO Ring设计 &#xff08;1&#xff09;拐…

实现金蝶云与MySQL的无缝数据集成

金蝶云与MySQL的费用申请单数据集成案例 金蝶云星空数据集成到MySQL的技术案例分享 在企业信息化系统中&#xff0c;数据的高效流转和准确对接是业务顺利运行的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何通过轻易云数据集成平台&#xff0c;将金蝶云星空中…

Flink Source 详解

Flink Source 详解 原文 flip-27 FLIP-27 介绍了新版本Source 接口定义及架构 相比于SourceFunction&#xff0c;新版本的Source更具灵活性&#xff0c;原因是将“splits数据获取”与真“正数据获取”逻辑进行了分离 重要部件 Source 作为工厂类&#xff0c;会创建以下两…

Android Settings 单元测试 | 如何运行单元测试?

背景 在Android Settings 单元测试 | Telephony Network 模块 APN 案例中粗略介绍了单元测试逻辑内容&#xff0c;但是在独立APK里面如何将单元测试跑起来还是有疑问&#xff0c;因为APP不能直接install&#xff0c;无法借助Android Studio直接Run&#xff0c;在安装的一步会报…

【Qt聊天室】客户端实现总结

目录 1. 项目概述 2. 功能实现 2.1 主窗口设计 2.2 功能性窗口 2.3 主界面功能实现 2.4 聊天界面功能实现 2.5 个人信息功能开发 2.6 用户信息界面设置功能 2.7 单聊与群聊 2.8 登录窗口 2.9 消息功能 3. 核心设计逻辑 3.1 核心类 3.2 前后端交互与DataCenter 4…

java瑞吉外卖

环境搭建 一、数据库环境搭建 1.新建数据库reggie&#xff0c;这里字符集一般用utf8mb4&#xff0c;排序规则一般用utf8mb4_general_ci或utf8mb4_unicode_ci 2.然后导入表结构 二、创建springboot工程 然后检查maven仓库设置&#xff0c;jdk 这是我的pom.xml文件 <?xml …

App Store用户评论如何影响ASO优化

您是否专注于提高应用的知名度&#xff0c;并想知道应用商店评分和用户评论如何发挥作用&#xff1f;应用商店用户评论和评分对于塑造应用的成功至关重要&#xff0c;并且可以显著影响您的应用商店优化 (ASO) 策略。本文提供了利用这些元素为您带来优势的见解和策略。 如今&…

我谈二值形态学基本运算——腐蚀、膨胀、开运算、闭运算

Gonzalez从集合角度定义膨胀和腐蚀&#xff0c;不易理解。 Through these definitions, you can interpret dilation and erosion as sliding neighborhood operations analogous to convolution (or spatial filtering). 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向…

【AIGC】如何通过ChatGPT提示词Prompt定制个性学习计划

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;提示词&#x1f4af;配置信息使用方法 &#x1f4af;指令/language/plan/start/test/continue/config &#x1f4af;小结 &#x1f4af;前言 在这篇文章中…

RFID被装信息化监控:物联网解决方案深入分析

被装物联网信息化监控构成了一套复杂而高效的处理方案&#xff0c;它巧妙地将物联网技术与被装资源管理的具体需求相结合&#xff0c;实现了对被装资源实时监控、智能化调控和优化分配。以下是对被装物联网信息化监控的详细说明&#xff1a; 一、被装物联网信息化监控的定义 …