C语言实验报告.docx

上传人:b****5 文档编号:3911733 上传时间:2022-11-26 格式:DOCX 页数:49 大小:444.09KB
下载 相关 举报
C语言实验报告.docx_第1页
第1页 / 共49页
C语言实验报告.docx_第2页
第2页 / 共49页
C语言实验报告.docx_第3页
第3页 / 共49页
C语言实验报告.docx_第4页
第4页 / 共49页
C语言实验报告.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

C语言实验报告.docx

《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(49页珍藏版)》请在冰豆网上搜索。

C语言实验报告.docx

C语言实验报告

实验一熟悉C开发环境和C程序的上机步骤

实验二基本数据类型及数据的输入输出

实验三运算符及表达式

实验四顺序结构程序设计

实验五选择结构程序设计

实验六循环结构程序设计

实验七数组及其应用

实验八函数及其应用

实验九指针及其应用

 

实验

(一)熟悉C开发环境和C程序的上机步骤

实验时间:

 2012.4.2  同组人员:

      

实验目的:

1.了解TurboC++3.0编译系统,熟悉各菜单的功能,掌握在该系统上的编辑,编译,连接和运行一个C程序的方法。

2.通过调试,运行简单的C程序,初步了解C语言源程序的特点。

实验内容

1.编写一个C程序,求一个圆的面积。

2.编写程序求任意三个数中的最大值。

实验步骤

实验1:

1.首先,求一个圆的面积,必须有一个常量3.14和一个变量半径r。

2.其次,要对定义的变量及常量一个数据类型int。

3.再利用公式s=3.14*r*r就可以求出所要求的圆的面积s。

#include

voidmain()

{

intr,s;

scanf("%d",&r);

s=3.14*r*r;

printf("%d\n",s);

}

实验2:

1.首先确定要输入的数的数据类型int。

2.其次,要针对不同的数作具体分析,要考虑到每一种情况,利用与的逻辑运算符对不同的情况作分析,例如当x>y&&Y>z时与x>z&&Z>y时的比较,此时最大的值都是x。

3.最后可以根据比较的过程输出需要的结果。

4.在输入的时候,只需输入三个符合规定的字符。

然后enter就可以比较出结果了。

#include

voidmain()

{

intx,y,z,c;

scanf("%d,%d,%d",&x,&y,&z);

if(x>y&&y>z)

c=x;

if(y>x&&x>z)

c=y;

if(z>x&&x>y)

c=z;

if(x>z&&z>y)

c=x;

if(y>z&&z>x)

c=y;

if(z>y&&y>x)

c=z;

printf("%d\n",c);

}

实验结果分析

实验1:

求圆的面积分析:

1.在数据类型上的选择问题要注意,若定义的是整型int,则输出的时候格式符也必须是%d。

2.输入时的变量一定要取整,否则输出的结果会出现无法运行的状况。

3.对于常量的使用,可以先定义#define,也可以直接用。

对于结果是一样的,只是若需要重复多次的用到常量,那么较好的办法还是先定义再使用。

实验2:

输出最大数分析:

在比较三个数的大小,找出最大的值中,运用到的是if语句和逻辑表达式,在判断if表达式内的逻辑表达式,如果是真,就执行语句将比较的最大值赋值给t,如果是假的,就不需要执行,接着判断下一个表达式。

指导教师评阅

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:

1.对于课本上的教材案例,了解对符号常量的运用,调试运行程序例3.1

#definePRICF30

#include

voidmain()

{

intnum,total;

num=10;

total=num*PRICF;

printf("total=%d\n",total);

}

2.通过对整型变量的定义与使用的了解,调试运行例3.2

#include

voidmain()

{

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);

}

3.对整形数据的溢出的理解,调试运行例3.3

#include

voidmain()

{

inta,b;

a=32767;

b=a+1;

printf("%d,%d\n",a,b);

}

4.浮点型数据的舍入误差,例3.4

#include

voidmain()

{

floata,b;

a=123456.789e5;

b=a+20;

printf("%f\n",b);

}

5.通过对转义字符的使用,调试程序例3.5

#include

voidmain()

{

printf("abc\tde\rf\tg\n");

printf("h\ti\b\bjk\n");

}

6.将字符类型进行更改,实现对字符变量赋予整数,调试例3.6

#include

voidmain()

{

charc1,c2;

c1=97;

c2=98;

printf("%c%c\n",c1,c2);

printf("%d%d\n",c1,c2);

}

7.例3.7通过对小写字符型数据的加减运算,实现大小写字母的转换。

#include

voidmain()

{

charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

printf("%c%c",c1,c2);

}

实验2:

3.7

1.首先,需要将China的每一个字符c1,c2,c3,c4,c5的字符定义好。

2.然后再分别对每一个字符进行复合的赋值运算,对每一个字符进行+=4的操作。

3.再依次输出赋值运算后的字符。

#include

voidmain()

{

charc1='c',c2='h',c3='i',c4='n',c5='a';

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

3.8:

将字符型换为整型,输入程序,输出结果。

#include

voidmain()

{

intc1,c2;

c1=97;

c2=98;

printf("%c%c\n",c1,c2);

printf("%d%d\n",c1,c2);

}

实验结果分析

实验1:

例3.1分析:

字符常量PRICF先定义为30,在total=num*PRICF中调用PRICF的值30即可,运算结果没有问题。

例3.2分析:

负数的输入要确保它是有符号整型的输入,因此定义为int型,而进行加减时可以直接用到字符常量,运算结果是正确的。

例3.3分析:

一个整型变量只能容纳-32768~32767范围内的数,若大于32767,系统不会报错,达到最大值后又从最小值开始,因此运行结果为-32768.

例3.4分析:

在这个运算中,浮点型数据的运算,将一个很大的数与一个很小的数直接相加或相减,这样结果就丢失了小的数。

例3.5分析:

转义字符的运用,可以灵活的更改位置,达到我们所需要的效果。

例3.6分析:

这个程序是可以直接把97,98两个整数存放在c1,c2的内存单元中,而c1='a',c2='b',则是将‘a’‘b’转换成ASCII码97,98,然后存放到内存单元中。

当用格式符%c时,输出的就是就直接是字符。

例3.7分析:

每一个小写字母都比它相应的大写字母的ASCII值大32,因此在这里只需要将小写字母减去32就可以得到值。

实验2:

3.8分析:

查看相应的ASCII码可以知道,变化之前的字符的ASCII值与变化后的字符的ASCII小4,因此要得到结果,就是将原来的字符进行复合的赋值运算加4就可以得到正确的值。

3.9分析:

将数据类型字符型改为整型后,运算结果没有问题,说明在输出范围内,用整型和字符型作用是一样的。

指导教师评阅

1、实验态度:

不认真( ),较认真( ),认真( )

2、实验目的:

不明确( ),较明确( ),明确( )

3、实验内容:

不完整( ),较完整( ),完整( )

4、实验步骤:

混乱( ),较清晰( ),清晰( )

5、实验结果:

错误( ),基本正确( ),正确( )

6、实验结果分析:

无( ),不充分( ),较充分( ),充分( )

7、其它补充:

总评成绩:

评阅教师(签字):

评阅时间:

实验(三)  运算符及表达式  

实验时间:

2012.4.16同组人员:

      

实验目的

1.掌握算数运算符,自增自减运算符,赋值运算符,关系运算符,逻辑运算符,条件运算符,逗号运算符,位运算符的功能及对运算对象的要求。

2.掌握各运算符的优先级和结合性。

3.熟悉自动类型转换的规则和强制类型转换。

实验内容

1.调试运行例3.8

2.若有定义intx,y,a,b,c;写出顺序执行下列表达式后x的值,然后通过程序验证。

要求:

先写出运算结果,然后利用程序验证。

3.若有定义inta=2,b=-3,c=4,x=2,y=3;计算下列各表达式的值,然后通过程序验证。

4.完成教材P67页3.9~3.12并上机验证其正确性。

5.完成教材P111页5.3并上机验证其正确性。

实验步骤

实验1:

1.首先定义数据x的数据类型为浮点型float,然后定义i的数据类型为整型。

2.通过强制类型转换把x的数据类型改为整型,然后对i求余。

3.最后通过运算,通过对i的数据类型查看就可以知道强制类型转换是否成功。

#include

voidmain()

{

floatx;

inti;

x=32767.0;

i=(int)x%3;

printf("x=%f,i=%d\n",x,i);

}

实验2:

1.先根据已知条件写出运算结果。

2.在第一个赋值表达式中,只需要将最开始的值赋10值于x就可以了。

3.另外的表达式,有多个不同的运算符类型,针对不同的算术表达式,要根据不同的优先级进行运算,才可以得到正确的值。

#include

voidmain()

{

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);

}

实验3:

1.先根据已知条件写出运算结果。

2.根据提供的程序上机操作验证结果是否正确。

#include

voidmain()

{

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)=%b\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);

}

实验4:

3.9:

先根据已经条件求出运算结果,在这个3.9算术表达式中,首先应该计算的是强制类型转换,按照题目转换成整型或浮点型,然后再按照计算先乘除后加减的顺序,求出最后的结果。

(1):

#include

voidmain()

{

floatx=2.5,y=4.7;

inta=7,sum;

sum=x+a%3*(int)(x+y)%2/4;

printf("sum=%d\n",sum);

}

(2):

include

voidmain()

{

floatx=3.5,y=2.5,sum;

inta=2,b=3;

sum=(float)(a+b)/2+(int)x%(int)y%y;

printf("sum=%f\n",sum);

}

3.10:

算术表达式中,进行自增自减运算,求出结果。

#include

voidmain()

{

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n);

}

3.11:

首先定义输入的数据的类型,然后根据需要输出不同的数据类型字符型,无符号型还有长整型。

#include

voidmain()

{

inta,b,c,d,e,f,g;

scanf("%d,%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&e,&f,&g);

printf("%c%u%ld\n",a,a,a);

printf("%c%u%ld\n",b,b,b);

printf("%c%u%ld\n",c,c,c);

printf("%c%u%ld\n",d,d,d);

printf("%c%u%ld\n",e,e,e);

printf("%c%u%ld\n",f,f,f);

printf("%c%u%ld\n",g,g,g);

}

3.12:

在3.12的这几个算术表达式中,都是复合的赋值运算表达式,只需要在每个表达式之前定义a的值为12就可以了。

#include

voidmain()

{

inta=12,n=5;

printf("a+=a=%d\n",a+=a);

a=12;

printf("a-=2=%d\n",a-=2);

a=12;

printf("a*=2+3=%d\n",a*=2+3);

a=12;

printf("a/=a+a=%d\n",a/=a+a);

a=12,n=5;

printf("a%=(n%=2)=%d\n",a%=(n%=2));

a=12;

printf("a+=a-=a*=a=%d\n",a+=a-=a*=a);

}

实验5:

1.在这个逻辑表达式中,需要根据不同的运算符的优先级情况计算结果,不同的优先级情况是!

>算术运算符>关系运算符>&&,||>赋值运算符。

2.再上机验证其结果的正确性。

#include

voidmain()

{

inta,b,c,x,y;

a=3,b=4,c=5;

printf("a+b>c&&b==c%d\n",a+b>c&&b==c);

printf("a||b+c&&b-c%d\n",a||b+c&&b-c);

printf("!

(a>b)&&!

c||1%d\n",!

(a>b)&&!

c||1);

printf("!

(x=a)&&(y=b)&&0%d\n",!

(x=a)&&(y=b)&&0);

printf("!

(a+b)+c-1&&b+c/2%d\n",!

(a+b)+c-1&&b+c/2);

}

实验结果分析

实验1:

例3.8分析:

强制类型转换符的优先级是高于%的,所以先执行转换。

实验2:

调试1分析:

实验结果与完成计算成果一致,在计算过程中注意了不用的运算符的优先级,因此计算运算表达式时应时刻牢记各运算符的优先级先后顺序。

实验3:

调试2分析:

该题与上一题类似,都是需要牢记各运算符的优先级先后顺序!

>算术运算符>关系运算符>&&,||>赋值运算符,以确保结果正确。

 

实验4

P673.9

(1)分析:

强制类型转换较%,优先级在前,应该先执行,这样的结果运行正确。

也可以将强制类型转换先作为一个运算执行,再加入到运算表达式中运算,结果也正确,

P673.9

(2)分析:

强制类型转换较%和/,优先级在前,应该先执行。

在这个结果中可以看到,浮点型数据与整型数据相加结果应该为浮点型,在格式符的选择上应该注意。

P673.10分析:

从实验结果可以看出:

j的初始值为10,然后进行自增运算后,j的值为11,而n的值10,说明j++是j的值先赋值给n,再进行加1.而++i却不一样,它是先自己加1再赋值给m。

P683.12分析:

根据复合的赋值运算符的算法,就可以求出答案,应该注意的是每个式子都要先定义a的值,否则系统会将上一题的运算结果的a值作为下一题的a起始值带进去运算。

 

实验5:

分析:

计算逻辑表达式的值,应该要注意逻辑运算符的优先级。

指导教师评阅

1、实验态度:

不认真( ),较认真( ),认真( )

2、实验目的:

不明确( ),较明确( ),明确( )

3、实验内容:

不完整( ),较完整( ),完整( )

4、实验步骤:

混乱( ),较清晰( ),清晰( )

5、实验结果:

错误( ),基本正确( ),正确( )

6、实验结果分析:

无( ),不充分( ),较充分( ),充分( )

7、其它补充:

总评成绩:

评阅教师(签字):

评阅时间:

 

实验(四)   顺序结构程序设计

实验时间:

 2012.4.23 同组人员:

      

实验目的

1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺序执行时的特点。

2.掌握赋值语句的特点,功能。

实验内容

1.已知三角形的底和高,求三角形的面积。

2.若已知某银行一年定期的存款年利率,输入存款额,计算三年后本利之和并输出。

3.写出下列程序的输出结果。

#include

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);

}

实验步骤

实验1:

1.首先,求一个三角形的面积,必须有底a和高b这两个变量。

2.其次,要对定义的变量一个字符类型int。

3.再利用公式s=1.0/2*(a*b)就可以求出所要求的三角形的面积s.

#include

voidmain()

{

inta,b,s;

scanf("%d,%d",&a,&b);

s=1.0/2*(a*b);

printf("s=%d\n",s);

}

实验2:

1.首先,求一个存款三年的本息之和sum,必须先确定好输入的本金的数据类型int。

2.通过已知的年利率0.3,利用公式sum=a*(1+0.3)*(1+0.3)+(1+0.3)即可求出三年的本息之和sum。

#include

voidmain()

{

inta,sum;

scanf("%d",&a);

sum=a*(1+0.3)*(1+0.3)*(1+0.3);

printf("%d",sum);

}

实验3:

1.首先程序存在以下几个错误:

大写字母的定义与后来用到的小写字母没有联系,需要将大写字母改写成小写字母。

2.还有c的常量定义是没有任何用处的,因此没有必要对c进行定义。

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1