第八章 函数41648.doc

上传人:公**** 文档编号:558242039 上传时间:2024-01-22 格式:DOC 页数:12 大小:39.50KB
返回 下载 相关 举报
第八章 函数41648.doc_第1页
第1页 / 共12页
第八章 函数41648.doc_第2页
第2页 / 共12页
第八章 函数41648.doc_第3页
第3页 / 共12页
第八章 函数41648.doc_第4页
第4页 / 共12页
第八章 函数41648.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《第八章 函数41648.doc》由会员分享,可在线阅读,更多相关《第八章 函数41648.doc(12页珍藏版)》请在金锄头文库上搜索。

1、第八章 函数41648读书以过目成诵为能,最是不济事。郑板桥第八章 函数一:选择题【例8-1】:以下对C语言函数的有关描述中,正确的是 A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)C程序中有调用关系的所有函数必须放在同一个源程序文件中解析:C函数不能嵌套定义,可以没有返回值,并且一个函数可以调用不属于同一个源文件的外部函数,所以选项B、C、D都是错误的。答案:A【例8-2】:以下叙述中不正确的是 A)在C中,函数的自动变量可以赋值,每调用一次,赋一次初值B)在C中,在调用函数时,实际参数

2、和对应形参在类型上只需赋值兼容C)在C中,外部变量的隐含类别是自动存储类别D)在C中,函数形参可以说明为register变量解析:外部变量的隐含类别是全局变量,不是自动存储类别。选项A、B、D正确。答案:C【例8-3】:以下叙述中不正确的是 A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效解析:在一个函数内复合语句中定义的变量,只能在该复合语句范围内有效,因此选项D是错误的。答案:D【例8-4】:当调用函数时,实参是一个数组名,则向函数传送的是 A)数组的长度B)数组的首

3、地址C)数组每一个元素的地址D)数组每个元素中的值解析:C语言中的函数调用分为传值调用和传地址调用,而数组名其实存放的是该数组的首地址,因此当实参是数组名时,向函数传送的是该数组的首地址。答案:B【例8-5】:函数调用:strcat(strcpy(str1,str2),str3)功能是 A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中解析:题目中所给函数的功能是:先用函数strcpy把参数串

4、str2复制到参数串str1中去,然后用函数strcat把参数串str3连接到经过修改后的参数串str1后,因此,选项C正确。答案:C【例8-6】:有以下程序:void fun(int a,int b,int c)a=456;b=567;c=678;main()int x=10,y=20,z=30;fun (x,y,z);printf(%d,%d,%dn,z,y,x);输出结果是 A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,456解析:函数fun的x、y、z参数都是传值调用,函数体中对形参值的改变不会带回到主函数,因此主函数中输出z,y,x的值没

5、变,为30、20、10。答案:A【例8-7】:以下程序运行后,输出结果是 A)8,15 B)8,16 C)8,17 D)8,8func(int a,int b) static int m=0,i=2;i+=m+1;m=i+a+b;return(m);main() int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%dn,p);解析:本题主要考察静态变量的应用,k=4,m=1时,第一次执行函数func(4,1),i+=m+1使得i=2+(0+1)=3,m=i+a+b=3+4+1=8;主函数中并没有改变k和m的值,因此第二次仍然执行

6、函数func(4,1),只是此时func中不再对m和i赋初值,m=8,i=3,于是i=3+(8+1)=12,m=i+a+b=12+4+1=17,返回主函数并输出17,程序结束。答案:C【例8-8】:以下程序运行后,输出结果是 A)84 B)99 C)95 D)44int d=1;fun(int p) int d=5;d+=p+;printf(%d,d);main() int a=3;fun(a);d+=a+;printf(%dn,d);解析:本题主要考察全局变量和局部变量的作用域,如果全局变量和局部变量的名字相同,那么全局变量在局部变量所在的区域不起作用。本题执行函数 fun(3)中,d+=p

7、+使得局部变量d=5+3=8并输出,然后在主函数的d+=a+使得全局变量d=1+3=4并输出。答案: A【例8-9】:以下程序的输出结果是 A)54321 B)012345 C)12345 D)543210main() int w=5;fun(w);printf(n);fun(int k) if(k0)fun(k-1);printf(%d,k);解析:本题主要考察递归函数的调用。只有当实参等于0时,才会输出,然后依次递归输出1、2、3、4、5。答案: B【例8-10】:以下程序的输出结果是 A)6 9 9 B)6 6 9 C)6 15 15 d)6 6 15int d=1;fun(int p)

8、 static int d=5;d+=p;printf(%d,d);return(d): 读书以过目成诵为能,最是不济事。郑板桥main() int a=3;printf(%dn,fun(a+fun(d);解析:本题关键在于静态变量d,第一次执行 fun(d),即fun(1),在函数fun里对静态变量赋初值5,得到d=d+p=5+1=6并输出,然后返回6,第二次执行fun(a+fun(d),即fun(3+6)=fun(9),在函数fun中直接执行d=d+p=6+9=15并输出,然后返回15,再一次输出。答案:C【例8-11】:下面程序执行后的输出结果是 A) hello B) hel C) h

9、lo D) hlmfunc1(int i);func2(int i);char st =hello,friend!;func1(int i) printf(%c,sti);if(i3)i+=2;func2(i);func2(int i)printf(%c,sti);if(i2)return(fib(n-1)+fib(n-2);else return(2);main()printf(%ldn,fib(3);该程序的输出结果是 A)2 B)4 C)6 D)8解析:该题主要考察函数的递归调用,由函数fib的定义,fib(1)=2,fib(2)=2,因此fib(3)=fib(2)+fib(1)=2+2

10、=4答案:B【例8-15】:在c语言中,函数的隐含存储类别是 A)auto B)static C)extern D)无存储类别解析:C语言中如无特别说明,函数的隐含存储类别为外部extern类别。【答案】C【例8-16】:以下所列的各函数首部中,正确的是 A)void play(var:Integer,var b:Integer) B)void play(int a,b)C)void play(int a,int b) D)Sub play(a as integer,b as integer)解析:C语言中函数首部中的各参数,必须分开单独定义。因此选项C才是正确的。答案:C【例8-17】:以下

11、程序的输出结果是 A)0 B)29 C)31 D)无定值fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,a);printf(%d,a);解析:实参a与形参z之间是单向传值的关系,z值的变化不会回传给a;因此a的值保持不变。该题主要考察,函数参数之间传值时,形参值的改变,不会改变实参变量的值。答案:C【例8-18】:以下只有在使用时才为该变量分配内存单元的存储类说明是 A)auto和static B)auto和register C)register和static D)extern 和register解析:动态存储变量是指在动态存储区存

12、放、动态分配存储单元的数据,包括自动变量、形参变量和寄存器变量,又随着所在函数的调用结束而释放,下一次调用时再重新分配并释放存储单元。而静态存储变量在程序编译时分配存储单元,全局变量占用固定的存储单元。答案:B【例8-19】:以下程序的输出结果是 A)1 B)2 C)3 D)4long fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);return s;main()printf(%ldn,fun(3);解析:这是个简单的函数调用。根据该函数定义,fun(3)=3-fun(2)=3-2=1。答案:A【例8-20】:以下正确的说法是:A) 定义函数时,形参的类型说明可以放在函数体内B) return语句后面不能为表达式C) 如果return后表达式的类型与函数的类型不一致,以定义函数时的函数类型为准D) 如果形参与实参的类型不一致,以实参类型为准 解析:如果返回

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

当前位置:首页 > 生活休闲 > 社会民生

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