第5章数组-习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1:/*编写程序,用筛选法求100之内的素数。*/#includestdio.hvoidmain(){inti,j;for(i=2;i100;i++){for(j=2;ji;j++){if(i%j==0)break;}if(j==i)printf(%d\t,i);}}2/*输入一整数,并能逐位正序或反序输出。*/#includestdio.hvoidmain(){intnum,a,i=0;printf(输入一个数字\n);scanf(%d,&num);printf(正序输出则输入1反序输出输入0\n);scanf(%d,&a);switch(a){case1:printf(%d,num);break;case0:while(0!=num){i=i*10+num%10;num=num/10;}printf(%d,i);break;default:printf(请输入0和1!!\n);break;}}3/*对于一个4X4矩阵逆时针旋转90度*/#includestdio.hvoidmain(){inta[4][4],i,j,b[4][4];for(i=0;i4;i++)for(j=0;j4;j++)scanf(%d,&a[i][j]);for(i=0;i4;i++)for(j=0;j4;j++){b[3-j][i]=a[i][j];}printf(逆时针旋转90度后:\n);for(i=0;i4;i++){for(j=0;j4;j++){printf(%d,b[i][j]);}printf(\n);}}4:/*将一个数组中的数据奇数放到前面,偶数放到后面。*/#includestdio.hvoidmain(){inta[9],b[9],i,j=0,m=0;for(i=0;i9;i++)scanf(%d,&a[i]);for(i=0;i9;i++){if(a[i]%2!=0){b[j]=a[i];j++;}else{b[8-m]=a[i];m++;}}for(i=0;i9;i++)printf(%d,b[i]);}5:/*输入一个4X4的矩阵,求四个边上元素的和。*/#includestdio.hvoidmain(){inti,j,a[4][4],sum;printf(输入一个4阶方阵:\n);for(i=0;i4;i++)for(j=0;j4;j++)scanf(%d,&a[i][j]);sum=a[0][0]+a[0][3]+a[3][0]+a[3][3];printf(四个边上元素的和为%d\n,sum);}6:/*输入9个10以内的自然数,将它们组成两个整数,求如何组合得到两个数的成绩最大或最小。*/#includestdio.h#includemath.hvoidmain(){intj,k;inti;intt;inta=0,b=0;intflag=1;intnum[9];intmax,max_a,max_b;intmin,min_a,min_b;printf(输入9个10以内的自然数:);for(j=0;j9;j++)scanf(%d,&num[j]);for(j=0;j8;j++)for(k=0;k8-j;k++)if(num[k]num[k+1]){t=num[k+1];num[k+1]=num[k];num[k]=t;}for(i=1;i511;i++){for(j=8;j=0;j--){if((i&(int)pow(2.0,j))==0)a=a*10+num[j];elseb=b*10+num[j];}if(flag){max=a*b;max_a=a;max_b=b;flag=0;}if(maxa*b){max=a*b;max_a=a;max_b=b;}a=0;b=0;}flag=1;for(j=0;j8;j++)for(k=0;k8-j;k++)if(num[k]num[k+1]){t=num[k+1];num[k+1]=num[k];num[k]=t;}for(i=1;i511;i++){for(j=8;j=0;j--){if((i&(int)pow(2.0,j))==0)a=a*10+num[j];elseb=b*10+num[j];}if(flag){min=a*b;min_a=a;min_b=b;flag=0;}if(mina*b){min=a*b;min_a=a;min_b=b;}a=0;b=0;}printf(最小的数为%dx%d=%d\n,min_a,min_b,min);printf(最大的数为%dx%d=%d\n,max_a,max_b,max);}7:/*输入一个数组,输出它的区间范围,例如输入1,2,3,4,5,6,7,8,20,21,22,23,输出1-8,20-23。*/#includestdio.hvoidmain()#defineM5{inta[M],i,j,t,m,k;for(i=0;iM;i++)scanf(%d,&a[i]);/*把数组从小到大排列*/for(i=0;iM-1;i++){for(j=0;jM-1-i;j++){if(a[j]a[j+1]){t=a[j+1];a[j+1]=a[j];a[j]=t;}}}j=0;for(i=0;iM;i++){while(a[j]+1==a[j+1]){j++;}if(j-i!=0){printf(%d-%d\n,a[i],a[j]);i=j;j++;}if(j-i==0){printf(%d\n,a[i]);i=j;j++;}}}8:/*输入一个区间范围,输出数组,例如输入1-8,20-23,输出1,2,3,4,5,6,7,8,20,21,22,23。*/#includestdio.hvoidmain(){inta,c;charb,d;inti;printf(输入区间以'.'结束以','分隔,例如1-8,22-30:);do{scanf(%d%c%d%c,&a,&b,&c,&d);for(i=a;i=c;i++)printf(%d,i);}while(d!='.');}10:/*输入一篇文章,该文章小于1000字符,统计单词的个数,单词是连续的大小写字母组成*/#includestdio.hvoidmain(){chartext[1000];intcount=0,i=0;printf(输入一段文章:);gets(text);while(text[i]!=0){if((text[i]='a'&&text[i]='z')||(text[i]='A'&&text[i]='Z')){i++;continue;}else{i++;count++;}}printf(有%d个单词,count+1)}11:/*输入一片文章,该文章小于1000字符,对文中内容进行加密,加密方法是A-Z,B-Z…Z-A,a-z…z-a。*/#includestdio.hvoidmain(){chari,sum=0,text[1000];printf(请输入一段文字:\n);gets(text);for(i=0;text[i]!=0;i++){if(text[i]=65&&text[i]=90)text[i]=155-text[i];if(text[i]=97&&text[i]=122)text[i]=219-text[i];}puts(text);}12:/*编写一个程序,判断输入的数字是否在指定范围内,范围也由用户输入,例如“100-100000,220000,250000,300000-600000”。*/#includestdio.hvoidmain(){inta,b,c;printf(请输入:下限-上限,需要判断的数\n);scanf(%d-%d,%d,&a,&b,&c);if(c=b&&c=a)printf(%d在范围内,c);elseprintf(%d不在范围内,c);}13:/*编写一个程序,输入一篇文章,该文章小于1000字符,从中将指定字符串换成另外一个。*/#includestdio.hvoidmain(){chari,a,b,text[1000];printf(请输入需要被替换的字符-替换后的字符\n);scanf(%c-%c,&a,&b);printf(请输入一段文字\n);getchar();gets(text);for(i=0;text[i]!=0;i++)if(text[i]=='a')text[i]='b';puts(text);}14:/*读入一个字符串,判断它是否是回文,所谓回文即正序和逆序内容相同的字符串。*/#includestdio.h#includestring.hvoidmain(){chari,b,a[1000];intsum=0;printf(输入一个字符串\n);gets(a);b=strlen(a);if(b%2==0){for(i=0;i(b/2);i++){if(a[i]==a[b-1-i])sum++;elsebreak;}if(sum==(b/2))printf(是回文);elseprintf(不是回文);}else{for(i=0;i((b-1)/2);i++){if(a[i]==a[b-1-i])sum++;elsebreak;}if(sum==((b-1)/2))printf(是回文);elseprintf(不是回文);}}15:/*编写一个程序,输入一篇文章,该文章小于1000字符,从中找出出现频率最高的单词。*/#includestdafx.hintcheck(char*p){if((*p='a'&&*p='z')||(*p='A'&&*p='Z'))return1;elsereturn0;}intwordcount(char*text){char*p,*q;intcount=0;p=text;q=p+1;while(*q){if(check(p)&&!(check(q))){p++;q++;count++;}else{p++;q++;}}returncount;}voidmain(){chartext[1000],*word[1000],*p,*q,*first;p=text;q=p+1;inti=0,j=1,t=0,sum=0,a[1000],max=0,wsum;printf(请输入一段文字:\n);gets_s(text);//提醒正确输入格式while(text[i+1])i++;if(check(&text[i])){printf(句子结尾漏了标点符号\n);exit(1);}i=0;//将大写字母转换为小写while(text[i]){if(text[i]='A'&&text[i]='Z')text[i]+=32;i++;}i=0;/*sum来保存单词数*/sum=wordcount(text);/*把每个单词以字符串形式保存到*word中*/first=text;while(*q){if(check(p)&&!(check(q))){*q=0;word[i]=first;p++;q++;i++;}else{p++;q++;}if(!(check(p))&&check(q))first=q;}/*记各个单词出现次数存在a中*/for(i=0;isum;i++){a[i]=0;for(j=0;jsum;j++)if(strcmp(word[i],word[j])==0)a[i]=a[i]+1;}for(i=0;isum;i++){for(j=i;jsum;j++){if(i!=j&&strcmp(word[i],word[j])==0)a[j]=0;}}for(i=0;isum;i++){if(a[max]a[i])max=i;}printf(出现最多次的单词:%s,word[max])

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功