C语言 编程例题教程.docx
- 文档编号:9882308
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:19
- 大小:21.49KB
C语言 编程例题教程.docx
《C语言 编程例题教程.docx》由会员分享,可在线阅读,更多相关《C语言 编程例题教程.docx(19页珍藏版)》请在冰点文库上搜索。
C语言编程例题教程
软件学院/信息学院C语言上机试题
大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。
我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。
大学里,别把分数看得那么重要。
找工作没人在乎你到底考了多少分。
能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。
大家可以到10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开)
特别声明:
出题老师请您注意!
去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同学需要做的,但是卷头写的是“此题只有信息学院的同学做”,小心呀,今年别才出现这样的错误了!
别忘了软件学院!
!
!
第二部分-简单数值计算:
2-1.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数。
————
main()
{inta,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()
{
inta=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个球,编程,输出所有不同的取法。
输出形式如下:
REDWHITEBLACK
------------------------
1:
026
2:
035
。
。
。
。
。
。
。
————
main()
{
intr,w,b,n=1;
printf("redwhiteblack\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()
{
inta,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()
{
inta,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()
{
inta,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()
{
inta,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()
{
inta;
for(a=999;a>=100;a--)
if(555555%a==0){printf("\n%d",a);break;}
}
2-10.编程,输出所有个位数为6且能被31整除的五位数及其个数。
————
main()
{
inta,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()
{
inta,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()
{
inta,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()
{
inta,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,请将它分解为两个素数之和。
输出形式为:
*=*+*
————
intfun(intn)
{inti,j;
for(i=2;i<=n-1;i++)
for(j=2;j<=n-1;j++)
if(i*j==n)return(0);
return
(1);
}
main()
{
intn,a,b;
printf("Inputn=");
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()
{
inta,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()
{
inta,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以内的全部“完全数”。
————
intfun(inti)
{intk,re=0;
for(k=1;k
if(i%k==0)re+=k;
return(re);
}
main()
{
intn;
for(n=1;n<1000;n++)
if(fun(fun(n))==n)printf("%d\n",n);
}
2-18.一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。
————
main()
{
intn,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()
{
inta,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;watermelon--%d;pear--%d\n",a,b,c);
}
2-20.如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。
求3000以内的全部亲密数。
————
intfun(inti)
{intk,re=0;
for(k=1;k
if(i%k==0)re+=k;
return(re);
}
main()
{
intn;
for(n=1;n<3000;n++)
if(fun(fun(n))==n)printf("%d\n",n);
}
2-21.马克思手稿中有一道趣味数学问题:
有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?
编程,输出全部可能的答案。
————
main()
{
inta,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:
e1e2e3......(ei为完数)
G:
g1g2g3......(gi为盈数)
————
这道偶忘写了,大家自己做一下吧^-^
2-23.有一堆硬币,面值只有1分、2分和5分三种。
其中有57枚面值不是5分,有77枚面值不是2分;有72枚面值不是1分。
问1分、2分和5分的硬币各有多少?
编程,输出全部可能的答案。
————
main()
{
inta,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()
{
intp,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()
{inta,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=%3db=%3dc=%3d",a,b,c);
}
}
}
}
2-26.面包bread、奶油butter和咖啡coffee在一起可以组成一个算式:
BREAD
BREAD
+BUTTER
COFFEE
设A、B、C、D、E、F、O、R、T和U均代表数字0~9之一。
编程,输出各字母所代表的数字。
————
main()
{
inta,b,c,d,e,f,o,r,t,u;
doubles1,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()
{
inta,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()
{
inta,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()
{intx,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%dSupperSoldier",x);
}
}
2-30.三对情侣参加婚礼,三个新郎为A、B、C,三个新娘为X、Y、Z。
有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是:
A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。
这人听后知道他们在说假话。
编程,输出谁将和谁结婚。
————
main()
{
inta,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()
{
inta,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:
%dB:
%dC:
%dD:
%dE:
%dF:
%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()
{
inta,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:
%dB:
%dC:
%dD:
%dE:
%d\n",a,b,c,d,e);
}
}
2-33.求解爱因斯坦数学题。
有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。
若每次跨7阶,最后才正好一阶不剩。
编程,输出这条阶梯共有多少阶?
————
main()
{
inta;
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()
{
inta;
for(a=0;;a++)
if(a%3==2&&a%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 编程 例题教程 语言 例题 教程