人人范文网 范文大全

c语言实验报告

发布时间:2020-03-02 11:27:48 来源:范文大全 收藏本文 下载本文 手机版

实验一 熟悉C语言程序的运行环境

一、实验目的

1、了解在该系统上如何编辑、编译、连接和运行一个C 程序;

2、通过运行简单的C程序,初步了解C程序的特点。

二、实验预习

1、认真阅读简单的C程序介绍,C程序上机步骤部分内容;

2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。

如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。初学者特别忌讳

上机前自己不编写程序,到时随便地抄别人的程序。

三、实验指导

1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。 (1)选择File->New,使编辑窗口变成空白 (2)输入下面的程序(例题1.1) #include void main( ) { printf("This is a C program.\n"); } (3)按功能键【F9】进行编译和连接,观察屏幕上显示的编译信息。如果出现“出错 信息”,则应找出原因并改正之,再进行编译。

(4)如果编译无错误,按【Ctrl+F9】键使程序运行,按【Alt+F5】键,切换到用户 屏,观察分析运行结果。

2、输入并运行一个需要在运行时输入数据的程序 (1)清空编辑窗口,输入下面的程序(例题1.2)。 #include void main( ) { int a,b,c ; printf("input a & b:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d",c); } int max(int x,int y) { int z ; if(x>y)z=x ; else z=y ; return(z); } (2)编译并运行,在运行时从键盘输入整数2 和5,格式为:2, 5(注意:两数据间 用逗号分隔开),然后按回车键,按【ALT+F5】键,观察运行结果。 (3)自己试着改动一些数据或输入格式,再运行,观察结果作比较。

四、实验内容

1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。

2、试编写一程序完成如下信息的显示。 ********************************** "How are you!" **********************************

3、编写一个C 程序(习题1.6):输入a, b, c 三个值,输出其中最大者。 根据上述题目要求编程并上机调试运行。

五、实验报告要求

实验结束后,应整理实验报告,其内容应包括:

1、实验题目

2、设计思路

3、写出程序源代码

4、写出程序运行结果

5、对实验结果进行分析、总结

六、设计思路

1.5题:以main为主函数,对三条语句进行编码,分别输出,即可达到所要求的结果。 1.6题:以main为主函数,先输入三个整形十进制数,任取其一,与其它两个中的任一进行对比,取其最大,再与剩余的一个进行对比,可得最大。

七、源程序清单 1.5题:

#include main() {

printf("\n**********************\n"); printf(" "how are you"\n"); printf("**********************\n"); } 1.6题:

#include main() { int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

八、分析、总结、及心得

通过本次实验让我学会c程序的编写应注意的一些细节,理解一些简单程序的编写方法。

实验二 数据类型,运算符与表达式

一、实验目的

1、掌握C 语言数据类型,,以及对它们赋值的方法;

2、掌握不同的数据类型之间赋值的规律;

3、学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用;

4、进一步熟悉C 程序的编辑、编译、连接和运行的过程。

二、实验预习

1、认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。

三、实验指导

1、输入并运行下面的程序: #include void main( ) { int a,b ; unsigned c,d ; long e,f ; a=100 ; b=-100 ; e=50000 ; f=32767 ; c=a ; d=b ; printf(“%d,%d \n ”,a,b); printf(“%u,%u \n ”,a,b); printf(“%u,%u \n ”,c,b); c=a=e ; d=b=f ; printf(“%d,%d \n ”,a,b); printf(“%u,%u \n ”,c,d); } 请对照程序和运行结果分析:

(1)将一个负整数赋给一个无符号的变量,会得到什么结果。

(2)将一个大于32767 的长整数赋给整形变量,会得到什麽结果。

(3)将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。

同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b = -40000, e = 65535,f = 65580。

2、输入下面程序: #include void main( ) { int i,j,m,n ; i=8 ; j=10 ; m=++i ; n=j++; printf("%d,%d,%d,%d",i,j,m,n); } (1)运行程序,注意i,j,m,n 各变量的值,分别作以下改动并运行。 (2)将第3 行中m, n 的值改为:m=i++; n=++j; 再运行。 (3)将程序改为: #include void main( ) { int i, j; i=8; j=10; printf(“%d,%d”, i++, j++); } 运行并分析结果。

(4)在(3)的基础上,将printf 语句改为:

printf(“%d,%d”, ++i, ++j); 运行并分析结果。 (5)再将printf 语句改为:

printf(“%d,%d,%d,%d”, i, j, i++, j++); 运行并分析结果。 (6)将程序改为: #include void main( ) { int i,j,m=0,n=0 ; j=10 ; i=8 ; m+=i++; n-=--j ; printf("i=%d, j=%d, m=%d, n=%d",i,j,m,n); } 运行并分析结果。

四、实验内容

1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。

2、试编一程序实现输入长宽高,计算长方体的表面积。

3、按习题3.7 的要求编程序并上机运行,该题的要求是:

要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母“A”后面第4 个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c

1、c

2、c

3、c

4、c5 五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c

1、c

2、c

3、c

4、c5 分别变为’G’、’l’、’m’、’r’、’e’、,并输出。

(1)输入编好的程序,并运行该程序。分析是否符合要求。

五、实验结果 1题:

(1):100,-100 100,65436 100,65436 (2):-15536,32767 (3):5000,32767 2题:

(1):9,119,10 (2):9,11,8,11 (3):8,10 (4):9,11 (5):9,11,8,10 (6):i=9,j=9,m=8,n=-9

六、源程序清单 四.2题

#include void main() { float a,b,c,s; scanf("%f,%f,%f",&a,&b,&c); s=2*a*b+2*a*c+2*b*c; printf("s=%.2f",s); } 3题

#include void mian() { char c1='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); }

七、分析、总结、及心得

通过本次的实验,熟悉如何定义一个整型、字符型和实型的变量,掌握算术运算符的使用,以及包含这些运算符的表达式,特别是自加和自减运算符的使用,学会一些简单程序编写所注意的问题。

实验三 简单C程序设计

一、实验目的

1、掌握C 语言中赋值语句的使用方法;

2、掌握不同类型数据的输入输出方法,能正确使用各种格式转换符;

二、实验预习

1、认真阅读数据的输入输出部分内容。

三、实验指导

1、从键盘输入两个0 到127 的整数,求两数的平方差并输出其值以及这两个整数的ASCII 码对应的字符。

(1)算法分析:标准ASCII 码值范围是0 到127,所以在这范围内的数可以以字符形式输出,实现方法是用格式输出函数并用格式符c 控制输出。 (2)根据结果书写源程序 #include void main( ) { int x,y,sub ; scanf("%d%d",&x,&y);/* 变量前一定要加取地址符& */ sub=x*x-y*y ; printf("%c,%c,%d",x,y,sub); } (3)在C 编辑环境下编辑源程序。 (4)编译【F9】,直到程序没有错误。 (5)运行【Ctrl+F9】,从键盘输入: 100 50↙

注意输入时两数间应以空格间隔,不能用逗号,只有源程序输入函数中两格式符以逗号间隔时输入才可以是:100,50↙ (6)查看结果【Alt+F5】

2、输入程序

#include void main( ) { int a,b ; float d,e ; char c1,c2 ; double f,g ; long m,n ; unsigned int p,q ; a=61; b=62 ; c1='a'; c2='b'; d=3.56;e=-6.87;f=3157.890121;g=0.123456789; m=50000 ;n=-60000 ; p=32768 ;q=40000 ; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } (1)运行程序并分析结果。

(2)在此基础上,修改程序的第7~11 行: a=61; b=62; c1=a; c2=b; f=3157.890121; g=0.123456789 d=f; e=g; p=a=m=50000; q=b=n= - 60000; 运行程序,分析结果。 (3)将printf 语句改为:

printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,a,b,c1,c2,d,e); printf(“f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n”,f,g,m,n,p,q); 运行程序,分析结果。

(4)将p、q 改用%o 格式符输出。运行程序,分析结果。

四、实验内容

1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。

2、本节实验题目:

(1)若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'。想得到以下的输出格式和结果,请写出程序。 要求输出结果如下:(注意空格的输出) a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1='a' or 97(ASCII) c2='B' or 98(ASCII) (2)假设m是一个三位数,试编写一程序完成将m的个位,十位,百位反序输出(例如:123反序输出为321)。

五、实验结果

三、1:

d,2,7500

2、(1): a=61,b=62 c1=a,c2=b d= 3.56,e= -6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000 (2): a=-15536,b=5536 c1==,c2=> d=3157.89,e= 0.12 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=50000,q=5536 (3): c1==,c2=> d= 3157.890137,e= 0.123456791043 f=3157.890121,g=0.123457 m=-15536,n=0 p=5536,q=-1 (4): a=15536,b=5536 c1==,c2=> d= 3157.890137,e= 0.123456791043 f=3157.890121,g=0.123457 p=12640,q=177777

六、源程序清单 2(1): #include void main() { int a=3,b=4,c=5; long int u=51274,n=128765; float x=1.2,y=2.4,z=-3.6; char c1='a',c2='b'; printf("a=%2d b=%2d c=%2d\n",a,b,c); printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x); printf("u=%6ld n=%9ld\n",u,n); printf("%s %s %d%s\n","c1='a'","or",c1,"(ASCII)"); printf("%s %s %d%s\n","c2='B'","or",c2,"(ASCII)");

} (2:) #include void main() { int a,b; scanf("%d",&a); b=a/100+a%100/10*10+a%10*100; printf("%d",b);

}

七、分析、总结、及心得

在本次实验中,学会了赋值语句的使用方法,不同类型数据的输入输出,尤其是某些空格应特别注意,了解了在scanf语句中不能用\n,这也是我一直犯的错误。

实验四 选择结构程序设计

一、实验目的

1、学会正确使用逻辑运算符及逻辑表达式;

2、熟练掌握if 语句与switch 语句;

二、实验预习

1、认真阅读if 语句和switch 语句部分内容。

2、编写好所需要的程序。

三、实验指导

1、输入三角形的三边长,判断这个三角形是否是直角三角形。

(1)算法分析:直角三角形斜边最长,要先找出三边中最长的边,判断最长边的平方 是否等于其余两边的平方和,若相等就是直角三角形。 根据分析结果书写源程序。 #include void main( ) { int a,b,c,t ;/* 三边设为a,b,c,t 是用于交换的中间变量*/ scanf("%d,%d,%d",&a,&b,&c); if(a

t=a ;

a=b ;

b=t ; }/* a 中放a,b 中较长边*/ if(a

t=a ;

a=c ;

c=t ; }/* a 中放a,b,c 中的最长边*/ if(a*a==b*b+c*c)

printf("Y"); else

printf("N"); } (2)编辑源程序 (3)编译【F9】,直到没有错误。 (4)运行【Ctrl+F9】,输入: 3,4,5↙

(5)查看结果【Alt+F5】,输出: Y

四、实验内容

1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。

2、本节实验题目:

(1)给出一个百分制成绩,要求输出成绩等级A、B、C、D。90 分以上为A,80~89分为B,70~79 分为C,60~69 分为D,60 分以下为E。

①事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。

②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。

③修改程序,使之能正确处理任何数据。当输入数据大于100 或小于0 时,通知用户“输入数据错”,程序结束。

(2)给出一个不多于5位的正整数,要求:①求出它是几位数。②分别打印出每一位数。③按逆序打印出各位数字。

五、简述编程思路

2.1.1首先写一段程序(switch语句)来对不是所要求的输入的判断与执行,其次写出主要要执行的语句对于switch要求用break跳出,if则不同,

六、源程序清单 2.1.1:(用switch) #include void main() { float a; char b; printf("please input a score:"); scanf("%f",&a); while(a100) { printf("input error");

scanf("%f",&a); } switch((int)a/10) {

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:b='E';break;

case 6:b='D';break;

case 7:b='C';break;

case 8:b='B';break;

case 9:

case 10:b='A'; }

printf("b=%c\n",b);

} 2.1.2:(用if)

#include void main() { float a; char b; printf("please input a score:"); scanf("%f",&a); while(a100) { printf("input error");

scanf("%f",&a); } if(a>=0&&a

b='E'; else if (a>=60&&a

b='D'; else if (a>=70&&a

b='C'; else if (a>=80 &&a

b='B'; else

b='A';

printf("b=%c\n",b);

} 2.2: #include void main() { long int a; long int g,s,b,q,w,f,place; scanf("%ld",&a); while(a>99999) { printf("input error"); scanf("%ld",&a); } if(a>9999) place=5; else if (a>999) place=4; else if(a>99) place=3; else if(a>9) place=2; else place=1; printf("%d\n",place); g=a%10; s=a%100/10; b=a%1000/100; q=a%10000/1000; w=a/10000; printf("%ld,%ld,%ld,%ld,%ld\n",g,s,b,q,w); f=a%10*10000+a%100/10*1000+a%1000/100*100+a%10000/1000*10+a/10000; printf("f=%ld\n",f);

}

七、实验心得

通过本次实验,明白了if和switch的联系,以及长整形在打印时注意的地方,学会使用逻辑运算符及逻辑表达式。

实验五 循环控制

一、实验目的

1.熟练掌握for 语句、while 语句、do-while 语句实现循环的方法; 2.理解循环嵌套及其使用方法;

3.掌握break 语句与continue 语句的使用;

4.掌握用循环实现一些常用算法(如穷举、迭代、递推等)。

二、实验预习1.认真阅读本章教材中循环控制部分.2.编写好所需要的程序。

三、实验指导 1.打印如下图案

* * *

* * * * * * * * * * * *

(1)算法分析:从图案中找出行数,空格数,星号数间的关系如下: 行数空格数星号数 1 3 1 2 2 3 3 1 5 4 0 7 i 4-i 2*i-1 可用双重循环控制整个图案的输出。若用循环变量i,j 分别控制外层,内层循环,则 i 的取值从1 到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,

星号个数是2*i-1。

(2)根据分析结果写出源程序 #include void main( ) { int i,j ; /*定义循环控制变量*/ for(i=1;i

(6)查看结果【Alt+F5】。输出题目要求的图案。

四、实验内容

1.在C 编辑环境下编辑实验指导中给出的程序,编译并运行。 2.要求学生独立完成如下题目:

(1)输出100到1000之间的所有水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

(2)输入一行字符,分别统计出其中英文字母、空格、数字 和其他字符的个数。

(3)试利用图形函数完成极坐标函数ρ=cos(3*X)图像的绘制。【进阶题目,选做】 根据以上题目要求编程并上机调试运行。

五、编程思路

2(1)对一个数字每一位的输出的前提下在利用一个if语句即可。 2(2)先明白英文字母、空格、数字的ASCII,在用if函数即可。

六、程序运行结果 2(1):

#include #include void main() { int a=100,g,s,b; while(a>=100&&a

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

a++; }

} (2):

#include void main() { char c; int i=0,j=0,k=0,l=0; while((c=getchar())!='\n') {

if(c>=65&&c96&&c

i++;

else if(c>=48&&c

j++;

else if(c==32)

k++;

else

l++; } printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);

} (3):

#include #include #define PI 3.1415926

int main() { int gdriver, gmode; float p,x,px,py,zx,zy; gdriver=VGA; gmode=VGAHI; initgraph(&gdriver, &gmode, "c: c"); for(x=0;x

p=cos(3*x);

zx=p*cos(x);

zy=p*sin(x);

px=320+zx*100;

py=240-zy*100;

putpixel(px,py,14); }

getch(); closegraph(); return 0; }

七、实验总结、心得

通过本次实验,理解了一些循环语句的选择、运用,对一些简单循环的嵌套有了更进一步的理解。

C语言实验报告

C语言实验报告

C语言实验报告

C语言实验报告

c语言实验报告

C语言实验报告

C语言实验报告

c语言实验报告

c语言 实验报告

c语言实验报告

c语言实验报告
《c语言实验报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档