您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > C++模考1(含试题与答案)
2017C++模考固定试题1解答一、单选题(总分:30.0,共30题)1.设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为(D)。A.5,10B.20,25C.5,25D.5,202.x为int型,s为float型,x=3,s=2.5。表达式s+x/2的值为(B)。A.4B.3.5C.2.5D.33.在以下选项中,与k=n++完全等价的表达式是(A)。A.k=n,++n;B.n=n+1,k=n;C.k=++n;D.k+=n+1;4.有定义:inta;doubleb;则表达式a+4/b结果的数据类型为(B)。A.intB.doubleC.floatD.unsigned5.以下程序段的结果是(B)。intm=0,n=0;if(++m&&++n)coutm,nendl;A.0,0B.1,1C.1,0D.0,16.有循环结构程序段:for(i=1;i10;i++)coutiendl;couti;下列说法错误的是(C)。A.循环体语句被执行了9次;B.循环体只包含一个语句;C.第2个cout语句输出i值为9;D.1,2,3,4,5,6,7,8,9,10都被输出。7.若已有inte;则while(e){⋯};中的循环控制条件等价于:(B)。A.e==0B.e!=0C.e==1D.e!=18.下面(D)不是必须的c++源程序格式要求。A.语句以分号结束B.编译命令不要以分号结束C.函数体放在{}内D.{}内的语句向右缩几个字符9.设x、y、z、t均为int变量,则执行以下语句后,t的值为(C)。x=y=z=1;t=++x||++y&&++z;A.不定值B.2C.1D.010.t为int类型,进入下面的循环之前,t的值为0。对下面的语句:while(t=1){...}。则以下叙述中,正确的是(B)。A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.其他说法都不对11.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(B)。A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C++中不允许这样的递归调用12.一个函数的返回值是通过函数中的(A)语句获得的。A.returnB.exitC.breakD.value13.以下对C++语言函数的描述中,正确的是(A)A.C++程序由一个或一个以上的函数组成B.C++函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C++程序中调用关系的所有函数必须放在同一个程序文件中14.在什么情况下,可以不用对自定义函数进行声明就可以调用(A)。A.被调用的自定义函数出现在同一文件的主调函数之前B.主调函数在前,被调函数在后C.该被调用函数出现在main函数之前D.不存在这种情况15.设有一自定义函数的函数头形如:intf(intx,floaty)。下列关于该函数的声明语句中,错误的是(A)。A.intf(intx,floaty)B.intf(int,float);C.intf(inta,floatb);D.intf(intx,floatz);16.下列程序段的输出结果是(A):intadd(intx=20,inty=10);voidmain(){inta(30),b(50);coutadd(a,10)endl;}intadd(intx,inty){returnx+y;}A.40B.30C.50D.1017.全局变量的定义不可能在(A).A.函数内部B.函数外面C.文件外面D.最后一行18.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是(C)。A.3B.2C.6D.419.如有定义:inta[20];则下面可以正确引用数组元素的表达式是(D)。A.a[20]B.a[3.5]C.a(5)D.a[10-10]参考答案:D20.在下列对字符数组进行初始化的语句中(A)是正确的。A.chars1[]=”abcd”;B.chars2[3]=”xyz”;C.chars3[][]={′a′,′x′,′y′};D.chars4[2][3]={“xyz”,”mnp”};21.有以下程序段:chara[10]=abcd;coutstrlen(a),sizeof(a)endl;则执行后的输出结果是(B)。A.7,4B.4,10C.8,8D.10,1022.设有inta[10],*p=a;则下面哪种表示与a[3]等价(D)。A.*a+3B.&a[3]C.p=p+2,*p++D.*(p+3)23.有如下程序段:int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值是(B)。A.12B.11C.10D.编译出错24.要使指针变量p指向一维数组a的第1个元素(下标为0的元素),正确的赋值表达式是(B)。A.p=a或p=a[0]B.p=a或p=&a[0]C.p=&a或p=a[0]D.p=&a或p=&a[0]25.假定变量a和pa定义为doublea[10],*pa=a;要将60赋值给a中的下标为5的元素,不正确的语句是(D)。A.pa[5]=60;B.*(pa+5)=60;C.a[5]=60;D.*(a[0]+5)=60;26.函数的返回值的类型由(C)决定。A.调用该函数的主调函数类型B.return语句中的表达式类型C.定义函数时所指定的返回值类型D.调用函数时临时决定27.下列说法不正确的是(C)。A.for,while和do-while循环体中的语句可以是空语句。B.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成。C.for和do-while循环都是先执行循环体语句,后判断循环条件表达式。D.while循环是先判断循环条件表达式,后执行循环体语句。28.若i为整型变量,则以下循环的执行次数是(A)。for(i=2;i==0;)coutiendl;A.0B.1C.2D.无限次29.执行if((x=y=2)=x&&(x=5))y*=x;语句后,变量x、y的值分别为(C)。A.2、4B.5、2C.5、10D.执行时报错30.若有:inta,*p=&a;则下面哪个表达式为假(A)。A.*p==&aB.p==&*pC.p==&aD.*p==a二、填空题(总分:25.0,共23题)1.C++中的数据有常量和变量之分。用一个标识符代表一个常量,称为__符号__常量。2.只有一个分号的语句叫____空语句___。3.三种基本的程序控制结构是:顺序结构,选择结构和__循环结构__。4.break语句用于结束整个循环,__continue__语句用于结束本次循环。5.Do⋯while语句的循环体至少无条件执行_一__次,而while循环体可能一次也不执行。(注:请用汉字答题)6.在函数体内定义的局部变量,在函数返回时不会被撤销,该变量是__静态__变量。7.定义函数时,出现在函数名后面括号中的变量名称为_形参或形式参数__。8.数组名就是数组的____起始____地址。9.使用函数strcat(str1,str2)连接两个字符串时,连接的结果保存在字符数组_str1_中。10.完成以下语句,使得当x10时,y值为5,否则y值为-5:intx,y;if(x10)y=5;elsey=-5;11.设有定义:chars[]=d\ta\101bc;则调用函数strlen(s)的值为:__6__。12.完成以下语句,声明函数max为内置函数:__inline__intmax(intx,inty);13.完成以下语句,定义变量x为静态整型变量:__static___intx;14.有以下函数声明:intfun(inta);已定义函数指针变量p,为了使p指向函数fun,则使用的赋值语句为:p=____fun____;15.有以下函数定义:intf1(inta,intb){returna+b;}则执行以下语句:intx=2,y=4,z=3;coutf1((x,y,x+y),z)endl;的输出值是:____9____。16.有数组定义:inta[5]={1,2,3,4,5};intb[5]={3,6,9,12,15};表达式b[a[3]]的值为:____15____。17.设有定义:inta[3][3]={1,2,3,4,5,6,7,8,9};则值为6的元素是:____a[1][2]____。18.假设有以下语句:inta,x=5,y=6,*p=&x;a=*p;p=&y;则此时a的值为____5____。19.有下面的程序段:char*s=abcde,*p;p=s+2;coutpendl;则运行结果是____cde____。20.设有以下定义的语句:inta[3][2]={10,20,30,40,50,60};intb[3][2]={10,20,30,40,50,60};则a[1][1]*b[2][1]=____2400____。21.若有float型二维数组a[3][4],则与数组元素的指针表示方式*(*(a+2)+3)等价的下标表示方式表示为____a[2][3]____。22.完善下面的程序段,找出3行×4列矩阵A中第一个最大元素以及它的行号和列号。#defineM3#defineN4intmain(){inti,j,row,colum,max;inta[M][N];for(i=0;iM;i++)for(j=0;jN;j++)cina[i][j];max=____[1]____;row=0,colum=0;for(i=0;iM;i++)for(j=0;jN;j++)if(____[2]____){max=a[i][j];row=i;colum=j;}coutmax=max,row=row,colum=columendl;return0;}23.已知费氏(Fibonacci)数列通项:F0=F1=1(i=0,1),Fi=Fi-1+Fi-2(i1)完善下面的程序段,用数组求Fibonacci数列前20项。intmain(){inti,f[20];f[0]=f[1]=____[1]____;for(i=2;i20;i++)f[i]=f[i-1]+____[2]____;coutFibonacci:endl;for(i=0;i20;i++)coutf[i];coutendl;return0;}三、判断题(总分:15.0,共15题)1.全局变量一定是静态变量。正确2.符号常量定义为字符常量时,不应用双引号包括该字符。正确3.若x为整型变量,j为实型变量,当执行x=(int)j;语句后,j也变为整型变量。错误4.while语句的循环体有可能一遍都不执行,而do--while语句至少执行一遍循环体.正确5.条件运算符的结合方向为从左到右。错误6.任何一个表达式加上一个分号就构成一个语句。正确7.如果一个函数没有形式参数,调用该函数时,可以省略括号对()。错误8.局部变量是指定义在函数或程序块内的变量。正确9.凡未附加static关键字定义的局部变量都是自动变量,存储在动态数据存储区。正确10.关键字extern即可用于外部函数的定义,也可用于对外部函数的声明。正确11.一个C++程序可以包含0个或多个自定义函数。正确12.对于一维数组a,a与&a[0]都表示数组中首元素的存储地址,该地址称为数组的首地址。正确13.同一数组的不同元素的数据类型可以不同。错误14.不指向任何变量或函数的指针,可用NULL表示。正确15.在C++中,函数的指针就是函数的入口地址(或首条指令地址)。正确四、问答题(总分:20.0,共5题)1.(本题分值:4.0)若有下列函数及其相应的调用语句(若有......,表示该题有省略语句,但不影响对该程序结果的判断),则该程序的输出结果是(result
本文标题:C++模考1(含试题与答案)
链接地址:https://www.777doc.com/doc-2083144 .html