文档详情

第7章用函数实现模块化程序设计讲解.doc

发布:2017-02-15约6.76千字共10页下载文档
文本预览下载声明
第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
显示全部
相似文档