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.rhkb.cn/news/473637.html

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

相关文章

vueRouter路由切换时实现页面子元素动画效果, 左右两侧滑入滑出效果

说明 vue路由切换时&#xff0c;当前页面左侧和右侧容器分别从两侧滑出&#xff0c;新页面左右分别从两侧滑入 效果展示 路由切换-滑入滑出效果 难点和踩坑 现路由和新路由始终存在一个页面根容器&#xff0c;通过<transition>组件&#xff0c;效果只能对页面根容器有效…

docker 安装之 windows安装

文章目录 1: 在Windows安装Docker报19044版本错误的时候&#xff0c;请大家下载4.24.1之前的版本&#xff08;含4.24.1&#xff09;2: Desktop-WSL kernel version too low3: docker-compose 安装 (v2.21.0)4: 配置镜像源 1: 在Windows安装Docker报19044版本错误的时候&#xf…

【GPTs】Gif-PT:DALL·E制作创意动图与精灵动画

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af;Gif-PT主要功能适用场景优点缺点 &#x1f4af;小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; 使用Dalle生成用户请求的精灵图动画&#…

FastGPT部署通义千问Qwen和智谱glm模型|OneAPI配置免费的第三方API

继这篇博客之后 从零开始FastGPT本地部署|Windows 有同学问&#xff0c;不想在多个平台申请API-Key&#xff0c;不好管理且要付费&#xff0c;有木有白嫖方案呀&#xff1f; 答&#xff1a;有啊。用硅基流动。 注册方法看这篇 【1024送福利】硅基流动送2000万token啦&#xff0…

JsonCpp

参考文档&#xff1a;https://zhuanlan.zhihu.com/p/374319504 json是一种轻量级数据交换格式&#xff0c;易于阅读和编写&#xff0c;也易于机器解析和生成。使用json格式可以方便地在各个系统之间传递数据。在c中&#xff0c;有许多开源的json库可以进行json的处理。比如&am…

7.揭秘C语言输入输出内幕:printf与scanf的深度剖析

揭秘C语言输入输出内幕&#xff1a;printf与scanf的深度剖析 C语言往期系列文章目录 往期回顾&#xff1a; VS 2022 社区版C语言的安装教程&#xff0c;不要再卡在下载0B/s啦C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序C语言概念之旅&#xff1a;解锁关…

XXL-JOB相关面试题

分布式任务调度-xxl-job 任务量大&#xff0c;分片执行 定义cron表达式灵活 定时任务失败了&#xff0c;重试和统计 xxl-job路由策略有哪些&#xff1f; 轮询 故障转移 分片广播:**广播触发对应的集群中所有机器执行一次任务,同时系统自动传递分片参数,**可以根据分片参数开发…

华东师范大学数学分析第五版PDF习题答案上册及下册

“数学分析”是数学专业最重要的一门基础课程&#xff0c;也是报考数学类专业硕士研究生的专业考试科目。为了帮助、指导广大读者学好这门课程&#xff0c;编者编写了与华东师范大学数学科学学院主编的《数学分析》(第五版)配套的辅导用书&#xff0c;以帮助读者加深对基本概念…

MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk)

MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk) 1.计算模型介绍 使用GARCH&#xff08;广义自回归条件异方差&#xff09;模型计算VaR&#xff08;风险价值&#xff09;时&#xff0c;方差法是一个常用的方法。GARCH模型能够捕捉到金融时间序列数据中的波…

基于YOLOv8深度学习的智慧课堂学生专注度检测系统(PyQt5界面+数据集+训练代码)

本研究提出了一种基于YOLOv8深度学习的智慧课堂学生专注度检测系统&#xff0c;旨在实现对课堂中学生专注度的实时分析与评估。随着智慧教育的快速发展&#xff0c;学生的课堂表现和专注度成为评估学习效果的重要因素之一。然而&#xff0c;传统的专注度评估方法往往依赖于主观…

如何在 Ubuntu 上安装 Emby 媒体服务器

Emby 是一个开源的媒体服务器解决方案&#xff0c;它能让你整理、流媒体播放和分享你的个人媒体收藏&#xff0c;包括电影、音乐、电视节目和照片。Emby 帮你集中多媒体内容&#xff0c;让你无论在家还是在外都能轻松访问。它还支持转码&#xff0c;让你能够播放各种格式的内容…

HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)

文章目录 前言一、引入模块和基本设备信息的获取二、设备硬件和系统版本信息的获取三、获取安全相关的设备信息四、获取网络状态信息五、完整 Demo 代码1. 导入所需模块2. 获取设备基本信息代码解析 3. 检测网络连接状态4. 执行函数 总结 前言 HarmonyOS 提供了一个强大的 API…

ES6笔记

ES6 ECMAScript ECMA组织&#xff1a;脚本语言标准化国际组织 1.什么是ES6 ES的全称是&#xff1a;ECMAScript&#xff0c;它是ECMA国际标准化组织制定的一项脚本语言的标准规范 2015年6月&#xff1a;ES2015 2016年6月&#xff1a;ES2016 2017年6月&#xff1a;ES2017 2018年…

常用命令之LinuxOracleHivePython

1. 用户改密 passwd app_adm chage -l app_adm passwd -x 90 app_adm -> 执行操作后&#xff0c;app_adm用户的密码时间改为90天有效期--查看该euser用户过期信息使用chage命令 --chage的参数包括 ---m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 ---M 密码…

游戏如何应对内存修改

据观察&#xff0c;近年来游戏黑灰产攻击角度多样化趋势显著&#xff0c;主要面临工作室、定制注入挂、模拟点击挂、内存修改挂、破解版等多方面安全问题。 据FairGuard数据统计&#xff0c;在游戏面临的众多安全风险中&#xff0c;「内存修改」攻击占比约为13%&#xff0c;主…

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下&#xff0c;由于家长的疏忽&#xff0c;将…

华为欧拉系统使用U盘制作引导安装华为欧拉操作系统

今天记录一下通过U盘来安装华为欧拉操作系统 华为欧拉操作系统是国产的一个类似于Centos的Linus系统 具体实现操作步骤&#xff1a; 先在官网下载欧拉系统镜像点击跳转到下载 准备好一个大于16g的U盘 &#xff0c;用于制作U盘启动 下载一个引导程序制作工具&#xff0c;我使用…

Excel单元格中自适应填充多图

实例需求&#xff1a;在Excel插入图片时&#xff0c;由于图片尺寸各不相同&#xff0c;如果希望多个图片填充指定单元格&#xff0c;依靠用户手工调整&#xff0c;不仅费时费力&#xff0c;而且很难实现完全填充。如下图中的产品图册&#xff0c;有三个图片&#xff0c;如下图所…

51单片机应用开发---LCD1602显示应用

实现目标 1、了解LCD1602液晶屏&#xff1b; 2、掌握驱动程序的编写&#xff1b; 3. 具体目标&#xff1a;在屏幕上显示字符。 一、LCD1206概述 1.1 定义 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置…

问题分析与解决:Android开机卡动画问题分析

1. 问题背景及描述 在一个android设备的开发的项目中遇到了一个比较典型的问题:在主板贴片完成后,首次刷入androdi固件验证时,遇到了按键出发开机后,系统启动到android动画界阶段时一直循环卡在此阶段,无法进入桌面。如下如所示: 此问题在许多android项目的首次点亮阶段均…