c语言第八章作业,【C语言基础】C语言第八章

第八章 函数 (上)

函数的类型(跟变量的类型很像):int ,float,char,void

函数都有返回值,特别的void类型是“空类型”,所以他没有返回值,或者说,void类型返回空。

如:主函数

void main()

{

...

}

void main()

{

...

return;

}

当然也有把主函数设成int类型的,然后相应的加一句"return 0;"

int main()

{

...

return 0;

}

那么这个“return 0;”在主函数中是不是什么意思都没有呢?当然不是了。程序在运行的时候在

等待main函数运行完,当main函数运行完之后将返回值返回给系统,系统识别后自动结束。

函数的使用主要包括三个部分:函数的定义,函数的声明,函数的调用。

例8.1 函数调用的简单例子。

#include

void main()

{

void printstar();    /* 对printstar函数进行声明 */

void print_message(); /* 对print_message函数进行声明 */

printstar();         /* 调用printstar函数 */

print_message();      /* 调用print_message函数 */

printstar();         /* 调用printstar函数 */

}

void printstar()         /* 定义printstar函数 */

{

printf("* * * * * * * * * * * * * * * *\n");

}

void print_message()      /* 定义print_message函数 */

{

printf("  How do you do!\n");

}

★从用户使用的角度看,函数有两种。

(1)标准函数。标准函数即库函数,他是由系统提供的,用户不必自己定义而使用他

们。如:printf,scanf,sqrt,strlen这些函数。

(2)用户自己定义的函数。他是用以解决用户专门需要的函数。

★从函数的形式看,函数分两类:

(1)无参函数。如例8.1中的printstar和print_message就是无参函数。

(2)有参函数。如f(x)

--参数就是指参变量,函数的小括号里面的东西。

【函数定义的一般形式】

无参函数定义的一般形式为:

类型标识符 函数名()

{

声明部分

语句部分

}

例如:

int print()

{

int i;

for(i=0;i<10;i++) printf("%d\n",i);

}

例8.1中的print_star函数和print_message函数都是无参函数。

有参函数定义的一般形式为:

类型标识符 函数名(形式参数列表)

{

声明部分

语句部分

}

例如:

int Max(int x,int y)

{

int a;

a = x > y ? x : y;

return a;

}

在程序设计中有时会用到空函数,它的形式为:

类型说明符 函数名()

{       }

例如:

void dummy()

{       }

调用此函数时,什么工作也不做,没有任何实际作用。在主函数中写上“dummy();”表明“这里要

调用一个函数”,而现在这个函数没有起作用,等以后扩充函数功能时再补充上。

注:在自己定义函数的时候,函数名要取得好理解一些,如:prnitstar()函数,一看就知道是要

打印星星图案~

【形式参数和实际参数】

例8.2 调用函数时的数据传递。

#include

void main()

{

int Max(int x,int y);  /* 对Max函数的声明 */

int a , b , c;

scanf("%d%d" , &a,&b);

c = Max(a,b);

printf("Max is %d\n" , c);

}

int Max(int x,int y)       /* 定义有参函数Max */

{

int z;

z = x > y ? x : y;

return z;

}

*******************************************************

补充知识点:变量和数组的定义可以放在main函数之外,如:

#include

int x;

void main()

{

scanf("%d" , &x);

printf("%d\n" , 2*x);

}

*******************************************************

【函数的调用】

函数调用的一般形式为

函数名(实参列表);

函数调用的方式:

1.函数语句

把函数作为一个语句。如例8.1中的“printstar();”,这是不要求函数带返回值,只要求完成一

定的操作。

2.函数表达式

函数出现在一个表达式中,这种表达式成为函数表达式。这是要求函数带回一个确定的值以参加表

达式的运算。例如:

c = 2 * Max(a,b)

函数Max是表达式的一部分,它的值乘2再赋给c。

3.函数参数

函数调用作为一个函数的实参。例如:

m = Max(a , Max(b,c));

其中Max(b,c)是一次函数调用,它的值作为Max另一次调用的实参。m的值是a、b、c三者中的最大

值。又如:

printf("%d\n" , Max(a,b));

也是把Max(a,b)作为printf函数的一个参数。

函数原型的一般形式有两种:

(1)函数类型 函数名(参数类型1,参数类型2,...,参数类型n);

(2)函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,...,参数类型n 参数名n);

演示:求n个数最大值的函数。

补充5.8题(2),现在可以用函数做了。演示

课堂练习:

1.写一个函数int max3(int a,int b,int c)函数,返回a,b,c的最大值,并在主函数中运行。

2.写一个函数double f(int n),当我输入n个数后,返回这n个数的平均值。

复习(编程题):

1.输入两个数,输出它们的和;

2.输入两个数,如果他们差的绝对值小于等于10,输出“yes”,不然就输出“no”;

3.循环输出5的平方到16的平方;

4.输入一个数n,判断n是不是素数。

5.求出200到300间的所有素数。

6.page.130 6.13

7.page.153 7.6

8.2.写一个函数double f(int n),当我输入n个数后,返回这n个数中最大值与最小值之差。

第八章 函数(下) 【函数的递归调用】 函数的递归调用:简单地说,函数的递归调用就是当我定义了函数f(x)之后,我在定义另一个函数g(x)的时候用到了f(x)。 举例: int f(int x) { return x*x*x*x; } void g(int x) { int i; for(i=0;i<5;i++) { printf("%d\n" , f(i)); } } 【函数的递归调用】 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 例:page.172 例8.7 , 例8.8 扩展:page.174 例8.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值