C语言实验报告(16)(6)

2019-04-09 15:04

实验七 模块化程序设计(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(); }

【自编程序上机】

26

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。 要求:设计一函数判断一个三位数是否为完全平方数,设计另一函数判断一个三位数中是否有两位数字相同,再在主函数中调用这两个函数,找出所有的满足这两个条件的三位数。

27

【实验报告】

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

程 序 调 试 过 程 实 习 小 结 29

实验八 模块化程序设计(2)

【实验目的】

1.进一步熟悉函数之间的数据传递方式,熟练掌握函数的嵌套调用与递归调用的方法。 2.掌握通过数组进行数据传递的方法。

【上机实习指导】

1.对以下程序进行单步运行,并从中了解数组作为函数的参数是如何进行数据传递? # include \

void change(int a[],int n) { int i,j,t;

for(i=0,j=n-1;i

t=a[i]; a[i]=a[j]; a[j]=t; } }

void main( ) { int i,b[10];

for(i=0;i<10;i++) scanf(\

printf(\ for(i=0;i<10;i++) printf(\ printf(\ change(b,10);

printf(\ for(i=0;i<10;i++) printf(\ printf(\ getchar(); getchar(); }

【自编程序上机】

1.编写函数,将n个整数的数列进行重新排放,重新排放后的结果为:前段都是奇数,后段都是偶数,并编写主函数完成:①输入10个整数;②调用此函数进行重排;③输出重排后的结果。

2.输入10个学生4门课的成绩,分别用函数求: ①每个学生的平均成绩; ②每门课的及格率;

③最高分所对应的学生和课程。

30


C语言实验报告(16)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中化学实验探究教学的实践研究开题报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: