当前位置:首页 > 第6章+函数
第6章 函数
通过本章实验作业应达目标
1. 掌握定义和调用函数的方法
2.掌握函数嵌套调用的方法
3.掌握通过“值传递”调用函数的方法
4.掌握带有指针形参的函数的定义及调用方法。
5.理解变量作用域和存在期的概念,掌握全局变量和局部变量,动态变量和静态变量的定义、说明和使用方法 6.掌握宏定义的方法
7.掌握文件包含的处理方法
本章上交作业
程序6_1.c、6_2.c、6_3.c、6_9.c
上传至http://121.251.227.27:8080/c。
实验一 判断素数的函数
【实验目的】
掌握用函数实现判断素数的方法。 【实验内容】
编写一个函数int prime( int a ),判断参数是否为素数。函数有一个形参a,当a为素数时,返回1,反之,返回0。以6_1.c命名本程序并上交。 函数声明如下: int prime( int a ); 主函数如下:
#include
int a, b;
printf(\scanf(\b = prime( a );
if ( b = =1 )
printf(\else
printf(\
}
int prime( int a ) { ?? }
实验二 求最大公约数与最小公倍数
【实验目的】
熟练函数的嵌套调用。 【实验内容】
编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。在main函数中实现输入与输出。以6_2.c命名本程序并上交。 主函数如下:
#include
int gongyueshu( int a, int b ); int gongbeishu( int a, int b ); int a, b, c, d;
printf(\scanf(\c=gongyueshu(a, b);
d=gongbeishu(a. b);
printf(\}
int gongyueshu( int a, int b ) { ?? }
int gongbeishu( int a, int b ) { ?? } 【实验提示】
可以在最小公倍数中嵌套调用最大公约数函数。
实验三 报数问题
【实验目的】
掌握数组和函数的应用。 【实验内容】
m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若m=6,则输出n=1
现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。以6_3.c命名本程序并上交。 #include
int baoshu(int n ,int p[ ] ) { ?? }
void main()
{int m,a[10000],i,num; scanf(\ num= fun(m,a); printf(\ for(i=0;i printf(\ printf(\} 实验四 指针作函数参数 【实验目的】 学习使用指针间接访问变量。 【实验内容】 编写一个函数void swap(int *x,int *y),其中的 x,y都是指向int的指针,功能是实现x,y所指向的两个int变量的值的交换。并写出函数调用过程。请以6_4.c命名本程序并上交。 主函数如下: main( ) { void swap(int *x,int *y); int a,b; scanf(\%d,%d\&a,&b); printf(\efore swap: a=%d,b=%d\\n\,a,b); 此处请写出函数调用过程; printf(\fter swap: a=%d,b=%d\\n\,a,b); } 【实验提示】 注意指针作为函数参数的写法。 实验五 从数组中删除数据 【实验目的】 深入理解指针做参数间接访问一维数组。 【实验内容】 编写函数int delnum(int *a , int num , int n),用于在长度是n的数组a中,删除一个值为num的元素。删除后数组的长度作为函数的返回值返回。注意,num在数组中可能不只一个。请以6_5.c命名本程序并上交。 主函数如下: # define N 10 main( ) { int a[N] , num; scanf(“%d”,&num); 输入N个数到数组a中; 调用delnum函数在数组a中删除指定的数num; 输出删除了num后的数组a; } 定义并编写delnum函数 实验六 字符串的交叉连接 【实验目的】 学习使用指针间接访问字符串。 【实验内容】 编写一个函数char *link(char *s1,char *s2),实现字符串s1与s2的交叉连接,连接后得到的新字符串放在s1中,函数返回值为字符数组s1的首地址。请以6_6.c命名本程序并上交。 #include {char a[100],b[100]; char *link(char *,char *); gets(a); gets(b); 此处请写出link函数的调用过程; puts(a); } 例如运行时: 输入abc
共分享92篇相关文档