您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > C语言课后实验设计答案
C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:***********************ThisisaCprogram.***********************程序:#includestdio.hvoidmain(){printf(“***********************\n”);printf(“ThisisaCprogramn.\n”);printf(“***********************\n”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1个实数x,计算并输出其平方根(保留1位小数)。填空1.doublex,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。程序代码:#includestdio.h#includemach.hmain(){floata,b,c,s,arer;printf(请输入三角形的三个边a,b,c:\n);scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(三角形的边为a=%7.2f,b=%7.2f,c=%7.2f\n,a,b,c);printf(三角形的面积area=%7.2f\n,area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。程序代码:#includestdio.hmain(){floath,r,l,s,sq,vq,vz;floatpi=3.1415926;printf(请输入圆半径r,圆柱高h:);scanf(%f,%f,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r?*r;vz=pi*r*r*h;printf(圆周长为:l=%6.2f\n,l);printf(圆面积为:s=%6.2f\n,s);printf(圆球表面积为:sq=%6.2f\n,sq);printf(圆球体积为:vq=%6.2f\n,vq);printf(圆柱体积为:vz=%6.2\n,vz);(3)分别用getchar函数和scanf函数读入2个字符给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。程序代码:#includestdio.hmain(){charc1,c2;printf(请输入两个字符c1,c2:);c1=getchar();c2=getchar();printf(用putchar语句输出结果为:);putchar(c1);putchar(c2);printf(请用scanf函数输入两个字符c1,c2:);scanf(%c%c\n,&c1,&c2);printf(用printf语句输出结果为:);printf(c1=%cc2=%c\n,c1,c2);}实验项目四分支结构程序设计题目(1)程序填空。输入四个整数,输出其中的最小值。填空:min=a;if(bmin)min=b;elseif(cmin)min=c;elseif(dmin)min=d;(2)计算如下函数Y的值。X(X1)2X-1(1≤X10)3X-11(X=10)程序代码:#includestdio.hmain(){intx,y;printf(请输入x:);scanf(%d,&x);if(x1)y=x;elseif(x10)y=2*x-1;elsey=3*x-11;printf(x=%d,y=%d,x,y);}(3)给出一个百分制成绩,输出对应的等级分。共分A、B、C、D、E五个等级。90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。要求分别用if语句和switch语句实现。程序代码:①用if-else语句实现:#includestdio.hmain(){intg;Loop:printf(请输入g:);scanf(%d,&g);if(g0||g100)gotoLoop;if(g90)printf(A);seleif(g80)printf(B);elseif(g70)printf(C);elseif(g60)printf(D);elseprintf(E);}②用switch语句实现:#includestdio.hmain(){intg;{Y=Loop:printf(请输入g:);scanf(%d,&g);if(g0||g100)gotoLoop;switch(g/10){case10:case9:printf(A);case8:printf(B);case7:printf(C);case6:printf(D);default:printf(E);}}(4)编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。奖金税率a<5000.00500≤a<10000.051000≤a<20000.082000≤a<50000.105000≤a0.15提示:a=奖金数rate=税率值tax=应缴税款profit=实得奖金数。计算公式:tax=a*rate,profit=a–tax程序代码:#includestdio.hmain(){floata,rate,tax,profit;scanf(%f,&a);if(a500)rate=0.0;elseif(a1000)rate=0.05;elseif(a2000)rate=0.08;elseif(a5000)rate=0.1;elserate=0.15;tax=a*rate;profit=a-tax;printf(rate=%10.2f,tax=%10.2f,profit=%10.2f\n,rate,tax,profit);}实验项目五循环结构程序设计题目(1)猴子吃桃子。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃时,只剩下一个桃子。问第一天共摘多少个桃子?(要求使用While循环语句实现)。算法提示设total:桃子的总数x1:前一天的桃子数x2:后一天的桃子数day:天数计算公式:x1=(x2+1)*2第1天的桃子数是第2天桃子数加1后的2倍。程序代码:#includestdio.hvoidmain(){intx1,x2,day,total;day=9;x2=1;while(day0){x1=(x2+1)*2;x2=x1;day=day-1;}Total=x1;printf(total=%d\n,x1);}(2)求200—300之间的素数。程序代码:#includestdio.hvoidmain(){intm,n,flag;printf(\nTheprimersfrom200to300is:\n);for(n=201;n300;n+=2){flag=1;for(m=2;m=n/2;m++)if(n/m==0){flag=0;break;}if(flag==0)continue;printf(%d,n);}printf(\n);}(3)程序填空①求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。程序代码:#includestdio.hvoidmain(){inti,n,flag;floatsum;scanf(%d,&n);/*----以下为所填语句------*/sum=0;flag=1;for(i=1;i=n;i++){sum+=flag*1.0/i;flag=-flag;}printf(%.3f\n,sum);}②统计字符。输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。程序代码:#includestdio.hvoidmain(){intri,repeat;intblank,digit,letter,other;charc;scanf(%d,&repeat);getchar();for(ri=1;ri=repeat;ri++){c=getchar();/*----以下为所填语句------*/blank=digit=letter=other=0;while(c!='\n'){if(c='a'&&c='z'||c='A'&&c='Z')letter++;elseif(c='0'&&c='9')digit++;elseif(c=='')blank++;elseother++;c=getchar();}printf(letter=%d,blank=%d,digit=%d,other=%d\n,letter,blank,digit,other);}}③找最大值。输入一个正整数repeat(0repeat10),做repeat次下列运算:输入4个整数输出其中的最大值。例:输入3(repeat=3)12619010403020-1-3-4-5输出maxis90(126190中的最大值是90)maxis40(10403020中的最大值是40)maxis-1(-1-3-4-5中的最大值是-1)程序代码:#includestdio.hvoidmain(){intri,repeat;inta,b,c,d,max;scanf(%d,&repeat);/*----以下为所填语句------*/for(ri=1;ri=repeat;ri++){scanf(%d%d%d%d,&a,&b,&c,&d);/*----以下为所填语句------*/max=a;if(maxb)max=b;if(maxc)max=c;if(maxd)max=d;printf(maxis%d\n,max);}}(4)编写程序:输出“九九乘法表”。程序代码:#includestdio.hvoidmain(){inti,j;for(i=1;i9;i++);for(j=1;j=i;j++);{if(i==j)printf(\n);printf(%d*%d=%d,i,j,i*j);}}实验项目六函数及其应用题目(1)程序填空。计算代数多项式1.1+2.2x+3.3x2+4.4x3+5.5x4的值。例:输入1.5输出54.52程序代码:#includestdio.hfloatf(float);voidmain(){floatx,y;scanf(“%f”,&x);/*----以下为所填语句------*/y=f(x);printf(%.2f\n,y);}/*----以下为所填语句------*/floatf(floatx){floatsum=0,t=1;inti;for(i=1;i=5;i++){sum+=(i+1.0*i/10)*t;t*=x;}returnsum;}(2)编写程序,求s=1!+2!+3!+....+10!之和。要求定义递归函数fact(n)求n!,程序的输出形式为:1!+2!+3!+4+5!+6!+7!+8!+9!+10!=s,其中,s为求和值。实验提示求n!的递归公式为:1(n=0、n=1)fact(n)=fact(n)=n*fact(n-1)(n1)注意:s和fas(n)均为长整型。!程序代码:#includestdio.hvoidmain(){longintfas(int);inti,m;longints=0;for(i=1;i=10;i++){m=fas(i);s=s+m;print(“%d!+
本文标题:C语言课后实验设计答案
链接地址:https://www.777doc.com/doc-5538999 .html