1、C语言经典题目及答案答案在后面程序设计题1. 有一函数: x (x1) y= 2x-1 (1x10) 3x-11 (x10)写一程序,输入x,输出y值。2. 百钱买百鸡:一百元钱买一百只鸡,公鸡5元一只,母鸡3元一只,小鸡一元3只,求出所有购买方案。3. 将一元钱全兑换成一分、两分、五分的硬币,求所有兑换方法及方法总数。1+1+2+1+2+3+1+2+3+1001*21*2*31*2*3*1004. 求下列算式的值。5. 勾股数是指满足i2+j2=k2的整数i,j,k。编程求 1100之间的勾股数,并打印出结果,且要求没有重复。6. 求Sn=2+22+222+2222(n个2)之值,其中n由键
2、盘输入。7. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。如:15313+53+338. 用数组来求Fibonacci数列问题(求前20个数)。数列如下:1,1,2,3,5,8,139. 用起泡法对10个数由小到大排序。10. 将一个二维数组行和列互换,存到另一个二维数组中。11. 打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。要求打印出由1n2的奇数构成的魔方阵。12. 求具有abcd(ab+cd)2性质的四位数。如:3025(30+25)213. 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这
3、两个函数,并输出结果,两个整数由键盘输入。14. 输入两个3行4列的矩阵a、b,求出它们的和c,并输出c矩阵。15. 编程求满足表达式PEAR-ARA=PEA的所有数字组合P、E、A、R,并打印出来。16. 一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?17. 打印一个九九乘法表。18. 一块长宽高分别为15厘米、10厘米和5厘米的砖块放在地上(如图),蚂蚁要从M点出发,经过BC爬到A点。求K点在BC上的哪个位置才能通过最短的路径达到A点?最短路径为多少?(要求精确度不要太高,取0.1即可)提示:AK+MK=102+k2
4、+52+(15-K)2 A B C K M程序设计题源代码1、略2、 main()int x,y,z,n=0;for(x=1;x0;z=z-3)y=100-x-z;if(y0&100=5*x+3*y+z/3)printf(%d,%d,%dt,x,y,z); n+;printf(nn=%dn,n);3、 main() int x,y,z,n=0; for(x=0;x=20;x+) for(y=0;y=(100-5*x)/2;y+) z=100-5*x-2*y; printf(%d,%d,%dt,x,y,z); n+; printf(n=%dn,n);4、 main()int sum1=0, i;
5、double sum=0,sum2=1;for(i=1;i=100;i+)sum1=sum1+i;sum2=sum2*i;sum=sum+(sum1/sum2);printf(sum=%fn,sum);5、 main() int i,j,k,n=0; for(i=1;i=99;i+) for(j=i;j=99;j+) for(k=j+1;k=99;k+) if(i*i+j*j=k*k) printf(%3d%3d%3dt,i,j,k); n+;break; printf(n%dn,n);6、main() int a=2,n,count=1,sn=0,tn=0; printf(please in
6、put n(n6):); scanf(%d,&n); for(;count=n;count+) tn=tn+a; sn=sn+tn; a=a*10; printf(2+22+222+.=%dn,sn); 7、main() int i,j,k,n; for(n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(%4dt,n); printf(n);8、main() int i; int f20=1,1;/*求数列中前20个数*/ for(i=2;i20;i+) fi=fi-1+fi-2; for(
7、i=0;i20;i+) if(i%5=0) printf(n); printf(%12d,fi); 9、main() int a11; int i,j,t; printf(please input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(j=1;j=9;j+) for(i=1;iai+1) t=ai;ai=ai+1;ai+1=t; printf(the sorted numbers:n); for(i=1;i11;i+) printf(%d,ai); 10、main() int a23=1,2,3,4,5,6;
8、int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); 8 1 63 5 74 9 211、打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为 要求打印出由1n2的奇数构成的魔方阵。解:魔方阵中各数的排列规律如下:所构成的n阶魔方阵,n必须为奇数;
9、将“1”放在第一行最中间一列;从“2”开始直到nn止,每个数存放的行比前一个数的行数减1,列数加1;如果上一数行数为1,则令下一数行数为n;如果上一数列数为n,则令下一数列数为1,行数减1;如果按上面的规定确定的位置上已有数,或上一数是第1行第n列时,则把下一数放在上一数的下面,即列数不变,行数加1。按此方法可得任何阶的魔方阵。程序如下:main()int a2020,i,j,k,p,m,n; p=1; while(p=1) printf(enter n(n=119):); scanf(%d,&n); if(n!=0)&(n19) printf(Error! Too big!n); for(i
10、=1;i=n;i+) for(j=1;j=n;j+) aij=0; j=n/2+1; a1j=1; for(k=2;k=n*n;k+) i=i-1; j=j+1; if(in) i=i+2; j=j-1; else if(in) j=1; if(aij=0) aij=k; else i=i+2; j=j-1; aij=k; for(i=1;i=n;i+) for(j=1;j=n;j+) printf(%4d,aij); printf(n); 12、main() int n,a,b; printf(nThere are following number with 4 digits satisfi
11、ed conditionn); for(n=1000;n10000;n+) a=n/100; b=n%100; if(a+b)*(a+b)=n) printf(%d ,n); 13、int divisor(int a,int b) int max,i,t; if(ab) t=a; else t=b; for(i=1;i=t;i+) if(a%i=0&b%i=0) max=i; return max; int multiple(int a,int b) int min; min=a*b/divisor(a,b); return min; main() int a,b,max,min; print
12、f(input a,b:); scanf(%d%d,&a,&b); max=divisor(a,b); min=multiple(a,b);printf(max=%-5d,min=%-5d,max,min); 14、main() int i, j ,a34, b34 ,c34; for(i=0;i=2;i+) for(j=0;j=3;j+) scanf(%d,&aij); for(i=0;i=2;i+) for(j=0;j=3;j+) scanf(%d,&bij); cij=aij+bij; for(i=0;i=2;i+) for(j=0;j=3;j+) printf(%4d,cij); pr
13、intf(n); 15、main() int p,e,a,r,b,j,c;for(p=1;p=9;p+) for(e=0;e=9;e+) for(a=1;a=9;a+) for(r=0;r=9;r+) b=1000*p+100*e+10*a+r; j=100*a+10*r+a; c=100*p+10*e+a; if(b-j=c) printf(P=%d,E=%d,A=%d,R=%dn,p,e,a,r); printf(%d-%d=%dn,b,j,c); 16、main() float s=100,h=s/2; int n;for(n=2;n=10;n+) s=s+2*h; h=h/2; pri
14、ntf(s=%fm,t,s); printf(h=%fmn,h);17、main() int i,j; printf(%4c,2); for(i=1;i=9;i+) printf(%4d,i); printf(n); for(i=1;i=9;i+) printf(%4d,i); for(j=1;j=i;j+) printf(%4d,i*j); printf(n); 18、#includemain()float m=5+15+10,k,s,n,a,b; for(k=0;k=15;k=k+0.1) a=15-k; s=sqrt(100+k*k)+sqrt(25+a*a); if(s=m) m=s;n=k; printf(BK=%4.1f,n); printf(S(min)=%4.1fn,m);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1