版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五部分函数第五部分函数51 选择题选择题1C语言是由()构成。A.主程序和子程序B.主函数和若干子函数C.一个主函数和一个其他函数D.主函数和子程序2以下说法中正确的是()。A.C语言程序总是从第一个的函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分3.以下对C语言函数的有关描述中,正确的是()。A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放
2、在同一个源程序文件中4.C语言程序中,当函数调用时()。A.实参和形参各占一个独立的存储单元B.实参和形参共用一个存储单元C.可以由用户指定是否共用存储单元D.计算机系统自动确定是否共用存储单元5 关于return语句,下列正确的说法是()A.在主函数和其他函数中均要出现B.必须在每个函数中出现C.可以在同一个函数中出现多次D.只能在除主函数之外的函数中出现一次6一个函数返回值的类型是由()决定的。A.return语句中表达式的类型B.在调用函数时临时指定C.定义函数时指定的函数类型D.调用该函数的主调函数的类型7在C语言的函数中,下列正确的说法是()。A.必须有形参B.形参必须是变量名C.可
3、以有也可以没有形参D.数组名不能作形参8以下描述正确的是()。A.函数调用可以出现在执行语句或表达式中B.函数调用不能作为一个函数的实参C.函数调用可以作为一个函数的形参D.以上都不正确9在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定10当调用函数时,实参是一个数组名,则向函数传送的是()。A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值11如果在一个函数的复合语句中定义了一个变量,则该变量()。A.只在该复合语句中有效,在该复合语句外无效B.在该函数中任何
4、位置都有效C.在本程序的源文件围均有效D.此定义方法错误,其变量为非法变量12下列说法不正确的是()。A.主函数main中定义的变量在整个文件或程序中有效B.不同函数中,可以使用相同名字的变量C.形式参数是局部变量D.在一个函数部, 可以在复合语句中定义变量, 这些变量只在本复合语句中有效13在一个源程序文件中定义的全局变量的有效围是()。A.本源程序文件的全部围B.一个C程序的所有源程序文件C.函数全部围D.从定义变量的位置开始到源程序文件结束14以下叙述中不正确的是()。A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数定义的变量只在本函数围有效D.在一个
5、函数的复合语句中定义的变量在本函数围有效15如果要限制一个变量只能为本文件所使用,必须通过()来实现A.外部变量说明B.静态局部变量C.静态外部变量D.局部变量说明16下列哪种数据不存放在动态存储区中()。A.函数形参变量B.局部自动变量C.函数调用时的现场保护和返回地址D.局部静态变量17以下叙述中不正确的是()。A.函数中的自动变量可以赋初值,每调用一次,赋一次初值。B.在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C.外部变量的隐含类别是自动存储类别。D.函数形参可以说明为register变量。18以下只有在使用时才为该类型变量分配存的存储类说明是()。A.auto和口stati
6、cB.auto和口registerC.register和口staticD.extern和register19.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()A.voidB.intC.floatD.double20.在C语言中,函数的隐含存储类别是()A.autoB.staticC.externD.无存储类别21.在C语言中,形参的缺省存储类是()22若有以下程序#includevoidf(intn);main()voidf(intn);f(5);voidf(intn)printf(%dn,n);则以下叙述中不正确的是()。A.若只在主函数中对函数f进行说明,则只能在主函数中正确
7、调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D.函数f无返回值,所以可用void将其类型定义为无值型A.autoB.registerC.staticD.extern23以下所列的各函数首部中,正确的是()。A.voidplay(var:Integer,varb:Integer)B.voidplay(inta,b)z=xy?x:y;C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)24有如下函数调用语句func(rec1,rec2
8、+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是()。A.3B.4C.5D.有语法错25若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b);在此函数调用语句中实参的个数是()。26以下函数值的类型是()fun(floatx)floaty;y=3*x-4;returny;A.intB.不确定C.voidD.float27下列函数定义不正确的是()。B.intmax(x,y)A.3B.4C.5D.6A.intmax()intx,y,z;C.intmax(x,y)D.intmax()intx,y;z=xy?x:y;return(z);intx,y,
9、z;z=xy?x:y;return(z);28下列程序的运行结果是()。main()inti=3;printf(%d,%d,%dn,i,i+,i+);A.5,5,4B.3,4,5C.3,3,429以下程序的输出结果是()。fun(intx,inty,intz)z=x*x+y*y;intz;D.5,4,3C.intmax(x,y)D.intmax()main()inta=31;fun(5,2,a);printf(%d,a);A.helloB.helC.hloD.hlm30下列程序执行后的输出结果是()voidfunc1(inti);voidfunc2(inti);charst=hello,fri
10、end!;voidfunc1(inti)printf(%c,sti);if(i3)i+=2;func2(i);voidfunc2(inti)printf(%c,sti);if(i3)i+=2;func1(i);main()inti=0;A.0B.29C.31D.无定值A.编译出错B.9C.21D.9.0func1(i);printf(n);31有如下程序intfunc(inta,intb)return(a+b);main()intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);该程序的输出的结果是()。A.12B.13C.14D.1532有以下程
11、序floatfun(intx,inty)return(x+y);main()inta=2,b=5,c=8;A.编译出错B.9C.21D.9.0printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是()。33有以下程序#includestdio.hintabc(intu,intv);main()inta=24,b=16,c;c=abc(a,b);printf(%dn,c);intabc(intu,intv)intw;while(v)w=u%v;u=v;v=wreturnu;输出结果是()。A.6B.7C.834阅读以下函数:fun(chars,char
12、t)D.9A.10B.18C.8D.15inti=-1;while(+i,si=ti&si!=0);return(si=0&ti=0);以上函数的功能是()。A.比较串s和t的长度B.C.比较串s和t是否相等D.35以下程序的输出结果是()。f(intb,intm,intn)inti,s=0;for(i=m;in;i=i+2)s=s+bi;returns;main()intx,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(%dn,x);比较串s和t的大小将串t赋给串sA.10B.18C.8D.1536以下程序中函数reverse的功能是将a所指数组
13、中的容进行逆置。voidreverse(inta,intn)inti,t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()intb10=1,2,3,4,5,6,7,8,9,10;inti,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(%dn,s);程序运行后的输出结果是()。A.22B.10C.34D.3037请读程序:#includefunc(inta,intb)intc;main()c=a+b;returnc;main()intx=6,y=7,z=8,r;r=func(x-,y-,x+y),z-);pr
14、intf(%dn,r);上面程序的输出结果是()。A.11B.19C.21D.3138请读程序:#includef(inb,intn)inti,r;A.1,2,3,B.1,3,5,C.1,3,5,D.1,3,5,r=1;for(i=0;i=n;i+)r=r*bi;returnr;main()intx,a=2,3,4,5,6,7,8,9;x=f(a,3);printf(%dn,x);上面程序的输出结果是()。A.720B.120C.2439下面程序的输出是()。main()intt=1;fun(fun(t);fun(inth)staticinta3=1,2,3;intk;for(k=0;k3;k
15、+)ak+=ak-h;for(k=0;k2)return(fib(n-1)+fib(n-2);elsereturn(2);main()printf(%dn,fib(3);该程序的输出结果是()。A.2B.4C.641以下程序的输出结果是()。longfun(intn)longs;if(n=1|n=2)s=2;elses=n-fun(n-1);returns;D.8A.1,2,3,B.1,3,5,C.1,3,5,D.1,3,5,printf(%ldn,fun(3);A.1B.2C.3D.442以下程序的输出结果是()。func(intx)intp;if(x=0|x=1)return(3);p=x
16、-func(x-2);returnp;main()printf(%dn,func(9);A.7B.2C.043有以下程序D.3intf(intn)if(n=1)return1;elsereturnf(n-1)+1;main()inti,j=0;for(i=1;i3;i+)j+=f(i);printf(%dn,j);程序运行后的输出结果是()。A.4B.3C.2D.144下面程序的输出是()。intw=3;main()intw=10;printf(%dn,fun(5)*w);fun(intk)if(k=0)returnw;return(fun(k-1)*k);A.360B.3600C.1080D
17、.120045以下程序的输出结果是()。#includestdio.hinti=5;main()inti=3;inti=10;i+;f1();i+=1;printf(%dn,i);intf1()i=i+1;return(i);A.7B.4C.1246以下程序的输出结果是()。inta,b;voidfun()D.6a=100;b=200;main()inta=5,b=7;fun();printf(%d%dn,a,b);A.100200B.57C.20010047以下程序输出结果是()。main()inti;for(i=0;i2;i+)add();add()intx=0;staticinty=0;
18、printf(%d,%dn,x,y);x+;y=y+2;D.75D.0,01,2A.0,0B.0,0C.0,00,00,21,048设有以下函数:inti;f(inta)intb=0;staticintc=3;b+;c+;return(a+b+c);如果在下面的程序中调用该函数,则输出结果是()。main()inta=2,i;for(i=0;i3;i+)printf(%dn,f(a);49以下程序的输出的结果是()。intx=3;main()A.7B.789911C.7D.7107137inti;for(i=1;ix;i+)incre();staticinta=3;incre()statici
19、ntx=1;x*=x+1;printf(%d,x);A.33B.22C.2650有以下程序inta=3;main()ints=0;inta=5;s+=a+;s+=a+;printf(%dn,s);程序运行后的输出结果是()。D.25staticinta=3;A.8B.10C.7D.1151下面程序的输出是()。fun3(intx)intd=5;a+=x;return(a);main()intk=2,m=1,n;n=fun3(k);n=fun3(m);printf(%dn,n);A.3B.4C.652下面程序的输出是()。intm=13;intfun2(intx,inty)intm=3;retu
20、rn(x*y-m);main()D.9inta=7,b=5;printf(%dn,fun2(a,b)/m);intd=5;A.1B.2C.7D.1053下列程序执行后输出的结果是()。#includef(inta)intb=0;staticc=3;a=c+,b+;return(a);main()inta=2,i,k;for(i=0;i2;i+)k=f(a+);printf(%dn,k);A.3B.0C.5D.454下列程序执行后输出的结果是()。intd=1;fun(intp)d+=p+;intd=5;printf(%d,d);main()inta=3;fun(a);d+=a+;printf(
21、%dn,d);A.84B.96C.9455以下程序的输出结果是()。intd=1;fun(intp)staticintd=5;d+=p;printf(%d,d);return(d);D.85main()inta=3;printf(%dn,fun(a+fun(d);A.699B.669C.61515D.652 填空题填空题1下面程序的输出结果是。intt(intx,inty,intcp,intdp)cp=x*x+y*y;dp=x*x-y*y;main()inta=4,b=3,c=5,d=6;t(a,b,c,d);printf(%d%dn,c,d);2下面程序运行后的输出结果是。voidfun(i
22、ntx,inty)615x=x+y;y=x-y;x=x-y;printf(%d,%d,x,y);main()intx=2,y=3;fun(x,y);printf(“%d,%dn”,x,y);3下面程序的输出结果是voidfun()staticinta=0;a+=2;printf(%d,a);main()intcc;for(cc=1;cc!【0二!)oj!H!()uieiu9pnpu!#途芳遁輛厘丄S【(!出”PS%J*U!d(+!0二门二!)0j!H!()uieiuJujnej6下面程序的输出是。unsignedfun6(unsignednum)unsignedk=1;dok*=num%10;
23、num/=10;while(num);return(k);main()unsignedn=26;printf(%dn,fun6(n);7下面程序的输出结果是。#includefun(intx)intp;if(x=0|x=1)return(3);p=x-fun(x-2);returnp;main()printf(%dn,fun(9);8下面程序的输出是longfun5(intn)longs;if(n=1)|(n=2)s=2;elses=n+fun5(n-1);return(s);main()longx;x=fun5(4);printf(%ldn,x);6()lua亠(uxtluEOmun4ocx
24、lun4omun4otun4)ouroluxxVIAde-u一Sx-u_6AgPEUUd(+|乂|龙0丄)04xxVIAde-U一)oCNua亠空丈丄亠石(+|乂乏龙0丄)0410下面程序的运行结果是。#includemain()intk=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%dn,p);func(inta,intb)staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;11下面程序运行结果是。main()intx=2,n=3;printf(%dn,power(x,n);power(intx,intn
25、)intp;if(n0)p=power(x,n-1)*x;elsep=1;return(p);12下面程序从键盘输入:5647,输出结果是#includevoidconvert(intn)inti;if(i=n/10)!=0)convert(i);putchar(n%10+0);main()intnumber;scanf(%d,&number);if(number0)putchar(-);number=-number;convert(number);13.输入Iamastudent.时,下面程序运行结果是#includemain()inti,c,num=0,word=0;charstr
26、ing81;gets(string);for(i=0;c=stringi;i+)if(c=)word=0;elseif(word=0)word=1;num+;printf(%d,num);14.下面程序的运行结果是。#includelongfib(intg)switch(g)case0:return0;case1:case2:return(1);return(fib(g-1)+fib(g-2);main()longk;k=fib(5);printf(%dn,k);15设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【1】。(要求形参名为b。)main()
27、doubles1022;intn;Ifun(s);16以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。#defineN3#defineM4voidLineMax(intxNM)inti,j,p;for(i=0;iN;i+)p=0;for(j=1;jM;j+)if(xipxij)【1】;printf(Themaxvalueinline%dis%dn,i,【2】);main()intxNM=1,5,7,4,2,6,4,3,8,2,3,1;【3】;17下面函数的功能是:求x的y次方,请填空。doublefun(doublex,inty)inti;
28、doublez;for(i=1,z=x;iy;i+)z=z*【1】;returnz;18若已定义:inta10,i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、&9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。fun(inta)inti;for(i=1;i=10;i+)【1】=i;for(i=0;i5;i+)【2】=ai;19.下面函数的功能是计算 s=1+,请埴空。1*21*2*3I*2*3*4*ndoublefun(intn)doubles=0.0,fac=1.0;int
29、i;for(i=1,ieps;n+)s+=t;t=n*t/(2*n+1);return(2.0*【2】);21读下面的程序,填空完善程序main()inta,b,c;scanf(%d%d,【1】);c=【2】(a,b);printf(a=%d,b=%d,c=%dn,a,b,c);intmax(x,y)【3】;intz;if(xy)z=x;elsez=y;【4】;22下面程序根据对x的输入,求1到x的累加和。floatfun(intn)inti;floatc;【1】;for(i=1;i=n;i+)c+=i;【2】;main()intx;for(i=1;in;i+)scanf(%d,【3】);pr
30、intf(%fn,fun(x);23分别计算并输出1!,2!,3!,4!和5!。main()inti;for(i=1;i=5;i+)printf(%d!=%dn,i,【1】);intfac(intn)【2】f=1;f*=n;return(f);24求出数组中的最大、最小元素值以及所有元素的均值【1】;floataverage(intn,floatarray)inti;for(i=1;in;i+)floatsum;max=min=sum=【2】;sum+=arrayi;if(maxarrayi)min=arrayi;return(sum/n);main()inti;floataver,score
31、10;printf(input10score:n);for(i=0;i10;i+)scanf(%f,【3】);aver=average(10,score);printf(max=%.2fnmin=%.2fnaverage=%.2fn,max,min,aver);25下面程序的功能是找出三个字符串中最大串,填空完善程序。【1】#includemain()inti;charstring20,str320;for(i=0;i0)strcpy(string,str0);elsestrcpy(string,str1);if(strcmp(str2,string)【3】)strcpy(string,str
32、2);printf(thelargeststringisn%sn,string);26本程序的函数ver是使输入的字符串按反序存放,在主函数中输入和输出字符串。main()charstr100;scanf(%s,str);ver(str);printf(%sn,str);ver(【1】)chart;inti,j;for(i=0,j=strlen(str);istrlen(str)/2;i+,j-)t=stri;【2】;【3】;27用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#defineN10charsHNbmaino亠intLf-agjfor(f-agHlf-ag“Hl)亠 s
33、canf(=%r=str)jf-aguoprintf(=rr)j)sort(【1】)jfor(TOx-N=+)printf(=%r=sHimprintf(=rr)sortnharSHZ)亠intijcharrtfor(n-lA-Nc_:.+)for(TsiANj)p?p?(sHiIT、9)=+)if(sHvsHi+s亠 tustrM【2】j【3】)28田、.h 坦汁礬羽。voidsort(n,array)【1】;inti,j,k,t;for(i=0;in-1;i+)k=i;for(【2】;jarrayj)k=j;t=arrayi;arrayi=arrayk;arrayk=t;main()int
34、i,a10;printf(inputthearray:n);for(i=0;i10;i+)scanf(%d,&ai);【3】;printf(thesortedarray:n);for(i=0;i10;i+)printf(%6d,ai);29用递归方法求n!。floatfac(intn)floatf;if(n0)printf(n0,dataerror!);elseif(【1】)f=1;elsef=【2】;return(f);main()intn=6;floaty;printf(n);【3】;printf(%d!=%5.0f,n,y);30程序调用prime函数,判断输入的一个整数是否为素
35、数,是则打印YES,否则打印NO.#includestdio.hmain()intx;printf(输入一个整数给x:);scanf(%d,【1】);if(prime(x)printf(YESn);elseprintf(NOn);prime(inta)inte,i,yes;yes=1;e=a/2;i=2;while(i=e)【2】)if(a%【3】=0)yes=0;elsei+;【4】;53 答案及部分解析答案及部分解析一选择题答案1.B2.C3.A4.A5.C6.C7.C8.A9.B10.B11.A12.A13.D14.D15.C16.D17.C18.B19.B20.C21.A22.C23.C24.A25.A26.A27.C28.D29.C30.C31.D32.B33.C34.C35.A36.A37.B38.B39.D40.B41.A42.A43.B44.B45.B46.B47.B48.A49.C50.A51.C52.B53.D54.A55.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兰州石化职业技术大学《中国智慧》2023-2024学年第一学期期末试卷
- 江西科技职业学院《地理学科教学设计》2023-2024学年第一学期期末试卷
- 集宁师范学院《石油化工工艺》2023-2024学年第一学期期末试卷
- 湖南现代物流职业技术学院《海外市场调研与数据分析》2023-2024学年第一学期期末试卷
- 湖南工程学院应用技术学院《跨境电商概论》2023-2024学年第一学期期末试卷
- 衡水健康科技职业学院《风景园林建筑设计基础》2023-2024学年第一学期期末试卷
- 重庆幼儿师范高等专科学校《市场调查分析》2023-2024学年第一学期期末试卷
- 重庆健康职业学院《数字音视频技术》2023-2024学年第一学期期末试卷
- 浙江农业商贸职业学院《先进陶瓷材料》2023-2024学年第一学期期末试卷
- 郑州食品工程职业学院《自然地理学概论》2023-2024学年第一学期期末试卷
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 2025年中国AI学伴行业市场现状及投资态势分析报告(智研咨询)
- 智能安防监控系统设计与实施计划书
- 【高中数学课件】排列数公式的应用
- 2024年河南省公务员录用考试《行测》真题及答案解析
- 2024年国家公务员考试《申论》真题(地市级)及答案解析
- 2024年道路运输企业两类人员安全考核试题库-上(单选、多选题)
- 老年冠心病慢病管理指南(2023版)解读
- 2024年-2025年全民“科学素养提升行动”竞赛考试题库(含各题型)
- 面包烘焙原料供应采购合同案例
- 基于mRNA-LNP技术的(细胞)免疫治疗产品开发指南
评论
0/150
提交评论