




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计课程练习8章 函数 窗体顶端一、判断题1.在函数定义中,形参变量有时也可以是全局变量。( ) 正确2.在C程序中,函数调用可以作为函数的形参。 正确3.在C程序中,函数调用可以作为函数的实参。 正确4.在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是指针类型。 正确5.对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。() 正确6.C语言程序必须包含库函数。() 正确7.如果被定义函数的返回值是整型,可以不必进行说明。() 正确8.一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量。() 正确9.return语句可以带有表达式也可以不带。() 正确10.若某自定义函数中无return语句,则该函数一定没有返回值。 正确11.在C语言中,变量的初始化都是在编译阶段完成的。 正确12.在同一源文件中,全局变量与局部变量同名,在局部变量作用范围内,全局变量的值等于局部变量的值。 正确13.return语句作为函数的出口,在某一个函数体内必须唯一。() 正确14.C语言程序必须包含库函数。() 正确15.C语言中,任意两个函数间不能嵌套定义,但可以互相调用。() 正确16.在函数的定义中,若函数没有参数,则可以省略函数名后的括号。 正确17.函数返回值的数据类型取决于return语句中表达式的数据类型。 正确18.函数返回值的数据类型取决于主调函数传递过来的实参的数据类型。 正确19.函数返回值的数据类型取决于函数定义时为函数指定的数据类型。 正确20.在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。 正确21.C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是整个数组。 正确22.C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首元素值。 正确23.C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首地址值。 正确24.求n!既可以用递归的方式,也可以用递推的方式。() 正确25.递归函数在实现过程中,要使用“堆栈”这种数据结构来保存递归调用过程中的值。 正确26.在C语言中,所有函数之间都可以相互调用。 正确27.一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为整个C程序。 正确28.一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为其所在的源程序文件。 正确29.在C程序的主函数main中定义的变量就是全局变量。 正确30.在C程序的主函数main中定义的变量也是局部变量。 正确31.在函数定义中,形参变量是局部变量。 正确32.在函数定义中,形参变量可以是静态变量。 正确33.在一个函数定义中,只能有一个return语句。 正确34.在一个函数定义中,可以根据需要使用多个return语句。 正确35.在C程序中,函数可以嵌套定义,也可以嵌套调用。 正确36.在C程序中,函数不能嵌套定义,但可以嵌套调用。 正确37.在C程序中,函数既不能嵌套定义,也不能嵌套调用。 正确38.在C程序中,函数调用只能作为单独语句出现。 正确39.在C程序中,函数调用不能作为单独语句出现。 正确40.在C程序中,函数调用只能出现在表达式语句中。 正确41.在C程序中,函数调用不能出现在表达式语句中。 42.在C程序中,函数调用既可以出现在表达式语句中,也可以作为单独的语句出现。 正确43.在C函数中,形参可以是变量、常量或表达式。 正确44.在C程序中,实参可以是变量、常量或表达式。 正确45.C语言规定,函数调用时,若形参和实参都是简单变量,则它们之间的数据传递方式是双向值传递。 正确46.C语言规定,函数调用时,若形参和实参都是简单变量,则它们之间的数据传递方式是单向值传递。 正确二、单选题1.C语言中,以下叙述中错0的是()。A)主函数中定义的变量是全局变量B)同一程序中,全局变量和局部变量可以同名C)全局变量的作用域从定义处开始到本源程序文件结束D)局部变量的作用域被限定在其所定义的局部范围中A. B. C. D.正确2.C语言中,以下叙述正确的是()。A)函数不能嵌套定义但可以嵌套调用B)函数可以嵌套定义也可以嵌套调用C)函数可以嵌套定义但不能嵌套调用D)函数不能嵌套定义也不能嵌套调用A. B. C. D.正确3.C语言中,函数调用时若实参是数组名,则被调函数对应形参()。A)可以是相应类型简单变量B)必须是相应类型数组名C)可以是相应类型数组名D)必须是相应类型的指针变量A. B. C. D.正确4.C语言中,函数调用时若实参是数组名,则被调函数对应形参()。A)可以是相应类型简单变量B)必须是相应类型的指针变量C)必须是相应类型数组名D)可以是相应类型的指针变量A. B. C. D.正确5.在下面C语言的函数说明语句中,正确的是()。A)intfun(int,int);B)intfun(intx,y);C)intfun(x,y);D)intfun(intx;inty);A. B. C. D.正确6.在C程序中,如果限定一个局部变量只能在所定义的范围中起作用,那么这个变量的存储类型()。A)只能是autoB)只能是externC)可以是auto或staticD)可以是extern或staticA. B. C. D.正确7.在C语言中,若定义函数时未说明函数的类型,则该函数的数据类型为()。A)intB)floatC)charD)doubleA. B. C. D.正确8.在C语言中,函数默认的存储类型为()。A)autoB)registerC)staticD)externA. B. C. D.正确9.C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是()。(A)地址传递(B)单向值传递(C)有实参传给形参,再由形参传回给实参(D)由用户指定传递方式A. B. C. D.正确10.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。(A)一个整型变量,代表要读入的数据项总数(B)一个文件指针,指向要读的文件(C)一个指针,指向要读入数据的存放地址(D)一个存储区,存放要读的数据项A. B. C. D.正确11.如果在C程序中有main(intargc,char*argv),那么()是指命令行中的参数个数。(A)argv(B)argv(C)argc,argv(D)argcA. B. C. D.正确12.如果程序中有staticcharc;则编译程序会对其自动设置初值为()。(A)n(B)n(C)0(D)0A. B. C. D.正确13.在C函数中,局部变量的隐含存储类型是()。(A)auto(B)static(C)register(D)externA. B. C. D.正确14.C程序在()可以使用表达式A)函数内部B)函数外部C)程序的任何地方D)变量出现的地方A. B. C. D.正确15.在C语言中,函数返回值的数据类型取决于()。A)函数的名字B)return语句中表达式的数据类型C)在定义该函数时所指定的数据类型D)主调函数的数据类型A. B. C. D.正确16.在一个源程序文件中定义的全局变量,其作用域为()。A)整个源程序文件B)从定义处开始到本源程序文件结束C)整个主函数D)所处C程序的所有源程序文件中A. B. C. D.正确17.C语言中,以下叙述中错0的是()。A)同一程序中,全局变量和局部变量可以同名B)局部变量的作用域被限定在其所定义的局部范围中C)同一程序中,全局变量和局部变量不能同名D)全局变量的作用域从定义处开始到本源程序文件结束A. B. C. D.正确18.在C程序中,同一程序中的各函数之间()。A)既允许直接递归调用也允许间接递归调用B)既不允许直接递归调用也不允许间接递归调用C)允许直接递归调用但不允许间接递归调用D)允许间接递归调用但不允许直接递归调用A. B. C. D.正确19.C语言中,以下叙述错0的是()。A)函数调用可以是单独的语句B)函数调用可以出现在表达式中C)函数调用可以作为函数的实参D)函数调用可以作为函数的形参A. B. C. D.正确20.在C语言中,函数调用时如果相应的形参和实参都是简单变量,则主调函数和被调函数之间传递数据的方式是()。A)单向地址值传递B)双向地址值传递C)单向数值传递D)双向数值传递A. B. C. D.正确21.在C程序的函数调用时,主调函数中的实参和被调函数中的形参()。A)个数、次序必须相同,但数据类型可以不考虑B)个数、次序和对应参数的数据类型都应该相同C)个数、次序和数据类型均可以不相同D)对应参数数据类型应相同,但个数和次序可以不考虑A. B. C. D.正确22.C语言中,以下叙述错0的是()。A)函数被调用时,系统才为形参分配内存B)实参和对应形参的数据类型必须一致C)实参可以是变量、常量或表达式D)形参可以是变量、常量或表达式A. B. C. D.正确23.C语言中,函数调用时若实参是数组名,则传递给被调函数对应形参的是()。A)整个数组B)数组元素的个数C)数组占用的内存单元个数D)数组在内存中存放的首地址A. B. C. D.正确24.在一个void类型函数的定义中,函数体中有return;语句,该语句()。A)是错0的B)表示向主调函数返回程序控制C)在执行时不予理睬D)在执行时会中断程序运行A. B. C. D.正确25.下列程序的输出结果是()viodf(int*m)while(*m)-);printf(%d,+(*m);main()intx=50,*p=&x;f(p);(A)0(B)1(C)49(D)50A. B. C. D.正确26.下述函数的功能是()。intfun(char*x) char*y=x;while(*y+);returny-x-1; (A)将字符串x连接到字符串y的后面(B)求字符串的存放位置(C)比较两个字符串的大小 (D)求字符串的长度A. B. C. D.正确27.以下对C语言函数的有关描述,正确的是()。(A)在C中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参(B)C函数既可以嵌套定义又可以递归调用(C)函数必须有返回值,否则不能使用函数(D)C程序中有调用关系的所有函数必须放在同一个源程序文件中A. B. C. D.正确28.以下程序的输出结果是()intm=4,n=6;max(intx,inty)intmax;max=xy?x:y;return(max); main()intm=10; printf(%d,max(m,n); A)4B)10C)6D)5A. B. C. D.正确29.在C语言的函数概念中,以下叙述正确的是()。A)函数调用时,形参和与其对应的实参各占独立的存储单元B)函数调用时,形参和与其对应的实参再不同名时才各占独立的存储单元C)形参在函数调用时不占存储单元D)函数没有被调用时,形参也要占据内存单元A. B. C. D.正确30.在C语言的函数概念中,以下叙述正确的是()。A)函数没有被调用时,形参不会占据内存单元B)函数调用时,形参和与其对应的实参再不同名时才各占独立的存储单元E)形参在函数调用时不占存储单元F)函数没有被调用时,形参也要占据内存单元A. B. C. D.正确31.C语言中,一个函数调用语句为fun(e1,e2,e3),(e4,e5),e6);,其实参个数为()。A)3个B)4个 C)5个D)6个A. B. C. D.正确32.在一个char类型的函数定义中,函数体中有return0;语句,该语句()。A)是错0的 B)能正确向主调函数返回整型数0C)在执行时不予理睬D)在执行时会中断程序运行A. B. C. D.正确33.下面函数fun的功能是()。intfun(char*s,char*t)while(*s=*t)if(*s=0)return0;elses+,t+;return*s-*t;A)测字符串s和t的长度B)将字符串s拷贝到tC)将字符串t拷贝到sD)比较字符串s和t的大小A. B. C. D.正确34.在下列程序中,调用f(8)的值是()intf(intn)if(n=1)return(1);elseif(n=2)return(2);elsereturn(f(n-1)+f(n-2);(A)13(B)21(C)55(D)34A. B. C. D.正确35.在执行程序china.exe时,若输入的命令行为:chinaenlishBeijing,则程序执行结果为()。#includevoidmain(intargc,char*argv)while(argc1)printf(%c,*+argv);argc-;(A)eB(B)ceB(C)chinaenlishBeijing(D)enlishBeijingA. B. C. D.正确三、多选题1.C语言中,若要限定一个全局变量只能在其所定义的源程序文件中使用,定义是必须使用关键字()。A)autoB)register C)externD)staticA. B. C. D. E. F.错误正确答案为D2.C语言中,形式参数不能使用的存储类型说明为()。A)autoB)register C)externD)staticE)staticregisterA. B. C. D. E. F.错误正确答案为BCDE3.一个函数的返回值类型为void,则函数体中()。A)可以没有return语句 B)可以有return;语句C)仍然需要returnexp;语句D)可以有return0;语句E)可以有return0.0;语句A. B. C. D. E. F.错误正确答案为AB4.一个函数的说明语句为intfun(intx);,a、b为整型变量且初值为0,则正确的函数调用语句为()。A)printf(“%dn”,fun(a+b); B)b=fun(a);C)a=fun(b); D)fun(a);E)printf(“%d”,fun(a+b+10);A. B. C. D. E. F.错误正确答案为ABCDE5.以下说法正确的是()A)形参类型定义属于函数的首部B)凡是用括起的部分称为函数体C)任何表达式加上一个分号均构成语句 D)一行可以写多个语句E)C语言的输入输出是用输入输出语句实现A. B. C. D. E. F.错误正确答案为ACD6.下列符号中可以用作自定义函数名的是()。(A)int(B)go_to(C)INT(D)Getchar(E)typedefA. B. C. D. E. F.错误正确答案为BCD7.在C语言中,存储类有()。A)charB)externC)staticD)registerE)autoA. B. C. D. E. F.错误正确答案为BCDE8.在C语言中,对函数而言正确的概念有()。A)函数可以嵌套定义B)函数不能嵌套定义C)函数可以嵌套调用D)函数可以递归调用E)函数可以没有返回值A. B. C. D. E. F.错误正确答案为BCD9.C语言中,对存储类型static而言,正确的是方法为()。A)作用于局部变量B)作用于全局变量C)作用于数组 D)作用于构造数据类型变量E)作用于形式参数A. B. C. D. E. F.错误正确答案为ABCD10.一个函数定义中的形式参数如果为简单变量形式,调用时对应的实参可以是()。A)同类型的简单变量B)同类型的常数C)同类型的数组元素D)同类型的地址量E)同类型的数组名A. B. C. D. E. F.错误正确答案为ABCD11.在定义函数时,函数的存储类型可以()。A)是static B)是autoC)是registerD)是externE)省略A. B. C. D. E. F.错误正确答案为ADE12.假设变量a,i均已正确定义并赋值,则以下合法的C语句有()A)a=1;B)+iC)a=(int)i+2.5;D)sqtr(a);E);A. B. C. D. E. F.错误正确答案为ACDE13.C语言规定,调用一个函数时,实参变量和形参变量之间的数据是()。(A)地址传递(B)值传递(C)由实参传给形参,并由形参传回给实参(D)由用户指定传递方式(E)类型必须一致A. B. C. D. E. F.错误正确答案为BE14.在函数调用过程中,下列说法正确的是()(A)形式参数和实在参数各占一个独立的存储单元(B)形式参数和实在参数存储空间都是在函数调用时分配的(C)在函数的执行过程中,形参变量值的改变不会影响实参值的改变(D)函数调用结束时,临时存储区被撤消(E)在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配A. B. C. D. E. F.错误正确答案为ACDE15.以下正确的说法是()A)C语言有四种存储类:auto、register、static和extern。B)C语言提供的for、while和do-while等三种循环语句可以做等价变换。C)C语言提供的结构类型不允许其成员具有不同的数据类型。D)C语言允许用typedef来定义一种新的数据类型。E)C语言允许经常在程序中使用的常量用宏定义来定义。A. B. C. D. E. F.错误正确答案为ABE16.C语言中,局部变量默认的存储类型是()。A)autoB)register C)externD)staticA. B. C. D. E. F.错误正确答案为A17.在下面C语言的函数说明语句中,正确的是()。A)intfun(int,int);B)intfun(intx,y);C)intfun(x,y); D) intfun(intx;inty);E)intfun(intx,inty);A. B. C. D. E. F.错误正确答案为AE四、填空题1.下面程序的功能是求三个数的最小公倍数,请填空完成程序。#includevoidmain() intmax(intx,inty,intz); intx1,x2,x3,k=1,j,x0; scanf(“%d,%d,%d”,&x1,&x2,&x3); x0=max(x1,x2,x3); while(1) j=x0*k; if(_ ) break; k+=1; printf(“Theresultis%dn”,j);intmax((9)) if(xy&xz) returnx; elseif((10)) returny; else returnz; (8)J%X1=0&J%X2=0&J%X3=0(9)INTX,INTY,INTZ(10)YX&YZ2.函数fun的功能是求一个整数num各位数字之积,请填空完成函数。#includelongfun(_ ) longk=1; num=abs(num); do k*=(12); num/=10; while((13)) returnk; (11)INTNUM(12)NUM%10(13)NUM(或NUM!=0)3.下面程序的功能是用递归的方法将一个整型数num的各位数字转换为对应的数字字符输出,请填空完成程序。#includevoidmain() voidconvert(intn); intnum;scanf(“%d”,&num); if(num0) putchar(-); num=_; convert(num); voidconvert(intn) intj; j=n/10; if(_) convert(_) putchar(_) (18)-NUM(19)J!=0(20)J(21)N%10+04.下面程序的功能是将十进制数转换为二进制数输出,请填空完成程序。#includevoidmain() intconvert(inta); inta,e10,c,j=0; scanf(“%d”,&a); while(a!=0) c=_; a/=2; ej=c; j+; for(_) printf(“%d”,ej-1); intconvert(inta) intc; c=_ ; returnc; (22)CONVERT(A)(23);J0;J-(24)A%25.函数binsearch的功能是对具有n个按升序排列元素的整型数组st按折半查找法(二分查找法)查找其中的关键字key,请填空完成函数。intbinsearch(intst,intn,intkey) intlow=0,high=_,mid; while(low=high) mid=(low+high)/2; if(key=stmid) return_ ; elseif(keystmid) return_; else return_; return0;(14)HIGH=N-1(15)MID(16)LOW=MID+1(17)HIGH=MID-16.在C语言中,一个函数一般由两个部分组成,它们是函数说明部分和()。函数体 7.任何程序都可调用标准函数exit(),当它被调用时,它(_)程序的执行。终止 8.以下函数的功能是求一个3*4矩阵中最小元素。请填空。fun(inta4)inti,j,k,min;for(i=0;i3;i+) for(j=0;jMIN 9.下列程序利用二分法求解方程2x3-4x2+3x-6=0在(0,3)之间的根,请填空#include#include#definef(x)(2*x-4)*x+3)*x-6voidmain()floateps=1.0e-5; floatx1=0,x2=3,x,fval; x=(x1+x2)/2; fval=f(x); while(_) if(f(x)EPSX=(X1+X2)/2 10.下面程序的功能是将字符串中的数字字符删除后输出。请填空。#includevoiddelnum(char*s) inti,j; for(i=0,j=0;si!=0;i+) if(_) sj=si; j+; sj=0; voidmain() char*item; printf(ninputstring:); gets(item); delnum(item); printf(n%s,item); SI9 11.下面的程序通过average计算数组中各元素的平均值,请填空。floataverage(int*pa,intn)intx;floatavg=0.0;for(x=0;xn;x+)avg=avg+_;avg=avg/n;return(avg);voidmain()inta5=2,4,6,8,10;floatmean;mean=average(a,5);printf(mean=%fn,mean); *(PA+X)或PAX 12.下列函数的功能是判断一个正整数是否是素数。若是素数,则返回值为1,否则返回值为0。请下列完善程序。intprime(intn)inty=1,i; for(i=2;i=n/2;i+) if(_)y=0;break; return(y); N%I=0 13.以下函数的功能是:求x的n次方。请完善程序。doublef1(doublex,intn)inti; doublek; for(i=1,k=x;i1)r=_*f(n-1);elser=1;return(r);N 15.下面的函数用以验证命题:100以内的奇数的平方被8整除,余数均为1,若命题成立,则返回1,否则返回0。请填空完成该函数。intfunc() inta,flag=1; for(a=1;a=0。floatpower(floatx,inty) floatz; for(z=1;y0;y-=1)z_x; return(z); =Z* 17.以下程序用于求取两个整数的最大公因子。intmcf(inta,intb) inttemp; while(b) temp=_; a=b; b=temp; return(a); A%B 18.函数rewind的作用是_。使指针指向文件的开头 19.以下函数的功能是比较两个字符串的大小,若相等返回值为0,若不相等则返回第一个不相等字符之差。请填空。fun(char*s,char*t)while(*t+=*s+); return(_);*S-*T 20.在C语言中,一个函数一般均由两个部分组成,他们分别称为_和_。(2)函数首部(或函数头) 21.下列函数是用于求n个学生成绩的平均分、最低分和最高分。可通过调用该函数返回到调用函数。请完善程序。floataverage(floatarray,intn,_) inti; floatsum; sum=array0; _; for(i=1;i*max)*max=arrayi; if(arrayi*min)*min=arrayi; sum=sum+arrayi; return(sum/n); FLOAT*MAX,FLOAT*MIN*MAX=*MIN=ARRAY0SUM/N 22.下述函数是用二分法查找key值。数组中元素值已按递增次序排列。若找到key则返回对应的下标,否则返回-1。请填空。intbin(doublea,intn,doublekey) intlow,high,mid; low=0; high=n-1; while(_) mid=(low+high)/2; if(keyamid)_;elsereturnmid;return-1;LOW=HIGHHIGH=MID-1LOW=MID+1 23.下述函数是从字符串s中删除从第I个字符开始的n个字符。请填空。voiddel(chars,intI,intn)intj,k,length=0; while(slength)_;-I;j=I;if(_)k=I+n;if(I+n=length)while(klength)sj+=sk+;sj=0;LENGTH+I 24.函数strcompare()的功能是比较字符串s1和s2的大小。当s1s2时,返回正值,当s1s2时,返回负值,当s1等于s2时,返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训公司课件
- 应急与安全管理培训内容课件
- 2025年自考专业(会计)模拟试题附答案详解【轻巧夺冠】
- 买菜合同(标准版)
- 2023年度冶金工业技能鉴定每日一练试卷(培优)附答案详解
- 2024年2月湖南省直机关遴选公务员面试真题带答案详解
- 2025年绿色建筑材料市场推广策略与政策支持下的绿色建筑市场需求预测报告
- 2025年工业互联网平台量子通信技术与数字版权保护的应用预研报告
- 2025年工业互联网平台AR交互技术在人工智能与物联网融合中的应用报告
- 2025年绿色建筑认证体系在绿色建筑绿色建筑社区经济中的应用与发展报告
- 电磁计量员岗位面试问题及答案
- 医学科普文章写作技巧
- 中医适宜技术在泌尿外科的运用
- 一例前置胎盘的个案护理讲课件
- GB/T 17948.7-2025旋转电机绝缘结构功能性评定总则
- 农光互补光伏发电项目发展趋势与前景分析
- 2025年中小学生科普知识竞赛题库及答案
- 新疆交投面试题目及答案
- 卫生院卒中哨点建设汇报
- 工会换届面试题目及答案
- 低压电工安全培训
评论
0/150
提交评论