C语言上机实验答案_第1页
C语言上机实验答案_第2页
C语言上机实验答案_第3页
C语言上机实验答案_第4页
C语言上机实验答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 上机操作初步(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(“*n”); printf(“ Very Goodn”); printf(“*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( ) double x,s; printf(“

3、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; y=t; printf(“

4、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 main( ) int i,j; i=8; j=10; print

5、f(“%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 PI 3.14 void main( ) float r1,r2; double s1,s2,s; printf(“Please

6、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=5.0/9*(h-32); printf(“n摄氏温度:%fn”,c);3、#include void main( ) int a,b,c,x,y; printf(“请输入一个3位的正整数:n”); scanf(“%d”,&x); a=x/100; /*求x的百位数

7、*/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=(double)(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%.2l

8、fn”,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)/3.0; printf(“(a+b+c)/3=%.2fn”,x); 实验三 选择结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、熟练掌握if语句和switch语句。2、练习并掌握多分支选择结构的编程方法。3、学习调试和修改程序的步骤。三、实验内容: 说明:前三题为必做题目,后两题为选做题目。1、读入3个分别表示箱子长、宽、高

9、的整数值,判断并输出该箱子是立方体还是长方体。(实验指导书P104)2、输入某一年月,输出该月的天数。(实验指导书P105)3、有一函数: x (x1)y= 2x-1 (1x10) 3x-11 (x10) 编写程序,输入x值,输出y值。4、从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。(书P94)5、输入4个整数,要求按由小到大的顺序输出。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) int l,w,h; printf(“请输入箱子的长、宽、高:n”);

10、 scanf(“%d%d%d”,&l,&w,&h); if(l=w&w=h) /*如果长、宽、高相等,则为立方体*/ printf(“该箱子是立方体。”); else printf(“该箱子是长方体。”); 2、#include void main( ) int year,month,days; printf(“Please enter year and month:n”); switch(month) case 2: if(year%4=0&year%100!=0|year%400=0) days=29; else days=28; break; case 1:case 3:case 5:c

11、ase 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(“Please input x:n”); scanf(“%f”,&x); if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(“y=%fn”,y);4、#include void main( ) char

12、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(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; pri

13、ntf(“排序结果如下:n”); printf(“%d,%d,%d,%dn”,a,b,c,d);实验四 循环结构程序设计(4学时)一、实验方式:一人一机二、实验目的:1、熟练掌握while语句、do-while语句和for语句。2、练习并掌握循环结构的嵌套形式。3、掌握循环结构的程序设计方法。三、实验内容: 说明:前四题为必做题目,后两题为选做题目。1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。(实验指导书P117)2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身。(实验指导书P118)3、判断输入的某个数是否为素数。若

14、是,输出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 main( ) 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;

15、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) printf(“%dn”,k); k+; 3、#include #include void main( ) int i,x,yes,a; printf(“Enter integer number:”); scanf(“%d”,&x); yes=1; i

16、=2; a=(int)sqrt(double)x); while(yes&i=a) if(x%i=0) yes=0; i+;printf(“%d”,x);if(yes) printf(“YESn”);else printf(“NOn”); 4、#include #include void main( ) float pi,t,n; int sign=1; 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(

17、) 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+;printf(“整数有%d个,负数有%d个,零有%d个n”,a1,b1,c1); 实验五 综合实验1:结构化程序设计(2学时)一、实验方式:一人一机二、实验目的:1、进一步掌握选择结构、循环结构的编程特点。2、掌握C语言的结构化程序设计思想。3、学习利用循环结

18、构实现的一些常用算法(如穷举、迭代、递推等)。三、实验内容: 说明:前两题为必做题目,后两题为选做题目。1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设:90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(书P93)2、百马百担问题。(实验指导书P121)3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。4、输出如下图案: * * * * * * *四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) int score,temp,logic; char

19、grade;logic=1;while(logic) printf(“Input score:”); scanf(“%d”,&score); if(score100|score0) printf(“nError,Input again!n”); else logic=0; printf(“n”);if(score=100) temp=9;else temp=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:

20、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=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

21、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) digit+;else other+;printf(“字母数=%d,空格数=%dn”,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+) printf(“ ”);for(k=0;k=2*i;k+)

22、 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学时)一、实验方式:一人一机二、实验目的:1、掌握C语言中函数的三要素:函数定义、函数调用和函数说明。2、掌握通过参数在函数间传递数据的方法。3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。三、实验内容: 说明:前四题为必做题目,后两题为选做题目。1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。(实验指导书P

23、130)2、输入整数n,输出高度为n的等边三角形。当n=5时的等边三角形如下:(实验指导书P134) * * * * *3、输入并运行以下程序,分析运行结果。 #include int a=5;int b=7; void main( ) int a=4,b=5,c; 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、输入并运行以下程序

24、,分析运行结果。 #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); a

25、rea=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) ts=area(x,y,z); printf(“area=%fn”,ts);else printf(“data error!n”); 2、#include void trangle(int n) int i,j; for(i=0;in;i+) for(j=0;j=n-i;j+) putchar( ); /*打印每一行的空格*/ for(j=0;j=2*i;j+) putchar

26、(*); /*打印每一行的*号*/ putchar(n);void main( ) int n; printf(“Please enter n:”); scanf(“%d”,&n); printf(“n”); trangle(n);3、a+b=94、#include int facsum(int m) int sum=1,f=2; while(f=m/2) if(m%f=0) sum=sum+f; f+;return sum;void main( ) int m=3,n,k; while(m=500) n=facsum(m); k=facsum(n); if(m=k&m=n) printf(“

27、%d,%dn”,m,n); m+; 5、6 15 156、#include int prime(int n) int i,flag=1; for(i=2;i=n/2;i+) if(n%i=0) flag=0; retun flag;return flag;void factor(int n) int i; i=2; while(i=n) if(n%i=0)&prime(i) printf(“%d ”,i); n=n/i; continue; i+; void main( ) int num; printf(“Enter num:”); scanf(“%d”,&num); printf(“pri

28、me factor is:n”); factor(num);实验七 数组程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握数组的定义、赋值和输入输出的方法。2、学习用数组实现相关的算法(特别是排序算法)。3、掌握C语言中字符数组和字符串处理函数的使用。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( ) int i,n,a10,avg; for(i=0;in;i+) scanf(“%d

29、”,ai); for(i=0;in;i+) if(i%3=0) printf(“n”); printf(“%d ”,ai);for(i=0;in;i+) avg+=ai;printf(“navg=%fn”,avg);2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。(实验指导书P147)3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。(实验指导书P153)4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。5、给定某年某月某日,将其转换成这一年的第几天并输出。(实验指导书P152)6、编写程序,在有序的数列

30、中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。(书P191)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include void main( ) int i,n=10,a10;float avg=0; for(i=0;in;i+) scanf(“%d”,&ai); for(i=0;in;i+) if(i%3=0) printf(“n”); printf(“%d ”,ai);for(i=0;in;i+) avg+=ai;avg=avg/n;printf(“navg=%fn”,avg);2、#include void sort1(int s ,int n

31、) int i,j; int t; for(i=0;i=i+1;j-) if(sjsj-1) t=sj;sj=sj-1;sj-1=t; void main( ) int i,a10; printf(“Please input 10 numbers:n”);for(i=0;i10;i+) scanf(“%d”,&ai);sort1(a,10);printf(“The sorted 10 numbers:n”);for(i=0;i10;i+) printf(“%d ”,ai); 3、#include #include #define N 40void main( ) char strN,ch=Y;

32、 int i; int len; printf(“Input a string:n”); scanf(“%s”,str); len=strlen(str); for(i=0;ilen/2;i+) if(stri!=strlen-1-i) ch=N; break; if(ch=Y) printf(“%s是一个回文数n”,str); else printf(“%s不是一个回文数n”,str);4、#include void main( ) int a33,sum; int i,j; sum=0; for(i=0;i3;i+) for(j=0;j3;j+) scanf(“%d”,&aij); for

33、(i=0;i3;i+) sum=sum+aii; printf(“sum=%dn”,sum); 5、#include int day_tab213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31; int day_year(int year,int month,int day) int i,j,s=0; if(year%4=0&year%100!=0|year%400=0) i=1; else i=0; for(j=1;jmonth;j+) s=s+day_tabij; return (s+

34、day); void main( ) int y,m,d; printf(“Input year,month and day:n”); scanf(“%d%d%d”,&y,&m,&d); printf(“是这年的第%d天n”,day_year(y,m,d);6、#include #define N 10 void main( ) int aN; int num,i; char ch=n; printf(“请输入一个数组:n”); for(i=0;iN;i+) scanf(“%d”,&ai); printf(“输出数组:n”); for(i=0;iN;i+) printf(“%d ”,ai);

35、printf(“n”); printf(“请输入一个数:n”); scanf(“%d”,&num); printf(“开始查找n”); for(i=0;iN;i+) if(num=ai) ch=y; printf(“%d在数组的第%d位n”,num,i+1); if(ch=n) printf(“no foundn”);实验八 指针程序设计(2学时)一、实验方式:一人一机二、实验目的:1、通过实验进一步掌握指针的概念,会定义和使用指针变量。2、能正确使用指向数组和字符串的指针变量。3、熟悉指针作为函数参数的编程特点。三、实验内容:说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。1、

36、指针基础及指针运算。(实验指导书P168)2、输入3个整数,按从小到大的次序输出。 (书P234)3、数据交换。实验要求:1)定义两个函数,分别为void swap1(int a,int b)和void swap2(int *a,int *b),用于交换a,b的值。2)从主函数中分别输入两个整型变量a、b。3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。(实验指导书P169)4、编写一个程序计算字符串长度的函数,模拟C的函数库内的计算字符串长度的函数strlen( )。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include #include #defin

37、e N 5void main( ) int *p,*q,aN; int i,tmp; p=a; q=(int *)malloc(N*sizeof(int); printf(“Please input the first group:”); for(i=0;iN;i+) scanf(“%d”,p+i); /*使用指针p输入a的N个元素*/ printf(“Please input the second group:”); for(i=0;iN;i+) scanf(“%d”,&qi); /*使用数组输入指针q地址上的N个整数*/ for(i=0;i*(q+i) tmp=*(p+i); *(p+i)

38、=*(q+i); *(q+i)=tmp; 交换 printf(“Result:n”); for(i=0;iN;i+) printf(“%d ”,*(a+i); /*按指针输出第一组数*/ printf(“n”); for(i=0;iN;i+) printf(“%d ”,qi); /*按数组输出第二组数*/ printf(“The memory address of p,a,q are:%x,%x,%xn”,p,a,q); free(q);2、#include void swap(int *p1,int *p2) int p; p=*p1; *p1=*p2; *p2=p;void main( ) int n1,n2,n3; int *p1,*p2,*p3; printf(“Please input three integer datas:”); scanf(“%d%d%d”,&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1n2) swap(p1,p2); if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论