1、C语言上机实验标准答案doc实验一 上机操作初步 (2 学时 )一、实验方式:一人一机二、实验目的:1、熟悉 VC+语言的上机环境及上机操作过程。2、了解如何编辑、编译、连接和运行一个 C 程序。3、初步了解 C程序的特点。三、实验内容:说明:前三题为必做题目,后两题为选做题目。1、输出入下信息: ( 实验指导书 P79)*Very Good*2、计算两个整数的和与积。 ( 实验指导书 P81)3、从键盘输入一个角度的弧度值 x,计算该角度的余弦值, 将计算结果输出到屏幕。 ( 书P3)4、在屏幕上显示一个文字菜单模样的图案:=1输入数据2修改数据3查询数据4打印数据=5、从键盘上输入两个整数
2、,交换这两个整数。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) printf(printf(printf(“ *n“ Very Goodn ” );“ *n” );” );2、#include void main( ) int a,b,c,d;printf(“ Please enter a,b:”);scanf(“%d,%d” ,&a,&b);c=a+b; d=a*b;printf(“ %d+%d=%dn” ,a,b,c);printf(“ %d*%d=%dn” ,a,b,d);3、#include #include void main(
3、)double x,s;printf(“ Please input value of x:”);scanf(“%lf ” ,&x);s=cos(x);printf(“ cos(%lf)=%lfn ”,x,s);4、#include void main( )printf(“ =n”);printf(“1输入数据2修改数据 n ”);printf(“3查询数据4打印数据 n ”);printf(“ =n”);5、#include void main( )int x,y,t;printf(“ Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y;
4、y=t;printf(“ After swap:x=%d,y=%dn” ,x,y);实验二 简单的 C程序设计 (4 学时 )一、实验方式:一人一机二、实验目的:1、掌握 C语言的数据类型。2、学会使用 C语言的运算符及表达式。3、掌握不同数据类型的输入输出方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、输入 r1 、 r2 ,求出圆形垫片面积。 ( 实验指导书 P84)2、输入华氏温度 h,输出摄氏温度 c。 ( 实验指导书 P85)3、从键盘输入一个 3 位整数,将输出该数的逆序数。 ( 实验指导书 P89)4、输入并运行以下程序,分析运行结果。#include void
5、 main( ) int i,j; i=8; j=10;printf( “ %d,%dn” ,+i,+j); i=8; j=10;printf( “ %d,%dn” ,i+,j+); i=8; j=10;printf( “ %d,%dn” ,+i,i); i=8; j=10;printf(“ %d,%dn” ,i+,i);5、输入三角形三条边的边长,求三角形的面积。( 书 P55)6、输入 3 个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。( 书 P55)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include #define PIvoid main( ) flo
6、at r1,r2;double s1,s2,s;printf(“ Please enter r1,r2:n”);scanf(“%f%f”,&r1,&r2);s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1;printf(“ s=%lfn ” ,s);2、#include void main( ) float h,c;printf(“请输入华氏温度:” );scanf(“%f” ,&h);c=9*(h-32);printf(“ n 摄氏温度: %fn ”,c);3、#include void main( ) int a,b,c,x,y;printf( “请输入一个 3 位的正整
7、数: n ”);scanf( “%d” ,&x);a=x/100; /* 求 x 的百位数 */b=(x-a*100)/10; /* 求 x 的十位数 */c=x-a*100-b*10; /* 求 x 的个位数 */y=c*100+b*10+a;printf( “ %d:%dn” ,x,y);4、运行结果: 9,11 8,10 9,8 8,85、#include #include void main( ) int a,b,c; double area,s;printf( “ Please enter a,b,c: ” );scanf( “%d,%d,%d” ,&a,&b,&c);s=(doub
8、le)(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf( “ area=%.2lfn ”,area);6、#include void main( ) char a,b,c;float x;printf( “ Please enter:n ”);a=getchar(); b=getchar(); c=getchar();x=(a+b+c)/;printf( “ (a+b+c)/3=%.2fn ” ,x);实验三 选择结构程序设计 (2 学时 )一、实验方式:一人一机二、实验目的:1、熟练掌握 if 语句和 switch 语句。2、练习并掌握多分支选择结
9、构的编程方法。3、学习调试和修改程序的步骤。三、实验内容:说明:前三题为必做题目,后两题为选做题目。1、读入 3 个分别表示箱子长、 宽、高的整数值,判断并输出该箱子是立方体还是长方体。( 实验指导书 P104)2、输入某一年月,输出该月的天数。 ( 实验指导书 P105)3、有一函数: x (x1)y= 2x-1 (1 x10)3x-11 (x 10) 编写程序,输入 x 值,输出 y 值。4、从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。 ( 书 P94) 5、输入 4 个整数,要求按由小到大的顺序输出
10、。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) int l,w,h;printf( “请输入箱子的长、宽、高: n ”);scanf( “%d%d%d”,&l,&w,&h);if(l=w&w=h) /* 如果长、宽、高相等,则为立方体printf( “该箱子是立方体。” );elseprintf( “该箱子是长方体。” );*/2、#include void main( ) int year,month,days;printf( “ Please enter year and month:n ” );switch(month) case 2
11、: if( year%4=0&year%100!=0|year%400=0)days=29;elsedays=28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break;case 4: case 6: case 9: case 11: days=30;printf(“ %d年 %d月有 %d天n ” ,year,month,days);3、#include void main( ) float x,y;printf(scanf(“ Please input x:n “%f” ,&x);”);if(x1)
12、y=x;else if(x10)y=2*x-1;elsey=3*x-11;printf(“ y=%fn ”,y);4、#include void main( ) char x;printf(“ Enter a char:n”);x=getchar();if(x= a&x= A&x=Z)x=x+32;putchar(x);5、#include void main( ) int a,b,c,d,t;printf( “请输入 4 个整数:” );scanf( “%d%d%d%d”,&a,&b,&c,&d);if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(
13、ad) t=a; a=d; d=t; if(bc) t=b; b=c; c=t; if(bd) t=b; b=d; d=t; if(cd) t=c; c=d; d=t; printf( “排序结果如下: n ” );printf( “ %d,%d,%d,%dn” ,a,b,c,d);实验四 循环结构程序设计 (4 学时 )一、实验方式:一人一机二、实验目的:1、熟练掌握 while 语句、 do-while 语句和 for 语句。2、练习并掌握循环结构的嵌套形式。3、掌握循环结构的程序设计方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、从键盘上输入若干个学生的成绩,统计并输出
14、最高成绩和最低成绩,当输入负数时结束输入。 ( 实验指导书 P117)2、求所有的水仙花数。水仙花数是一个 3 位数的自然数,该数各位数的立方和等于该数本身。 ( 实验指导书 P118)3、判断输入的某个数是否为素数。若是,输出 YES,否则输出 NO。( 书 P123)4、计算的近似值。公式如下: /4=1-1/3+1/5-1/7+ ,直到最后一项的绝对值小于10-6 为止。 ( 书 P123)5、计算 s=1!+2!+ +20! 的值并输出。6、输入 10 个整数,统计并输出其中正数、负数和零的个数。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void mai
15、n( ) float x,max,min;printf( “ Please input scores:scanf( “%f” ,&x);max=min=x;while(x=0) if(xmax) max=x;”);if(xmin) min=x;scanf( “ %f”,&x);printf( “ nmax=%fnmin=%fn ”,max,min);2、#include void main( ) int x,y,z; int k=100; while(k=999) x=k/100;y=(k-x*100)/10;z=k-x*100-y*10;if(k=x*x*x+y*y*y+z*z*z)prin
16、tf(k+;“%dn”,k);3、#include #include void main( ) int i,x,yes,a;printf( “ Enter integer number:scanf( “%d” ,&x);yes=1;i=2;a=(int)sqrt(double)x);while(yes&i=a) if(x%i=0)i+;”);yes=0;printf( “ %d” ,x);if(yes)printf( “ YESn”);elseprintf( “ NOn” );4、#include #include void main( ) float pi,t,n; int sign=1;
17、pi=0; n=1; t=1;while(fabs(t)=1e-6) t=sign/n; pi+=t; n+=2; sign=-sign;pi=pi*4;printf( “ pi=%fn ” ,pi);5、#include void main( ) float s=0,t=1; int n; for(n=1;n=20;n+) t=t*n;s=s+t;printf( “ 1!+2!+20!=%fn ” ,s);6、#include void main( ) int x,i,a1=0,b1=0,c1=0; for(i=1;i0) a1+;else if(x0) b1+;else c1+;print
18、f( “整数有 %d个,负数有 %d个,零有 %d个 n ”,a1,b1,c1);实验五 综合实验 1:结构化程序设计 (2 学时 )一、实验方式:一人一机二、实验目的:1、进一步掌握选择结构、循环结构的编程特点。2、掌握 C语言的结构化程序设计思想。3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等) 。三、实验内容:说明:前两题为必做题目,后两题为选做题目。1、编一程序,对于给定的一个百分制成绩, 输出对应 A,B,C,D,E 表示的的等级成绩。 设:90 分以上为 A, 80-89 分为 B,70-79 分为 C, 60-69 分为 D,60 分以下为 E。( 书 P93)2、
19、百马百担问题。 ( 实验指导书 P121)3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。4、输出如下图案: *四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) int score,temp,logic; char grade;logic=1;while(logic) printf(“ Input score: ” ); scanf( “ %d”,&score); if(score100|score0)printf( “nError,Input again!n ”);elselogic=0;printf( “ n ”);i
20、f(score=100)temp=9;elsetemp=score/10;switch(temp) case 9: grade=A;break;case 8: grade=B;break;case 7: grade=C;break;case 6: grade=D;break;default: grade= E ;printf(“ Score is %d,the grade is %c.n” ,score,grade);2、#include void main( ) int m,n,k;int sum=0;printf( “各种驮法如下: n ” );for(m=1;m=100;m+)for(n
21、=1;n=100-m;n+) k=100-m-n; if(k%2=0&m*3+n*2+k/2=100) printf(“大马 %3d匹;中马 %3d匹;小马%3d匹.n” ,m,n,k);sum+;printf(“共有 %d种驮法 .n”,sum);3、#include void main( ) char c;int letter=0,space=0,digit=0,other=0;printf( “请输入一行字符: n ”);while(c=getchar( )!= n ) if(c= a &c= A&c=0&c= 9 )elseother+;printf( “字母数 =%d,空格数 =%d
22、n”,letter,space); printf( “数字数 =%d,其他字符数 =%dn”,digit,other);4、#include void main( ) int i,j,k; for(i=0;i=3;i+) for(j=0;j=2-i;j+)for(k=0;k=2*i;k+)printf(printf(“ ”);“* ”);printf(“ n ”);for(i=0;i=2;i+) for(j=0;j=i;j+) printf(for(k=0;k=4- 2*i;k+) printf(printf( “ n ”);“ ”);“* ”);实验六 函数程序设计 (4 学时 )一、实验方
23、式:一人一机二、实验目的:1、掌握 C语言中函数的三要素:函数定义、函数调用和函数说明。2、掌握通过参数在函数间传递数据的方法。3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、从键盘输入三角形的 3 条边,调用三角形面积函数求出其面积,并输出结果。 ( 实验指导书 P130)2、输入整数 n,输出高度为 n 的等边三角形。当 n=5 时的等边三角形如下: ( 实验指导书P134)*3、输入并运行以下程序,分析运行结果。#include int a=5;int b=7;void main( ) int a=4,b=5,c
24、;c=plus(a,b);printf( “a+b=%dn” ,c);plus(int x,int y) int z; z=x+y; return (z);4、求 500 以内的所有亲密数对。若正整数 A 的所有因子(包括 1 但不包括自身,下同)之和为 B,而 B 的因子之和为 A,则称 A 和 B 为一对亲密数对。 ( 实验指导书 P136) 5、输入并运行以下程序,分析运行结果。#include int d=1;fun(int p) static int d=5; d+=p;printf( “ %d ”,d);return (d);void main( ) int a=3;printf(“ %d ”,fun(a+fun(d);6、设计一个函数,输出整数 n 的所有素数因子。 ( 书 P157)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include #include float area(float a,float b,float c) float s,p,area;s=(a+b+c)/2;p=s*(s-a)*(s-b)*(s-c);area=sqrt(p);return (area);void main( ) float x,y,z,ts;scanf( “%f%f%f”,&x,&y,&z);if(x0&y0&z0&x+yz&y+zx&x+zy) t