C语言实验报告

程 序 调 试 过 程 实 习 小 结

31

实验六 模块化程序设计(1)

【实验目的】

1.掌握C语言中定义函数的方法及其调用方法。

2.掌握函数实参与形参的对应关系以及“值传递”与“地址传递”的方式,熟练掌握模块间数据传递的方式。

3.掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法,深刻体会全局变量和局部变量、动态变量与静态变量的概念和使用方法,

【上机实习指导】

1.先静态阅读以下程序,然后上机运行程序,查看运行结果是否与你阅读的结果一致?不一致的原因何在?

# include “stdio.h” int a=3,b=5,c=2; int f(int a,int b) { a++;b--;c=a+b;

return(a+b+c); }

void main( ) { int a=4,k; k=f(a+2,b+1);

printf(“\\n %d,%d,%d,%d”,a,b,c,k); getchar(); }

2.静态分析以下程序的执行结果,然后上机运行程序,将分析结果与运行结果加以对比,从中领会静态局部变量的含义及用法。

# include “stdio.h” int f(int x)

{ static int f=0,y=0; if(f==0) y+=2*x;

else if(f==1)y+=3*x; else y+=4*x; f++;

return y; }

void main( )

{ printf(“\\n %d”,f(2)); printf(“\\n %d”,f(2)); printf(“\\n %d”,f(2)); getchar(); }

【自编程序上机】

32

1.求两整数的最公约数和最小公倍数。用一函数求最大公约数,用另一函数调用此函数求出最大公约数,并用求出的最大公约数求最小公倍数。

具体要求如下:

①用全局变量。将最大公约数与最小公倍数设为全局变量,在主函数中输出它们的值。 ②不用全局变量。最大公约数和最小公倍数由被调模块返回值。 2.计算并输出

具体要求如下:

①编制一个函数pq(n),返回n!值。

②编制主函数,由键盘输入m与n(m≥n≥O),调用(1)中的函数计算下列算式值。

③在主函数中,输入m与n之前要有提示,并检查输入数据的合理性,对于不合理的输入,应输出出错信息,不再进行计算。在函数pq(n)中也要检查n的合理性,当n<O时输出出错信息,不再进行计算。 ④分别输入(m,n)=(3,-1),(0,0),(8,3),(3,8),(8,8)运行该程序。

⑤画出模块pq()的流程图。

3.编写程序,要求找出满足下列条件的3位数:它是完全平方数,又有两位数字相同。如:144、676。 要求:设计一函数判断一个三位数是否为完全平方数,设计另一函数判断一个三位数中是否有两位数字相同,再在主函数中调用这两个函数,找出所有的满足这两个条件的三位数。

33

【实验报告】

实习时间: 实习地点: 实习机号: 具 体 实 验 内 容 34

程 序 调 试 过 程 实 习 小 结 35

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4