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,一经查实,立即删除!

相关文章

2 的幂算法

给你一个整数 n&#xff0c;请你判断该整数是否是 2 的幂次方。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在一个整数 x 使得 n 2x &#xff0c;则认为 n 是 2 的幂次方。 示例 1&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;tr…

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源…

CTF-RE 从0到N: windows反调试-获取Process Environment Block(PEB)信息来检测调试

在Windows操作系统中&#xff0c;Process Environment Block (PEB&#xff0c;进程环境块) 是一个包含特定进程信息的数据结构。它可以被用于反调试中 如何获取PEB指针&#xff1f; 在Windows操作系统中&#xff0c;获取PEB指针的常见方法主要有以下几种。&#xff1a; 1. 使…

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

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

RHEL/CENTOS 7 ORACLE 19C-RAC安装(纯命令版)

一 首先需要安装两个CENTOS 7虚拟机(此处省略)。 由于我们是要安装ORCLE-RAC双节点集群所以至少每个CENTOS虚拟机上需要两块网卡&#xff0c;并且两块网卡都是HOST-ONLY具体步骤请看视频一《为虚拟机添加网卡》 这里大家需要注意的是&#xff0c;我们需要绑定两台机器的IP一共…

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

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

ubuntu24.04设置开机自启动Eureka

ubuntu24.04设置开机自启动Eureka 之前我们是在/root/.bashrc的文件中增加了一条命令 nohup java -jar /usr/software/eurekaServer-auth-prd-03.jar > /usr/software/log.log 2>&1 &但上面这条命令只有在登录root的用户时&#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…

java Arrays 详解

Java Arrays 类详解 Arrays 是 Java 中一个专门用于操作数组的工具类&#xff0c;位于 java.util 包中。它提供了多种用于数组操作的方法&#xff0c;例如排序、搜索、填充、比较、转换等。 1. 常用方法分类 1.1 排序 方法描述Arrays.sort(array)对数组进行升序排序&#xf…

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

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

一个win32 / WTL下多线程库(CThread类)的使用心得

说是多线程库&#xff0c;其实就是一个单独的.h文件&#xff0c;可以方便的放入WTL/win32工程中。 下载地址&#xff1a;CThread. 里面也简单介绍了 用法。 具体用法&#xff0c;首先自定义一个子线程类继承CThreadImpl<T>&#xff0c;注意他是个模板类。 class CMySu…

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;在安装的一步会报…