您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 初中教育 > C语言4函数练习题4
第四章函数一、选择题1.以下正确的函数原形说明语句是A.voidfun(intx);B.floatfun(voidy);C.doublefun(x);D.int(charch);2.若函数的定义为:fun(charch){…}那么该函数的返回值是A.void型B.char型C.float型D.int型3.以下说法中正确的是A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下函数中,函数返回的正确写法是A.charfun()B.intfun(){{……return”abcde”return;}}C.voidfun()D.voidfun(){{……return;return(5);}}5.如果一个函数没有返回值,那么该函数的类型是A.intB.floatC.charD.void6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定7.一个函数的形式参数的作用域是A.main()主函数B.这个函数体C.从定义处到文件尾D.整个程序8.在一个函数里不能说明A.全局变量B.静态变量C.局部变量D.静态局部变量9.在函数main()外有变量定义语句staticinti;,则变量i的作用域为A.main()主函数B.main()函数所在文件C.从定义处到文件尾D.整个程序10.C语言中auto型变量是A.存储在动态存储区中B.存储在静态存储区中C.存储在外存储器中D.存储在计算机CPU的寄存器中11.以下所列的各函数首部中,正确的是A.voidplay(var:integer,varb:integer)B.voidplay(inta,b)C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)12.在C语言中,函数的隐含存储类别是A.autoB.staticC.externD.无存储类别13.在C语言中,形参必须是A.常量B.变量C.数值D.表达式*14.有以下函数charfun(char*p){returnp;}该函数的返回值是A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值15.下列关于函数的说法中错误的是A.任何函数(包括主函数main())都是由函数说明和函数体两部分组成。B.根据函数是否需要参数,可将函数分为无参函数和有参函数两种。C.调用有参函数时,调用函数将赋予这些参数实际的值。D.将函数定义中的参数表称为实际参数表。16.有参函数的返回值,是通过函数中的______语句来获得的。A.returnB.printfC.scanfD.函数说明17.以下关于形参和实参的说明中,错误的是A.实参和形参占用不同的内存单元,即使同名也互不影响。B.实参在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。C.实参对形参的数据传送是双向的。可以把实参的值传送给形参,也可以把形参的值反向地传送给实参。D.形参变量只有在被调用时,才分配内存单元。18.以下关于函数的递归调用说法中错误的是A.在递归调用中,调用函数又是被调用函数,执行递归函数将反复调用其自身。B.为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。C.每调用一次就进入新的一层。D.在递归调用中每一次调用该函数时,所使用的实参都相同。19.以下关于变量的作用域的说法中,错误的是intf1(inta){intb,c;……}main(){intm,n;}A.b,c的作用域在f1的范围内a的作用域为f1和main函数m,n作用域为main()函数B.a,b,c作用域仅限于函数f1()中20.C语言的函数A.可以嵌套调用,不能递归调用B.可以嵌套定义C.既可以嵌套调用,也可以递归调用D.不可以嵌套调用二、阅读程序,写出运行后的输出结果1.main(){intk=4,m=1,n;n=fun(k,m);printf(“%d,”,n);n=fun(k,m);printf(“%d\n”,n);}intfun(intx,inty)(staticintm=0,j=2;j+=m+1;m=j+x+y;return(m);}A.8,17B.8,16C.8,20D.8,82.voidincr(){staticints=0;++s;printf(“%d\n”,s);}main(){incr();incr();incr();}A.1B.1C.0D.0121013203.intm=14,n=26;max(intx,inty){intmax;max=xy?x:y;return(max);}main(){intm=32;printf(%d,max(m,n));}A.14B.26C.32D.随机数4.inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf(%d%d\n,a,b);}A.10020B.57C.200100D.755.fun(intp){intk=1;statict=2;k=k+1;t=t+1;return(p*k*t);}main(){intx=4;fun(x);printf(%d,fun(x));}A.24B.32C.16D.406.longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%d\n”,fib(3));}A.2B.4C.6D.87.max(floatx,floaty){floatz=x;if(zy)z=y;return(z);}main(){floata=5.6,b=7.8;intc;c=max(a,b);printf(%d,c);}A.7.8B.5C.7D.8*8.voidfun(int*x,int*y){printf(%d%d,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf(%d%d,x,y);}A.2143B.1212C.1234D.2112*9.voidtest(char*str1,char*str2,char*str3){while(*str1!=`\0`&&*str2!=`\0`){*(str3++)=*(str1++);*(str3++)=*(str2++);}*str3=`\0`;}main(){chart1[]=”astring”;char*t2=”ASTRING”chart3[50];test(t1,t2,t3);printf(“t3is%s\n”,t3);}A.aAsStTrRiInNgGB.AaSsTtRrIiNnGgC.astringASTRINGD.ASTRINGastring10.fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}A.0B.29C.31D.无定值11.intff(intn){staticintf=1;f=f*n;returnf;}main(){inti;for(i=1;i=3;i++)printf(%d\n,ff(i));}A.3B.2C.12D.12612.intadd(intx,inty)(intm;m=x+y;return(m);}main(){intk=4,m=1;n=add(k,m);printf(“%d\n”,n);}A.5B.2C.1D.613.voidincr(){inti=0;i++;printf(“%d”,i);}main(){incr();incr();}A.12B.11C.01D.00三、完善程序*1.下面定义的函数add()的功能是计算形参x、y的和,然后由形参z传递回该和值。voidadd(intx,inty,int*z){_____=x+y;return;}A.zB.*zC.*xD.*y2.对给定整型数组x中的n个数颠倒存放次序。voidinv(x,n)intx[],n;{intt,i,j,m=(n-2)/2;for(i=0;i=m;i++){j=n-i-1;t=x[i];x[i]=x[j];;}}A.x[i]=tB.x[j]=tC.x[i+1]=tD.x[j+1]=t3.程序中的_____上应填充的类型为_____fun(intm){floatt=1.0;inti;for(i=2;i=m;i++)t+=1.0/i;return(t):}A.intB.voidC.floatD.double4.以下程序完成从键盘输入两个整数,比较大小后输出大数的功能。max(x,y)intx,y;{intz;________}main(){inta,b,c;c=max(a,b);printf(“Maxis%d\n,c);}A.z=xy?x:y;B.z=xC.z=yD.return(z)5.以下函数判断整数a是否为素数,当a是素数时返回值1,否则返回值0。#includemath.hintfact(){inti,k;k=a-1;for(i=2;i=k;i++)if(m%i==0)break;if(i=k+1)return1;elsereturn0;}A.floataB.aC.intxD.inta
本文标题:C语言4函数练习题4
链接地址:https://www.777doc.com/doc-7985993 .html