软件学院/信息学院 C语言上机试题
大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。    大家可以到 10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开)
特别声明:出题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同学需要做的,但是卷头写的是“此题只有信息学院的同学做”,小心呀,今年别才出现这样的错误了!别忘了软件学院!!!
第二部分 - 简单数值计算:
2-1. 编程,输出200以内所有完全平方数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是一个四位数,它的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()
c语言搜题软件推荐
{
    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种方案。
———
这道题比较麻烦,我没有到很好的方法,现在的思路是先到张数最少的那种,记下一共n张;然后张数是n-1的次数;n-2的次数;…当这些次数到10的时候,就是最少的10种方案
请大家自己完成,如果有什么好的方法请告诉我,谢谢。
2-9. 编程,输出555555的约数中最大的三位数。
————
main()
{
    int a;
    for(a=999;a>=100;a--)
    if(555555%a==0){printf("\n%d",a);break;}
}
2-10. 编程,输出所有个位数为6且能被31整除的五位数及其个数。
————
main()
{
    int a,n=0;
    for(a=1000;a<=9999;a++)
    if( (  (a%31)*10+6  )%31==0){printf("\n%d6",a);n++;}
    printf("\nn=%d",n);
}
2-11. 一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索,编程,输出车号。
————
main()
{
    int a,b,c;
    for(a=0;a<=9;a++)
    for(b=0;b<=9;b++)
    for(c=32;c<=99;c++)
    if(1100*a+11*b==c*c)
    printf("%d",c*c);
}
2-12. 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何? 编程,输出所有可能的购买方案。
————
main()
{
    int a,b,c;
    for(a=0;a<=20;a++)
    for(b=0;b<=33;b++)
    for(c=0;c<=300;c+=3)
    if(a+b+c==100 && 5*a+3*b+c/3==100)
    printf("cock--%d ; hen--%d ; child--%d\n",a,b,c);
}
2-13. 编程,输出1000到100000之间所有满足下列条件的所有整数及其个数:整数的各位数字之和等于5。
————
main()
{
    int a,b,c,d,e,n=0;
    for(a=0;a<=5;a++)
    for(b=0;b<=5;b++)
    for(c=0;c<=5;c++)
    for(d=0;d<=5;d++)
    for(e=0;e<=5;e++)
    if(a+b+c+d+e==5  &&  10000*a+1000*b+100*c+10*d+e>1000)
    {printf("%d\n",10000*a+1000*b+100*c+10*d+e);n++;}
    printf("n=%d",n);
}
2-14. 编程,任意输入一个偶数n,请将它分解为两个素数之和。输出形式为:*=*+*
————
int fun(int n)
{    int i,j;
    for(i=2;i<=n-1;i++)
    for(j=2;j<=n-1;j++)
    if(i*j==n)return(0);
    return(1);
}
main()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。