徐州工程学院C语言上机实验报告.docx
《徐州工程学院C语言上机实验报告.docx》由会员分享,可在线阅读,更多相关《徐州工程学院C语言上机实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
![徐州工程学院C语言上机实验报告.docx](https://file1.bdocx.com/fileroot1/2023-5/20/a1e1ba63-206a-48c9-9caa-a7288546897c/a1e1ba63-206a-48c9-9caa-a7288546897c1.gif)
徐州工程学院C语言上机实验报告
徐州工程学院
管理学院实验报告
实验课程名称:
C语言程序设计
实验地点:
南主楼七楼机房
2013—2014学年
(二)学期
2014年2月至2014年6月
专业信息管理与信息系统
班级13信管2
学生姓名徐志鹏
学号***********
指导老师周渠
第一章 C语言程序设计概述
1.1 实验目的
熟悉C语言,学会编写简单的C语言程序 。
1.2 实验课时
上机实验:
2个课时
1.3 实验基本内容
1、编写程序,计算两数之和,两数之差。
程序:
#include
voidmain()
{
intm,n,sum1=0,sum2=0;
m=10;n=12;
sum1=m+n;
sum2=m-n;
printf("sum1is%d\n",sum1);
printf("sum2is%d\n",sum2);
getch();
}
运行结果:
2、编写程序,计算两个圆面积之差。
程序:
#include
main()
{
intm=4,n=2;
floata=3.1415,sum;
sum=(m*m*a)-(n*n*a);
printf("%f",sum);
getch();
}
运行结果:
3、编写程序,计算两数相乘相除。
程序:
#include
voidmain()
{
intm,n,sum=0;
m=12;n=6;
sum=m/n;
printf("sumis%d\n",sum);
getch();
}
运行结果:
第二章 顺序结构程序设计
1.1 实验目的
掌握C语言的数据类型,基本语句;
1.2 实验课时
上机实验:
2个课时
1.3 实验基本内容
1、编写程序,设计一个程序实现英文字母大小写转换。
程序:
#include
main()
{
chara;
a=getchar();
if(a>='A'&&a<='Z')
a+=32;
elseif(a>='a'&&a<='z')
a-=32;
putchar(a);
getch();
}
运行结果:
2、编写程序,编程计算存款利息,设本金为a,存款期限为n,年率为p。
程序:
#include
#include
main()
{
floata,n,p,m,sum;
scanf("%f%f%f",&a,&n,&p);
m=pow(1+p,n);/*pow的头文件必须是#include*/
sum=a*m-a;
printf("%f",sum);
getch();
}
运行结果:
第三章 选择结构程序设计
1.1 实验目的
掌握关系运算符合关系表达式、逻辑运算符和逻辑表达式。
掌握if等一系列语句。
1.2 实验课时
上机实验:
2个课时
1.3 实验基本内容
1、有一段分段函数,请编写程序:
输入x,输出y。
程序:
#include
main()
{
floatx,y;
scanf("%f",&x);
if(x<1)
{y=x;}
if(1<=x&&x<10)
{y=2*x-1;}
if(x>=10)
{y=3*x-1;}
printf("%f",y);
getch();
}
运行结果:
2、输入四个整数,要求按大小顺序排列。
程序:
#include
voidmain()
{
inta,b,c,d,t;
printf("请输入四个整数");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf("%ld,%ld,%ld,%ld\n",a,b,c,d);
}
运行结果:
第四章 循环结构程序设计
1.1实验目的
掌握for语句;while语句;do-while语句;循环语句的嵌套使用;break和continue语句。
1.2 实验课时
上机实验:
2个课时
1.3 实验基本内容
1、求1000以内的所有完全数。
程序:
#include
voidmain()
{
inti,j;
intsum;
for(i=2;i<1000;i++)
{
sum=0;
for(j=1;j
if(i%j==0)
sum=sum+j;
if(sum==i)
printf("%d是完数\n",sum);
}
}
运行结果:
2、用循环语句输出数字金字塔。
程序:
#include
voidmain()
{
inti,j,n;
for(i=1;i<=9;i++)
{
for(n=1;n<=9-i;n++)
printf("");
for(j=1;j
printf("%d",j);
for(j=i;j>=1;j--)
printf("%d",j);
printf("\n");
}
printf("\n");
}
运行结果:
3、编写程序,求出1000以内的水仙花数。
程序:
#include
voidmain()
{
intn,i,j,k;//"水仙花数"是一个三位数的数如153=1*1*1+5*5*5+3*3*3
printf("水仙花数有:
");
for(n=100;n<1000;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之和。
程序:
#include
main()
{
inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;i++;}
printf("%d/n",sum);
}
运行结果:
程序:
#include
main()
{
inti,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d/n",sum);
}
运行结果:
5、编写程序,求出100以内的偶数和。
程序:
#include
voidmain()
{
inti,sum=0;
for(i=1;i<=100;i++)
if(i%2==0)
sum=sum+i;
printf("%d\n",sum);
}
运行结果:
第五章 数组
1.2实验目的
数组的基本概念;一维数组的应用;二维数组的应用;字符数组和字符串数组;
1.2 实验课时
上机实验:
6个课时
1.3 实验基本内容
1、编写程序,利用for语句嵌套计算1+(1+2)+(1+2+3)+...+(1+2+...+10)。
程序:
#include
main()
{
inta,b,sum1=0;
for(a=1;a<=10;a++)
{
for(b=1;b<=a;b++)
sum1=sum1+b;
}
printf("sum1=%d\n",sum1);
getch();
}
运行结果:
2、编写程序,利用for语句嵌套计算1!
+2!
+......+10!
。
程序:
#include
voidmain()
{
inti,a=1;
intsum=0;
for(i=1;i<=10;i++)
{
a=a*i;
sum=sum+a;
}
printf("1到10的阶乘和是%d\n",sum);
}
运行结果:
3、编写程序,列出乘法口诀表。
程序:
#include
main()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d\t",i,j,i*j);
}
printf("\n");
}
}
运算结果:
第六章 函数
1.3实验目的
掌握函数的定义方法,理解函数的类型和返回值,掌握函数生命的方法,掌握局部变量、全局变量、静态变量的作用域和生存期。
1.2 实验课时
上机实验:
6个课时
1.4实验基本内容
1、编写程序,用冒泡排序法实现数组排序。
程序:
#include
main()
{
inta[5];
inti;
intj;
intk;
inttemp;
for(k=0;k<5;k++)
scanf("%d",&a[k]);
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
}
运行结果:
2、编写程序,设计调用函数,输入两个数,实现加减乘除。
程序:
#include
m()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d\n",sum);
}
n()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a-b;
printf("%d\n",sum);
}
s()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a*b;
printf("%d\n",sum);
}
w()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a/b;
printf("%d\n",sum);
}
main()
{
intx;
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个课时
1.3 实验基本内容
1、编写程序,将一个3*3的矩阵转置,用一个功能函数实现。
程序:
#include
main()
{
inti,j,t;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("转置后的矩阵为:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
运行结果:
2、编写程序,利用指针方法实现,输入3个整数,按从大到小排序。
程序:
#include
intf1(int*p1,int*p2,int*p3)
{
inta,b,c;
if(*p1>*p2)
{
b=*p2;
a=*p1;
}
else
{
a=*p2;
b=*p1;
}
if(*p3>a)
{
c=b;
b=a;
a=*p3;
}elseif(*p3>b)
{
c=b;
b=*p3;
}
elsec=*p3;
*p1=a;*p2=b;*p3=c;
}
voidmain()
{
inta,b,c,*pa,*pb,*pc;
scanf("%d%d%d",&a,&b,&c);
pa=&a;
pb=&b;
pc=&c;
f1(pa,pb,pc);
printf("%d%d%d",a,b,c);
}
运行结果:
第八章 结构体、共用体与枚举
1.6实验目的
掌握结构体类型的定义、结构体数组的定义、链表的定义、共用体与结构体;枚举类型;用typedef定义类型。
1.2 实验课时
上机实验:
6个课时
1.3 实验基本内容
1、编写程序,定义一个结构体变量(包括年、月、日)。
编写一个函数days,计算该日期在本年中是第几天(注意闰年问题)。
由主函数将年月日传递给days函数,计算之后,将结果传回到主函数输出。
程序:
#include
intdays(structdatetime);
main()
{
intcount_day;
structdatetimedate;
printf("请输入年月日:
\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);
}
intdays(structdatetimedate)
{
intresult=0;
intyear=date.year,month=date.month,day=date.day;
switch(month-1)
{
case12:
result+=31;
case11:
result+=30;
case10:
result+=31;
case9:
result+=30;
case8:
result+=31;
case7:
result+=31;
case6:
result+=30;
case5:
result+=31;
case4:
result+=30;
case3:
result+=31;
case2:
{if(year%400==0||year%100!
=0&&year%4==0)
result+=28;
else
result+=29;}
case1:
result+=31;
}
result+=day;//加上对应的月份的天数returnresult;
}
运行结果:
2、编写程序,共用体。
程序:
#include
main()
{
uniondata
{
inta;
floatb;
doublec;
chard;
}mm;
mm.a=6;
printf("%d\n",mm.a);
mm.c=67.2;
printf("%5.1lf\n",mm.c);
mm.d='W';
mm.b=34.2;
printf("%5.1f,%c\n",mm.b,mm.d);
}
运行结果: