最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言编程题目

来源:动视网 责编:小OO 时间:2025-09-28 00:38:44
文档

C语言编程题目

软件学院/信息学院C语言上机试题大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。大家可以到10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开)特别声明:出题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同
推荐度:
导读软件学院/信息学院C语言上机试题大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。大家可以到10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开)特别声明:出题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同
软件学院/信息学院 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()

{

    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()

{

    int n,a,b;

    printf("Input n=");

    scanf("%d",&n);

for(a=2;a<=n-2;a++)

    if(fun(a)*fun(n-a))printf("%d=%d+%d\\n",n,a,n-a);

}

2-15. 有一正整数等差数列,其前四项之和是26,前四项之积是880,编程,输出此数列的前四项。

————

main()

{

    int a,b,c,d;

for(a=1;a<=25;a++)

for(b=1;b<=25;b++)

for(c=1;c<=25;c++)

for(d=1;d<=25;d++)

    if(a+b+c+d==26  &&  a*b*c*d==880 && a-b==b-c&&b-c==c-d)

    {printf("%d  %d  %d  %d",a,b,c,d);}

}

2-16. 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。编程,输出这个自然数。

————

main()

{

    int a,k;

for(a=1;a>=1&&a<=632767;a++)

    {       k=((a/8)/8)/8;

        if(    a%8==1 && (a/8)%8==1 && ((a/8)/8)%8==7 &&

            a%17==4 && (a/17)%17==15  && ((a/17)/17)==2*k )

        {printf("\\n%d",a);}

    }

}

2-17. 如果一个数恰好等于它的因子之和,则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。编程,输出1000以内的全部“完全数”。

————

int fun(int i)

{    int k,re=0;

for(k=1;k    if(i%k==0)re+=k;

    return(re);

}

main()

{

    int n;

for(n=1;n<1000;n++)

    if( fun(fun(n))==n )printf("%d\\n",n);

}

2-18. 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。

————

main()

{

    int n,a,b,c,x,y,z;

for(n=81;n<=342;n++)

    {    a=n%7;b=(n/7)%7;c=(n/49)%7;

        x=n%9;y=(n/9)%9;z=(n/81)%9;

        if(a==z&&b==y&&c==x)printf("%d\\n",n);

    }

}

2-19.用40元买苹果、西瓜和梨共100个,3种水果都要。已知苹果0.4元一个,西瓜4元一个,梨0.2元一个。问可以各买多少个?编程,输出全部购买方案。

————

main()

{

    int a,b,c;

for(a=1;a<=98;a++)

for(b=1;b<=8;b++)

for(c=1;c<=98;c++)

    if(a+b+c==100 && 4*a+40*b+2*c==400)

    printf("apple--%d ; water melon--%d ; pear--%d\\n",a,b,c);

}

2-20. 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

————

int fun(int i)

{    int k,re=0;

for(k=1;k    if(i%k==0)re+=k;

    return(re);

}

main()

{

    int n;

for(n=1;n<3000;n++)

    if( fun(fun(n))==n )printf("%d\\n",n);

}

2-21.马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?编程,输出全部可能的答案。

————

main()

{

    int a,b,c;

for(a=1;a<=15;a++)

for(b=1;b<=23;b++)

for(c=1;c<=28;c++)

    if(a+b+c==30 && 3*a+2*b+c==50)

    printf("man--%d ; women--%d ; child--%d\\n",a,b,c);

}

2-22. 一个数如果恰好等于它的各因子(该数本身除外)之和(如:6=3+2+1),则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2到60之间所有“完数”和“盈数”,并以如下形式输出:

        E: e1 e2 e3 ......(ei为完数)

        G: g1 g2 g3 ......(gi为盈数)

————

这道偶忘写了,大家自己做一下吧 ^-^

2-23. 有一堆硬币,面值只有1分、2分和5分三种。其中有57枚面值不是5分,有77枚面值不是2分;有72枚面值不是1分。问1分、2分和5分的硬币各有多少?编程,输出全部可能的答案。

————

main()

{

    int a,b,c;

for(a=0;a<=57;a++)

for(b=0;b<=57;b++)

for(c=0;c<=72;c++)

    if(a+b==57 && b+c==72 && a+c==77)

    printf("1fen:%d ; 2fen:%d ; 5fen:%d\\n",a,b,c);

}

2-24. 编程,求解下列算式中各字母所代表的数字并输出。

              PEAR

             - ARA            ───────

               PEA

————

main()

{

    int p,e,a,r;

for(p=1;p<=9;p++)

for(e=0;e<=9;e++)

for(a=1;a<=9;a++)

for(r=0;r<=9;r++)

    if(1000*p+100*e+10*a+r - 101*a-10*r == 100*p+10*e+a)

    printf("p=%d ; e=%d ; a=%d ; r=%d \\n",p,e,a,r);

}

2-25. 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。编程,输出满足条件的所有a、b、c的值。

————

main()

{  int a,b,c;

for(a=1;a<=9;a++)

{ for(b=1;b<=9;b++)

{ for(c=0;c<=9;c++)

          {  if(100*a+110*b+12*c==532)

             printf("a=%3d b=%3d c=%3d",a,b,c);

          }

       }

    }

}

2-26.面包bread、奶油butter和咖啡coffee在一起可以组成一个算式:

                B R E A D

                B R E A D

            + B U T T E R 

              C O F F E E 

     设A、B、C、D、E、F、O、R、T和U均代表数字0~9之一。编程,输出各字母所代表的数字。

————

main()

{

    int a,b,c,d,e,f,o,r,t,u;

    double s1,s2,s3;

for(a=0;a<=9;a++)

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

for(d=0;d<=9;d++)

for(e=0;e<=9;e++)

for(f=0;f<=9;f++)

for(o=0;o<=9;o++)

for(r=0;r<=9;r++)

for(t=0;t<=9;t++)

for(u=0;u<=9;u++)

    {  s1=(10000*b+1000*r+100*r+10*a+d)*2;

       s2=100000*b+10000*u+1100*t+10*e+r;

       s3=100000*c+10000*o+1100*f+11*e;

       if(s1+s2==s3)

       printf("a=%d;b=%d;c=%d;d=%d;e=%d;f=%d;o=%d;r=%d;t=%d;u=%d\\n"

          ,a,b,c,d,e,f,o,r,t,u);

    }

}

2-27.我国明代数学家程大位写了一本《算法统宗》,里面有一题:一百馒头一百僧,大僧三个,小僧三人分一个,大小僧各几丁? 编程,输出大僧和小僧的人数。

————

main()

{

    int a,c;

for(a=0;a<=33;a++)

for(c=0;c<=300;c+=3)

    if(a+c==100 && 3*a+c/3==100)

    printf("old--%d ; young--%d\\n",a,c);

}

2-28.一个马戏团表演, 120个座位全满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。编程,输出男人、女人和小孩各有多少人。

————

main()

{

    int a,b,c;

for(a=0;a<=24;a++)

for(b=0;b<=60;b++)

for(c=0;c<=120;c+=10)

    if(a+b+c==120 && 5*a+2*b+c/10==120)

    printf("man--%d ; woman--%d ; child--%d\\n",a,b,c);

}

2-29.全排有46名战士,会骑马的有30人,会摔跤的有19人,会拳击的有24人。还知道不少人是多面手,会骑马和摔跤的有14人,会摔跤和拳击的有12人,会拳击和骑马的有8人。编程,输出三项全能的有几人?

——————

main()

{  int x ,a,b,c;

for(x=1;x<=12;x++)

    { a=30-14-8+x;

      b=16-14-12+x;

      c=24-12-8+x;

      if(a+b+c+14+12+8-2*x==40)

      printf("\\n%d Supper Soldier",x);

    }

}

2-30.三对情侣参加婚礼,三个新郎为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在说假话。编程,输出谁将和谁结婚。

————

main()

{

    int a,b,c;

for(a='X';a<='Z';a++)

for(b='X';b<='Z';b++)

for(c='X';c<='Z';c++)

    if(a!='X' && c!='X' && c!='Z' &&a!=b&&b!=c&&c!=a)

    printf("A--%c ; B--%c ; C--%c\\n",a,b,c);

}

2-31.某侦察队接到一项紧急任务,要求在A、B、C、D、E、F 六个队员中尽可能多地挑若干人,但有以下条件:

       1. A和B二人中至少去一人           2. A和D不能一起去

       3. A、E和F三人中要派二人去          4. B和C都去或都不去

       5. C和D两人中去一个               6. 若D不去,则E也不去

     编程,输出选中的人选。

————

main()

{

    int a,b,c,d,e,f;

for(a=0;a<=1;a++)

for(b=0;b<=1;b++)

for(c=0;c<=1;c++)

for(d=0;d<=1;d++)

for(e=0;e<=1;e++)

for(f=0;f<=1;f++)

    {

        if(d==0)e=0;

     if(a+b>=1 && a+d!=2 && a+e+f==2 && b==c && c+d==1)

        printf("A:%d B:%d C:%d D:%d E:%d F:%d\\n",a,b,c,d,e,f);

        if(d==0)e=1;

    }

}

2-32.有A、B、C、D、E,每人额头上贴了一张或黑或白的纸。5人对坐,都可看到其他人的颜色,但都不知道自己的颜色。5人相互观察:

       A说:有三人额头上贴白纸,一人额头上贴的是黑纸

       B说:我看见其他四人额头上贴的都是黑纸

       C说:有一人额头上贴白纸,其他三人贴的是黑纸

       D说:我看见四人额头上贴的都是白纸

      E什么也没说

    现在已知额头贴黑纸的人说的都是谎话,额头贴白纸的人说的都是实话。编程,输出这五人中额头贴白纸的人选和额头贴黑纸的人选。

————

main()

{

    int a,b,c,d,e,m,n,o,p;

for(a=0;a<=1;a++)

for(b=0;b<=1;b++)

for(c=0;c<=1;c++)

for(d=0;d<=1;d++)

for(e=0;e<=1;e++)

    {

        m=(a==1 && b+c+d+e==3) || (a==0 && b+c+d+e!=3);

        n=(b==1 && a+c+d+e==0) || (b==0 && a+c+d+e!=0);

        o=(c==1 && a+b+d+e==1) || (c==0 && a+b+d+e!=1);

        p=(d==1 && a+b+c+e==4) || (d==0 && a+b+c+e!=4);

        if(m*n*o*p==1)

        printf("A:%d B:%d C:%d D:%d E:%d\\n",a,b,c,d,e);

    }

}

2-33. 求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。若每次跨7阶,最后才正好一阶不剩。编程,输出这条阶梯共有多少阶?

————

main()

{

    int a;

    for(a=0;;a++)

    if(a%2==1 && a%3==2 && a%5==4 && a%6==5 && a%7==0)

    {printf("n:%d",a);break;}

}

2-34.我国古代数学名著<<孙子算经>>中,提出了闻名于世的“孙子问题”,即:今有物不知其数,三个三个地数,剩二个;五个五个地数,剩三个;七个七个地数,剩二个。编程,输出该物的个数。

————

main()

{

    int a;

    for(a=0;;a++)

    if(a%3==2 && a%5==3 && a%7==2)

    {printf("n:%d",a);break;}

}

P.S.顺便说一下,上机的时候好像抽到题后有一次换题的机会,所以如果你不幸抽到2-8那样的题,就直接换一道吧,呵呵。上机时间非常充裕,大概快的话10分钟三道题就都完成了,很容易的。

    

文档

C语言编程题目

软件学院/信息学院C语言上机试题大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。大家可以到10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开)特别声明:出题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top