您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > C语言编程习题和答案
1题:/*九九乘法表:*/#includestdio.hintmain(void){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)printf(%dx%d=%2d,i,j,i*j);printf(\n);}return0;}2题:/*求n的阶乘之和:*/#includestdio.hintmain(void){inti,n,s,k,j;scanf(%d,&n);for(s=1,i=1;i=n;i++)s*=i;printf(%d!=%d\n,n,s);for(s=1,i=1;i=n;i++){for(k=0,s=1,j=1;j=i;j++)s=s*j,k+=s;}printf(他们的n阶之和为%d\n,k);return0;}3题:/*求兔子繁殖问题:*/#includestdio.hintmain(void){inta=1,b=1,i=3,n,c;printf(\n请输入一个繁殖时间(单位为月):);scanf(%d,&n);while(i=n){c=a+b;a=b;b=c;i++;}printf(他们繁殖的兔子数为:%d(只)\n,c);return0;}1题:/*猴子吃桃:*/#includestdio.hintmain(void){inti,a=1,s=0;for(i=9;i=1;i--){s=(a+1)*2;a=s;}printf(s=%d个\n,s);return0;}2题:/*求分数之和:*/#includestdio.hintmain(void){floatk,i,a=1,b=2,sum=0.0;printf(这前20个分数分别是:);for(i=1,sum=0;i=20;i++){sum+=b/a;printf(%.f/%.f,b,a);k=b,b=(a+b),a=k;}printf(\n他们的和为:sum=%.2f\n,sum);return0;}3题/*判断是否是水仙花数:*/#includestdio.hintmain(void){inta,j,k,s;printf(请输入一个数:);scanf(%d,&a);for(;a100||a999;){printf(\n输入有误,请重新输入一个三位数:);scanf(%d,&a);}j=a/100,k=a%100/10,s=a%10;if(a==j*j*j+k*k*k+s*s*s)printf(\n%d是水仙花数。\n,a);elseprintf(\n%d不是水仙花数。\n,a);return0;}4题:/*求小球反弹的路程:*/#includestdio.hintmain(void){floati,k,j,s=100;for(i=1,k=0,s=100;i=10;i++){k+=s+s/2;s=s/2;}printf(小球反弹到第10次后的路程为:s=%.4f\n,k);return0;}5.求最大公约数:5题:/*yourid_16.c:*/#includestdio.hintfunc(inta,intb){inttemp;while(b!=0){temp=a%b;a=b;b=temp;}returna;}voidmain(){inta,m,j,temp;printf(\n请输入两个数:\n);scanf(%d%d,&m,&j);if(mj){temp=m;m=j;j=temp;}a=func(m,j);printf(最大公约数为:%d\n,a);printf(最小公倍数为:%d\n,m*j/a);}实验三选择结构程序设计【目的与要求】1.正确使用关系表达式和逻辑表达式表达条件。2.学习分支语句if和switch的使用方法。3.进一步熟悉VC6.0集成环境的使用方法,学习VC6.0环境提供的调试工具。【内容与过程】1.设计下列算法,用N—S流程图表示(写在纸上),试根据流程图编写程序:判断一个整数n能否被3和5整除(源程序名:yourid_6.c)。1题:/*yourid_6.c*/#includestdio.hintmain(){inti=0,a;printf(\n请输入一个数:\n);scanf(%d,&a);if(a%3==0&&a%5==0)printf(yesis%d\n,a);elseprintf(noisnotture%d\n,i);return0;}2.调试下列程序,使之具有如下功能:输入a、b、c三个整数,求最小值。写出调试过程。(源程序名:yourid_7.c)2题:main(){inta,b,c;scanf(%d%d%d,a,b,c);if((ab)&&(ac))if(bc)printf(min=%d\n,b);elseprintf(min=%d\n,c);if((ab)&&(ac))printf(min=%d\n,a);}程序中包含有一些错误,按下述步骤进行调试。3.编写程序,求解下列分段函数:(源程序名:yourid_8.c)具体要求如下:①用if语句实现分支。自变量x与函数值均采用单精度类型。②自变量x值从键盘输入,且输入前要有提示信息。③数据的输出格式采用以下形式:X=输入值,f(x)=计算值④分别以-11,-5,-3.5,-1,0,1,1.6,10,11,100为自变量,运行该程序记录运行结果。3题/*yourid_8.c*/#includestdio.hfloatmain(){floaty,x,c;printf(\n请输入一个数:\n);scanf(%f,&x);if(-5x0)y=x;printf(%f\n,y);if(x==0)y=x-1;printf(%f\n,y);if(0x10)y=x+1;printf(%f\n,y);if(-5=x||x=10)y=100;printf(%f\n,y);return0;}4.编程,将一个百分制成绩转换成等级制成绩,具体要求如下:(源程序名:yourid_9.c)①百分制与等级制的对应关系如下表:百分制90-10080-8970-7960-6960等级制优良中差劣②用switch语句实现该功能③用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数据应输出错误信息。④输出结果应包含百分制成绩和成绩等级。⑤分别输入成绩-10,30,60,68,75,83,95,102,查看记录运行结果。4题:/*yourid_9.c*/#includestdio.hintmain(){intgrade;printf(\n请输入一个数分数:\n);scanf(%d,&grade);switch(grade/10){case9:printf(优\n);break;case8:printf(良\n);break;case7:printf(中\n);break;case6:printf(差\n);break;default:printf(劣\n);break;}return0;}【分析与总结】1.实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么:2.如何设置选择结构中的判断条件?它的程序设计中的意义何在?1.写两个函数,分别求两个整数的最大的公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。(源程序名:yourid_16.c)1题:/*yourid_16.c:*/#includestdio.hintfunc(inta,intb){inttemp;while(b!=0){temp=a%b;a=b;b=temp;}returna;}voidmain(){inta,m,j,temp;printf(\n请输入两个数:\n);scanf(%d%d,&m,&j);if(mj){temp=m;m=j;j=temp;}a=func(m,j);printf(最大公约数为:%d\n,a);printf(最小公倍数为:%d\n,m*j/a);}2.用递归方法求n阶勒让德多项式的值,递归公式为(源程序名:yourid_17.c)1(n=0)Pn=x(n=1)((2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n(n=1)2题:/*yourid_17.c:*/#includestdio.h#includemath.h#includestdio.hfloatp(intn,intx){if(n==0)return(1);elseif(n==1)return(x);elsereturn(((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n);}voidmain(){intx,n;printf(\n请输入n和x:\n);scanf(%d,%d,&n,&x);printf(n=%d,x=%d\n,n,x);printf(P%d(%d)=%6.2f\n,n,x,p(n,x));}3.请到银行查出一年定期存款的利率和5年定期存款的利率。假定现在要存入100元钱,存款到期后立即将利息与本金一起再次存入。请写出程序,计算按每次存一年和按照每次存5年,总共存50年后两种存款方式的得款总额。对两种情况都每隔5年输出一次当时的总金额。(源程序名:yourid_18.c)3题:/*yourid_18.c:*/#includestdio.hdoublef1(doublen,intyear){inti;doublet,m,x=0.035;for(i=1;i=year;i++){t=n,n*=x,n=(t+n);}m=n;return(m);}doubleg1(doublen,intyear){inti,j;doublet,m,k=5.0,x=0.055;j=(year/5);for(i=1;i=j;i++){t=n,n*=(k*x),n=(t+n);}m=n;return(m);}intmain(void){doublemoney,y;intyear,b;printf(请存钱的金额及年限:\n);scanf(%d%d,&money,&year);printf(请输入存钱的方法1或2:\n);scanf(%d,&b);if(b==1)y=f1(money,year);elsey=g1(money,year);printf(把%d元存入银行%d年后所得的总额为:%f\n,money,year,y);}4题:/*递归函数*/#includestdio.hintmain(){inti;floatj;printf(\n请输入一个数:);scanf(%d,&i);if(i=0)printf(n=0,dateerror!);else{j=k(i);printf(\nk(%d)=%f\n,i,j);return0;}}floatk(n)intn;{floatm;if(n==1)m=1.0;elseif(n%2==0)m=k(n-1)*2;elsem=k(n-1)*3;return(m);}5题:/*求a与b值交换*/#includestdio.hintexct(x,y)intx,y;{intt;printf(x=%d,y=%d\n,x,y);t=x;x=y;y=t;printf(x=%d,y=%d\n,x,y);return0;}intmain(void){inta,b;scanf(%d%d,&a,&b);printf(a=%d,b=%d\n,a,b);exct(a,b);printf(a=%d,b=%d\n,a,b);return0;}6题:/*求排列组合*/#includestdio.hintf(inta){longinti,s;for(i=1,s=1;i=a;i++)s*=i;return(s);}intmain(void){longintn,m,y;printf(请输入排列组合的n和m:\n);scanf(%d%d,&n,&m);for(;nm;){printf(输入错误,nm,请重新输入排
本文标题:C语言编程习题和答案
链接地址:https://www.777doc.com/doc-2908722 .html