计算机等级考试二级C语言配套课件第07章函数_第1页
计算机等级考试二级C语言配套课件第07章函数_第2页
计算机等级考试二级C语言配套课件第07章函数_第3页
计算机等级考试二级C语言配套课件第07章函数_第4页
计算机等级考试二级C语言配套课件第07章函数_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章函数与模块化程序设计基础,7.1概述,7.2函数的定义,7.3函数的调用,7.4函数说明,7.5函数与被调函数之间的数据传递,6.1概述,7.1概述,C语言是结构化程序设计语言,通常采用自顶向下逐步求精的模块化程序设计方法和单入口单出口控制结构。,C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块,在C语言中,函数就是完成相对独立功能的一段程序,6.1概述,7.1概述,C语言是结构化程序设计语言,通常采用自顶向下逐步求精的模块化程序设计方法和单入口单出口控制结构。(在第一章中已经介绍)。,C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块,在C语言中,函数就是完成相对独立功能的一段程序,从函数使用的角度来看,C语言的函数可以分为两类:标准库函数和用户自定义函数。,1.TurboC系统提供了400多个标准库函数(参见附录8)按功能可以分为:(1)类型转换函数,(2)字符判别与转换函数,(3)字符串处理函数,(4)标准I/O函数,(5)文件管理函数,(6)数学运算函数等。,它们的执行效率高,用户需要时,可在程序中直接进行调用。,6.2函数的定义,7.2库函数,(1)c语言程序设计中,使用的之前要求在程序开头出包含以下命令行:,#include“文件名。h”或#include,注意:以上声明实际上告诉计算机所使用函数的出处,这是一条命令,在13章将详细介绍。它不是一条语句,所以不能在其后加“;”,(2)标准库函数的调用:a、作为语句的一部分,即出现在表达式中,此时该函数在调用后会返回一个值。y=pow(x,2.5)+1.3b、作为单独语句完成某种操作,此时该函数是不需要返回值的。printf(”Helloworld!”);,函数值类型名函数名(形式参数类型及参数说明)数据说明部分语句部分,1、函数定义形式,如:intmax(inta,intb)returna+b,6.2函数的定义,7.3函数定义和返回值,注意:1、函数名和形式参数都是合法的标识,用用户指定。在同一个程序中,函数名应该唯一;2、C语言规定,函数不可嵌套定义;3、如果省略了“函数值类型名”,则默认情况下,返回int型数据;4、除了返回值类型为int类型的函数外,函数必须先定义,后使用;5、若函数功能只是完成某种操作,不需要返回值时,应将其返回类型定义为void,doubleadd(doubleadoubleb)doubles;s=a+b;returns,函数首部,函数体,return语句的表示形式如下:return表达式;或return(表达式);,2、函数返回值,在函数调用过程中,有时被调函数要向调用函数带回一个值,这个被带回主函数的值称为函数的返回值。在c语言中,要实现这样的操作,要用到retuen语句,6.2函数的定义,注意:1、函数返回值的类型要与函数首部说明类型保持一致,如果不一致,则以函数首部说明为准,系统进行类型的自动转化。2、一个函数中可以有多个return,但当执行到第一个遇到的Return,函数则返回主调函数。3、return后的表达式可省,但此时函数声明应为void,它的作用是使流程返回到主调用函数并没有确定的返回值。如果函数中没有return,则函数将执行到函数的末尾“”处,在返回到调用函数。,例6-3:写出以下程序的运行结果。max()/*函数类型缺省,为int型,return语句缺省*/min()/*函数类型缺省,return语句缺省表达式*/return;main()printf(%d,%dn,max(),min());程序运行结果为:-256,-256/*返回值不确定,TC2开发环境中返回值为0*/,若函数max与函数min的类型为float,则返回值为:,Floatingpointerror:Domain.,Abnormalprogramtermination,6.2函数的定义,在具有多个函数的C程序中,主函数出现的位置并不重要。为阅读方便,可将主函数main放在最前面。为了避免过多的函数声明语句,习惯上将主函数放在所有函数之后。不论主函数放在什么位置,一旦启动该程序,总是从主函数开始执行,并且最终在主函数结束整个程序的执行。,3.函数main,一个C语言程序至少包含一个函数,并且必须有且只能有一个名为main的函数,称之为主函数。,在包含多个函数的程序中,不仅可以由主函数调用其它函数,还可以由被调函数调用其它函数,但任何函数都不能调用主函数。,通常主函数的类型定义为void(在TC2中可省略函数main的类型说明)。,6.2函数的定义,7.4函数的调用,在C语言的一般函数体中,可以包含对其它函数的调用,称为函数的嵌套调用,甚至包含对自身的调用,称为函数的递归调用。,一个函数一旦被定义,就可在程序的其它函数中使用它,这个过程称为函数调用。,一.函数的调用的两种形式,函数名(实际参数列表),函数调用的一般形式:,6.3函数的调用,A、作为表达式的一部分y=add(3.0,4.0)+2;B、做为对立的一条语句函数名(实参列表);,实际参数也称为实在参数,简称为实参,实际参数之间以“,”分隔。,函数调用时,实参与形参应保持个数、次序及类型的一致性,以确保实参与形参之间数据的正确传递。,实际参数一般为表达式,可以是常量、变量(调用时必须有确定的值或确定的地址)。,函数调用时,函数名必须与所调用的函数名完全一样,函数在调用之前需先定义,后调用。,当实际参数的个数、次序、类型与对应形式参数的个数、次序、类型不一致时,系统并不提示错误,后果却难以预测。,注意,6.3函数的调用,例6-4,函数语句调用与函数表达式调用。#includevoidmain()printf(nk1=%d,printf(n%k2);程序运行结果为:k2k1=3,6.3函数的调用,voidmain()/*主函数中采用函数参数调用形式调用函数max2*/intx,y,z,m;scanf(%d,%d,%d,iy?y:x;Main()inta=4,b=3,c=5d=2,e,f,g;E=f2(f1(a,b),f(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d+e-f;printf(“%d,%d,%d”,e,f,g);程序运行后输出结果()2005.04A)4,3,7B)3,4,7C)5,2,7D2,5,7,答案:A,10、有以下函数定义:Voidfun(instn,doublex)若以下选项中变量都已正确定义并赋值,则对函数fun()的正确调用是()2003.04A)fun(inty,doublem);B)k=fun(10,12.5);C)fun(x,n);D)voidfun(n,x);,答案:C,11、有以下程序:Fun(intx,inty)return(x+y);Main()inta=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf(“%dn”,sum);执行程序输出结果是()2006.09A)6B)7C)8D)9,答案:C,12、以下叙述错误的是()2006.4A)C程序必须有一个或一个以上的函数组成B)函数调用可以作为一个独立语句存在C)若函数有返回值,必须通过return语句返回D)函数形参的值也可以传回对应的实参,答案:D,13、有以下程序:Intfun(intn)if(n=1)return1;elsereturn(n+fun(n-1);main()intx;scanf(“%d”,程序执行时,变量x输入10,程序的输出结果是()A)55B)54C)65D)45,答案:A,14、以下程序运行结果是_。Intk=0Voidfun(intm)m+=k;k+=m;printf(“m=%dk=%d”,m,k+);Main()inti=4;Fun(i+);Printf(“i=%dk=%dn”,i,k);,m=4k=4i=5k=5,15、以下程序中函数fun()的功能时计算x2-2x+6,主函数中将调用fun函数计算:2006.9Y1=(x+8)2-2(x+8)+6Y2=sin2(x)-2sin(x)+6请填空:#include“math.h”Doublefun(doublex)return(x*x-2*x+6);Main()doublex,y1,y2;printf(“Enterx:”);Scanf(“%lf”,,x+8,Sin(x),16、有以下程序:Intsub(intn)ret

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论