函数调用PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知识点精讲
【解析】本题中,函数fun的函数名前面有个“*”,这表示该函数的返回值类型是一个指向 整型数据的地址。在fun内定义的局部变量a前面加了static表示该局部变量为静态类型的变量。 静态型变量在函数调用结束后并不会释放,即第一次调用fun函数时定义a初值为2,第二次调用时 a的初值为上次调用a保留下来的值3,第三次调用时a的初值为5。
【答案】358 知识点分析 有参函数被调用时,存在一个传值问题。 1.函数的单向传值 (1)函数的单向传值又可称为值传递,传递的是普通的值。 (2)函数的形式参数(简称形参)和实际参数(简称实参)的数据类型要保持一致,否则会产生误 差。 (3)在单向传值过程中,函数一旦被调用就要为形参开辟内存单元,此内存单元与主调函数的 实参不重叠,是两个不同的内存单元。即被调函数形参的改变不会影响到主调函数实参的值,从 而实现单向传递。
知识点精讲
2.(2018年高考题)若“char a[6]="abcde";”,执行“printf("%d" ,strlen(a));”后,输
出的结果是( )
A. 5
B. 6
C. 7
D. e
【解析】strlen函数的功能是返回一个字符串的实际长度,也就是返回第一个‘\0’前有多
少个字符。
【答案】A
知识点精讲
知识点3 函数的单向传值与双向传值
真题回顾 (2011年高考题)下列程序的运行结果是_____________ #include "stdio.h" int*fun(int*q) { static int a=2; int*p=&a; a+=*q; return p; } main( ) { int i=1; for(;i<4;i++) printf("%4d",*fun(&i)); }
知识点精讲
2.函数的双向传值 (1)函数的双向传值又可称为址传递,传递的是地址。 (2)函数的形参为指针类型的变量。 (3)当函数被调用时,会开辟出一个新的指针变量来接收实参传过来的地址值,而该地址值与 主调函数的实参所指向的地址相同。当函数内部改变了该地址值对应内存单元的内容时,主调函 数中实参所指向的内存单元的内容也会跟着发生改变,从而实现双向传值的效果。 巩固提高 1.下列程序的运行结果是______1________ #include "stdio.h" void fun(int a) { a++; } main( )
第二章 与实参传递、调用及返回值的编程方法。
考点解读
高频考点:系统自带的库函数、自定义函数、函数的返回值。 重难点分析:函数的单向传递、双向传递及函数的返回值。
知识点精讲
知识点1 函数的定义
真题回顾 (2017年高考题)下列程序的运行结果是__________ #include "stdio.h" int fun(int a , int b) { return(a+b); } main( ) { int x=2,y=3,z=4,r; r=fun(fun(x,y),z); printf("%d",r); } 【解析】定义了一个函数名叫fun的函数,函数功能是返回两个数的和,所以x+y+z=9。 【答案】9
知识点精讲
知识点分析 函数在编写程序时起着非常重要的作用,很多算法都要用到函数。函数可以规范代码的书写, 实现模板化程序设计。 定义函数的格式如下: 函数的返回类型函数名(形式参数表列) { 函数体 } 无参函数将省略形式参数表列,函数体分为声明语句部分和执行语句部分。
知识点精讲
巩固提高 1.程序填空。定义一个函数并求两个数的和。 float sum (float a , float b) {__r_e_t_u_r_n_(_a_+_b_)_______________; } 2.下列程序的运行结果是____8________ #include <sdtio. h> fun(int a , int b) { return a+b; return a-b; } main( ) { printf("%d" , fun(3,5)); }
知识点精讲
巩固提高 下列程序的运行结果是____6_4______ #include "stdio.h" fun(int a , int b) { return a+b; } funl(int a,int b) return fun(a,b)*fun(a,b); main( ) { printf("%d" , fun1(3,5)); }
知识点精讲
{ int b=1; fun(b); printf("%d" , b); } 2.下列程序的运行结果是____2________ #include "stdio.h" void fun(int*a) { (*a)++; } main( ) { int b=1; fun(&b); printf("%d" ,b); }
知识点精讲
知识点4 常用库函数
真题回顾 1.(2017年高考题)下列程序的运行结果是_____________ #include "stdio.h" #include "string.h" main( ) { char a[ ]={‘a’,‘b’,‘c',‘d',‘e',‘f',‘g’,‘h',‘\n’}; int x,y; x=sizeof(a); y=strlen(a); printf("%d,%d",x,y); } 【解析】sizeof是求数组a所占的字节数,strlen是求数组a的实际长度。 【答案】9,9
知识点精讲
知识点2 函数的运行机制
知识点分析 由于函数的使用频率非常高,所以要非常清楚地理解函数的运行机制,才能更好地掌握编程。 函数的运行机制: 1. C语言中有且只有一个main函数。 2. C语言中可以有多个子函数。 3.子函数之间可以互相调用,但主函数不能被调用,主函数可以调用其他函数。 4.子函数可以调用自己,即递归函数。 5.子函数一旦运行,需要开辟内存单元,函数运行完成后,非静态开辟的内存单元释放。
相关文档
最新文档