资源描述:
《C语言函数习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题一、选择题1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。A.auto和static B.auto和registerC.register和static D.extern和register2、下述程序的输出结果是____A____。long fun(int n){ long s; if(n==1
2、
3、n==2) s=2; else s=n-fun(n-1); return s;}main(){ printf(“%l
4、d”,fun(3));}A.1 B.2 C.3 D.43、C语言中形参的默认存储类别是____A________。A.自动(auto) B.静态(static)C.寄存器(register) D.外部(extern)4、下面对函数嵌套的叙述中,正确的是_____B_____。A.函数定义可以嵌套,但函数调用不能嵌套B.函数定义不可以嵌套,但函数调用可以嵌套C.函数定义和函数调用均不能嵌套D.函数定义和函数调用均可以嵌套5、下面关于形参和实参的说法中,正确的是_
5、___B_____。A.形参是虚设的,所以它始终不占存储单元 B.实参与它所对应的形参占用不同的存储单元C.实参与它所对应的形参占用同一个存储单元D.实参与它所对应的形参同名时可占用同一个存储单元6、关于全局变量的作用范围,下列说法正确的是____D_______。A.本程序的全部范围 B.离定义该变量的位置最接近的函数C.函数内部范围 D.从定义该变量的位置开始到本文件结束7、调用一个函数,此函数中没有return语句,下列说法正确的是:该函数____D____。A.没有返回值
6、 B.返回若干个系统默认值C.能返回一个用户所希望的函数值 D.返回一个不确定的值8、以下函数调用语句中含有____B_____个实参。fun((exp1,exp2),(exp3,exp4,exp5));A.1 B.2 C.4 D.59、以下程序的输出结果是__C______。fun(int a,int b,int c){ c=a*a+b*b;}main(){ int x=22;fun(4,2,x);printf(”%d”,x);}A.20 B.21
7、 C.22 D.2310、以下程序的输出结果是____A_____。#includeintfunc(intx,inty){ static int m=2,k=2; k+=m+1; m=k+x+y; returnm;}main(){ int a=8,b=1,p; p=func(a,b);printf("%d,",p);p=func(a,b);printf("%d",p);}A.14,29 B.14,24 C.14,8 D.14,3011、C语言规定,简
8、单变量做实参时,它和对应形参之间的数据传递方式为__B_____。A.地址传递B.单向值传递 C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式12、建立函数的目的之一是__B_____.A.提高程序的执行效率B.提高程序的可读性C.减少程序的篇幅D.减少程序文件所占内存二、程序分析题1、以下程序的输出结果是____6_____。#includefun(inta,intb,intc){ c=a*b;returnc;}main(){ intc; fun(2,3,c); printf("%d
9、n",c);} 2、分析以下程序的运行结果____14_____。#includeintfunc(inta,intb){ intc; c=a+b; returnc;}main(){ intx=6,r; r=func(x,x+=2); printf("%d",r);} 3、分析以下程序的运行结果__8,4_______。#includeintd=1;voidfun(intp){ intd=5
10、; d+=p++; printf("%d",d);}main( ){ inta=3; fun(a); d+=a++; printf("%d",d);}4、分析以下程序的运行结果____6,15,