第7章用函数实现模块化程序设计讲解.doc
文本预览下载声明
第7章 用函数实现模块化程序设计
通过本章实验作业应达目标
1. 掌握定义和调用函数的方法
2.掌握函数嵌套调用的方法
3.掌握通过“值传递”调用函数的方法
4.理解变量作用域和存在期的概念,掌握全局变量和局部变量,动态变量和静态变量的定义、说明和使用方法
5.掌握宏定义的方法
6.掌握文件包含的处理方法
本章上交作业
程序7_1.c、7_2.c、7_3.c、7_4.c、7_5.c、7_9.c
上传至7:8080/c。
实验一 判断素数的函数
【实验目的】
掌握用函数实现判断素数的方法。
【实验内容】
编写一个函数int prime( int a ),判断参数是否为素数。函数有一个形参a,当a为素数时,返回1,反之,返回0。以7_1.c命名本程序并上交。
函数声明如下:
int prime( int a );
主函数如下:
#includemath.h
#includestdio.h
void main ( )
{
int a, b;
printf(please input a number:\n);
scanf(%d, a);
b = prime( a );
if ( b = =1 )
printf(the number is a prime number.);
else
printf(the number is not a prime number.);
}
int prime( int a ) { …… }
实验二 求最大公约数与最小公倍数
【实验目的】
熟练函数的嵌套调用。
【实验内容】
编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。在main函数中实现输入与输出。以7_2.c命名本程序并上交。
主函数如下:
#includestdio.h
void main( )
{
int gongyueshu( int a, int b );
int gongbeishu( int a, int b );
int a, b, c, d;
printf(please input two integer numbers:);
scanf(%d%d, a, b);
c=gongyueshu(a, b);
d=gongbeishu(a. b);
printf(gongyueshu is %d\n gongbeishu is %d,c,d);
}
int gongyueshu( int a, int b )
{ …… }
int gongbeishu( int a, int b )
{ …… }
【实验提示】
可以在最小公倍数中嵌套调用最大公约数函数。
实验三 报数问题
【实验目的】
掌握数组和函数的应用。
【实验内容】
m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若m=6,则输出n=1CR 3 6 4 2 5 1;若m=10,则输出n=4CR 3 6 9 2 7 1 8 5 10 4;若m=100,则输出n=91CR 3 6 9……100 58 91。函数int fun(int n ,int p[ ])实现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。以7_3.c命名本程序并上交。
#includestdio.h
int baoshu(int n ,int p[ ] )
{ …… }
void main()
{int m,a[10000],i,num;
scanf(%d,m);
num= fun(m,a);
printf(n=%d\n,num);
for(i=0;im;i++)
printf(%8d ,a[i]);
printf(\n);
}
实验四 数组中插入元素的函数
【实验目的】
学习在一维数组中插入元素的方法。
【实验内容】
参照给定的主函数,编写一个函数void insert(int a[ ], int n, int y ),它的功能是:把y值插入到有n个数的有序的a数组中, y的值从键盘读入。插入后,数组中的数仍然有序。以7_4.c命名本程序并上交。
对照下面三种情况运行程序:
1)插在最前 2)插在最后 3)插在中间。
int a[11]={2,4,6,8,10,12,14,16,18,20};
void insert( int a[ ], int n, int number );
void main( )
{
int i, x ;
printf(original array
显示全部