您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言习题集合5(函数)
第五部分函数·1·第五部分函数5.1选择题1.C语言是由()构成。A.主程序和子程序B.主函数和若干子函数C.一个主函数和一个其他函数D.主函数和子程序2.以下说法中正确的是()。A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分3.以下对C语言函数的有关描述中,正确的是()。A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中4.C语言程序中,当函数调用时()。A.实参和形参各占一个独立的存储单元B.实参和形参共用一个存储单元C.可以由用户指定是否共用存储单元D.计算机系统自动确定是否共用存储单元5.关于return语句,下列正确的说法是()。A.在主函数和其他函数中均要出现B.必须在每个函数中出现C.可以在同一个函数中出现多次D.只能在除主函数之外的函数中出现一次6.一个函数返回值的类型是由()决定的。A.return语句中表达式的类型B.在调用函数时临时指定C.定义函数时指定的函数类型D.调用该函数的主调函数的类型7.在C语言的函数中,下列正确的说法是()。A.必须有形参B.形参必须是变量名C.可以有也可以没有形参D.数组名不能作形参8.以下描述正确的是()。A.函数调用可以出现在执行语句或表达式中B.函数调用不能作为一个函数的实参第五部分函数·2·C.函数调用可以作为一个函数的形参D.以上都不正确9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定10.当调用函数时,实参是一个数组名,则向函数传送的是()。A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值11.如果在一个函数的复合语句中定义了一个变量,则该变量()。A.只在该复合语句中有效,在该复合语句外无效B.在该函数中任何位置都有效C.在本程序的源文件范围内均有效D.此定义方法错误,其变量为非法变量12.下列说法不正确的是()。A.主函数main中定义的变量在整个文件或程序中有效B.不同函数中,可以使用相同名字的变量C.形式参数是局部变量D.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效13.在一个源程序文件中定义的全局变量的有效范围是()。A.本源程序文件的全部范围B.一个C程序的所有源程序文件C.函数内全部范围D.从定义变量的位置开始到源程序文件结束14.以下叙述中不正确的是()。A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效15.如果要限制一个变量只能为本文件所使用,必须通过()来实现。A.外部变量说明B.静态局部变量C.静态外部变量D.局部变量说明16.下列哪种数据不存放在动态存储区中()。A.函数形参变量B.局部自动变量C.函数调用时的现场保护和返回地址D.局部静态变量17.以下叙述中不正确的是()。A.函数中的自动变量可以赋初值,每调用一次,赋一次初值。B.在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C.外部变量的隐含类别是自动存储类别。D.函数形参可以说明为register变量。18.以下只有在使用时才为该类型变量分配内存的存储类说明是()。A.auto和staticB.auto和registerC.register和staticD.extern和register19.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。A.voidB.intC.floatD.double第五部分函数·3·20.在C语言中,函数的隐含存储类别是()。A.autoB.staticC.externD.无存储类别21.在C语言中,形参的缺省存储类是()。A.autoB.registerC.staticD.extern22.若有以下程序#includestdio.hvoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(%d\n,n);}则以下叙述中不正确的是()。A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D.函数f无返回值,所以可用void将其类型定义为无值型23.以下所列的各函数首部中,正确的是()。A.voidplay(var:Integer,varb:Integer)B.voidplay(inta,b)C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)24.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是()。A.3B.4C.5D.有语法错25.若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是()。A.3B.4C.5D.626.以下函数值的类型是()。fun(floatx){floaty;y=3*x-4;returny;}A.intB.不确定C.voidD.float27.下列函数定义不正确的是()。A.intmax()B.intmax(x,y)第五部分函数·4·{intx,y,z;intx,y;z=xy?x:y;{intz;}z=xy?x:y;return(z);}C.intmax(x,y)D.intmax(){intx,y,z;{}z=xy?x:y;return(z);}28.下列程序的运行结果是()。main(){inti=3;printf(%d,%d,%d\n,i,i++,i++);}A.5,5,4B.3,4,5C.3,3,4D.5,4,329.以下程序的输出结果是()。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}A.0B.29C.31D.无定值30.下列程序执行后的输出结果是()。voidfunc1(inti);voidfunc2(inti);charst[]=hello,friend!;voidfunc1(inti){printf(%c,st[i]);if(i3){i+=2;func2(i);}}voidfunc2(inti){printf(%c,st[i]);if(i3){i+=2;func1(i);}}main(){inti=0;func1(i);第五部分函数·5·printf(\n);}A.helloB.helC.hloD.hlm31.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(%d\n,r);}该程序的输出的结果是()。A.12B.13C.14D.1532.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf(%3.0f\n,fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()。A.编译出错B.9C.21D.9.033.有以下程序#includestdio.hintabc(intu,intv);main(){inta=24,b=16,c;c=abc(a,b);printf(%d\n,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w}returnu;}输出结果是()。A.6B.7C.8D.9第五部分函数·6·34.阅读以下函数:fun(chars[],chart[]){inti=-1;while(++i,s[i]==t[i]&&s[i]!=’\0’);return(s[i]==’\0’&&t[i]==’\0’);}以上函数的功能是()。A.比较串s和t的长度B.比较串s和t的大小C.比较串s和t是否相等D.将串t赋给串s35.以下程序的输出结果是()。f(intb[],intm,intn){inti,s=0;for(i=m;in;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(%d\n,x);}A.10B.18C.8D.1536.以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。voidreverse(inta[],intn){inti,t;for(i=0;in/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i10;i++)s+=b[i];printf(%d\n,s);}程序运行后的输出结果是()。A.22B.10C.34D.3037.请读程序:#includestdio.h第五部分函数·7·func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y--,x+y),z--);printf(%d\n,r);}上面程序的输出结果是()。A.11B.19C.21D.3138.请读程序:#includestdio.hf(inb[],intn){inti,r;r=1;for(i=0;i=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(%d\n,x);}上面程序的输出结果是()。A.720B.120C.24D.639.下面程序的输出是()。main(){intt=1;fun(fun(t));}fun(inth){staticinta[3]={1,2,3};intk;for(k=0;k3;k++)a[k]+=a[k]-h;for(k=0;k3;k++)printf(%d,a[k]);printf(\n);return(a[h]);第五部分函数·8·}A.1,2,3,B.1,3,5,C.1,3,5,D.1,3,5,1,5,9,1,3,5,0,4,8,-1,3,7,40.有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(%d\n,fib(3));}该程序的输出结果是()。A.2B.4C.6D.841.以下程序的输出结果是()。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf(%ld\n,fun(3));}A.1B.2C.3D.442.以下程序的输出结果是()。func(intx){intp;if(x==0||x==1)return(3);p=x-func(x-2);returnp;}main(){printf(%d\n,func(9));}A.7B.2C.0D.343.有以下程序intf(intn){第五部分函数·9·if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i3;
本文标题:C语言习题集合5(函数)
链接地址:https://www.777doc.com/doc-6661912 .html