2023年03月C语言二级答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、编程题

1、数字字符求和

请编写一个程序实现以下功能:从一个字符串中,提取出所有的数字字符即0-

9,并作为数求和。

时间限制:1000

内存限制:65536

输入

一行字符串,长度不超过100,字符串中不含空格。

输出

字符串中所有数字字符作为数的和

样例输入

Lsd2f02k3ja3sdf223

样例输出

17

参考答案:

includeiostream

includecstring

usingnamespacestd;

intmain()

{

intlen,a[300]={0},b[300]={0},t=0,f;

stringst,s;

cinst;

len=st.size();

for(inti=0;ilen;i++)

a[i]=st[i]-‘0’;

//将st一位一位存入数组a中减0是字符到数字的隐形转换

st=st+st;//将st首尾相接

for(intj=1;j=len;j++)

{

for(intk=0;klen;k++)

b[k]=a[k];//将a数组存入b中

for(intp=len-1;p=0;p–)

{

b[p]=b[p]*j+t;

t=b[p]/10;

b[p]=b[p]%10;

}//高精度乘法

s=;//将字符串s置空

for(intq=0;qlen;q++)

s=s+(char)(‘0’+b[q]);//将b数组转换到字符串s中

f=st.find(s,0);

if(f==-1)

{//即st中没s

cout‘0’;

return0;

}//输入0并停止运行

}

cout‘1’;

return0;

}

解析:【喵呜刷题小喵解析】:这个题目要求编写一个程序,从一个字符串中,提

取出所有的数字字符,并求和。首先,我们需要读取输入的字符串。然后,遍历字

符串中的每一个字符,如果该字符是数字(即字符的ASCII码在0和9之间),则

将其转换为数字并加到总和中。最后,输出总和。在C++中,字符和整数在内存中

是兼容的,因此我们可以直接通过字符减去0来得到对应的数字。例如,字符3的

ASCII码是51,而字符0的ASCII码是48,所以字符3-

0的结果是3。因此,我们可以使用以下代码来实现这个功能:```cpp#include

#includeusingnamespacestd;intmain(){stringst;cinst;intsum=0;for(inti=0;i

st.size();i++){if(st[i]=0st[i]=9){sum+=st[i]-0;}}coutsum

endl;return

0;}```这段代码首先定义了一个字符串变量`st`来存储输入的字符串,然后读取输入

的字符串。接着,使用一个循环遍历字符串中的每一个字符,如果该字符是数字,

则将其转换为数字并加到总和中。最后,输出总和。

2、简单密码

Julius

Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中

后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文

和明文中字符的对应关系。密文ABCDEFGHIJKLMNOPQRSTUVW

XYZ明文VWXYZABCDEFGHIJKLMNOPQRSTU

你的任务是对给定的密文进行解密得到明文。

你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,

对这些字符不用进行解码。

时间限制:1000

内存限制:65536

输入

一行,给出密文,密文不为空,而且其中的字符数不超过200。

输出

输出一行,即密文对应的明文。

样例输入

NSBFW,JAJSYXTKNRUTWYFSHJFWJYMJWJXZQYTKYWNANFQHFZXJX

样例输出

INWAR,EVENTSOFIMPORTANCEARETHERESULTOFTRIVIALCAUSES

参考答案:

includebits/stdc++.h

usingnamespacestd;

intmain()

{

chara[201];intl,s=0;

gets(a);l=strlen(a);

for(inti=0;il;

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档