c语言实验六 函数的程序设计实验,C语言程序设计实验报告实验六.doc

C语言程序设计实验报告实验六

C语言程序设计实验报告——实验六

实验名称函数与编译预处理成绩姓 名学号班级实验地点9B506完成日期实验目的1.熟练掌握利用函数实现模块化的方法。?

2.掌握函数的定义与调用方法。?

3.掌握函数嵌套调用与递归调用的方法及程序执行流程。?

4. 掌握变量的作用域与生存期概念,并能利用变量的作用域与生存期有效地利用内存,解决实际问题。?

5.掌握多模块程序的编译、调试、运行方法。?

6.掌握宏定义与文件包含的作用与使用方法。

骤1. 调试运行以下程序。①此程序的功能是什么?②此程序出现了什么错误?为什么?修改

之??

void?main(?)?

{

float?a,b,c??

scanf("%f%f",&a,&b)??

c=add(a,b)??

printf("sum?is?%f\n",c)??

}?

float?add(float?x,float?y)?

{?

float?z??

z=x+y??

return(z)??

}?

2.调试运行以下程序,分析调用函数前后程序中变量?a?和?b?的值是否发生改变?为什么??

void?main(?)?

{?

int?a=3,b=6??

printf("a=%d,b=%d\n",a,b)??

exchange1(a,b)??

printf("a=%d,b=%d\n",a,b)??

}?

void?exchange1(int?x,int?y)?

{?

int?t??

t=x?x=y?y=t??

printf("x=%d,y=%d\n",x,y)??

}?

3.?调试运行以下程序。理解函数嵌套调用方法,并指出该程序的功能是什么??

long?int?fac(int?n)?

{?

long?int?p??

int?i??

p=1??

for(i=1?i<=n?i++)?

p=p*i??

return?(p)??

}?

int?cmn(int?m,int?n)?

{?

int?x??

x=fac(m)/(fac(n)*fac(m-n))??

return?(x)?

}?

void?main(?)?

{?

int?m,n,c??

scanf(“%d%d”,&m,&n)??

c=cmn(m,n)??

printf(“c=%d\n”,c)??

}?

4.?调试运行以下程序。分析程序中全局变量和局部变量值的变化。?

int?a=7,?b=9??

void?main(?)?

{?

int?i,?a=5,?x=80,?y=60??

for(i=1??i<4??i++)?

{?

printf("a=%d,?b=%d,?max=%d\n",?a,?b,?max(a,b))??

b+=6??

}?

printf("result_sum=%d\n",?sum(x,y))??

}?

int?sum(int?x,?int?y)?

{?

extern?int?m,?n??

int?temp??

temp=x+y+m+n+a+b??

return(temp)??

}?

int?m=12,?n=25??

int?max(int?a,?int?b)?

{?

return(a>b?a:b)??

}?

5.?调试运行以下程序。分析以下程序中静态局部变量的使用。?

int?fun(int?a)?

{?

int?b=0??

static?int?c=2??

b+=c??

c+=1??

return(a+b-c)?

}?

void?main(?)?

{?

int?a=3,?i??

for(i=0??i<3??i++)? ? printf("%4d",?fun(a))??

}?

6. 调试运行以下程序, 掌握内部函数和外部函数的使用。 该程序包括?2?个源程序文件(6_1.C?

和?6_2.C)。?

/*源程序名:6_1.C*/?

int?a=6??

extern?int?max(int?x,?int?y)?

{?

return(x>y?x:y)??

}?

/*源程序名:6_2.C*/?

#include??

extern?a??

extern?int?max(int?x,?int?y)??

void?main(?)?

{?

int?x=5,?y=7,?result1,?result2??

result1=(x+y)*a+max(x,y)*a??

a-=2??

result2=min(a,?max(x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值