函数的定义
在C语言中最基础的程序模块就是函数,函数被视为程序中的基本逻辑单位,一个C语言程序由一个main()函数和若干个普通函数构成。
定义一个C函数的语法格式如下:

返回值类型 函数名([[参数类型,参数名1],[参数类型,参数名2],…[参数类型,参数名n]])
{函数体……return 返回值;
}

由以上定义可知,函数中主要包含:返回值类型,函数名,参数类型,参数名,函数体,return关键字和返回值。

  • 返回值类型:用于限定函数返回值函数的数据类型,当返回值为void时,return语句可以省略。
  • 函数名:表示函数的名称
  • 参数类型:用于限定调用函数时传入函数中的数据类型
  • 参数:用于接收传入函数中的数据 return
  • 关键字:用于结束函数,将函数的返回值调回到函数调用处
  • 返回值:被return语句返回的值。

函数调用时的数据传递
程序在编译或运行时,使用某个函数来完成相关功能,称为函数调用。函数在被调用时,可能通过函数的参数列表,进行数据传递。函数的参数有两种,分别为形式参数和实际参数。

  • 形式参数
    在定义函数时,函数名后的小括号中的变量名称为形式参数或虚拟参数,简称形参,例如:
int func(int a,int b);

此行函数声明中,变量a和变量b就是形式参数,这样的参数并不占用实际内存,仅仅是为了标识参数列表而存在。

  • 实际参数
    当函数被调用时,函数名后的小括号内的参数成为实际参数,简称实参。实参可以是常量,变量或者表达式,例如:
func(3,5);

此行代码就是对函数func()的调用,小括号中的3和5分别代表形参列表的a,b。当函数被调用的时候,形参是真正的变量,占有内存空间。在函数被调用时,形参获取实参的数据(相当于发生了赋值),该数据在本次调用中有效,一旦调用时数据执行完毕,形参的值就会被释放。另外需要注意的是形参和实参的数据传递是单向的,只能由实参传递给实参。

案例实现

#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>int avg(int n)
{ int sum = 0;int data;int i = n ;printf("请输入%d个数据:\n",n);while(i > 0){scanf("%d",&data);sum += data;i--;}int avg = sum / n ;return avg;}int main()
{int n = 3,a = 0 ;a = avg( n );  //函数调用printf ("这%d个数据的平均值为:%d\n",n,a);system ("pause");return 0;
}

运行结果如下:

内存四区
C语言程序运行时,操作系统会为其分配内存空间,这段空间主要分为四个区域:栈区,堆区,数据区和代码区。

  1. 栈区:对于一个程序来说,栈区是一块连续的内存区域,该区域由编译器自动分配和释放,一般用来存放函数的参数和局部变量等。由于栈顶的地址和栈区的容量是由系统预先规定的,因此这块区域内存大小固定。若申请的内存空间超=超过栈区的剩余容量就会发生溢出。
  2. 堆区:对一个程序来说,堆可以是不连续的内存区域,此段区域由开发者自主申请,其使用比较灵活,但缺点是同样需要程序开发人员自主释放,若程序结束时该段空间仍未被释放,就会造成内存泄漏,最后被系统回收。
  3. 数据区:根据其功能,数据区别又可以分为静态全局区和常量区两个域
    全局区是用于存储全局变量和静态变量的区域,初始化为非零的的全局变量和静态变量在一块区域,该区域被称为data段;未初始化或者初始化为零的全局变量或静态变量在响相邻的一块区域,该区域被称为bss段,该区域在程序结束后由操作系统释放。
    常量区用于储存字符串常量或者其他常量,该区域在程序结束后由操作系统释放。
  4. 代码区:代码区用于存放函数体的二进制代码,程序中每定义一个函数,代码区都会添加该函数的二进制代码,用于描述如何运行函数。当程序调用函数时,会在代码区寻找函数的二进制代码并运行

啊,累死我了。。。

【C语言】案例二十一 从键盘输入一组数据,求出这一组数据的平均值并输出(调用函数)相关推荐

  1. 设有4x4的方阵,其中的元素由键盘输入。分别求出主对角线上元素之和、辅对角线上元素之积、方阵中最大的元素。

    知识点:理解二维数组与主.辅对角线. 在上述求主对角线和辅对角线的和已给出如何找到在主对角线上及辅对角线上的元素. 那么在这里便不再赘述相同的概念了,若仍有疑问的同学可通过链接分别计算二维数组主对角线 ...

  2. 圆柱底面周长面积c语言,编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆周长cl、圆面积cs和圆柱的体积cv,输出计算结果时要求保留小数点后4位...

    相关题目与解析 编写程序,从键盘输入圆柱底面半径和高,计算并输出圆柱的体积. 编程从键盘输入圆的半径r,计算并输出圆的周长和面积. 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩 ...

  3. C语言编程>第二十二周 ④ 从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组

    例题:从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组中. 例如,输入 " ...

  4. C语言编写程序:从键盘输入一个小写字母,该字母加密后变成其后继第2个字母输出。

    C语言编写程序:从键盘输入一个小写字母,该字母加密后变成其后继第2个字母输出. 例如:a加密后变成c,b加密后变成d,z加密后变成b. 实验代码: #include<stdio.h> in ...

  5. C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和

    C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和 (遇到负数跳出本次循环继续重新输入,如果遇到0,则结束输入,输出答案) [for循环结构+if选择控制结构] #include ...

  6. c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...

    #includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...

  7. 根据编号输出课程名称。从键盘输入1~3之间的任一个数字,程序将输出相应的课程名称。

    根据编号输出课程名称.从键盘输入1~3之间的任一个数字,程序将输出相应的课程名称. 1-代表"C语言程序设计" 2-代表 "Java程序设计" 3-代表 &qu ...

  8. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

  9. C语言试题二十二之定义了3×3的二维数组,并在主函数中赋值。函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

    1. 题目 定义了3×3的二维数组,并在主函数中赋值.函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试 ...

最新文章

  1. 罗永浩力荐,丁磊豪送的学习神器:手机查词真不如这支AI词典笔?
  2. 基于阿里的Node全栈之路(二)阿里负载均衡的HTTPS优化方案
  3. python redis事务_python redis事务源码及应用分析
  4. 浅谈ATP CHECK zz
  5. VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法
  6. byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...
  7. 【机器学习】Kmeans聚类
  8. Invalid character found in the request target. The valid characters are defi
  9. 《Head First设计模式》第六章笔记-命令模式
  10. 学PyTorch还是TensorFlow?
  11. 八、IO优化(3)稀疏列
  12. Shiro框架(一)-Shiro概述
  13. 字节测试开发面试题总结
  14. 程序员如何删库?(一看就会)Linux
  15. 电子邮件服务器限制匿名,匿名(垃圾)邮件的根源—网络上几乎所有服务器都不可避免的“漏洞”...
  16. ggplot2---绘制地图
  17. Gamit10.6基线解算和网平差
  18. 分级渲染--百度地图路段红黄绿功能
  19. python基础第十三章:文件读写
  20. cat 021 解析

热门文章

  1. 小学计算机室信息化实施方案,牛镇镇中心学校教育信息化建设实施方案
  2. 启航!2023 Amazon DeepRacer 自动驾驶赛车中国联赛战燃擎开启!
  3. DBeaver Enterprise21.0 企业版激活方法 DBeaver mac激活 DBeaver
  4. 不写代码也能年薪百万?Prompt+低代码开发实战
  5. python判断性别的源代码_Python 获取微信好友地区、性别、签名信息并将结果可视化...
  6. Oracle去重数据
  7. 教你用电脑把腾讯视频的qlv格式转换成mp4
  8. GOWIN革文超级增长引擎---B2B数字化整合营销体系
  9. 腾讯文字识别API使用
  10. 1326:【例7.5】 取余运算(mod)