《C语言程序设计》实验报告.docx

上传人:b****0 文档编号:9038359 上传时间:2023-05-16 格式:DOCX 页数:45 大小:28.83KB
下载 相关 举报
《C语言程序设计》实验报告.docx_第1页
第1页 / 共45页
《C语言程序设计》实验报告.docx_第2页
第2页 / 共45页
《C语言程序设计》实验报告.docx_第3页
第3页 / 共45页
《C语言程序设计》实验报告.docx_第4页
第4页 / 共45页
《C语言程序设计》实验报告.docx_第5页
第5页 / 共45页
《C语言程序设计》实验报告.docx_第6页
第6页 / 共45页
《C语言程序设计》实验报告.docx_第7页
第7页 / 共45页
《C语言程序设计》实验报告.docx_第8页
第8页 / 共45页
《C语言程序设计》实验报告.docx_第9页
第9页 / 共45页
《C语言程序设计》实验报告.docx_第10页
第10页 / 共45页
《C语言程序设计》实验报告.docx_第11页
第11页 / 共45页
《C语言程序设计》实验报告.docx_第12页
第12页 / 共45页
《C语言程序设计》实验报告.docx_第13页
第13页 / 共45页
《C语言程序设计》实验报告.docx_第14页
第14页 / 共45页
《C语言程序设计》实验报告.docx_第15页
第15页 / 共45页
《C语言程序设计》实验报告.docx_第16页
第16页 / 共45页
《C语言程序设计》实验报告.docx_第17页
第17页 / 共45页
《C语言程序设计》实验报告.docx_第18页
第18页 / 共45页
《C语言程序设计》实验报告.docx_第19页
第19页 / 共45页
《C语言程序设计》实验报告.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计》实验报告.docx

《《C语言程序设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告.docx(45页珍藏版)》请在冰点文库上搜索。

《C语言程序设计》实验报告.docx

《C语言程序设计》实验报告

 

《C语言程序设计》实验报告

 

班级

姓名

学号

指导教师

实验一

实验项目名称:

C程序的运行环境和运行C程序的方法

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.了解在VisualC++6.0环境下如何编辑、编译、连接和运行一个C程序;

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

二、预习内容:

教材《C语言程序设计教程》第1章。

三、实验内容:

1.在VisualC++6.0环境下输入并运行下面的程序:

#include

intmain()

{

printf("ThisisaCprogram.\n");

return0;

}

2.在VisualC++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include

intmain()

{

inta,b,sum

a=3;

b=4;

sun=a+b;

print(“%d+%d=%d\n”,a,b,sum);

return0;

}

 

四、实验结果:

1.运行结果(或截图):

ThisisaCprogram.

Pressanykeytocontinue

 

2.

(1)改正后的源程序:

 

#include

intmain()

{

inta,b,sum;

a=3;

b=4;

sum=a+b;

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

return0;

}

 

(2)运行结果(或截图):

3+4=7

 

五、思考题:

1.一个C程序上机的步骤有哪些?

答:

上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。

2.组成C程序的基本单位是函数,一个函数包括哪几个部分?

答:

一个函数包括两部分:

分别为函数头或函数首部和函数体。

成绩指导教师签名

实验二

实验项目名称:

数据类型、运算符和表达式

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握整型、实型与字符型这三种基本类型的概念;

2.掌握常量及变量的使用方法;

3.掌握基本算术运算符及其表达式的使用方法;

4.掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:

教材《C语言程序设计教程》第2章。

三、实验内容:

1.在VisualC++6.0环境下输入下面的程序,编译、连接、调试该程序。

main()

{

charm,n;

m=280;

n=320;

printf(“%d\t%d\n”,m,n);

printf(“%c\t%c\n”,m,n);

}

2.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

intmain()

{

inta=3,b=4,c=8;

floatd,e;

d=a+b/c;

e=a+(float)b/c;//请将此处d改为b

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

}

3.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

main()

{

inta,b,c,d,i,j,m,n;

a=b=c=d=3;

i=a++;

j=++b;

m=c--;

n=--d;

printf("a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);

}

4.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

main()

{

inta=4;

a+=a-=a*a+a;

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

}

四、实验结果:

1.运行结果(或截图):

2464

@

 

2.运行结果(或截图):

d=3.000000,e=3.500000

d=3.000000,e=3.375000

 

3.运行结果(或截图):

a=4,b=4,c=2,d=2,i=3,j=4,m=3,n=2

 

4.运行结果(或截图):

a=-32

 

五、思考题:

1.给变量命名应该注意哪些问题?

答:

每个变量必须进行数据类型说明;

 

2.程序2的运行结果中,d和e的值为什么不同?

答:

d的赋值语句中,除法是两个整型数字的运算,其结果没有小数位;而e中对b进行了强制转换为实型,所以其除法运算结果有小数位。

 

 

3.程序3的运行结果中,i和j的值为什么不同?

m和n的值为什么不同?

//改为程序3

答:

i(m)是通过后自增(后自减)实现的,而后自增(后自减)是先参与其他运算,后对变量递增(递减);

而j(n)是通过前自增(前自减)实现的,其是先对变量递增(递减),后再参与其他运算。

 

4.请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。

答:

先将a-(a*a+a)赋值给a,再将a+a赋值给a。

 

成绩指导教师签名

实验三

实验项目名称:

简单的输入输出及顺序程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);

2.掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);

3.掌握编写顺序程序的方法。

二、预习内容:

教材《C语言程序设计教程》第3章。

三、实验内容:

1.编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。

main()

{inta,b;

floats;

scanf(“%d,%d”,&a,&b);

s=2.0*a*b/(a+b)/(a+b);

printf(“s=%f\n”,s);

}

①输入并调试。

②将scanf函数改为scanf(“%d%d”,&a,&b);再编译,运行。

③观察结果。

2.在VisualC++6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。

#include

intmain()

{

inta,b,sum;

printf("请输入第一个整数:

");

scanf("%d",&a);

printf("请输入第二个整数:

");

scanf("%d",&b);

sum=a+b;

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

}

3.设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。

要求用scanf语句输入半径,输出时取小数点后两位。

四、实验结果:

1.

输入数据

4,5

输入修改后的数据

45

4↙5↙

运行结果

s=0.493827

运行结果

s=0.493827

s=0.493827

原因

字符控制串中有“,”,所以输入时必须有“,”

原因

字符控制串中没有除说明符以外的其他字符,所以输入时可以通过空格分隔

字符控制串中没有除说明符以外的其他字符,所以输入时可以通过回车分隔

2.运行结果(或截图):

请输入第一个整数:

1

请输入第二个整数:

2

1+2=3

 

3.

(1)程序中用到的变量(类型)

单精度浮点数

 

(2)算法(用伪代码描述或自然语言)

c=2*pi*r;

s=pi*r*r;

v=4*(pi*r*r*r)/3;

 

(3)源程序清单

#include

intmain()

#definepi3.14

{

floatr,c,s,v;

printf("请输入圆的半径:

");

scanf("%f",&r);

c=2*pi*r;

s=pi*r*r;

v=4*(pi*r*r*r)/3.0;

printf("c=%.2f,s=%.2f,v=%.2f\n",c,s,v);

}

 

(4)运行结果(或截图)

请输入圆的半径:

1.5

c=9.42,s=7.07,v=14.13

 

五、思考题:

scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?

从两种输入方式的对比中你得到什么启发?

答:

第一种输入方式用户必须以“,”分隔,而第二者可用空格、回车分隔,用户在不知情的情况下,很难知道用“,”分隔输入的数据。

所以编程人员可以在scanf()语句前用printf()语句进行注释,让用户知道用什么来分隔输入的数据。

 

成绩指导教师签名

实验四

实验项目名称:

选择结构程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.正确使用关系运算符和关系表达式;

2.正确使用逻辑运算符和逻辑表达式;

3.熟练使用if语句实现选择结构程序;

2.熟练使用switch语句实现多分支选择结构程序。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.下面程序的功能是:

输入学生成绩,若成绩在90分以上,输出“Excellent!

”;若成绩在60—89分之间,输出“Pass!

”;若成绩在60分以下,输出“Fail!

”。

请将程序补充完整,并上机运行程序。

#include

intmain()

{

intscore;

printf("请输入分数(0--100):

");

scanf("%d",&score);

if(score>100||score<0)printf("InputError!

\n");

elseif(score>=90)printf("Excellent!

\n");

elseif(score>=60)printf("Pass!

\n");

elseprintf("Fail!

\n");

}

运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:

 

输入数据

20

61

99

111

运行结果

Fail!

Pass!

Excellent!

InputError!

2.有如下分段函数:

请输入x的值,求解对应的y值。

3.给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。

90-100为’A’,80-89为’B’,70-79为’C’,60-69为’D’,60分以下为’E’。

用switch语句写。

四、程序中所用的变量及其类型:

2.

变量:

x、y;

数据类型:

都为单精度浮点数

3.

变量:

score

数据类型:

整型

五、算法(用伪代码或自然语言描述):

2.

if(x>=10)

printf("y=%f\n",3*x-11);

elseif(x>=1)

printf("y=%f\n",2*x-1);

else

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

3.

switch(score/10)

{

case10:

printf("A\n");

break;

case9:

printf("A\n");

break;

case8:

printf("B\n");

break;

case7:

printf("C\n");

break;

case6:

printf("D\n");

break;

default:

printf("E\n");

}

六、源程序清单:

2.

#include

intmain(void)

{

floatx,y;

printf("请输入一个x:

");

scanf("%f",&x);

if(x>=10)

printf("y=%f\n",3*x-11);

elseif(x>=1)

printf("y=%f\n",2*x-1);

else

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

return0;

}

3.

#include

intmain(void)

{

intscore;

printf("请输入一个成绩:

");

scanf("%d",&score);

switch(score/10)

{

case10:

printf("A\n");

break;

case9:

printf("A\n");

break;

case8:

printf("B\n");

break;

case7:

printf("C\n");

break;

case6:

printf("D\n");

break;

default:

printf("E\n");

}

return0;

}

 

七、实验结果:

2.运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):

输入数据

2

11

-5

运行结果

3.000000

22.000000

-5.000000

 

3.运行结果(执行程序5次,分别输入5组不同的数据,对应5种不同的情况):

 

输入数据

99

80

70

62

59

运行结果

A

B

C

D

E

 

成绩指导教师签名

实验五

实验项目名称:

简单循环程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握循环程序的基本结构;

2.熟练掌握while、do—while及for语句,并会用来编写循环结构程序。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.编写一个程序,计算并输出数列:

1,3,5,…,2n-1,…的前几项之和,其中n由键盘输入。

要求分别用3种循环语句实现。

方法1:

用for语句实现。

main()

{longs,n,k,i;

scanf(“%ld“,&n);

k=2*n-1;

s=0;

for(i=1;i<=k;i+=2)s+=i;

printf(“1+3+…+%ld=%ld\n”,k,s);

}

方法2:

用while语句实现。

main()

{longs=0,n,i=1;

scanf(“%ld”,&n);

while(i<=(2*n-1))

{s+=i;

i+=2;}

printf(“1+3+…+%ld=%ld\n”,2*n-1,s);

}

方法3:

用do-while语句实现。

main()

{longs=0,n,i=1;

scanf(“%ld”,&n);

do

{s+=i;

i=i+2;}

while(i<=(2*n)-1);

printf(“1+3+…+%ld=%ld\n”,2*n-1,s);

}

填上所缺的空,运行程序,写出结果。

2.输入两个正整数,求其中最大公约数和最小公倍数。

四、程序中所用的变量(类型及其初值):

2.

变量i,k,j,m,least,greatest均为整型变量,没有对其赋予初值。

 

五、算法(用伪代码描述):

2.

for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数

{

if(i%j==0)

greatest=j;

else

;

if(k%greatest==0)

{

printf("%d和%d的最大公约数为%d!

\n",i,k,greatest);

break;

}

else

;

}

 

least=i*k/greatest;

printf("%d和%d最小公倍数为%d!

\n",i,k,least);

六、源程序清单:

2.

#include

intmain(void)

{

inti,k,j,m,least,greatest;//i,k存储的是两个正整数,least为最小公倍数,greatest为最大公约数

printf("请输入两个正整数(中间以空格分隔):

");

scanf("%d%d",&i,&k);

for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数

{

if(i%j==0)

greatest=j;

else

;

if(k%greatest==0)

{

printf("%d和%d的最大公约数为%d!

\n",i,k,greatest);

break;

}

else

;

}

 

least=i*k/greatest;

printf("%d和%d最小公倍数为%d!

\n",i,k,least);

return0;

}

七、实验结果:

1.在下表中写出输入的数据及其运行结果:

方法1

方法2

方法3

输入数据

12

12

12

运行结果

1+3+…+23=144

1+3+…+23=144

1+3+…+23=144

 

2.运行结果(或截图):

请输入两个正整数(中间以空格分隔):

3612

36和12的最大公约数为12!

36和12最小公倍数为36!

 

成绩指导教师签名

实验六

实验项目名称:

多层循环程序设计及break、continue语句在循环程序中的应用

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握多层循环程序的执行过程及设计方法;

2.掌握break及continue语句在循环程序中的使用方法。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.百马百担问题。

有100匹马,驮100担。

大马驮3担,中马驮2担,两个小马驮1担。

问大、中、小马各多少?

(考虑适当减少循环次数)

2.编程输出100以内的所有素数。

3.编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。

四、程序中所用的变量(类型及其初值):

1.变量x,y,z均为整型变量,均未赋予初值

2.整型变量x,y,均未赋予初值

3.整型变量i,m,n,

n初值为0,m、n未赋予初值

五、算法(用伪代码或自然语言描述):

1.for(x=0;x<=20;x++)

{

for(y=0;y<=33;y++)

{

z=100-x-y;

if(z%2==0&&3*x+2*y+z/2==100)

printf("大马有%d匹,中马有%d匹,小马有%d匹!

\n",x,y,z);

}

}

2.

for(i=1;i<=100;i+=1)

{

for(j=2;j<=i;++j)

{

if(i%j==0)

{

if(i==j)

printf("%-5d",i);

else

break;

}

}

}

3.

for(i=100;i<=999;++i)

{

intm,n=0;

m=i%10;

n+=m*m*m;

m=(i/10)%10;

n+=m*m*m;

m=(i/100)%10;

n+=m*m*m;

if(n==i)

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

else

;

}

六、源程序清单:

1.

#include

intmain(void)

{

intx,y,z;

for(x=0;x<=20;x++)

{

for(y=0;y<=33;y++)

{

z=100-x-y;

if(z%2==0&&3*x+2*y+z/2==100)

printf("大马有%d匹,中马有%d匹,小马有%d匹!

\n",x,y,z);

}

}

return0;

}

2.

#include

intmain(void)

{

inti,j;

for(i=1;i<=100;i+=1)

{

for(j=2;j<=i;++j)

{

if(i%j==0)

{

if(i==j)

printf("%-5d",i);

else

break;

}

}

}

return0;

}

3.

#include

intmain(void)

{

inti;

for(i=100;i<=999;++i)

{

intm,n=0;

m=i%10;

n+=m*m*m;

m=(i/10)%10;

n+=m*m*m;

m=(i/100)%10;

n+=m*m*m;

if(n==i)

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

else

;

}

return0;

}

七、实验结果:

1.运行结果(或截图):

大马有2匹,中马有30匹,小马有68匹!

大马有5匹,中马有25匹,小马有70匹!

大马有8匹,中马有20匹,小马有72匹!

大马有11匹

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2