1、徐州工程学院 C语言上机实验报告徐州工程学院管理学院实验报告 实验课程名称 : C语言程序设计 实验地点: 南主楼七楼机房 20132014学年(二)学期 2014 年 2 月至 2014 年 6 月 专 业 信息管理与信息系统 班 级 13信管2 学生姓名 徐 志 鹏 学 号 * 指导老师 周 渠 第一章C语言程序设计概述1.1实验目的熟悉C语言,学会编写简单的C语言程序。1.2实验课时上机实验:2个课时1.3实验基本内容1、编写程序,计算两数之和,两数之差。程序:#includevoid main()int m,n,sum1=0,sum2=0;m=10;n=12;sum1=m+n;sum2
2、=m-n;printf(sum1 is %dn,sum1);printf(sum2 is %dn,sum2);getch();运行结果:2、编写程序,计算两个圆面积之差。程序:#includemain()int m=4,n=2;float a=3.1415,sum;sum=(m*m*a)-(n*n*a);printf(%f,sum);getch(); 运行结果:3、编写程序,计算两数相乘相除。程序:#includevoid main()int m,n,sum=0;m=12;n=6;sum=m/n;printf(sum is %dn,sum);getch();运行结果:第二章顺序结构程序设计1.
3、1实验目的掌握C语言的数据类型,基本语句;1.2实验课时上机实验:2个课时1.3实验基本内容1、编写程序,设计一个程序实现英文字母大小写转换。程序:#includemain() char a; a=getchar(); if(a=A & a=a & a=z) a-=32; putchar(a); getch();运行结果:2、编写程序,编程计算存款利息,设本金为a,存款期限为n,年率为p。程序:#include#include main()float a,n,p,m,sum;scanf(%f%f%f,&a,&n,&p);m=pow(1+p,n); /*pow的头文件必须是#include*/s
4、um=a*m-a;printf(%f,sum);getch();运行结果:第三章选择结构程序设计1.1实验目的掌握关系运算符合关系表达式、逻辑运算符和逻辑表达式。掌握if等一系列语句。1.2实验课时上机实验:2个课时1.3实验基本内容1、有一段分段函数,请编写程序:输入x,输出y。程序:#includemain()float x,y;scanf(%f,&x);if(x1)y=x;if(1=x&x=10)y=3*x-1;printf(%f,y);getch();运行结果:2、输入四个整数,要求按大小顺序排列。程序:#includevoid main()int a,b,c,d,t;printf(请
5、输入四个整数);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;printf(%ld,%ld,%ld,%ldn,a,b,c,d);运行结果:第四章循环结构程序设计1.1实验目的掌握for语句;while语句;do-while语句;循环语句的嵌套使用;break和continue语句。1.2实验课时上机实验:2个课时1.3实验基本内容1、求1000以内的所有完全数。程序:#i
6、ncludevoid main()int i,j;int sum;for(i=2;i1000;i+) sum=0;for(j=1;ji;j+)if(i%j=0)sum=sum+j;if(sum=i)printf(%d是完数n,sum);运行结果:2、用循环语句输出数字金字塔。程序:#includevoid main() int i,j,n; for(i=1;i=9;i+) for(n=1;n=9-i;n+) printf( ); for(j=1;j=1;j-) printf(%d,j); printf(n); printf(n); 运行结果:3、编写程序,求出1000以内的水仙花数。程序:#i
7、ncludevoid main() int n,i,j,k; /水仙花数是一个三位数的数 如153=1*1*1+5*5*5+3*3*3 printf(水仙花数有:); for(n=100;n1000;n+) /求水仙花数的过程,i,j,k分别存放这个三位数中的每一位数 i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n=i*i*i+j*j*j+k*k*k) /找出每一位然后判断它每一位数的立方之和是否等于原数,是就输出 printf(%d ,n); printf(n);运行结果:4、编写程序,分别用while循环语句和for循环语句,求出1到100之和。
8、程序:#include main() int i,sum=0; i=1; while(i=100) sum=sum+i;i+; printf(%d/n,sum);运行结果:程序:#includemain() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d/n,sum);运行结果:5、编写程序,求出100以内的偶数和。程序:#includevoid main() int i,sum=0;for(i=1;i=100;i+) if(i%2=0)sum=sum+i;printf(%dn,sum); 运行结果:第五章数组1.2实验目的数组的基本概念
9、;一维数组的应用;二维数组的应用;字符数组和字符串数组;1.2实验课时上机实验:6个课时1.3实验基本内容1、编写程序,利用for语句嵌套计算1+(1+2)+(1+2+3)+.+(1+2+.+10)。程序:#includemain() int a,b,sum1=0; for(a=1;a=10;a+) for(b=1;b=a;b+) sum1=sum1+b; printf(sum1=%dn,sum1); getch(); 运行结果:2、编写程序,利用for语句嵌套计算1!+2!+.+10!。程序:#includevoid main()int i,a=1;int sum =0;for(i = 1;
10、i=10;i+)a = a *i;sum = sum + a;printf(1到10的阶乘和是 %dn,sum); 运行结果:3、编写程序,列出乘法口诀表。程序:#includemain() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%dt,i,j,i*j); printf(n); 运算结果:第六章函数1.3实验目的掌握函数的定义方法,理解函数的类型和返回值,掌握函数生命的方法,掌握局部变量、全局变量、静态变量的作用域和生存期。1.2实验课时上机实验:6个课时1.4实验基本内容1、编写程序,用冒泡排序法实现数组排序。程序:#in
11、cludemain() int a5; int i; int j; int k; int temp; for(k=0;k5;k+) scanf(%d,&ak); for (i=0;i5;i+) for (j=0;jaj+1) temp=aj+1; aj+1=aj; aj=temp; for (i=0;i5;i+) printf(%d ,ai); 运行结果:2、编写程序,设计调用函数,输入两个数,实现加减乘除。程序:#includem()int a,b,sum;scanf(%d%d,&a,&b);sum=a+b;printf(%dn,sum);n()int a,b,sum;scanf(%d%d,
12、&a,&b);sum=a-b;printf(%dn,sum);s()int a,b,sum;scanf(%d%d,&a,&b);sum=a*b;printf(%dn,sum);w()int a,b,sum;scanf(%d%d,&a,&b);sum=a/b;printf(%dn,sum);main()int x;scanf(%d,&x);while(1)if(x=1) m();if(x=2) n();if(x=3) s();if(x=4) w();getch();运行结果:第七章 指针1.5实验目的理解指针的概念、初始化及使用;掌握指针变量、数组指针的概念与使用。1.2实验课时上机实验:6个课
13、时1.3实验基本内容1、编写程序,将一个3*3的矩阵转置,用一个功能函数实现。程序:#includemain() int i,j,t; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) for(j=0;j3;j+) printf(%3d,aij); printf(n); for(i=0;i3;i+) for(j=i;j3;j+) t=aij; aij=aji; aji=t; printf(转置后的矩阵为:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%3d,aij); printf(n); 运行结果: 2、编写程序,利用指针
14、方法实现,输入3个整数,按从大到小排序。程序:#includeint f1(int *p1,int *p2,int *p3) int a,b,c; if(*p1*p2) b=*p2; a=*p1; else a=*p2; b=*p1; if(*p3a) c=b; b=a; a=*p3; else if(*p3b) c=b; b=*p3; else c=*p3; *p1=a;*p2=b;*p3=c;void main() int a,b,c,*pa,*pb,*pc; scanf(%d%d%d,&a,&b,&c); pa=&a; pb=&b; pc=&c; f1(pa,pb,pc); printf
15、(%d %d %d,a,b,c);运行结果:第八章结构体、共用体与枚举1.6实验目的掌握结构体类型的定义、结构体数组的定义、链表的定义、共用体与结构体;枚举类型;用typedef定义类型。1.2实验课时上机实验:6个课时1.3实验基本内容1、编写程序,定义一个结构体变量(包括年、月、日)。编写一个函数days,计算该日期在本年中是第几天(注意闰年问题)。由主函数将年月日传递给days函数,计算之后,将结果传回到主函数输出。程序:#include int days(struct datetime); main() int count_day; struct datetime date; prin
16、tf(请输入年月日:n); scanf(%d%d%d,&date.year,&date.month,&date.day); count_day=days(date); printf(日期%d/%2d/%2d是%d的第%d天n,date.year,date.month,date.day,date.year,count_day); int days(struct datetime date) int result=0; int year=date.year,month=date.month,day=date.day; switch(month-1) case 12: result+=31; cas
17、e 11: result+=30; case 10: result+=31; case 9: result+=30; case 8: result+=31; case 7: result+=31; case 6: result+=30; case 5: result+=31; case 4: result+=30; case 3: result+=31; case 2: if(year%400=0|year%100!=0&year%4=0) result+=28; else result+=29; case 1: result+=31; result+=day;/加上对应的月份的天数 return result; 运行结果:2、编写程序,共用体。程序:#includemain()union dataint a;float b;double c;char d; mm ;mm.a=6;printf(%dn,mm.a);mm.c=67.2;printf(%5.1lfn,mm.c);mm.d=W;mm.b=34.2;printf(%5.1f,%cn,mm.b,mm.d);运行结果: