您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第6章--函数--参考答案
1.在C语言中,全局变量的存储类别是:A)staticB)externC)voidD)registerA2.C语言中,凡未指定存储类别的局部变量的隐含存储类别是:A)自动(auto)B)静态(static)C)外部(extern)D)寄存器(register)A3.在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是:________。A)externB)registerC)autoD)staticD4.若有以下调用语句,则正确的fun函数首部是main(){∶∶inta;floatx;∶∶fun(x,a);∶∶}A)voidfun(intm,floatx)B)voidfun(floata,intx)C)voidfun(intm,floatx[])D)voidfun(intx,floata)B5.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A)3B)4C)5D)有语法错误A6.以下程序的运行结果是。#includestdio.hmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}A)8,17,B)8,17C)8,8D)4,1B7.函数fun的功能是:根据以下公式计算并返回S,n通过形参传入,n的值大于等于0。划线处应填________。1111S=1-─+─-─+…───3572n-1floatfun(intn){floats=0.0,w,t,f=-1.0;inti;for(i=0;in;i++){f=-f;w=f/(2*i+1);s+=w;}____________;}A)return(f)B)return(S)C)return(s)D)return(w)C8.有如下程序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)15D9.以下函数返回a数组中最小值所在的下标,在划线处应填入的是________。fun(inta[],intn){inti,j=0,p;p=j;for(i=j;in;i++)if(a[i]a[p])_______________;return(p);}A)i=pB)a[p]=a[i]C)p=jD)p=iD10.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;正确的fun函数的首部应为________(要求形参名为b)。main(){doubles[10][22];intn;∶∶fun(s);∶∶}A)voidfun(doubleb[22])B)voidfun(doubleb[][22])C)voidfun(doubleb[][])D)voidfun(doubleb[22][])B11.以下程序的输出结果是________。voidfun(){staticinta=0;a+=2;printf(%d,a);}main(){intcc;for(cc=1;cc4;cc++)fun();printf(\n);}A)2222B)2468C)222D)246D12.以下程序的输出结果是#includestring.hmain(){chara[]=abcdefghi;intk;fun(a);puts(a);}fun(chars[]){intx,y;charc;for(x=0,y=(strlen(s)-1)/2;xy;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}A)ihgfedcbaB)abcdefghiC)edcbafghiD)ihgfefghiC13.以下程序的输出结果是________。intd=1;fun(intp){staticintd=5;d+=p;printf(%d,d);return(d);}main(){inta=3;printf(%d\n,fun(fun(d)));}A)61111B)669C)61212D)6615C14.下列程序的输出结果是________。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%d\n,c,d);}A)169B)43C)56D)259C15.下列叙述中正确的是________。A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言所有的函数都是外部函数D16.以下所列的各函数首部中,正确的是________。A)voidplay(vara:Integer,varb:Integer)B)voidplay(inta,b)C)voidplay(inta,intb)D)voidplay(aasinteger,basinteger)C17.以下程序的输出结果是fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}A)0B)29C)31D)无定值C18.以下程序输出的结果是________。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)4A19.请读程序:#includestdio.hcharfun(charc){if(c='Z'&&c='A')c-='A'-'a';return(c);}main(){chars[81];intk=0;gets(s);while(s[k]){s[k]=fun(s[k]);putchar(s[k]);k++;}putchar('\n');}若运行时从键盘上输入OPENTHEDOORCR(CR表示回车),则上面程序的输出结果是________。A)oPENtHEdOORB)openthedoorC)OPENTHEDOORD)OpenTheDoorB20.请读程序:#includestdio.hf(intb[],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,4);printf(%d\n,x);}上面程序的输出结果是________。A)720B)120C)24D)6A21.有以下程序#incldestdio.hmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);}func(inta,intb){staticintm=0,i=2;i=m+1;m=i+a+b;return(m);}输出结果是________。A)6,6B)6,12C)6,8D)8,8B22.以下程序的输出结果是________。#includectype.hspace(charstr[]){inti,t;charts[81];for(i=0,t=0;str[i]!='\0';i+=2)if(!isspace(str[i])&&str[i]!='a')ts[t++]=toupper(str[i]);ts[t]='\0';strcpy(str,ts);}main(){chars[81]={abcdefg};space(s);puts(s);}A)abcdegB)bcdeC)ABCDED)BCDED23.下面函数的功能是________。sss(chars[],chart[]){inti=0;while(t[i]){s[i]=t[i];i++;}s[i]='\0';}A)求字符串的长度B)比较两个字符串的大小C)将字符串s复制到字符串t中D)将字符串t复制到字符串s中D24.下面函数的功能是________。sss(chars[]){inti=0;while(s[i])i++;returni;}A)求字符串的长度B)比较两个字符串的大小C)将字符串s逆序存放D)功能无法确定A25.设有如下的函数ggg(floatx){printf(\n%d,x*x);}则函数的类型________。A)与参数x的类型相同B)是voidC)是intD)无法确定C26.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。A)地址传递B)单向值传递C)由实参传给形参,再由形参传回实参D)传递方式由用户指定B27.在调用函数时,如果实参是数组名,它与对应形参之间的数据传递方式是________。A)地址传递B)单向值传递C)由实参传给形参,再由形参传回实参D)传递方式由用户指定A28.以下函数fun形参的类型是________。fun(floatx){floaty;y=3*x-4;returny;}A)intB)不确定C)voidD)floatD29.C语言中规定函数的返回值的类型是由________。A)return语句中的表达式类型所决定B)调用该函数时的主调用函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的类型所决定D30.以下程序的输出结果是________。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)3A30.阅读下面的程序:main(){intswap();inta,b;a=3;b=10;swap(a,b);printf(a=%d,b=%d\n,a,b);}swap(inta,intb){inttemp;temp=a;a=b;b=temp;}下面的说法中,正确的是________。A)在main()函数中调用swap()后,能使变量a和b的值交换B)在main()函数中输出的结果是:a=3,b=10C)程序第2行的语句intswap();是对swap()函数进行调用D)swap()函数的类型是voidB31.下面函数的功能是________。sss(chars[],chart[]){inti=0;while((s[i])&&(t[i])&&(t[i]==s[i]))i++;return(s[i]-t[i]);}A)求字符串的长度B)比较两个字符串的大小C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中B32.C语言中,若未说明函数的类型,则系统默认该函数的类型是________。A)float型B)long型C)int型D)double型C33.以下程序是将输入的一个整数反序打印出来,例如,输入1234,则输出4321;输入-1234,则输出-4321,程序中划线处应分别填入________。voidprintopp(longintn){inti=0;if(n==0)return;elsewhile(n){if(n0||i==0)printf(%ld,n%10);elseprintf(%ld,________);i=1;________;}}main(){longintn;scanf(%ld,&n);printopp(n);printf(\n);}A)n%10和n=n/10B)-n%10和n=n/10C)-n/10和n=n%10D)n%10和n/=10B34.以下程序的功能是:求正整数n的各位之积,在划线
本文标题:第6章--函数--参考答案
链接地址:https://www.777doc.com/doc-2110875 .html