[工学]第5章函数习题C语言程序设计课件

上传人:我*** 文档编号:142198678 上传时间:2020-08-17 格式:PPT 页数:30 大小:578.50KB
返回 下载 相关 举报
[工学]第5章函数习题C语言程序设计课件_第1页
第1页 / 共30页
[工学]第5章函数习题C语言程序设计课件_第2页
第2页 / 共30页
[工学]第5章函数习题C语言程序设计课件_第3页
第3页 / 共30页
[工学]第5章函数习题C语言程序设计课件_第4页
第4页 / 共30页
[工学]第5章函数习题C语言程序设计课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《[工学]第5章函数习题C语言程序设计课件》由会员分享,可在线阅读,更多相关《[工学]第5章函数习题C语言程序设计课件(30页珍藏版)》请在金锄头文库上搜索。

1、第5章 函数,程序设计基础C语言,程序设计基础C语言,函数的定义及构成,数据类型 函数名( 形式参数表 ) 声明变量语句 可执行语句 ,通常把函数名和形参的说明部分称为“函数头”, 用花括号括起来的部分称为“函数体”。,void printstar( ) printf(*n); 【例5.1】,float area( float a, float b ) float s; s=a*b; return s; 【例5.2】,数据类型 默认为int型: 函数执行后会获得一个值 无值类型 :void,函数名是一个标识符,它的命名规则同变量相同,形式参数(简称形参 )的说明形式如下: 数据类型 形式参数1

2、,数据类型 形式参数2, 声明形参实际是定义变量,形参在函数体内不赋值!,函数的返回值(函数的值)可以是常数、变量或表达式 return 表达式; return (表达式); return ; 也可以没有return语句(void类型),定义形参a,b时 假定a,b有值 (实际没有, 形式上认为有),int sum( int x,int y,int z ) int m; m=x+y+z; return m; ,定义形参x,y,z时 内部没有赋值, 形式上认为有值,return是函数的逻辑结尾, 可以出现多条,但只能执行一条,int f (int a,int b) if(ab) return 1

3、; else if(a=b) return 0; else return -1; ,int sum( int x,int y,int z ) ,函数体 : 可以是空函数,只写出函数的形式,先考虑如何调用 回头再实现定义体,函数的调用过程,float f2 ( int a, int b) return ; ,f1 ( ) 调用函数语句 s= f2( x, y) ,主调函数,被调用函数,f1 ( ),float f2 ( int a, int b),a=x; b=y,函数间的数据传递,形参变量,实参,函数体内被封装 函数外看不见 局部变量,return,把函数看作黑盒子,主调向被调传参,返回一个值

4、,破坏封装性有两种情况:,1.全局变量,2. 函数内有输入输出语句,scanf( ), printf(),传值 传址,一、单项选择题(第136页),1、以下说法正确的是( ),A. C语言程序总是从第一个定义的函数 开始执行,B. 在C语言程序中,要调用的函数 必须在main()函数中定义,C. C语言程序总是从main()函数开始执行,D. C语言程序中的main()必须放在程序的 开始部分,2、在下列关于C函数定义的叙述中, 正确的是( ),B.函数不可以嵌套定义,但可以嵌套调用,函数的调用可以是嵌套的,即在调用一个函数的过程中可以再调用另一个函数。C语言不允许嵌套定义,但可以嵌套调用。,

5、【例5.6】计算组合数,long cmn(int m, int n) return ,main() 调用 z=cmn() ,long fac(int x) return ,y=,输出,函数的设计原则: 函数内尽量最简 封装性要好 不要输入输出语句,3.若函数是int 型,变量z为float型,该函数体内有定义语句return(z);则该函数返回的值是( ),A. int 型,B. float 型,C. static 型,D. extern 型,int 函数名( 形式参数表 ) float z; return z; ,4、有如下函数调用语句: func(rec1,rec2-rec3,(rec4,

6、rec5);该函数调用语句中,含有的实参个数是( ),A. 3,B. 4,C. 5,D. 有语法错误,main() int z; int rec1=5, rec2=2, rec3=4,rec4=7,rec5=10; z= func(rec1,rec2-rec3,(rec4,rec5); ,func( 5, -2, 10 ),int func( int a, int b, int c) return a+b+c; ,5、在函数调用时,如果实参是简单变量,它与对应的形参之间的数据传递方式是( ),A. 地址传递,B. 单向值传递,C. 由实参传给形参,再由形参传给实参,D. 传递方式由用户指定,6

7、、下列方法中错误的是( ),A. 主函数可以分为两个部分, 即主函数说明部分和主函数体,B. 主函数可以调用任何非主函数的其它函数,C. 任何非主函数可以调用替他任何非主函数,D. 程序可以从任何非主函数开始执行,7、以下对C语言函数的有关描述中, 正确的是( ),A. 在C语言程序中,如果没有定义函数的类型 则默认为int 型,B. C语言既可以嵌套定义又可以递归调用,C. C语言函数必须有返回值,否则不能使用函数,D. 在C语言程序中有调用关系的所有函数 必须放在同一个源程序文件中,二、填空题,C语言程序由main()函数开始执行,应在 main() 函数中结束;,2. 函数调用是,若形参

8、实参均为数组,则其传递方式是传址,main() int a10 =1,2; sum(a,10); ,void sum( int *p int n) ,main() int a10 =1,2; sum(a,10); ,void sum( int a int n) ,3 .函数调用语句:fun(2*3,(4,5);的实参数目是2,2. 下列函数的返回值类型是: fun( float x) float y; y=3*x+2; return y; ,5,6,int,3 .C语言中,函数的默认存储类型是extern,三、写出程序运行结果,int func(int a, int b) return (a+

9、b);main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%d”,r);,8,7,15,15,2. int a=5;fun( int b) static int a=10; a+=b+; printf(“%d”,a);main() int c=20; fun(c); a+=c+; printf(“%dn”,a);,a+=b,b+;,30,30,a+=c,c+;,21,25,21,25,3. func( int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return (m); main() in

10、t k=4,m=1,p; p= func(k,m); printf(“%d ”,p); p=func(k,m); printf(“%dn”,p);,i=i+m+1,3,8,8,8,8,12,17,17,17,17,4. fun( int x) if(x/20) fun(x/2) printf(“%d”,x);main() fun(6);,1,3,6,main() fun(6);,fun( int x) if(x/20) fun(x/2) printf(“%d”,x);,fun( int x) if(x/20) fun(x/2) printf(“%d”,x);,fun( int x) if(x/

11、20) fun(x/2) printf(“%d”,x);,1,3,6,5. int a=3; void fun( ) static int a=0; a+=2; printf(“%d”,a); main() int i; for(i=1;i4;i+) fun(); printf(“n”);,1,2,2,2,4,3,4,6,6,四、程序填空题,1、以下函数的功能是通过键盘输入数据, 为数组中的所有元素赋值,#define N 10 void arrin( int xN) int i=0; while(iN) scanf(“%d”, ,void arrin( int x, int n),2、下面i

12、nvert函数的功能是将一个字符串str 的内容颠倒过来,void invert( char str ) int j,j,k; for(i=0, j= strlen(str)-1 ;ij; i+,j-) k=stri; stri=strj; strj=k; ,a d e f g c g 0,i,-j,元素交换,以下程序是计算s=1 -1/2 +1/4 -1/6 +1/8+1/n 前n项的和,s=s+ fac/i,每次循环:,fac=- fac,i=i+2,i=n,double fun( int n ) double s=1.0, fac=1.0;int i; for(i=2;i=n; i+=2

13、) fac=-fac; s=s+fac/i; return s; ,以下程序是计算s=1/1! +1/2! +1/n! 前n项的和,分母是阶乘,每次循环:,第i项阶乘结果 是fac,fac=fac*i,double fun( int n ) double s=0.0, fac=1.0;int i; for(i=1;i=n; i+=2) fac=fac*i; s=s+1/fac; return s; ,s=s+1/fac,5.以下comppare函数的功能是按照字典的顺序比较两个字符串a,b的大小,如果ab,则返回正值a=b则返回0;ab则返回负值,a b d g h 0 a b f 0,a b c h 0 f b c 0,a b c 0 a b c 0,int compare (char a, b) int i; for(i=0;ai!=0 ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号