


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章函数5.1选择题1.c语言是由()构成。A. 主程序和子程序B. 主函数和若干子函数C. 一个主函数和一个其他函数2. 主函数和子程序以下说法中正确的是()。A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行3. C语言程序中的main()函数必须放在程序的开始部分以下对C语言函数的有关描述中,正确的是()。A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B. C函数既可以嵌套定义又可以递归调用C. 函数必须有返回值,否则不能使用函数4. C程序中有调用关系的所有函数必须
2、放在同一个源程序文件中C语言程序中,当函数调用时()。A. 实参和形参各占一个独立的存储单元B. 实参和形参共用一个存储单元C. 可以由用户指定是否共用存储单兀5. 计算机系统自动确定是否共用存储单元关于return语句,下列正确的说法是()。A. 在主函数和其他函数中均要出现B. 必须在每个函数中出现C. 可以在同一个函数中出现多次6. 只能在除主函数之外的函数中出现一次一个函数返回值的类型是由()决定的。A. return语句中表达式的类型B. 在调用函数时临时指定C. 定义函数时指定的函数类型7. 调用该函数的主调函数的类型在C语言的函数中,下列正确的说法是()。A. 必须有形参B. 形
3、参必须是变量名C. 可以有也可以没有形参8. 数组名不能作形参以下描述正确的是()。A. 函数调用可以出现在执行语句或表达式中B. 函数调用不能作为一个函数的实参C. 函数调用可以作为一个函数的形参9. 以上都不正确在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A. 地址传递B.单向值传递10. C.由实参传给形参,再由形参传回实参D.传递方式由用户指定当调用函数时,实参是一个数组名,则向函数传送的是()。A. 数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值11.如果在一个函数的复合语句中定义了一个变量,则该变量()。A. 只在该复合语句中有
4、效,在该复合语句外无效B. 在该函数中任何位置都有效C. 在本程序的源文件范围内均有效12. 此定义方法错误,其变量为非法变量下列说法不正确的是()。A. 主函数main中定义的变量在整个文件或程序中有效B. 不同函数中,可以使用相同名字的变量C. 形式参数是局部变量13. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效在一个源程序文件中定义的全局变量的有效范围是()。A. 本源程序文件的全部范围B. 一个C程序的所有源程序文件C. 函数内全部范围14. 从定义变量的位置开始到源程序文件结束以下叙述中不正确的是()。A. 在不同的函数中可以使用相同名字的变量B. 函数中
5、的形式参数是局部变量C. 在一个函数内定义的变量只在本函数范围内有效15. 在一个函数内的复合语句中定义的变量在本函数范围内有效如果要限制一个变量只能为本文件所使用,必须通过()来实现。静态局部变量局部变量说明局部自动变量D.局部静态变量A. 外部变量说明B.C.静态外部变量D.16. 下列哪种数据不存放在动态存储区中(A. 函数形参变量B.17. C.函数调用时的现场保护和返回地址以下叙述中不正确的是()。A. 函数中的自动变量可以赋初值,每调用一次,赋一次初值。B. 在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C. 外部变量的隐含类别是自动存储类别。D. 函数形参可以说明为reg
6、ister变量。18. 以下只有在使用时才为该类型变量分配内存的存储类说明是()。A.auto和staticB. auto和registerC.register和staticD.extern和register19.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。A.voidB.intC.floatD.double20.在C语言中,函数的隐含存储类别是()。A.autoB.staticC.externD.无存储类别21.在C语言中,形参的缺省存储类是()。A.autoB.registerC.staticD.extern22.若有以下程序#include<stdio.h>
7、;voidf(intn);main()voidf(intn);f(5);voidf(intn)printf("%dn”,n);则以下叙述中不正确的是()。A. 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fB. 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明23. 函数f无返回值,所以可用void将其类型定义为无值型以下所列的各函数首部中,正确的是()。A. voidplay(var:Integer,varb:Integer)B. voidplay(inta,b)C. void
8、play(inta,intb)24. Subplay(aasinteger,basinteger)有如下函数调用语句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;C.voidD.float)。B.intmax(x,y)intx,y;(intz;z=x>y?x:
9、y;return(z);D.intmax()(A.intB.不确定下列函数定义不正确的是(A.intmax()(intx,y,z;z=x>y?x:y;intmax(x,y)(intx,y,z;z=x>y?x:y;return(z);下列程序的运行结果是(main()(inti=3;printf("%d,%d,%dn”,i,i+,i+);27. A.5,5,4B.3,4,5C.3,3,4D.5,4,3以下程序的输出结果是()。fun(intx,inty,intz)(z=x*x+y*y;main()(inta=31;fun(5,2,a);printf("%d”,a)
10、;D.无定值28. A.0B.29C.31下列程序执行后的输出结果是()。voidfunc1(inti);voidfunc2(inti);charst="hello,friend!"voidfunc1(inti)(printf("%c”,sti);if(i<3)(i+=2;func2(i);voidfunc2(inti)(printf("%c",sti);if(i<3)(i+=2;func1(i);main()(inti=0;func1(i);printf("n");A.helloB.helC.hloD.hlm3
11、1.有如下程序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.1332.有以下程序C.14D.15floatfun(intx,inty)(return(x+y);main()(inta=2,b=5,c=8;printf("%3.0fn”,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是()。9.0A.编译出错B.9C.21D.33.有以下程序#include"st
12、dio.h"intabc(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;输出结果是()。34. A.6B.7C.8阅读以下函数:fun(chars,chart)(inti=-1;while(+i,si=ti&&si!=return(si='0'&&ti=以上函数的功能是()。A.比较串s和t的长度35. C.比较串s和t是否相等以下程序的输
13、出结果是()。f(intb,intm,intn)(inti,s=0;for(i=m;i<n;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);A.10B.18以下程序中函数reversevoidreverse(inta,intn)D.90');0');C.8的功能是将inti,t;for(i=0;i<n/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;r
14、everse(b,8);for(i=6;i<10;i+)s+=bi;printf("%dn",s);程序运行后的输出结果是()。B.比较串s和t的大小D.将串t赋给串sD.15a中指数组中的内容进行逆置。D.3037. A.22B.10C.34请读程序:#include<stdio.h>func(inta,intb)intc;c=a+b;returnc;main()intx=6,y=7,z=8,r;r=func(x-,y-,x+y),z-);printf("%dn”,r);上面程序的输出结果是()。38. A.11B.19C.21D.31请读程序
15、:#include<stdio.h>f(inb,intn)inti,r;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);上面程序的输出结果是()。39. A.720B.120C.24D.6下面程序的输出是()。main()intt=1;fun(fun(t);fun(inth)staticinta3=1,2,3;intk;for(k=0;k<3;k+)ak+=ak-h;for(k=0;k<3;k+)printf(&qu
16、ot;%d”,ak);printf("n");return(ah);D.1,3,5,40. A.1,2,3,B.1,3,5,C.1,3,5,1,5,9,1,3,5,0,4,8,-1,3,7,有如下程序longfib(intn)if(n>2)return(fib(n-1)+fib(n-2);elsereturn(2);main()printf("%dn",fib(3);该程序的输出结果是()。A.2B.4C.6D.841.以下程序的输出结果是()。longfun(intn)longs;if(n=1|n=2)s=2;elses=n-fun(n-1);r
17、eturns;main()printf("%ldn”,fun(3);D.4A.1B.2C.342.以下程序的输出结果是()。func(intx)intp;if(x=0|x=1)return(3);p=x-func(x-2);returnp;main()printf("%dn",func(9);A.7B.2C.0D.343. 有以下程序intf(intn)(if(n=1)return1;elsereturnf(n-1)+1;main()(inti,j=0;for(i=1;i<3;i+)j+=f(i);printf("%dn”,j);程序运行后的输出结
18、果是()。44. A.4B.3下面程序的输出是()。intw=3;main()(intw=10;printf("%dn”,fun(5)*w);fun(intk)(if(k=0)returnw;return(fun(k-1)*k);45. A.360B.3600以下程序的输出结果是()。#include"stdio.h"inti=5;main()(inti=3;(inti=10;i+;f1();i+=1;printf("%dn",i);intf1()(i=i+1;return(i);A.7B.4C.12D.6C.2D.1C.1080D.12004
19、6.以下程序的输出结果是()。inta,b;voidfun()(a=100;b=200;main()(inta=5,b=7;fun();printf("%d%dn”,a,b);C.200100D.75A.100200B.5747.以下程序输出结果是()。main()(inti;for(i=0;i<2;i+)add();add()(intx=0;staticinty=0;printf("%d,%dn”,x,y);x+;y=y+2;D.0,01,2A.0,0B.0,0C.0,00,00,21,048.设有以下函数:f(inta)(intb=0;staticintc=3;b
20、+;c+;return(a+b+c);如果在下面的程序中调用该函数,则输出结果是()。main()(inta=2,i;for(i=0;i<3;i+)printf("%dn",f(a);A.7B.7C.7D.78910791113749. 以下程序的输出的结果是()。intx=3;main()(inti;for(i=1;i<x;i+)incre();incre()(staticintx=1;x*=x+1;printf("%d”,x);50. A.33B.22有以下程序inta=3;main()(ints=0;(inta=5;s+=a+;s+=a+;pri
21、ntf("%dn”,s);程序运行后的输出结果是()。51. A.8B.10下面程序的输出是()。fun3(intx)(staticinta=3;a+=x;return(a);main()(intk=2,m=1,n;n=fun3(k);n=fun3(m);printf("%dn",n);52. A.3B.4C.6下面程序的输出是()。intm=13;intfun2(intx,inty)(intm=3;D.9C.26D.25C.7D.11D.10D.85return(x*y-m);main()(inta=7,b=5;printf("%dn”,fun2(a,
22、b)/m);53. A.1B.2C.7下列程序执行后输出的结果是()。#include<stdio.h>f(inta)(intb=0;staticc=3;a=c+,b+;return(a);main()(inta=2,i,k;for(i=0;i<2;i+)k=f(a+);printf("%dn",k);54. A.3B.0C.5D.4下列程序执行后输出的结果是()。intd=1;fun(intp)(intd=5;d+=p+;printf("%d",d);main()(inta=3;fun(a);d+=a+;printf("%d
23、n",d);55. A.84B.96C.94以下程序的输出结果是()。intd=1;fun(intp)(staticintd=5;d+=p;printf("%d",d);return(d);main()(inta=3;printf("%dn”,fun(a+fun(d);1. A.699B.669C.61515D.66155.2填空题下面程序的输出结果是。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
24、%dn",c,d);2. 下面程序运行后的输出结果是。voidfun(intx,inty)(x=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<4;cc+)fun();printf("n");4. 下面程序输出的最后一个值是in
25、tff(intn)(staticintf=1;f=f*n;returnf;main()(inti;for(i=1;i<=5;i+)printf("%5d”,ff(i);5. 下面程序运行结果为。#include<stdio.h>main()(inti;for(i=0;i<2;i+)as();as()(intlv=0;staticintsv=0;printf("%d,%dn”,lv,sv);lv+;sv+;return;6. 下面程序的输出是。unsignedfun6(unsignednum)(unsignedk=1;do(k*=num%10;num/
26、=10;while(num);return(k);main()(unsignedn=26;printf("%dn",fun6(n);7. 下面程序的输出结果是#include<stdio.h>fun(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
27、);printf("%ldn",x);9. 下面程序的输出是。#defineMAX5intaMAX,k;main()(fun1();fun3();fun2();fun3();printf("n");fun1()(for(k=0;k<MAX;k+)ak=k+k;fun2()(intaMAX,k;for(k=0;k<5;k+)ak=k;fun3()intk;for(k=0;k<MAX;k+)printf("%d”,ak);10. 下面程序的运行结果是。#include<stdio.h>main()intk=4,m=1,
28、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)intp;if(n>0)p=power(x,n-1)*x;elsep=1;return(p);12. 下面程序从键盘输入:5647,输出结果是#include<stdio
29、.h>voidconvert(intn)inti;if(i=n/10)!=0)convert(i);putchar(n%10+'0');main()(intnumber;scanf("%d”,&number);if(number<0)(putchar(,-,);number=-number;convert(number);13. 输入Iamastudent.时,下面程序运行结果是。#include<stdio.h>main()(inti,c,num=0,word=0;charstring81;gets(string);for(i=0;c
30、=stringi;i+)if(c='')word=0;elseif(word=0)word=1;num+;printf("%d”,num);14. 下面程序的运行结果是。#include<stdio.h>longfib(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】。(要
31、求形参名为bo)main()(doubles1022;intn;fun(s);16. 以下程序中,主函数调用了上的最大值。请填空。#defineN3#defineM4voidLineMax(intxNM)(inti,j,p;for(i=0;i<N;i+)(P=0;for(j=1;j<M;j+)if(xip<xij)LineMax函数,实现在N行M列的二维数组中,找出每一行【1】;printf("Themaxvalueinline%dis%dn”,i,main()(intxNM=1,5,7,4,2,6,4,3,8,2,3,1;【3】;17. 下面函数的功能是:求x的y
32、次方,请填空。doublefun(doublex,inty)inti;doublez;for(i=1,z=x;i<y;i+)z=z*returnz;18. 若已定义:inta10,元素依次赋1、2、3、中的值对称折叠,变成fun(inta)inti;for(i=1;i<=10;i+)for(i=0;i<5;i+)【2】);【1】;i;,以下fun函数的功能是:在第一个循环中给前10个数组4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素1、2、3、4、5、5、4、3、2、1。请填空。【1】=i;【2】=ai;19.下面函数的功能是计算1£1*2*3,请
33、填空。1*2*3*4*ndoublefun(intn)(doubles=0.0,fac=1.0;inti;for(i=1,i<=n;i+)(fac=fac【1】;s=s+fac;returns;根据以下公式返回满足精度e要求的p的值。根据以下算法补20.下面pi函数的功能是,足所缺语句。1p2*(1-1*31*21*2*31*3*51*3*5*71*2*3*n1*3*5*7*2n1)doublepi(doubleeps)(doubles=0.0,t=1.0;intn;for(【1】;t>eps;n+)(s+=t;t=n*t/(2*n+1);return(2.0*【2】);21.读下
34、面的程序,填空完善程序。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(x>y)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;scanf("%d”,【3】);printf("%fn",fun(x);23. 分别计算
35、并输出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;floatsum;max=min=sum=【2】;for(i=1;i<n;i+)(sum+=arrayi;if(max<arrayi)max=arrayi;if(min>arrayi)min=arrayi;return(s
36、um/n);main()(inti;floataver,score10;printf("input10score:n");for(i=0;i<10;i+)scanf("%f",【3】);aver=average(10,score);printf("max=%.2fnmin=%.2fnaverage=%.2fn",max,min,aver);25. 下面程序的功能是找出三个字符串中最大串,填空完善程序。【1】#include<stdio.h>main()inti;charstring20,str320;for(i=0;
37、i<3;i+)gets(【2】);if(strcmp(str0,str1)>0)strcpy(string,str0);elsestrcpy(string,str1);if(strcmp(str2,string)>【3】)strcpy(string,str2);printf("thelargeststringisn%sn",string);26. 本程序的函数ver是使输入的字符串按反序存放,在主函数中输入和输出字符串。main()charstr100;scanf("%s",str);ver(str);printf("%sn”
38、,str);ver(【1)chart;inti,j;for(i=0,j=strlen(str);i<strlen(str)/2;i+,j-)t=stri;【2】;【3】;27. 用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#defineN10charstrN;main()inti,flag;for(flag=1;flag=1;)scanf("%s",str);flag=0;printf("n");sort(【1】);for(i=0;i<N;i+)printf("%c”,stri);printf("n"
39、;);sort(charstrN)(inti,j;chart;for(j=1;j<N;j+)for(i=0;(i<N-j)&&(stri!='0');i+)if(stri>stri+1)t=stri;【2】;【3】;28. 用选择法对数组进行由小到大排序。voidsort(n,array)【1】;inti,j,k,t;for(i=0;i<n-1;i+)k=i;for(【2】;j<n;j+)if(arrayk>arrayj)k=j;t=arrayi;arrayi=arrayk;arrayk=t;main()inti,a10;pr
40、intf("inputthearray:n");for(i=0;i<10;i+)scanf("%d”,&ai);【3】;printf("thesortedarray:n");for(i=0;i<10;i+)printf("%6d",ai);29. 用递归方法求n!。floatfac(intn)floatf;if(n<0)printf("n<0,dataerror!");elseif(【1】)f=1;elsef=【2】;return(f);main()intn=6;float
41、y;printf("n");【3】;printf("%d!=%5.0f",n,y);30. 程序调用prime函数,判断输入的一个整数是否为素数,是则打印YES,否则打印NO.#include"stdio.h"main()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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中小学学校教材教辅征订管理工作方案
- 2025年度企业IT外包合作协议样本 电脑维修服务合同
- 2025健身房转让合同样本
- 2025年短期贷款合同标准范本
- 2025城市供气合同范本
- 2025物业公司绿化管理合同
- 2025监理人在提升合同执行效率中的关键角色
- 2025 林地买卖合同模板
- 2025建筑工程合同的分类范文
- 蔬菜质量检测中心合作协议
- MOOC 基于计算思维的Python程序设计-河北工程大学 中国大学慕课答案
- JJG 621-2012 液压千斤顶行业标准
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 施工工地环保知识培训课件
- 康复医学基础知识培训
- 深圳科技馆(新馆)展教工程常设展区整体展教方案
- 研发成果商业化转化模板
- 《幼儿舞蹈创编与教学I-IV》课程标准
- 施工图设计组织实施方案样本
- 高中历史中外历史纲要下新教材习题答案
- 恶性肿瘤患者康复期营养管理专家共识
评论
0/150
提交评论