中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx

上传人:b****6 文档编号:19745771 上传时间:2023-01-09 格式:DOCX 页数:20 大小:88KB
下载 相关 举报
中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx_第1页
第1页 / 共20页
中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx_第2页
第2页 / 共20页
中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx_第3页
第3页 / 共20页
中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx_第4页
第4页 / 共20页
中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx

《中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx》由会员分享,可在线阅读,更多相关《中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

中国石油大学华东C语言在线测评答案 第10章字符串级亲测正确文档格式.docx

gets(b);

strcat(a,b);

k=strlen(a);

/*冒泡法排序*/

for(i=1;

i++)/*不能用字符串数组最后一项'

\0'

和前面项比较,故i从1开始*/

for(j=0;

j<

k-i;

j++)

if(a[j]>

a[j+1])

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

puts(a);

return0;

10.3删除重复字符

背景:

输入一个长度不超过100的字符串,删除串中的重复字符。

输入要检查的字符串,长度不超过100个字符。

例如:

abacaeedabcdcd。

删除重复字符后的字符串。

abced。

chara[100],b[100];

for(j=i+1;

j++)

if(a[j]==a[i])a[j]='

;

if(a[i]!

printf("

%c"

a[i]);

\n"

10.4删除字符串中指定字符

输入两个字符串s1和s2,在s1中删除任何s2中有的字符。

两个字符串s1和s2输出:

删除后的字符串s1

 

chars1[20],s2[20];

intk1,k2,i,j;

gets(s1);

gets(s2);

k1=strlen(s1);

k2=strlen(s2);

k2;

for(i=0;

k1;

if(s1[i]==s2[j])s1[i]='

j=0;

if(s1[i]!

{s1[j]=s1[i];

j++;

s1[j]='

puts(s1);

10.5单词有多少

用空格或换行分开的字符串称为单词。

输入多行字符串,直到遇到了单词"

stop"

时才停止。

最后输出单词的数量。

用于分割单词的空格或换行可能多于1个。

多个字符串输出:

单词的数量

chars[20];

inti,n=0;

{scanf("

%s"

s);

/*scanf遇空格或换行则存入下一个s[20]*/

n++;

/*不能gets(s),它对换行空格没反应,都存入同一s[],无法strcmp*/

if(strcmp(s,"

)==0)break;

n-1);

10.6在指定位置插入字符串

输入两个字符串s1、s2和s1中任意字符k,在s1中的指定字符k第一次出现的位置处插入字符串s2并输出。

两个字符串s1、s2和s1中任意字符k

插入后的字符串s1

chars1[50],s2[50],s3[50],k;

inti,j,a,b,n=-1;

a=strlen(s1);

b=strlen(s2);

scanf("

&

k);

a;

{n++;

if(s1[i]==k)break;

n;

s3[i]=s1[i];

for(i=n;

n+b;

s3[i]=s2[i-n];

for(i=n+b;

a+b;

s3[i]=s1[i-b];

s3[i]='

puts(s3);

10.7YourRideIsHere

Itisawell-knownfactthatbehindeverygoodcometisaUFO.TheseUFOsoftencometocollectloyalsupportersfromhereonEarth.Unfortunately,theyonlyhaveroomtopickuponegroupoffollowersoneachtrip.Theydo,however,letthegroupsknowaheadoftimewhichwillbepickedupforeachcometbyacleverscheme:

theypickanameforthecometwhich,alongwiththenameofthegroup,canbeusedtodetermineifitisaparticulargroup'

sturntogo(whodoyouthinknamesthecomets?

).Thedetailsofthematchingschemearegivenbelow;

yourjobistowriteaprogramwhichtakesthenamesofagroupandacometandthendetermineswhetherthegroupshouldgowiththeUFObehindthatcomet.

Boththenameofthegroupandthenameofthecometareconvertedintoanumberinthefollowingmanner:

thefinalnumberisjusttheproductofallthelettersinthename,where"

A"

is1and"

Z"

is26.Forinstance,thegroup"

USACO"

wouldbe21*19*1*3*15=17955.Ifthegroup'

snumbermod47isthesameasthecomet'

snumbermod47,thenyouneedtotellthegrouptogetready!

(Rememberthat"

amodb"

istheremainderleftoverafterdividingabyb;

34mod10is4.)

Writeaprogramwhichreadsinthenameofthecometandthenameofthegroupandfiguresoutwhetheraccordingtotheaboveschemethenamesareamatch,printing"

GO"

iftheymatchand"

STAY"

ifnot.Thenamesofthegroupsandthecometswillbeastringofcapitalletterswithnospacesorpunctuation,upto6characterslong.

INPUTFORMAT 

Line1:

Anuppercasecharacterstringoflength1..6thatisthenameofthecomet.

Line2:

Anuppercasecharacterstringoflength1..6thatisthenameofthegroup.

COMETQ

HVNGAT

OUTPUTFORMAT

Asinglelinecontainingeithertheword"

ortheword"

.

voidmain()

chara[7],b[7];

inti,pa=1,pb=1;

i=0;

while(a[i]!

{

pa=pa*(a[i]-'

A'

+1)%47;

i++;

i=0;

while(b[i]!

pb=pb*(b[i]-'

if(pa==pb)printf("

GO\n"

else

STAY\n"

10.8大数相加

问题描述:

编写C程序,它能以字符串形式读入两个无符号正整数m和n,计算并输出这两个整数之和

输入格式:

输入由两行组成,第一行为无符号整数m,第二行为无符号整数n,且m和n的值最长25位

输出格式:

输出为一行,即两个无符号整数m和n之和

chara[5001],b[5001];

ints1[5001],s2[5001],k,n=0;

intans[5001];

intc,alen,blen,i,maxlen,minlen;

%s%s"

a,&

b);

alen=strlen(a);

blen=strlen(b);

maxlen=alen>

blen?

alen:

blen;

memset(s1,0,sizeof(s1));

memset(s2,0,sizeof(s2));

for(i=alen-1;

i>

=0;

i--)

s1[alen-i]=a[i]-'

for(i=blen-1;

s2[blen-i]=b[i]-'

memset(ans,0,sizeof(ans));

=maxlen;

ans[i]+=s1[i]+s2[i];

if(ans[i]>

9)

if(i==maxlen)

maxlen++;

ans[i+1]++;

ans[i]-=10;

for(i=maxlen;

=1;

%d"

ans[i]);

if(k!

=c)

10.9字符串重排列

判断一个字符串是否可以由另一个字符串通过重排字符而得到。

注意,此处区分字符大小写!

输入输入只有一行,为两个字符串,字符串之间以一个空格分隔。

输出

如果两个字符串由同一组字符组成(且每一个字符出现次数相同),则输出“YES”;

否则输出“NO”。

注意YES和NO都是大写字母!

#include<

chara[1000],b[1000];

inti,j,k,m=0;

scanf("

a,b);

a[i]!

{k=0;

b[j]!

if(a[i]==b[j])

{

b[j]='

?

'

k++;

m++;

break;

}

if(k==0)break;

if(k==0)printf("

NO\n"

elseprintf("

YES\n"

10.10上课啦!

要点名啊!

小凡的老师每次上课前都要点名,但是这样就浪费了老师的上课时间。

所以老师让小凡来完成点名,让小凡在早自习的时候就点好名。

老师给了小凡名单,小凡只要照着名单点名就好了是不是很简单啊。

输入

输入有多组数据,直到文件结束。

每组测试数据有三行,第一行为两个整数m,n(50>

=m>

=n)。

第二行有m个名字,名字之间用空格隔开,是小凡班上同学的名单。

后面有n个名字是来上课的同学。

名字间用空格隔开。

名字的长度不超过20个字符。

按照第一行的名单,每个人对应输出是否到了。

到的人输出Yes,没到的人输出No。

intmain()

{

inti,j,m,n,p;

chara[5][50],b[5][50];

%d%d"

m,&

n);

m;

i++)

b[i]);

for(i=0;

{

p=strcmp(a[i],b[j]);

if(p==0)

break;

}

if(j==n)

10.11找第一个只出现一次的字符

给定t个字符串,这个字符串只可能由26个小写字母组成,请你找到第一个仅出现一次的字符,如果没有符合要求的字符,就输出no。

第一行是t,接下来是t个字符串,每个字符串长度小于100

你的输出需要由t行组成。

对于每个字符串,输出第一个仅出现一次的字符,没有输出NO。

inti,j,n,t,m,b[200]={0};

chara[1000][1000];

t);

t;

scanf("

m=strlen(a[i]);

for(j=0;

a[i][j]!

for(n=0;

a[i][n]!

n++)

{

if(a[i][j]==a[i][n])

{

b[j]++;

}

}

if(b[j]==1)

{

printf("

%c\n"

a[i][j]);

break;

}

if(j==m)

printf("

b[j]=0;

10.12提取数据

输入一个字符串,长度不超过30,内有数字字符和非数字字符,统计其中包含了多少个非负整数,并输出这样的非负整数。

一个字符串,最大长度为30

输出字符串中包含的数据,一个数据一行.(不用输出总数)

inti,sum=0;

chara[30];

if(a[i]>

a[i]<

sum=sum*10+(a[i]-'

if((a[i]>

)&

(a[i+1]<

||a[i+1]>

))

sum);

sum=0;

10.13判断字符串是否为回文

编程,输入一个字符串,输出该字符串是否回文。

输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。

如果字符串是回文,输出yes;

否则,输出no。

inti,j,t,p=0;

chara[100];

t=strlen(a);

j=t-1;

=(t/2-1);

=a[j])

{

p=1;

elsej--;

if(p==1)

no\n"

yes\n"

10.14首字母大写

对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。

在字符串中,单词之间通过空白符分隔,空白符包括:

空格('

'

)、制表符('

\t'

)、回车符('

\r'

)、换行符('

\n'

)。

输入一行:

待处理的字符串(长度小于80)。

输出一行:

转换后的字符串。

inti;

if(a[0]>

=97&

a[0]<

=122)

a[0]=a[0]-32;

if(a[i]=='

a[i+1]>

a[i+1]<

a[i+1]=a[i+1]-32;

10.15绕口令

规则是:

主持人给出一串字符串,要求把这串字母简化。

该串字符串全部为小写英文字母。

比如:

aaabbbaa,则简化为3a3b2a;

zzzzeeeeea,则简化为4z5e1a。

依次类推。

Input

第一行为一个整数n,表示共有n组测试数据(1<

=n<

=100)。

每组测试数据有一行,该行第一个数为字符串长度t(t<

=1,000,000),然后为一行长度为t的字符串。

Output

对于每组输入数据输出一行,即简化后的字符串。

inti,n,t,l,j,k=0,count;

chara[100][100];

scanf("

l=strlen(a[i]);

for(j=0;

l;

j+=count)

count=1;

for(k=j+1;

a[k]!

k++)

if(a[i][j]==a[i][k])count++;

if(a[i][k]!

=a[i][j])break;

printf("

%d%c"

count,a[i][j]);

10.16删除指定字符

编写函数fun,其功能是:

从字符串中删除指定的字符。

同一字母的大、小写按照不同的字符处理。

只需要提交fun函数

/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/

/*PRESETCODEEND-NEVERTOUCHCODEABOVE*/

voidfun(charstr[100],charch)

inti,count=0;

str[i]!

if(str[i]==ch)

str[i]='

if(str[i]!

str[count++]=str[i];

str[count]='

charstr[80];

charch;

gets(str);

ch);

fun(str,ch);

%s\n"

str);

10.17处理字符串

将数组s存放的字符串中的所有数字字符移到所有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1