第6章+函数

发布时间 : 星期五 文章第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 #include void main ( ) {

int a, b;

printf(\scanf(\b = prime( a );

if ( b = =1 )

printf(\else

printf(\

}

int prime( int a ) { ?? }

实验二 求最大公约数与最小公倍数

【实验目的】

熟练函数的嵌套调用。 【实验内容】

编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。在main函数中实现输入与输出。以6_2.c命名本程序并上交。 主函数如下:

#include void main( ) {

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 3 6 4 2 5 1;若m=10,则输出n=4 3 6 9 2 7 1 8 5 10 4;若m=100,则输出n=91 3 6 9??100 58 91。函数int fun(int n ,int *p)实

现上述功能,返回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 #include main( )

{char a[100],b[100];

char *link(char *,char *); gets(a);

gets(b);

此处请写出link函数的调用过程; puts(a); }

例如运行时:代表回车

输入abc12345,输出a1b2c345。 输入abcde123,则输出a1b2c3de。

联系合同范文客服:xxxxx#qq.com(#替换为@)