软件学院/信息学院 C语言上机试题
大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。C2=A2+B2)及其个数。
————
main()
{ int a,b,c,n=0;
for(c=1;c<=200;c++)
for(a=1;a<=200;a++)
for(b=1;b<=200;b++)
if(c*c==a*a+b*b){printf("%4d",c);a=201;b=201;n++;}
printf("\nn=%d\n",n);
}
2-2. 设N是一个3位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。
————
main()
{
int a=1,b,c,d;
for(d=0;d<=9;d++)
for(b=0;b<=1;b++)
for(c=0;c<=9;c++)
if(9000*a+900*b+90*c+9*d == 1000*d+100*c+10*b+a)
printf("%d\n",1000*a+100*b+10*c+d);
}
2-3. 口袋中有12个球,其中3红,3白和6黑,从中任取8个球,编程,输出所有不同的取法。输出形式如下:
RED WHITE BLACK
------------------------
1: 0 2 6
2: 0 3 5
。。。。。。。
————
main()
{
int r,w,b,n=1;
printf(" red white black\n---------------------\n");
for(r=0;r<=3;r++)
for(w=0;w<=3;w++)
for(b=0;b<=6;b++)
if(r+w+b==8)printf("%2d : %d %3d %3d\n",n++,r,w,b);
}
2-4. 小明有五本新书,要借给A、B、C三位小朋友,每人每次只能借一本,编程,输出所有不同的借法。
————
main()
{
int a,b,c;
for(a=1;a<=5;a++)
for(b=1;b<=5;b++)
for(c=1;c<=5;c++)
if(a!=b&&b!=c&&c!=a)printf("a--%d ; b--%d ; c--%d\n",a,b,c);
}
2-5. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33
————
main()
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=1;c<=9;c++)
if(100*a+10*b+c == a*a*a+b*b*b+c*c*c)
printf("%d \n",100*a+10*b+c);
}
2-6. 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。编程,输出所有满足条件的方案(即大、中、小马的数目)。
————
main()
{
int a,b,c;
for(a=0;a<=33;a++)
for(b=0;b<=50;b++)
for(c=0;c<=100;c+=2)
if(a+b+c==100 && 3*a+2*b+c/2==100)
printf("big--%d ; middle--%d ; small--%d\n",a,b,c);
}
2-7. 用一元人民币兑换成1分、2分和5分硬币,编程,输出所有不同的兑换方法及兑换方法个数。
————
main()
{
int a,b,c,n=0;
for(a=0;a<=100;a++)
for(b=0;b<=50;b++)
for(c=0;c<=20;c++)
if(a+2*b+5*c==100)
{ printf("1fen--%d ; 2fen--%d ; 5fen--%d\n",a,b,c);n++;}
printf("n=%d",n);
}
2-8. 编程,从键盘输入1个人的工资(1000—9999之间的整数),计算给这个人发工资时,需面值100元,50元,20元,10元,5元,2元和1元的人民币各多少张?输出总张数最少的10种方案。
————
这道题比较麻烦,我没有找到很好的方法,现在的思路是先找到张数最