5-5 函数的返回值
本节编程练习不计算学习进度,请电脑登录imooc.com操作

函数的返回值

小明碰到一道数学选择题问小刚,小刚算了一会给小明说计算结果是100,应选A。那么小刚给小明的反馈就可以说是小刚的一个返回值。

那么函数的返回值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。

函数的返回值要注意以下几点:

1. 函数的值只能通过return语句返回主调函数。return语句的一般形式为:

    return 表达式   或者为:  return (表达式);

2. 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数返回类型为准,自动进行类型转换。

就如小刚说选A,那么就返回一个字符型数据,用代码表示就是:

小刚说值为100,那么就返回一个整型数据,用代码表示就是:

3. 没有返回值的函数,返回类型为void。如果小刚算了一会没有返回结果的话,那么用代码表示就是:

注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;

任务

Jone和Jack同时算一道数学题,Jone算的结果并返回,而Jack算了半天说了一句话,我算不出来。

在代码编辑器中完成这道题:

第3、6、9、24根据注释提示填写代码

运行结果为

  1. #include <stdio.h>
  2. /* Jone算出结果应该怎么写函数? */
  3. ? joneResult(int x, int y, int z)
  4. {
  5. int sum = x+y+z;
  6. //这里是不是应该将sum返回呢?
  7. }
  8. /* Jack没有算出结果只说了一句话是不是应该用无返回值函数? */
  9. ? jackResult(int x, int y, int z)
  10. {
  11. printf("我算不出来\n");
  12. }
  13. int main()
  14. {
  15. int a, b, c;
  16. a = 10;
  17. b = 20;
  18. c = 30;
  19. //Jone的返回值类型是什么?
  20. jR = joneResult(a, b, c);
  21. printf("Jone运算结果是:%d\n", jR);
  22. printf("Jack运算结果是:");
  23. //Jack没有算出结果只说了句话,是不是直接调用函数就可以了?
  24. return 0;
  25. }
下一节