收藏 分销(赏)

第7章程序的模块结构和C函数.ppt

上传人:知****运 文档编号:14623921 上传时间:2026-10-22 格式:PPT 页数:16 大小:447.54KB 下载积分:10 金币
下载 相关
第7章程序的模块结构和C函数.ppt_第1页
第1页 / 共16页
第7章程序的模块结构和C函数.ppt_第2页
第2页 / 共16页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C语言程序设计,高等学校计算机科学与技术丛书,第,7,章 程序的模块结构和,C,函数,内容提要,本章从模块化程序设计的角度,介绍如何编制所需要的,C,函数,包括函数的定义、调用方法,调用函数和被调用函数之间如何进行数据传递,变量和函数的存储类型对函数调用的影响,函数的递归调用,最后介绍如何向,main(),函数传递数据。,C程序的模块结构,1.,模块化程序设计的特点,根据模块化程序设计的思想,对于复杂的问题都可以采用自顶向下(或自底向上)、逐步求精的方法将其分解成若干个相对独立的子问题。每个子问题对应一个功能独立的程序模块,将这些模块有机地连接在一起,构成一个完整的程序。,2.,C,程序的模块结构,C函数的定义和调用,1.,C,函数的定义,C,函数的定义格式有两种:传统格式和现代格式。传统格式也称,K&R,格式,是早期编译系统使用的格式;现代格式又称,ANSI,格式,是现代编译系统使用的格式。,2.,C,函数的调用,调用函数和被调用函数之间的数据传递,当一个函数调用另一个函数时,函数之间传递数据的方式有,3,种,即虚实结合方式、函数返回值方式和全局变量方式,用得最多的是虚实结合方式。,1,、虚实结合方式,虚实结合方式是在形式参数(简称形参)和实际参数(简称实参)之间进行的数据传递。虚实结合适用于所有的有参函数,传递的数据可以是变量、数组、指针、结构、函数等。,2,函数返回值方式,main()函数的参数和返回值,除了在递归程序中可能出现,main,函数自己调用自己的情况外,,main,函数很少被其他函数调用。所以,我们前面用到的,main,函数一概写成:,main(),当然也可以写成:,void main(void),但是,,main,函数也会有参数和返回值,本节介绍,main,函数的参数、返回值及其应用。,1.,命令行参数,2.,main(),函数的参数,本章总结,本章应重点掌握函数的定义方式及函数的数据类型、存储类型、形式参数和返回值的概念。函数的调用方法,包括函数名调用、函数指针调用、递归调用、表达式调用、表达式语句调用及什么时候要进行函数类型说明,调用函数和被调用函数之间传递单个数据、指针、数组、字符串的方法,包括调用函数将它们传递给被调用函数及被调用函数将它们返回给调用函数。,本章难点是函数之间数据传递的方式、方法和效果,变量和函数的存储类型对函数调用的影响,函数递归调用过程的分析,以及,main,函数的参数和返回值的使用。,本章习题,一、选择题,1.,以下函数的数据类型是,_,。,fun(float x),float y;,y=3*x-4;,return y;,A.int B.,不确定,C.void D.float,2.,在下列关于,C,函数定义的叙述中,正确的是,_,。,A.,函数可以嵌套定义,但不可以嵌套调用,B.,函数不可以嵌套定义,但可以嵌套调用,C.,函数不可以嵌套定义,也不可以嵌套调用,D.,函数可以嵌套定义,也可以嵌套调用,本章习题,3.,若函数为,int,型,变量,z,为,float,型,则该函数体内的语句,return(z),;返回的值是,_,。,A.int,型,B.float,型,C.,不定,D.,不确定,4.,在,C,语言中,函数的隐含存储类型是,_,。,A.auto B.static C.extern D.,无存储类型,5.,有以下函数:,char*fun(char*p),return p;,该函数的返回值是,_,。,A.,无确切的值,B.,形参,p,中存放的地址,C.,一个临时存储单元的地址,D.,形参,p,自身的地址,本章习题,6.,以下所列各函数定义的首部中,正确的是,_,。,A.void play(int,int),B.void play(int a,b),C.void play(int a,int b),D.sub play(a as integer,b as integer),7.,在,C,语言中,形参的缺省存储类型是,_,。,A.auto B.register C.static D.extern,8.,有如下函数调用语句:,func(rec1,rec2+rec3,(rec4,rec5);,该函数调用语句中,含有的实参个数是,_,。,A.3 B.4 C.5 D.,有语法错误,本章习题,9.,在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是,_,。,A.,地址传递,B.,单向值传递,C.,由实参传给形参,再由形参传给实参,D.,传递方式由用户指定,10.,以下有关,C,语言函数的描述中,正确的是,_,。,A.,在,C,语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参,B.C,函数既可以嵌套定义又可以递归调用,C.,函数必须有返回值,否则不能使用函数,D.C,程序中有调用关系的所有函数,必须放在同一个源程序文件中,11.,若调用函数的实参是一个数组名,则向被调用函数传送的是,_,。,A.,数组的长度,B.,数组的首地址,C.,数组每个元素的地,D.,数组每个元素中的值,本章习题,二、填空题,1.,下面的程序用来求数组,a,各元素的平均值,请填空。,float avr(int*pa,int n),int i;,float avg=0.0;,for(i=0;in;i+),avg=avg+_(1)_;,avg=_(2)_;,return avg;,main(),int i,a5=2,4,6,8,10;,float mean;,mean=avr(a,5);,printf(mean=%fn,mean);,本章习题,2.,函数,pi,的功能是根据以下近似公式求,值:,(*)/6=1+1/(2*2)+1/(3*3)+1/(n*n),请将下面函数的空白处填写正确,以完成求,的功能。,#include,double pi(long n),double s=0.0;,long k;,for(k=1;k=n;k+),s=s+_;,return(sqrt(6*s);,3.,以下函数用来求两整数之和,并通过形参将结果传回。请填空。,void func(int x,iny y,_z),*z=x+y;,本章习题,三、编程题,1.,编写程序,要求在主函数中输入一个整数,子函数,prime(),判断该整数是否为素数,若是素数,函数返回,1,,否则返回,0,。,2.,编写程序,要求在主函数中输入一个字符串,子函数将该字符串中的大写字母转换成小写字母,小写字母转换成大写字母,其他字符不变,并将转换后的字符串返回主程序。,3.,请编制程序,子函数的功能是求一个,float,型二维数组最大元素及其行下标和列下标(要求二维数组名作为实参,对应的虚参用行指针),主函数的功能是输入二维数组元素的值,接收子函数传递过来的最大元素值及其行下标和列下标,并输出。,4.,用递归方法求,1+2+3+4+n,。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服