天天看点

c 语言编程练习,c语言编程练习题

《c语言编程练习题》由会员分享,可在线阅读,更多相关《c语言编程练习题(25页珍藏版)》请在人人文库网上搜索。

1、精选文库1. 从键盘输入一个大写字母,要求改用小写字母输出,并输出与这个小写字母相邻的两个 字母及它们的ASCII码的值样例输入:样例输出:98 97 99测试输入:测试输出:100 99 101#include int 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;max=52. 输入两个整数,并将其中较大的显示出来。 样例输入: 样例输出:2 8。

2、max=8测试输入:测试输出:#include int main() int a,b,max=0; scanf(%d%d,&a,&b);max=a;if(a int mai n()int a3,i,j,t; for(i=0;iaj)t=ai; ai=aj;aj=t;prin tf(%dn,a0); return 0;2004 2294. 输入年号y,月份m,输出该年该月天数。 样例输入: 样例输出:2015 228测试输入:测试输出:#in clude int mai n()int y,m;scan f(%d%d, &y,& m);switch(m)case 1:prin tf(30n);br。

3、eak;case 2:if(y%4=0& y%100!=0)|(y%400=0) prin tf(29n);elseprin tf(28n);break;case 3:prin tf(31n);break; case 4:prin tf(30n);break; case 5:prin tf(31n);break; case 6:prin tf(30n);break;case 7:case 8:prin tf(31n);break; case 9:prin tf(30n);break;case 10:prin tf(31n);break; case 11:prin tf(30n);break;c。

4、ase 12:prin tf(31n);break;return 0;5. 输入若干非0整数,直到输入0时停止,要求输入的整数最多不超过20个,统计其中正负数的个数。5 4 8 -2 6 -9 7 3 -1 9 0posn=7,negn=3数的个数, 样例输入: 样例输出:测试输入:测试输出:9 -8 2 -6 8 6 -7 -3 1 -5 0 posn=5,negn=5#in cludeint mai n()int a20, n=O,c=O,b=O,i; while(getchar()!=O) for(i=0;i0) c=c+1;if(ai int mai n()int m,i,flag=1。

5、;scan f(%d,&m);for(i=2;iint mai n()int i,n,j;sca nf(%d,&n);for(i=0;i int mai n()int a10,i,j,t;for(i=0;iaj) t=ai; ai=aj; aj=t;for(i=0;i int mai n()char s100;int i,n=0;gets(s);for(i=0;si!=0;i+)if(si=) si=n;n+;s n=0;puts(s);return 0;4位小数)10. 输入六个双精度的数,求出其中负数的平均值(保留#in clude int mai n()double a6 ,n=0,s=。

6、0,m; int i;for(i=0;iint mai n()int a100;int i;double m,n=0,s=0,ave;for(i=0;i int mai n()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;is2q)t=s2i; s2i=s2q; s2q=t; puts(s2); return 0;k, n为十进制数字,将其转换为 k进制输出(k为大于等于2小于等于9的13.输入一个n, 整数).#in clude int mai n(。

7、)int n,k,m,t,s,i;int a100;sca nf(%d%d,&n,&k);m=n;t=n;for(i=0;i=0;i-)prin tf(%d,ai);prin tf(n);return 0;14.输入一个字符串,将其奇数下标的字符移动到下一个奇数下标的位置。最后一个奇数 位上的数字平移到第一个奇数下标处。#in cludeint mai n()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。

8、+2=aj; j+;si+2=0;s1=aj;puts(s); return 0;15.编写程序,从键盘输入一个字符串,并将字符串中的小写字母都改为相应的大写 字母,其他字符不变。标准输入:23efHI4why80NO标准输出:23EFHI4WHY80NO#in clude int mai n()char s100;int i;gets(s);for(i=0;si!=0;i+)if(si=a&si int mai n()char ss100;int i;gets(ss);for(i=0;ssi!=0;i+)if(i%2)=0)if(ssi=A&ssi void fun(char s1,char。

9、 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 mai n()int n;char s100100;int i,j;scanf(%dn ,&n); for(i=0;i int mai n()int m;double t=0,n,q=-1,i; scan f(%d,&m); for(i=1;iint mai n()char str100,s100;int i,j;gets(str);for(i=0,j=0;stri!=0;i+)if(stri=a&stri=A&striint mai n(。

10、)int n;int a,b,c;scan f(%d,&n);a=n %10;b=n/10%10;c=n/100;if(a+c=b)prin tf(yes!n);elseprin tf( no!n);return 0;21.编写一个程序,输入一个5X5的二维数组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 011110 0 0 02 0 0 02 3 0 02 3 4 0#in clude int mai n()in。

11、t a55;int i,j;for(i=0;ii) aij=0;for(i=0;iint mai n()int n,i;double a100,s=0,ave; scan f(%d,&n);for(i=0;iint mai n()int a100,b100;intn ,j,i, p;scan f(%d,&n);for(i=0;i int mai n()int a100,b100;int n,j,i, p; scan f(%d,&n); for(i=0;iint mai n()char str1100,str12100;int i,j;gets(str1);for(i=0,j=0;str1i!=。

12、0;i+)if(i%2=0)str12j=str1i;j+;str12j=0;p uts(str12);return 0;编写程a 为结果为26. )编写一个程序,程序定义一个5*5二维数组,二维数组题目中给出, 序,求数组周边元素的平方和。数组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#in cludeint mai n()。

13、int a55;int i,j,s=O;for(i=0;iint mai n()int a33;int i,j,s=1;for(i=0;i int mai n()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+;elseq+;aj=0;for(i=j-1;i=0;i-)prin tf(%c,ai);prin tf(n);return 0;29.键盘输入两个正整数m和n,在屏幕上输出m和n的所有公约数与各公约数之和#in cludei。

14、nt mai n()int m,n,min;int i;int s=0;scan f(%d%d,&m,&n); if(mn)mi n=n;elsemi n=m;for(i=2;iint mai n()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;i int mai n()char a100,s100; int i,j,q,word=0;gets(a);for(i=0;ai!=0;i+) if(ai=) con ti nue;else。

15、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+;elsecon ti nue;sj=0; puts(s); return 0;31.从键盘输入两个由二进制数组成的字符串(小于 32位),转化为无符号十进 制数,相加并输出#in cludeint mai n()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-。

16、) k=si-48; for(j=1;j=0;i-)k=ai-48;for(j=1;jint mai n()int a10,b10,c10;int i,t,j;for(i=0;iint mai n()char str100;char ch;int i,flat=0;gets(str);scan f(%c,&ch); for(i=0;stri!=0;i+) if(stri=ch)flat=1;break;if(flat=1)for(i=0;stri!=0;i+) prin tf(%c,stri); prin tf(n); elsefor(i=0;stri!=0;i+)stri=ch; stri+。

17、1=0; puts(str);return 0;34输入n,计算n的五次方的值,输出该值的个位,十位,百位之和。# in clude int mai n ()intn ,i,a,b,c,s;long m=1;sca nf (%d, &n);for (i=1;iint mai n()double a10,b10,s=0,ave,mi n,t; int i,j,q;for(i=0;ibq) t=bi; bi=bq; bq=t;prin tf(%lfrr,ave);prin tf(%lfn ,bj-1); return 0;36,1.将一个字符串内的数字全部提到字符串前面输出#in clude#in。

18、 clude int mai n() char s100;int i;gets(s);for(i=0;si!=0;i+)if(si=0&si=a&si=A&siint mai n()char s100;int i,j,word=0; gets(s);for(i=0;si!=0;i+)si=0;j=i;for(i=0;i int mai n()char s5100;int i,j,max;int a5=0;for(i=0;i int sushu(i nt a)int i,flag=1;for(i=2;i1;i-)if(sushu(i)=1)prin tf(%i,i); break;prin tf。

19、(n);return 0;40保留str字符串中字母,取代原字符串 bt+; con ti nue;50输入一个数组,判断各个数字输出了几次样例输入012234367 输出 1122101100#in cludeint mai n()int b10=0,j,i,t;注意用了字符型后面判断时要用ASCII码gets(a);for(i=0;ai!=0;i+) 这里要用ASCII码而不是0-9的数值if(ai=j)for(i=0;i int zhishu(i nt a) int i,flag=1; for(i=2;ia;i+) if(a%i=O)flag=O;return flag;int mai n()int n,i,j;scan f(%i,&n);for(i=2;i n;i+)if(n %i=0&zhishu(i)=1) prin tf(%i ,i);prin tf(n); return 0;52输入两个数,输出它的公因数之和格式 输入 6 9输出1+2+3=6。