前半学期C语言答案.docx
- 文档编号:9904003
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:118
- 大小:49.08KB
前半学期C语言答案.docx
《前半学期C语言答案.docx》由会员分享,可在线阅读,更多相关《前半学期C语言答案.docx(118页珍藏版)》请在冰豆网上搜索。
前半学期C语言答案
1057字符变换
Description
CoCo在帮忙录入一篇英文文献,可是由于键盘误操作,事先按下了CapsLock键,然后又按照平时的录入习惯进行操作,结果录入的内容里面,原本应该是英文大写的地方都变成了小写,而原来应该是英文小写的地方都变成了大写。
重新录入的话实在太可怕了!
你能帮忙设计一个程序,可以将字符串中的大写英文字母转换成对应的小写英文字母,而将小写英文字母转换成对应的大写英文字母,其余字符不变吗?
如果对整篇文献操作还有点难度的话,先尝试对一个字符串的操作吧。
Input
输入任意一个字符串(长度小于等于1000),以换行结束。
Output
将大写字母改小写,小写字母改大写,其余字符保持不便,输出转换后的字符串的结果。
SampleInput
iAMASTUDENT.iAM19.
SampleOutput
Iamastudent.Iam19.
HINT
Source
NBUOJ
#include
#include
intmain()
{
chara[1001];
inti,k;
gets(a);
k=strlen(a);
for(i=0;i { if(a[i]>='a'&&a[i]<='z') printf("%c",a[i]-32); elseif(a[i]>='A'&&a[i]<='Z') printf("%c",a[i]+32); else printf("%c",a[i]); } printf("\n"); return0; } 1144回文数字 Description 给定一个数字字符串,判断它是否是回文数字。 例如: 121,1221是回文数字,123不是回文数字。 Input 输入一个数字字符串。 Output 若是回文输出Yes,否则输出No SampleInput 123321 SampleOutput Yes HINT Source NBUOJ #include #include intmain() { charstr[100]; intlen,t,i,j; gets(str); len=strlen(str); t=1;i=0;j=len-1; for(;i { if(str[i]! =str[j]) { t=0; break; } } if(t==1) printf("Yes\n"); else printf("No\n"); return0; } 1054相邻字符判相等 Description 输入一行字符串(长度小于等于1000),判断其中是否存在相邻两个字符相同的情形,若有,则输出该相同的字符并结束程序(只需输出第一种相等的字符即可)。 否则输出No。 Input 输入一行字符串。 Output 若有相邻字符相等则输出该相同的字符,否则输出No。 (只需要输出第一种相同的情况即可) SampleInput helloanna SampleOutput l HINT Source NBUOJ 1056特定字符出现次数 Description 从键盘输入一个字符串(长度小于等于1000),再输入一个特定字符ch,判断ch在字符串中的出现次数。 Input 从键盘输入一个字符串,再输入一个特定字符ch。 Output 输出ch在字符串中的出现次数。 SampleInput THISISATEST I SampleOutput 2 HINT Source NBUOJ #include #include intmain() { charstr[1000],ch; intt=0,len,i; gets(str); scanf("%c",&ch); len=strlen(str); for(i=0;i { if(str[i]==ch) { t++; } } printf("%d\n",t); return0; } 1139单词译码 Description 最近网络上又爆出很多关于信息泄露的事情,看来信息时代的保密问题非常关键。 怎样才能隐藏你的关键信息呢? 作为程序设计的菜鸟一族,你可以先尝试做一些简单的译码工作。 对输入的一个任意的单词进行译码输出。 译码规律是: 用原来字母后面的第4个字母代替原来的字母,并能循环译码。 例如,字母A后面第4个字母是E,用E代替A;同理,字母y用c代替。 则单词”China”应译为”Glmre”,”Today”应译为”Xshec”。 Input 输入一个单词,长度不超过9。 假设输入内容全部都是英文字母,不存在其他字符。 Output 输出译码后的结果。 SampleInput Helloz SampleOutput Lippsd HINT Source NBUOJ #include #include intmain() { charstr[9]; intt=0,len,i; gets(str); len=strlen(str); for(i=0;i { if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) str[i]=str[i]+4; if(str[i]>'Z'&&str[i]<='Z'+4||str[i]>'z') str[i]=str[i]-26; } for(i=0;i printf("%c",str[i]); printf("\n"); return0; } 1187数字提取 Description CoCo和Tom比谁的记性好,这次的比试项目是数字提取。 由裁判Mary读出一串字符,CoCo和Tom快速将该字符串中出现过的数字按顺序提取出来并记录在纸上,由Mary来比对谁写的正确。 你能编写一个程序,模拟这个数字提取的过程吗? Input 从键盘输入一个字符串,以换行符结束,输入不多于1000个字符。 Output 输出字符串中的全部数字 SampleInput his5is3a3245string14including11number12s SampleOutput 533245141112 HINT Source NBUOJ #include #include intmain() { charstr[1000]; intt=0,len,i; gets(str); len=strlen(str); for(i=0;i { if((str[i]>=48&&str[i]<=57)) printf("%c",str[i]); } printf("\n"); return0; } 1336镜像文字 Description 天气太热,学校却还不放暑假,寝室热得像桑拿室,真郁闷! Zero实在无聊,热得哪儿都去不了,只能玩玩字符游戏,他想把ab变成aba,把123变成12321,你来帮帮他的忙吧。 Input 输入一串字符,最长为200位。 Output 输出镜像文字,如输入124,则输出12421。 具体看样例。 SampleInput 111 123 zero 0 SampleOutput 11111 12321 zerorez 0 HINT Source NBUO J#include #include intmain() { chara[201]; inti,j,k; gets(a); k=strlen(a); for(i=0;i printf("%c",a[i]); for(i=k-2;i>=0;i--) { printf("%c",a[i]); } printf("\n"); return0; } 1148数字字符出现频率 Description 从键盘输入一行文本,统计其中数字字符0~9出现的频率并输出。 没有出现的不要显示。 Input 从键盘输入一行文本。 以换行符结束。 Output 输出统计结果。 每个数字的信息占一行,如“0: 2”表示数字字符0出现了2次。 SampleInput HelloNo007. SampleOutput 0: 2 7: 1 HINT 输出内容中: 0: 2表示数字字符0出现了2次 7: 1表示数字字符7出现了1次 Source NBUOJ #include intmain() { inta[10]={0}; charb; inti; while((b=getchar())! ='\n') { if(b<='9'&&b>='0') a[b-'0']++; } for(i=0;i<10;i++) if(a[i]! =0) printf("%c: %d\n",'0'+i,a[i]); return0; } 1190C语言合法标识符 Description 输入一个字符串,判断其是否是C的合法标识符。 Input 输入一个长度不超过50的字符串。 Output 如果输入数据是C语言的合法标识符,则输出yes,否则,输出no。 SampleInput fi8x_a SampleOutput yes HINT Source NBUOJ #include #include intmain() { chara[50]; intlen,i,t; gets(a); len=strlen(a); if((a[0]>='A'&&a[0]<='Z')||(a[0]>='a'&&a[0]<='z')||a[0]=='_') {for(i=1;i {if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')||a[i]=='_'||(a[i]>='0'&&a[i]<='9')) t=1; else{t=0;break;} } } elset=0; if(t==1) printf("yes\n"); else printf("no\n"); return0; } 1337首字母变大写 Description 输入一个英文句子,将每个单词的第一个字母改成大写字母。 Input 输入一个英文句子,该句子长度不超过100。 Output 请输出按照要求改写后的英文句子。 SampleInput iwanttogetanaccepted SampleOutput IWantToGetAnAccepted HINT Source NBUOJ #include #include intmain() { chara[100]; intlen,i; gets(a); len=strlen(a); a[0]=a[0]-32; for(i=1;i { if(a[i]=='') { a[i+1]=a[i+1]-32; } } for(i=0;i printf("%c",a[i]); printf("\n"); return0; } 1138清除行注释 Description 给出一个C++源程序代码,请将其中的注释去掉。 已知注释全部采用行注释的形式,即用双斜杠开头的字符串,后面的内容全部作为注释内容(包含双斜杠)。 Input 输入若干行源程序代码(含行注释)。 Output 输出去掉注释后的代码,其余内容不变。 SampleInput //====================== //simplestprogram //====================== #include usingnamespacestd; //---------------------- intmain(){ cout<<”helloworld! \n”; }//--------------------- SampleOutput #include usingnamespacestd; intmain(){ cout<<”helloworld! \n”; } HINT 原题目把注释清掉后还要把由此产生的空行删掉,题目复杂些。 现在把测试数据改了下,真的是“其余内容不变”。 Source NBUOJ #include #include intmain() { inti=0; chara[1000]; while(gets(a)) { for(i=0;a[i]! ='\0';i++) { if(a[i]=='/'&&a[i+1]=='/') break; else printf("%c",a[i]); } printf("\n"); } return0; } 1175查找最大元素 Description 对于输入的字符串,查找其中的AscII码最大字母,在该字母后面插入字符串"(max)”。 不包括引号。 Input 输入一行长度不超过100的字符串,字符串仅由大小写字母构成。 Output 输出一行字符串,输出的结果是插入字符串"(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。 SampleInput abcdefgfedcba SampleOutput abcdefg(max)fedcba HINT Source NBUOJ #include intmain() { chara[100]; intlen,i,max; gets(a); len=strlen(a); max=a[0]; for(i=1;i { if(a[i]>=max) max=a[i]; } for(i=0;i { printf("%c",a[i]); if(a[i]==max) printf("(max)"); } printf("\n"); return0; } 1185城市名排序 Description 从键盘输入n个城市名,进行升序排序并输出。 Input 第一行输入一个整数n,表示有n个城市,n不超过100。 接着输入n个字符串,每个字符串代表一个城市名,一个字符串内部不包含空格,字符串长度不超过100。 Output 输出排序后的城市名字。 每个城市名占据一行。 SampleInput 10 nignbo hangzhou quzhou fuyang shaoxing ninghai lishui weinan fujian guangzhou SampleOutput fujian fuyang guangzhou hangzhou lishui ningbo ninghai quzhou shaoxing weinan HINT Source NBUOJ #include intmain() { chars[100][100],*p[100],*t; intn,i,j,min; scanf("%d",&n); getchar(); for(i=0;i { gets(s[i]); p[i]=s[i]; } for(i=0;i { min=i; for(j=i+1;j if(strcmp(p[i],p[j])>0) { t=p[i]; p[i]=p[j]; p[j]=t; } }for(i=0;i printf("%s\n",p[i]); return0; } 1145回文字符串 Description 给定一个字符串,长度不超过100,判断它是否是回文串。 例如: aba,abcba是回文,abc,xyy不是回文。 Input 输入一个字符串,由小写字母组成。 Output 若是回文输出Yes,否则输出No SampleInput abcba SampleOutput Yes HINT Source NBUOJ #include #include intmain() { chara[100]; inti,len,j,t; gets(a); len=strlen(a); t=1; for(i=0,j=len-1;i { if(a[i]! =a[j]) { t=0; break; } } if(t==1) printf("Yes\n"); elseif(t==0) printf("No\n"); return0; } 1159字母出现频率 Description 从键盘输入一行文本(小于1000字符),统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。 为了简化问题的复杂度,假设在统计过程中不区分字母的大小写,即'A'与'a'被认为是一种字母。 Input 先从键盘输入一行文本。 以换行符结束。 Output 输出统计结果。 SampleInput StudingCLanguage SampleOutput 'A': 2 'C': 1 'D': 1 'E': 1 'G': 3 'I': 1 'L': 1 'N': 2 'S': 1 'T': 1 'U': 2 HINT Source NBUOJ #include intmain() int { inti; charj; chara; intb[26]={0}; while((a=getchar())! ='\n') { for(j='A';j<='Z';++j) { if(a==j||a==j+('a'-'A')) b[j-'A']++; } } for(i=0;i<26;++i) { if(b[i]==0) continue; else printf("'%c': %d\n",i+'A',b[i]); } return0; } 1150文章中字符数统计 Description 有一篇文章,共有3段文字,每段不超过1000个字符。 要求分别统计其中英文大写字母、英文小写字母、数字的个数。 Input 输入3段文字。 Output 输出统计结果,依次显示大写英文字母个数,小写英文字母个数,数字字符个数。 SampleInput TechnologyfirmApplehasbecomethemostvaluablecompanyintheUS,withitsmarketcapitalisationovertakingthatofExxonMobil. ApplehadbrieflybecomethelargestUSfirmonTuesday,beforedroppingbackbelowtheoilgiant. ButApplehasnowmanagedtostayinthetopspotatthecloseofWallStreetforthefirsttime. SampleOutput 142520 HINT Source NBUOJ #include intmain() { chara[3000],a1[1000],a2[1000]; intt=0,b=0,c=0,n,i; gets(a); gets(a1); gets(a2); strcat(a,a1); strcat(a,a2); n=strlen(a); for(i=0;i { if(a[i]>='0'&&a[i]<='9') t+=1; elseif(a[i]>='a'&&a[i]<='z') b+=1; elseif(a[i]>='A'&&a[i]<='Z') c+=1; } printf("%d%d%d\n",c,b,t); return0; } 1199判断字符串类型 Description 输入一个字符串,其中只能包括数字或字母。 对应输入的字符串,输出它的类型。 如果是仅由数字构成的那么输出digit,如果是仅由字母构成的那么输出character,如果是由数字和字母一起构成的输出mixed。 Input 输入一个字符串,长度不超过100,且字符串中只能包括数字或大、小写字母。 Output 输出对应的类型。 SampleInput Sun2009 SampleOutput mixed HINT Source NBUOJ #include #include intmain() { chara[100]; inti,len,n=0,t=0; gets(a); len=strlen(a); for(i=0;i { if(a[i]>='0'&&a[i]<='9') n=1; elseif(a[i]<='Z'&&a[i]>='A'||a[i]<='z'&&a[i]>='a')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学期 语言 答案