中南民族大学信管C语言实验报告.docx
《中南民族大学信管C语言实验报告.docx》由会员分享,可在线阅读,更多相关《中南民族大学信管C语言实验报告.docx(39页珍藏版)》请在冰豆网上搜索。
中南民族大学信管C语言实验报告
中南民族大学管理学院
学生实验报告
课程名称:
C语言程序设计
姓 名:
微博@song-style是坏学长
学 号:
年 级:
2011
专 业:
信息管理与信息系统
指导教师:
实验地点:
管理学院综合实验室
2011学年至2012学年度第2学期
实验一熟悉C开发环境和C程序的上机步骤
实验二基本数据类型及数据的输入输出
实验三运算符及表达式
实验四顺序结构程序设计
实验五选择结构程序设计
实验六循环结构程序设计
实验七数组及其应用
实验八函数及其应用
实验九指针及其应用
微博@song-style是坏学长
实验
(一)熟悉C开发环境和C程序的上机步骤
实验时间:
2012.4.2 同组人员:
实验目的
1、了解TurboC++3.0编译系统,熟悉各菜单的功能,掌握系统上编辑、编译、连接和运行一个C程序的方法。
2、通过调试、运行简单的C程序,初步了解C语言源程序的特点。
实验内容
1.编写一个C程序,求一个圆的面积。
2.编写程序求任意三个数中的最大值
实验步骤
1、编写程序:
求一个圆的面积
求任意三个数中的最大值
#include
#include
main()
{
floata,b,c,d,area;
scanf("%f%f%f",&a,&b,&c);
d=1.0/2*(a+b+c);
area=sqrt(d*(d-a)*(d-b)*(d-c));
printf("a=%7.2f,b=%7.2f,d=%7.2f\n",a,b,c,d);
printf("area=%7.2f\n",area);
}
#include
main()
{intmax(intx,inty,intz);
inta,b,c,d;
scanf("%d%d%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
intmax(intx,inty,intz)
{
intu;
if(x>y&&x>z)u=x;
if(y>x&&y>z)u=y;
elseu=z;
return(u);
}
2、调试程序。
程序运行结果正常。
实验结果分析
1、经验算,程序运行结果正确。
2、编写C语言程序的时候需要细心的操作,即使一点小小的错误程序也极可能达不到最初的目的
3、截图及具体分析:
(输入345)
程序运行结果正确。
(输入4525458)
程序运行结果正确。
指导教师评阅
1、实验态度:
不认真( ),较认真( ),认真( )
2、实验目的:
不明确( ),较明确( ),明确( )
3、实验内容:
不完整( ),较完整( ),完整( )
4、实验步骤:
混乱( ),较清晰( ),清晰( )
5、实验结果:
错误( ),基本正确( ),正确( )
6、实验结果分析:
无( ),不充分( ),较充分( ),充分( )
7、其它补充:
总评成绩:
评阅教师(签字):
评阅时间:
实验
(二)基本数据类型及数据的输入输出
实验时间:
2012.4.9同组人员:
实验目的
1.了解C语言的数据类型,掌握整型、字符型、实型变量定义的方法、赋值的方法。
2.掌握常用的输入输出函数的使用方法,掌握各种格式说明符的功能并能熟练使用。
3.进一步熟悉C程序的编辑、编译和运行的过程。
实验内容
1.调试运行教材例3.1-3.7,深入理解C语言的数据类型。
2.编程实现课本第67页习题3.7和3.8。
实验步骤
1、编写程序;
#definePRICE30
#include
main()
{
intnum,total;
num=10;
total=num*PRICE;
printf("total=%d\n",total);
}
#include
main()
{
inta,b,c,d;
unsignedu;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf("a+u=%d,b+u=%d\n",c,d);
}
#include
main()
{
inta,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
#include
main()
{
floata,b;
a=123456.789e5;
b=a+20;
printf("%f\n",b);
}
#include
main()
{
printf("abc\tde\rf\tg\n");
printf("h\ti\b\bjk\n");
}
#include
main()
{
charc1,c2;
c1=97;
c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}
#include
main()
{
charc1,c2;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
printf("%c%c",c1,c2);
}
习题3.7
习题3.8
#include
main()
{
charc1='C',c2='h',c3='i',c4='n',c5='a';
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c4+4;
printf("Password:
%c%c%c%c%c\n",c1,c2,c3,c4,c5);}
#include
main()
{
intc1,c2;
c1=97;
c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}
2、调试程序;
程序运行结果正常。
实验结果分析
1、经验算程序运行结果正确;
2、各种数据类型的定义、使用方法与特点均是不一样,错误的定义数据类型很可能导致程序的错误。
3、真实感受:
c语言刚学的时候挺枯燥的TT……
4、截图及具体分析:
3.1
1.程序运行结果正确;
2.常量一改全改,可有少减少错误。
3.2
1.程序运行结果正确;
2不同种类的整型数据可以进行算术运算。
3.3
1.程序运行结果正确;
2.整型数据会溢出,需考虑数据的范围。
3.4
1.程序运行结果正确;
2.浮点型数据有效数字为7位。
3.5
1.程序运行结果正确;
2.转义字符可控制输入过程且打印时不显示。
3.6
1.程序运行结果正确;
2.将97、98分别赋给c1、c2。
3.7
1.程序运行结果正确;
2.字符数据和整数可直接进行算术运算。
习题3.7
1.程序运行结果正确;
2.输出的字符可根据需要自由决定。
习题3.8
1.程序运行结果正确;
2.字符数据占一个字节,整型数据占两个字节。
指导教师评阅
1、实验态度:
不认真( ),较认真( ),认真( )
2、实验目的:
不明确( ),较明确( ),明确( )
3、实验内容:
不完整( ),较完整( ),完整( )
4、实验步骤:
混乱( ),较清晰( ),清晰( )
5、实验结果:
错误( ),基本正确( ),正确( )
6、实验结果分析:
无( ),不充分( ),较充分( ),充分( )
7、其它补充:
总评成绩:
评阅教师(签字):
评阅时间:
实验(三) 运算符及表达式
实验时间:
2012.4.16同组人员:
实验目的
1.掌握算术运算符、自增自减运算符、运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符、位运算符的功能及对运算对象的要求。
2.掌握各运算符的优先级和结合性。
3.熟悉自动类型转换的规则及强制类型转换。
实验内容
1.调试运行例3.8;
2.完成教材P67页3.9-3.12并上机验证其正确性;
3.完成教材P111页5.3并上机验证其正确性;
4.若有定义intx,y,a,b,c;,写出顺序执行下列表达式后x的值,然后通过程序验证。
要求:
先写出运算结果,然后利用程序验证。
①x=a=b=10
②y=x=25%(c=3)
③y+=2+3
④x/=(x+(y%=2),(a&&5+3))
⑤x*=x+=x-=x
⑥x=((a=4%3,a!
=1),++y>10)
验证程序:
main()
{
intx,y,a,b,c;
x=a=b=10;
printf("x=%d\n",x);
y=x=25%(c=3);
printf("x=%d,y=%d\n",x,y);
y+=2+3;
printf("y=%d\n",y);
x/=(x+(y%=2),(a&&5+3));
printf("x=%d\n",x);
x*=x+=x-=x;
printf("x=%d\n",x);
x=((a=4%3,a!
=1),++y>10);
printf("x=%d\n",x);
}
5.若有定义inta=2,b=-3,c=4,x=2,y=3;,计算下列各表达式的值,然后通过程序验证。
要求:
先写出运算结果,然后利用程序验证。
①a>b&&b>c
②!
(b>c)+(b!
=x)||(a+b)
③a++-c+y
④++a-c+++b
⑤b%=c+a-c/7
⑥(float)(a+b)/2+y
⑦!
(a==b+c)&&(x-a)
⑧!
c+1+c&&b+c/2
验证程序:
main()
{inta,b,c,x=2,y=3;
a=2;b=-3;c=4;
printf("a>b&&b>c=%d\n",a>b&&b>c);
a=2;b=-3;c=4;
printf("!
(b>c)+(b!
=x)||(a+b)=%d\n",!
(b>c)+(b!
=x)||(a+b));
a=2;b=-3;c=4;
printf("a++-c+y=%d\n",a++-c+y);
a=2;b=-3;c=4;
printf("++a-c+++b=%d\n",++a-c+++b);
a=2;b=-3;c=4;
printf("b%%=c+a-c/7=%d\n",b%=c+a-c/7);
a=2;b=-3;c=4;
printf("(float)(a+b)/2+y=%f\n",(float)(a+b)/2+y);
a=2;b=-3;c=4;
printf("!
(a==b+c)&&(x-a)=%d\n",!
(a==b+c)&&(x-a));
a=2;b=-3;c=4;
printf("!
c+1+c&&b+c/2=%d\n",!
c+1+c&&b+c/2);
}
实验步骤
1、编写程序:
3.8
3.9
(1)
#include
main()
{
floatx;
inti;
x=32767.0;
i=(int)x%3;
printf("x=%f,i=%d\n",x,i);
}
#include
main()
{
floatx,y,z;
inta;
a=7;x=2.5;y=4.7;
z=x+a%3*(int)(x+y)%2/4;
printf("z=%f",z);
}
3.10
3.9
(2)
#include
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
#include
main()
{
inta=2,b=3;
floatx=3.5,y=2.5,z;
z=(float)(a+b)/2+(int)x%(int)y;
printf("z=%f\n",z);
5.3
5.验证
#include
main()
{
inta=3,b=4,c=5,d1,
d2,d3,d4,d5,x,y;
d1=a+b>c&&b==c;
d2=a||b+c&&b-c;
!
(a>b)&&!
c||1;
d4=!
(x=a)&&(y=b)&&0;
d5=!
(a+b)+c-1&&b+c/2;
printf("d1=%d,d2=%d,
d3=%d,d4=%d,d5=%d",d1,d2,d3,d4,d5);
}
main()
{inta,b,c,x=2,y=3;
a=2;b=-3;c=4;
printf("a>b&&b>c=%d\n",
a>b&&b>c);
a=2;b=-3;c=4;
printf("!
(b>c)+(b!
=x)||(a+b)=%d\n",
!
(b>c)+(b!
=x)||(a+b));
a=2;b=-3;c=4;
printf("a++-c+y=%d\n",
a++-c+y);
a=2;b=-3;c=4;
printf("++a-c+++b=%d\n",
++a-c+++b);
a=2;b=-3;c=4;
printf("b%%=c+a-c/7=%d\n",
b%=c+a-c/7);
a=2;b=-3;c=4;
printf("(float)(a+b)/2+y=%f\n",
(float)(a+b)/2+y);
a=2;b=-3;c=4;
printf("!
(a==b+c)&&(x-a)=%d\n",
!
(a==b+c)&&(x-a));
a=2;b=-3;c=4;
printf("!
c+1+c&&b+c/2=%d\n",
!
c+1+c&&b+c/2);
}
2、调试程序:
程序运行正常。
实验结果分析
1、验算结果正确;
2、运算符的类型有很多种,必须熟悉各运算符的优先级和结合性,以免出现技术性错误。
3、要注意强制型运算符的使用。
4、截图及具体分析:
3.8
1.程序运行结果正确;
2.强制运算符可将表达式转为所需类型。
3.91
1.程序运行结果正确;
2.强制运算符可将表达式转为所需类型。
3.92
1.程序运行结果正确;
2.强制运算符可将表达式转为所需类型。
3.10
1.程序运行结果正确;
2.运算符的应用使输入过程简易。
5.3
1.程序运行结果正确;
2.运算符使运算简单但是也容易让人出错。
验证
1.程序运行结果正确;
2.运算符啊……
指导教师评阅
1、实验态度:
不认真( ),较认真( ),认真( )
2、实验目的:
不明确( ),较明确( ),明确( )
3、实验内容:
不完整( ),较完整( ),完整( )
4、实验步骤:
混乱( ),较清晰( ),清晰( )
5、实验结果:
错误( ),基本正确( ),正确( )
6、实验结果分析:
无( ),不充分( ),较充分( ),充分( )
7、其它补充:
总评成绩:
评阅教师(签字):
评阅时间:
实验(四) 顺序结构程序设计
实验时间:
2012.4.23 同组人员:
实验目的
1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。
2.掌握赋值语句的特点、功能。
实验内容
1.己知三角形的底和高,求三角形的面积。
2.若己知某银行一年定期的存款年利率,输入存款额,计算三年后本利之和并输出。
3.写出下列程序的输出结果。
要求:
先写出输出结果,然后利用程序验证。
#include"stdio.h"
Voidmain()
{inta=65,b=67,c=67;
floatx=67.8564,y=-789.124;
charC='A';
longn=1234567;
unsignedu=65535;
putchar(c);
putchar('\t');
putchar(c+32);
putchar(a);
putchar('\n');
printf("%d%d\n",a,b);
printf("%c%c\n",a,b);
printf("%3d%3d\n",a,b);
printf("%f,%f\n",x,y);
printf("%-10f,%-10f\n",x,y);
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
printf("%e,%10.2e\n",x,y);
printf("%c,%d,%o,%x\n",c,c,c,c);
printf("%ld,%lo,%lx\n",n,n,n);
printf("%u,%o,%x,%d\n",u,u,u,u);
printf("%s,%5.3s\n","COMPUTER","COMPUTER");
}
4.根据输入,写出下列程序的输出结果。
要求:
先写出输出结果,然后利用程序验证。
#include
Voidmain()
{chara,*p1=&a;
intb,*p2=&b;
floatc,*p3=&c;
a=getchar();
putchar(*p1);
putchar('\t');
putchar(a>='a'&&a<='z'?
a-32:
a);
putchar('\n');
getchar();
scanf("%c%d%f",&a,&b,&c);
printf("a=%cb=%dc=%.2f\n",a,b,c);
getchar();
scanf("a=%cb=%dc=%f",p1,p2,p3);
printf("a=%db=%cc=%.2f\n",a,b,c);
}
输入:
a↙
输出:
输入:
b□65□3.1234↙
输出:
输入:
a=b□b=65□c=3.1234↙
输出:
实验步骤
1、编写程序:
三角形的面积
本利之和
#include
main()
{
inta,h,area;
scanf("%d%d",&a,&h);
area=1.0/2*a*h;
printf("area=%d\n",area);
}
#include
main()
{
floatmoney,total;
scanf("%f",&money);total=money*(1+0.02)*(1+0.02)*(1+0.02);
printf("total=%2f",total);
}
验证1
验证2
#include"stdio.h"
Voidmain()
{inta=65,b=67,c=67;
floatx=67.8564,y=-789.124;
charC='A';
longn=1234567;
unsignedu=65535;
putchar(c);
putchar('\t');
putchar(c+32);
putchar(a);
putchar('\n');
printf("%d%d\n",a,b);
printf("%c%c\n",a,b);
printf("%3d%3d\n",a,b);
printf("%f,%f\n",x,y);
printf("%-10f,%-10f
\n",x,y);
printf("%8.2f,%8.2f,
%.4f,%.4f,%3f,
%3f\n",x,y,x,y,x,y);
printf("%e,%10.2e\n",x,y);
printf("%c,%d,%o,%x\n",c,c,c,c);
printf("%ld,%lo,%lx\n",n,n,n);
printf("%u,%o,%x,%d\n",u,u,u,u);
printf("%s,%5.3s\n","COMPUTER",
"COMPUTER");}
#include
Voidmain()
{chara,*p1=&a;
intb,*p2=&b;
floatc,*p3=&c;
a=getchar();
putchar(*p1);
putchar('\t');
putchar(a>='a'&&a<='z'?
a-32:
a);
putchar('\n');
getchar();
scanf("%c%d%f",&a,&b,&c);
printf("a=%cb=%dc=%.2f\n",a,b,c);
getchar();
scanf("a=%cb=%dc=%f",p1,p2,p3);
printf("a=%db=%cc=%.2f\n",a,b,c);
}
2、调试程序:
运行正常。
实验结果分析
1、验算结果正确;
2、顺序结构的程序执行是顺次执行的,简单明了。
3、但是它也有局限性。
大量循环输入时显得麻烦。
4、截图及具体分析:
三角形的面积
(输入34)
1.程序运行结果正确;
2.注意“1.0”的使用。
本利之和设定年利率为0.2,(输入2300)
1.程序运行结果正确;
验证1
1.程序运行结果正确;
验证2
1.程序运行结果正确;
指导教师评阅
1、实验态度:
不认真( ),较认真( ),认真( )
2、实验目的:
不明确( ),较明确( ),明确( )
3、实验内容:
不完整( ),较完整( ),完整( )
4、实验步骤:
混乱( ),较清晰( ),清晰( )
5、实验结果:
错误( ),基本正确( ),正确( )
6、实验结果分析:
无( ),不充分( ),较充分( ),充分( )
7、其它补充:
总评成绩:
评阅教师(签字):
评阅时间:
实验(五) 选择结构程序设计
实验时间:
2012.4.30 同组人员:
实验目的
1.掌握选择结构程序的设计思想,领会选择结构中控制语句与程序执行流程的关系。
2.了解和掌握单分支选择结构(if语句)、双分支选择结构(if-else语句)、多分支选择结构(switch语句)的实现。
3.掌握嵌套的if语句。
实验内容
1.调试运行例5.6。
2.