c语言编程练习题.docx_第1页
c语言编程练习题.docx_第2页
c语言编程练习题.docx_第3页
c语言编程练习题.docx_第4页
c语言编程练习题.docx_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 从键盘输入一个大写字母,要求改用小写字母输出,并输出与这个小写字母相邻的两个字母及它们的ASCII码的值 样例输入:B样例输出:b a c 98 97 99 测试输入: D测试输出: d c e 100 99 101#includeint main()char s1,s2,s3;int a,b,c;scanf(%c,&s1);s1=s1+32;s2=s1-1;s3=s1+1;a=s1;b=s2;c=s3;printf(%c %c %cn,s1,s2,s3);printf(%d %d %dn,a,b,c);return 0;2. 输入两个整数,并将其中较大的显示出来。样例输入:5 4 样例输出:max=5 测试输入:2 8测试输出:max=8#includeint main()int a,b,max=0;scanf(%d%d,&a,&b);max=a;if(ab)max=b;printf(%dn,max);return 0;3. 输入a,b,c三个整型变量的值,输出其中的最小值。样例输入:5 4 8样例输出:4 测试输入:2 6 8测试输出:2 #includeint main()int a3,i,j,t;for(i=0;i3;i+)scanf(%d,&ai);for(i=0;i3;i+)for(j=i+1;jaj)t=ai;ai=aj;aj=t;printf(%dn,a0);return 0;4. 输入年号y,月份m,输出该年该月天数。样例输入:2004 2样例输出:29 测试输入: 2015 2测试输出: 28#includeint main()int y,m;scanf(%d%d,&y,&m);switch(m)case 1:printf(30n);break;case 2:if(y%4=0&y%100!=0)|(y%400=0)printf(29n);elseprintf(28n);break;case 3:printf(31n);break;case 4:printf(30n);break;case 5:printf(31n);break;case 6:printf(30n);break;case 7:case 8:printf(31n);break;case 9:printf(30n);break;case 10:printf(31n);break;case 11:printf(30n);break;case 12:printf(31n);break;return 0;5. 输入若干非0整数,直到输入0时停止,要求输入的整数最多不超过20个,统计其中正数的个数,负数的个数。样例输入:5 4 8 -2 6 -9 7 3 -1 9 0样例输出:posn=7,negn=3 测试输入: 9 -8 2 -6 8 6 -7 -3 1 -5 0测试输出: posn=5,negn=5#includeint main()int a20,n=0,c=0,b=0,i;while(getchar()!=0)for(i=0;i20;i+)scanf(%d,&ai);n=n+1;if(ai=0)break;for(i=0;i0)c=c+1;if(ai0)b=b+1;printf(posn=%d,negn=%dn,c,b);return 0;6. 从键盘上输入m的值,判断其是否素数 样例输入:7样例输出:7 is a prime number 测试输入: 9测试输出: is not a prime number #includeint main()int m,i,flag=1;scanf(%d,&m);for(i=2;im;i+) if(m%i=0)flag=0;break;if(flag=1)printf(%dis a prime numbern,m);else printf(%dis not a prime numbern,m);return 0;7打印如下图形到屏幕上,打印行数n由键盘输入。(直角三角形) * * * * * * * * * * * * * * * 样例输入:4 样例输出: * * * * * * * * * * * * * * * #includeint main() int i,n,j; scanf(%d,&n); for(i=0;i=n+1;i+) for(j=1;j=n+1-i;j+) printf( ); for(j=1;j=i;j+) printf(*); printf(n); return 0;8. 请输入10个整数,并将其由小到大排序,然后将排序后的结果输出到屏幕上。排序样例输入:5 4 8 2 6 0 7 3 1 9样例输出:0 1 2 3 4 5 6 7 8 9 测试输入: 9 7 6 5 2 3 1 8 4 0测试输出: 0 1 2 3 4 5 6 7 8 9#includeint main()int a10,i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)for(j=i+1;jaj)t=ai;ai=aj;aj=t;for(i=0;i10;i+)printf(%d ,ai);printf(n);return 0;9. 输入一句英文,按单词分行输出.样例输入: spring summer fall winter样例输出: springsummer fallwinter测试输入: We are students测试输出:We are students #includeint main()char s100;int i,n=0;gets(s);for(i=0;si!=0;i+)if(si= )si=n;n+;sn=0;puts(s);return 0;10. 输入六个双精度的数,求出其中负数的平均值(保留4位小数)#includeint main()double a6,n=0,s=0,m;int i;for(i=0;i6;i+)scanf(%lf,&ai);for(i=0;i6;i+)if(ai0)s=s+ai;n=n+1;m=s/n;printf(%.4lfn,m);return 0;11. 输入一亇数组,以0结束,求出所有负数的平均值。#includeint main()int a100;int i;double m,n=0,s=0,ave;for(i=0;i100;i+)scanf(%d,&ai);if(ai=0)m=i;break;for(i=0;im;i+)if(ai0)s=s+ai;n=n+1;ave=s/n;printf(%lfn,ave);return 0;12. 输入一亇字符串,将下标为奇数的字符选出来,将其按ASCALL码升序排列。#includeint main()char s100,s2100,t;int i,n,j=0,q;gets(s);for(i=0;si!=0;i+)if(i%2)!=0)s2j=si;j+;s2j=0;for(i=0;ij;i+)for(q=i;qs2q)t=s2i;s2i=s2q;s2q=t;puts(s2);return 0;13. 输入一个n,k,n为十进制数字,将其转换为k进制输出(k为大于等于2小于等于9的整数).#includeint main() int n,k,m,t,s,i; int a100; scanf(%d%d,&n,&k); m=n; t=n; for(i=0;i=0;i-) printf(%d,ai); printf(n); return 0; 14.输入一个字符串,将其奇数下标的字符移动到下一个奇数下标的位置。最后一个奇数位上的数字平移到第一个奇数下标处。#includeint main()char s100,a100;int i,j=0,q=0;gets(s);for(i=0;si!=0;i+)if(i%2)!=0)aj=si;j+; aj=0;j=0;for(i=0;si+2!=0;i+)if(i%2)!=0)si+2=aj;j+;si+2=0;s1=aj;puts(s);return 0;15.编写程序,从键盘输入一个字符串,并将字符串中的小写字母都改为相应的大写字母,其他字符不变。标准输入:23efHI4why80NO标准输出:23EFHI4WHY80NO#includeint main()char s100;int i;gets(s);for(i=0;si!=0;i+)if(si=a&si=z)si=si-32;si=0;puts(s);return 0;16.编写程序,从键盘输入一个字符串ss,并将ss中所有下标为偶数的位置上的字母转换为小写,(若该位置上不是字母,则不转换)。标准输入:ABC4efGHS标准输出:aBc4efgHs#includeint main()char ss100;int i;gets(ss);for(i=0;ssi!=0;i+)if(i%2)=0) if(ssi=A&ssi=Z) ssi=ssi+32;ssi=0;puts(ss);return 0;17.编写程序,从键盘输入两个字符串str1和str2,并将字符串str2接在str1后面(不得用字符串处理函数),样例输入的第一行是先读入整数n,表示有几组字符串(两个字符串为一组),然后读入字符串。标准输入:2 aaaaaa bbbbb cccc dsdsds标准输出:aaaaaabbbbb Ccccdsdsds#includevoid fun(char s1,char s2)int i,j,q;for(i=0;s1i!=0;i+);for(j=i,q=0;s2q!=0;j+,q+)s1j=s2q;s1j=0;int main()int n;char s100100;int i,j;scanf(%dn,&n);for(i=0;i2*n;i+)gets(si);for(i=0;i2*n;i+)if(i%2)=0)fun(si,si+1);puts(si);return 0;18.编写程序,从键盘输入m值,根据m,计算下列公式t的值(m为int型,t为double型),结果保留小数点4位,公式:t=1-1/2+1/3-1/4+(-1)(m+1)/m(最后一项分子为-1的m+1次方)标准输入:5标准输出:0.7833#includeint main()int m;double t=0,n,q=-1,i;scanf(%d,&m);for(i=1;i=m;i+)q=q*(-1);n=q/i;t=t+n;printf(%.4lfn,t);return 0;19.编写程序,输入一个字符串str,依次取出字符串中的所有的字母,形成新的字符串,并取代原字符串。标准输入:123dfsad43mln&*d标准输出:dfsadmlnd#includeint main()char str100,s100;int i,j;gets(str);for(i=0,j=0;stri!=0;i+)if(stri=a&stri=A&stri=B)sj=stri;j+;for(i=0;ij;i+)stri=si;stri=0;puts(str);return 0;20.编写一个程序,从键盘输入一个三位数,判断这个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。例如:输入123,结果显示“no!”标准输入:123 #includeint main()int n;int a,b,c;scanf(%d,&n);a=n%10;b=n/10%10;c=n/100;if(a+c=b)printf(yes!n);elseprintf(no!n);return 0;21.编写一个程序,输入一个55的二维数组a,实现:使数组对角线及右上半三角元素中的值全部置成0。注意每个数字后都有空格,每行输出都有换行标准输入: 1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5标准输出: 0 0 0 0 01 0 0 0 0 1 2 0 0 0 1 2 3 0 0 1 2 3 4 0 #includeint main()int a55;int i,j;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i5;i+)for(j=0;ji) aij=0;for(i=0;i5;i+)for(j=0;j5;j+)printf(%d ,aij);printf(n);return 0;22.编写一个程序,从键盘输入含有n个实数的一维数组,求此一维数组的平均值,结果保留两位小数, 其中n为int型,数组为double型。标准输入51.1 2.2 3.3 4.4 5.5标准输出 3.30#includeint main()int n,i;double a100,s=0,ave;scanf(%d,&n);for(i=0;in;i+)scanf(%lf,&ai);for(i=0;in;i+)s=s+ai;ave=s/(double)n;printf(%.2lfn,ave);return 0;23.编写一个程序,从键盘输入一个含有n个整数的一维数组,并移动一维数组中的内容,要求把下标从p到n-1(pn-1)的数组元素平移到数组的前面。 样例输入分3行,第一行为整数的个数n,第二行为n个整数,第三行为下标p。标准输入: 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 9标准输出: 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9#includeint main()int a100,b100;int n,j,i,p;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);scanf(%d,&p);for(i=p,j=0;in;i+)bj=ai;j=j+1;for(i=0;ip;i+)bj=ai;j=j+1;for(i=0;in;i+)ai=bi;printf(%d ,ai);printf(n);return 0;24.移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(不含p)的数组元素平移到数组的最后。例如,输入:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后数组内容应为4,5,6,7,8,9,10,1,2,3。#includeint main()int a100,b100;int n,j,i,p;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);scanf(%d,&p);for(i=p,j=0;in;i+)bj=ai;j=j+1;for(i=0;ip;i+)bj=ai;j=j+1;for(i=0;in;i+)ai=bi;printf(%d ,ai);printf(n);return 0;25.从键盘输入一个字符串并保存在字符strl中,把字符串中strl下标为偶数的字符保存在字符串strl2中并输出。例如,当strl=“cdefghij,则strl2=cegi.标准输入:whatisit,标准输出waii#includeint main()char str1100,str12100;int i,j;gets(str1);for(i=0,j=0;str1i!=0;i+)if(i%2=0)str12j=str1i;j+;str12j=0;puts(str12);return 0;26.)编写一个程序,程序定义一个5*5二维数组,二维数组题目中给出,编写程序,求数组周边元素的平方和。数组a为0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1求出结果为310.样例输出占2行,1行为整形数据,其值为平方和,另一行为回车符。标准输入0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1标准输出310#includeint main()int a55;int i,j,s=0;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(j=0;j5;j+)s=s+a0j*a0j;for(i=1;i5;i+)s=s+ai0*ai0;for(j=1;j5;j+)s=s+a4j*a4j;for(i=1;i4;i+)s=s+ai4*ai4;printf(%dn,s);return 0;27.从键盘输入3*3的矩阵的各元素之值,输出主对角线上元素之积。#includeint main()int a33;int i,j,s=1;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j3;j+)if(i=j) s=s*aij;printf(%dn,s);return 0;28.编写一个程序,从键盘输入一个长整数,从低位开始取出长整型数中奇数位上的数,依次构成一个人新长整数,并输出。标准输入 4576235标准输出4725#includeint main() char s100,a100; int i,n,j,q; gets(s); for(i=0;si!=0;i+) ; n=i; for(i=n-1,j=0,q=1;i=0;i-) if(q%2)!=0) aj=si; j+; q+; else q+; aj=0; for(i=j-1;i=0;i-) printf(%c,ai); printf(n); return 0;29.键盘输入两个正整数m和n,在屏幕上输出m和n的所有公约数与各公约数之和#includeint main()int m,n,min;int i;int s=0;scanf(%d%d,&m,&n);if(mn)min=n;elsemin=m;for(i=2;imin;i+)if(min%i)=0)printf(%d ,i);s=s+i;printf(n);printf(%dn,s);return 0;30.数组a、b中各存放一个字符串,将b中所有字符插入a中,a中字符按递增顺序排放并输出#includeint main() char a100,b100,t; int i,j,q; gets(a); gets(b); for(i=0;ai!=0;i+) ; for(j=i,q=0;bq!=0;q+,j+) aj=bq; aj=0; for(i=0;ij;i+) for(q=i+1;qj;q+) if(aiaq) t=ai; ai=aq; aq=t; puts(a);return 0;31. 从键盘输入一个含多个单词的字符串,字符串前后有空格若干,与单词之间有若干空格,删除字符串前后的所有空格和单词之间的空格(单词之间保留一个空格)然后输出结果字符串。#includeint main() char a100,s100; int i,j,q,word=0; gets(a); for(i=0;ai!=0;i+) if(ai= ) continue; else break; q=i; for(i=q,j=0;ai!=0;i+) if(ai!= ) word=0; sj=ai; j+; if(ai= ) if(word=0) word=1; sj= ; j+; else continue; sj=0; puts(s); return 0; 31. 从键盘输入两个由二进制数组成的字符串(小于32位),转化为无符号十进制数,相加并输出#includeint main()char s100,a100;int m=0,n=0,p,q,k;int i,j,t;gets(s);gets(a);for(i=0;si!=0;i+);p=i;t=0;for(i=p-1;i=0;i-)k=si-48;for(j=1;j=0;i-)k=ai-48;for(j=1;j=t;j+)k=k*2;n=n+k;t=t+1;printf(%d %d %d ,m,n,m+n);printf(n);return 0;32某项比赛10人参加,依此输入其成绩,然后按原顺序输出成绩,名次。#includeint main()int a10,b10,c10;int i,t,j;for(i=0;i10;i+)scanf(%d,&ai);bi=ai;for(i=0;i10;i+)for(j=i+1;j10;j+)if(bibj)t=bi;bi=bj;bj=t;for(i=0;i10;i+)for(j=0;j10;j+)if(ai=bj)ci=j+1;for(i=0;i10;i+)printf(%d %d n,ai,ci);return 0;33.编写一个程序,输入一个字符串str和一个字符串ch,判断ch是否与str中的某个字符相同,若有相同的,输出str;若无相同的,将其插在字符串的最后输出#includeint main()char str100;char ch;int i,flat=0;gets(str); scanf(%c,&ch);for(i=0;stri!=0;i+)if(stri=ch)flat=1;break;if(flat=1)for(i=0;stri!=0;i+)printf(%c,stri);printf(n);elsefor(i=0;stri!=0;i+);stri=ch;stri+1=0;puts(str);return 0;34输入n,计算n的五次方的值,输出该值的个位,十位,百位之和。# include int main ()int n,i,a,b,c,s;long m=1;scanf (%d,&n);for (i=1;i=5;i+)m=m*n;printf (%ldn,m);a=m%10;b=m/10%10;c=m/100%10;s=a+b+c;printf (%dn,s);return 0;35 10个正数,输出平均值并输出小于平均值且与平均值嘴接近的数#includeint main()double a10,b10,s=0,ave,min,t;int i,j,q;for(i=0;i10;i+)scanf(%lf,&ai);s=s+ai;ave=s/10.0;for(i=0,j=0;i10;i+)if(aiave)bj=ai;j+;for(i=0;ij;i+)for(q=i+1;qbq)t=bi;bi=bq;bq=t;printf(%lfn,ave);printf(%lfn,bj-1);return 0;36,1.将一个字符串内的数字全部提到字符串前面输出#include#includeint main() char s100; int i; gets(s); for(i=0;si!=0;i+) if(si=0&si=a&si=A&si=Z)printf(“%c,si);p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论