您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > C语言上机题库百科园第4章!南信大!
第四章单选有以下程序,程序运行后的输出结果是()#includestdio.hintfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}intmain(){inta=4,b=5,c=6;printf(%d\n,fun(2*a,fun(b,c)));return0;}A.12B.6C.3D.8有以下程序,程序运行的输出结果()#includestdio.hintf(intx);intmain(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);return0;}intf(intx){returnx*2;}A.8B.4C.1D.2有以下程序,程序执行后变量w中的值是()#includestdio.hintfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);}intmain(){doublew;w=fun2(1.1,2.0);……}A.5.21B.0.0C.5.0D.5有以下程序,程序运行后的输出结果是()#includestdio.hintfun(){staticintx=1;x*=2;returnx;}intmain(){inti,s=1;for(i=1;i=3;i++)s*=fun();printf(%d\n,s);}A.10B.64C.0D.30有以下程序,程序运行后的输出结果是()#includestdio.hintf(intx,inty){return((y-x)*x);}intmain(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(%d\n,d);}A.10B.8C.7D.9有以下程序,程序运行后的输出结果是()#includestdio.hvoidfun(intp){intd=2;p=d++;printf(“%d”,p);}intmain(){inta=1;fun(a);printf(“%d\n”,a);return0;}A.22B.21C.12D.32有以下程序:程序运行后的输出结果是()#includestdio.hintf(){staticintx=1;x+=1;returnx;}intmain(){inti,s=1;for(i=1;i=5;i++)s+=fun();printf(%d\n,s);return0;}A.21B.6C.120D.11若有代数式||xxen(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()A.sqrt(fabs(pow(n,x)+exp(x,e)))B.sqrt(fbs(pow(n,x)+pow(x,e)))C.sqrt(fabs(pow(x,n)+exp(x)))D.sqrt(abs(nx+ex))以下关于return语句叙述中正确的是()A.定义void类型的函数中可以有带返回值的return语句B.没有return语句的自定义函数在执行结束时不能返回到调用处C.一个自定义函数中必须有一条return语句D.一个自定义函数中可以根据不同情况设置多条return语句设有如下函数定义,若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是()intfun(intk){if(k1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}A.2B.3C.5D.4在一个C语言源程序文件中所定义的全局变量,其作用域为()A.所在函数的全部范围B.所在文件的全部范围C.由具体定义位置和extern说明来决定范围D.所在程序的全部范围以下叙述正确的是()A.C语言函数可以嵌套调用,例如:fun(fun(x))B.C语言程序是由过程和函数组成的C.C语言函数不可以单独编译D.C语言中除了main函数,其他函数不可以作为单独文件形式存在以下程序的主函数中调用了在其前面定义的fun函数,则以下选项中错误的fun函数首部是()#includestdio.hintmain(){doublea[15],k;k=fun(a);return0;}A.doublefun(double*a)B.doublefun(doublea)C.doublefun(doublea[])D.doublefun(doublea[15])以下说法不正确的是()A.系统不允许用户重新定义标准库函数B.标准库函数按分类在不同的头文件中声明C.用户可以重新定义标准库函数D.用户若需要调用标准库函数,调用前必须使用预编译命令将该函数所在文件包括到用户源文件中下列叙述中正确的是()A.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束B.main可作为用户标识符,用以命名任意一个函数作为主函数C.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行D.C语言程序将从源程序中第一个函数开始执行若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()A.同名的实参和形参占同一存储单元B.函数的形参和实参分别占用不同的存储单元C.函数的实参和其对应的形参共占同一存储单元D.形参只是形式上的存在,不占用具体存储单元在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.extern和registerB.auto和registerC.static和registerD.auto和static设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是()A.registerB.autoC.auto或registerD.static以下正确的函数定义形式是:()A.doublefun(intx,inty){}B.doublefun(intx,y);{}C.doublefun(intx;inty){}D.doublefun(intx,inty);{}在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()A.称为函数的循环调用B.C语言中不允许这样的递归调用C.称为函数的间接递归调用D.称为函数的直接递归调用程序设计/*请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,输入17,则应输出46891012141516。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#includeconio.h#includestdio.h#includestdlib.hintfun(intm,intxx[]){/***************Begin************//***************End************/}intmain(){FILE*wf;intm,n,zz[100];printf(\nPleaseenteranintegernumberbetween10and100:);scanf(%d,&n);m=fun(n,zz);printf(\n\nThereare%dnon-primenumberslessthan%d:,m,n);for(n=0;nm;n++)printf(%4d\n,zz[n]);wf=fopen(debug\\out.dat,w);m=fun(21,zz);for(n=0;nm;n++)fprintf(wf,%d\n,zz[n]);fclose(wf);return0;}【参考代码】inti,k,j=0;for(i=2;im;i++){for(k=2;ki;k++)if(i%k==0)break;if(ki)xx[j++]=i;}returnj;程序改错/*下列给定程序中,函数fun的功能是:将十进制正整数m转换成(29)kk进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/#includestdio.h#includeconio.h/**********ERROR**********/voidfun(intm,intk);{intaa[20],i;for(i=0;m;i++){/**********ERROR**********/aa[i]=m/k;m/=k;}for(;i;i--)/**********ERROR**********/printf(%d,aa[i]);}intmain(){intb,n;printf(\nPleaseenteranumberandabase:\n);scanf(%d%d,&n,&b);fun(n,b);printf(\n);return0;}【参考答案】voidfun(intm,intk)【参考答案】aa[i]=m%k;【参考答案】printf(%d,aa[i-1]);如当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。符合此条件的累加值应为42,126,366,570,1010。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/#includestdio.h#defineN20intfun(intn,inta[])/**********ERROR**********/{inti,j,k,sum;sum=0;for(k=3,i=0;in;i++,k+=5){sum=sum+k;/**********ERROR**********/if(sum%4=2)a[j++]=sum;}/**********ERROR**********/returnj-1;}intmain(){inta[N],d,n,i;printf(\nEntern(4=n=50):);scanf(%d,&n);d=fun(n,a);printf(\n\nTheresult:\n);for(i=0;id;i++)printf(%6d,a[i]);printf(\n\n);return0;}【参考答案】inti,j=0,k,sum;【参考答案】if(sum%4==2)【参考答案】returnj++;returnj;/*下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/#includestdlib.h#includestdio.h#includemath.h/**********ERROR**********/#defineFU(m,n)(m/n)floatfun(floata,floatb,floatc){floatvalue;value=FU(a+b,a-b)+FU(c+b,c-b);/**********ERROR**********/return(Value);}voidmain(){floatx,y,z,sum;printf(Inputxyz::);scanf(%f%f%f,&x,&y,&z);printf(x=%f,y=%f,z=%f\n,x,y,z);if(x==y||y==z){printf(Dataerror!\n);exit(0);}sum=fun(x,y,z);printf(Theresultis:%5.2f\n,sum);}【
本文标题:C语言上机题库百科园第4章!南信大!
链接地址:https://www.777doc.com/doc-1754711 .html