《C语言程序题复习》由会员分享,可在线阅读,更多相关《C语言程序题复习(11页珍藏版)》请在金锄头文库上搜索。
1、三、程序题1、编程序解百鸡问题:100元钱买100只鸡,公鸡每只3元,母鸡每只5元,小鸡3只1元,问公鸡、母鸡、小鸡各多少只?#includeintmain()intx,y;printf(”百鸡问题解:n);for(x=1;x=100;x+)for(y=1;y=100;y+)if(15*x+9*y+(100-x-y)=300)printf(%d%d%dn,x,y,100-x-y);return0;2、求出100-999的所有的水仙花数(水仙花数既xyz=x*x*x+y*y*y+z*z*z)#include#includeintmain()inti,j,k,n;for(n=101;n1000;n
2、+)k=n%10;j=n%100/10;i=n/100;if(n=pow(i,3)+pow(j,3)+pow(k,3)printf(%d”,n);return0;3、已知三角形的面积为area=sqrt(s*(s-a)*(s-b)*(s-c),其中s=(a+b+c)/2,a,b,c为三角形的三边,由键盘输入三个数,请编程计算以这三个数为边长的三角形的面积(先判断能否成为三角形,再计算面积)#include#includeintmain()floata,b,c,s,area;scanf(%f%f%f,&a,&b,&c);if(a0&b0&c0&a+bc&a+cb&b+ca)s=(a+b+c)/2
3、;area=(s*(s-a)*(s-b)*(s-c);printf(”三角形的面积为:%fn,area);elseprintf(不能构成三角形);return0;4、编程序求解以下问题:输入长方体的长、宽、高,求长方体的体积并输出。#include#includeintmain()doublea,b,h,v;printf(”输入长方体的长、宽、高:);scanf(%lf%lf%lf,&a,&b,&h);v=a*b*h;printf(长方体的体积为:%fn,v);return0;5、先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。例如,输入下面的矩阵:1002003004
4、00500600700800900程序输出:主对角线元素之和为:100+500+900=1500#includeintmain()inta33,i,j,s=0;printf(请输入矩阵:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i3;i+)s=s+aii;printf(主对角线的和为:%d+%d+%d=%dn,a00,a11,a22,s);return0;6、输入正整数n,输出n行n列的空心四边形图案。以下是n等于4的图案。*#includeintmain()inti,j,n;printf(”请输入n:);scanf(%d,&n
5、);for(i=1;i=n;i+)for(j=1;j=n;j+)if(i=1|j=1|i=n|j=n)printf(*);elseprintf();printf(n”);return0;7、编程序解问题:输入n,求1+2+3+n的和。方法一:#includeintmain()intn,s=0,i;printf(请输入n:);scanf(%d,&n);for(i=1;i=n;i+)s=s+i;printf(1+2+3+.+%d=%dn,n,s);return0;方法二:#include#defineN3intmain()ints=0,i=1;while(i=N)s=s+i;i=i+1;print
6、f(%dn,s);return0;方法三:#include#definen3intmain()ints=0,i=1;dos=s+i;i=i+1;while(i=n);printf(%dn,s);return0;方法四:#include#definen3intmain()ints=0,i;for(i=1;i=n;i=i+1)s=s+i;printf(%dn,s);return0;&将一个数组中的值按逆序重新存放,例如原来数组a=8,6,5,7,4,要求改为4,7,5,6,8#include#defineN5intmain()intaN,i,t;printf(请输入矩阵:n);for(i=0;iN
7、;i+)scanf(%d,&ai);for(i=0;iN;i+)printf(%d,ai);printf(n);i=0;while(iN-i-1)t=ai;ai=aN-1-i;aN-1-i=t;i+;for(i=0;iN;i+)printf(%d,ai);return0;9、统计一维数组中大于0、等于0和小于0的个数,并输出。#include#defineN10intmain()10、编程输入x的值,求y=x20-2*x10+5的值。inti,less=0,great=0,equal=0,aN;printf(”请输入矩阵:n);for(i=0;iN;i+)scanf(%d,&ai);for(i
8、=0;iN;i+)printf(%d,ai);for(i=0;i0)great+;elseif(ai0)equal+;elseless+;printf(n数组中大于0的个数为:%d,great);printf(n数组中等于0的个数为:%d,equal);printf(n数组中小于0的个数为:%d,less);return0;#include123,输出另3位数的正整数(例如#includeintmain()floatx,y;printf(”请输入x的值:”);scanf(%f,&x);y=pow(x,20)-2*pow(x,10)+5;printf(y=%fn,y);return0;11、输入
9、一个3位的正整数,要求以相反的顺序输出该数。例如输入一个数个数321。#includeintmain()intn,i,j,k;printf(请输入一个3位的整数:”);scanf(%d,&n);i=n/100;j=(n-i*100)/10;k=n-i*100-j*10;printf(%dn,k*100+j*10+i);return0;12、编写程序:输入3个09的正整数,输出由这3个数组成的一个输入3个数:9,1,8,输出一个数:918)。#includeintmain()inti,j,k,n;printf(请输入3个0-9的正整数:”);scanf(%d%d%d,&i,&j,&k);n=i*
10、100+j*10+k;printf(%dn,n);return0;13、输入三个整数,求出这三个数的和以及平均值,并在屏幕上输出#includeintmain()inta,b,c;intsum;doubleaverage;printf(”请输入3个整数:);scanf(%d%d%d,&a,&b,&c);sum=a+b+c;average=(a+b+c)/3;printf(sum=%d,average=%fn,sum,average);return0;14、输入一个三位整数x(999=x=100),将其分解出百位、十位、个位,并求出各位之和以及各位之积。#includeintmain()int兀
11、inta,b,c;intsum,product;printf(请输入3个整数:);scanf(%d,&x);a=x/100;b=x%100/10;c=x%10;sum=a+b+c;product=a*b*c;printf(sum=%d,product=%dn,sum,product);return0;15、请编写一个程序,能显示出以下两行文字。Iamastudent.IloveChina.方法一:#includeintmain()printf(lamastudent.nlloveChina.);return0;方法二:#includeintmain()printf(Iamastudent.n)
12、;printf(IloveChina.n);return0;3个字符及16、输入一个字符,求其前驱字符和后继字符,并按其ASCII码值的降序输出此其对应的ASCII码值。#includeintmain()charc,c1,c2;printf(请输入字符:”);scanf(%c,&c);c1=c-1;c2=c+1;printf(%c%c%cn,c2,c,c1);printf(%d%d%dn,c2,c,c1);return0;17、输入两个整型变量a、b的值,输出下列算式以及运算结果。a+b、a-b、a*b、a/b、(float)a/b、a%b每个算式占一行。如a=10,b=5则输出:10+5=1
13、5#includeintmain()inta,b;printf(请输入2个整数:);scanf(%d%d,&a,&b);printf(%d+%d=%dn,a,b,a+b);printf(%d-%d=%dn,a,b,a-b);printf(%d*%d=%dn,a,b,a*b);printf(%d/%d=%dn,a,b,a/b);printf(float)%d/%d=%dn,a,b,(float)a/b);printf(%d%d=%dn,a,b,a%b);return0;18、编写一个邮件计费程序,求出邮件的邮资费并输出。计费规定:当邮件重量小于等于200克时,邮资费为每克0.06元;当邮件重量超过200克时,其中200克,按每克0.06元计费,超过200克的重量,按每克0.03元计费。#includeintmain()floatx,y;printf(”请输入x:);scanf(%f,&x);if(x200)