《c++大一模拟试题(带答案).docx》由会员分享,可在线阅读,更多相关《c++大一模拟试题(带答案).docx(11页珍藏版)》请在优知文库上搜索。
1、模拟试卷(A卷)一、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。每题2分,共15小题,30分)1 .以下字符串中不能作为C+标识符使用的是OOAWHILEBUSerC、IvarD9stars2 .C+语言规定:在一个源程序中,main函数的位置(1。A、必须在程序的最开场B、必须在系统调用的库函数的后面C、可以任意D、必须在程序的最后3 .假定int类型变量占用两个字节,其有定义intx10=0,2,4;,那么数组X在内存中所占字节数是()oA、3B、6C、10D、204 .判断字符型变量Ch是否为大写英文字母,应使用表达式()。A、ch=,A,&ch=
2、。C、Av=Chv=ZD、ch=A,&ch=,Z,5 .以下语句中的X和y都是int型变量,其中错误的语句。A、x=y+;B、x=+y;C、(x+y)+;D、+x=y;6 .有如下程序段:inti=l;while(1)i+;i=10)break;iRi%2=O)cout*t;执行这个程序段输出字符*的个数是OOA、10B、3C、4D、57 .有如下程序#includeusingnamespacestd;intfunc(inta,intb)return(a+b);intmain()intx=2,y=5,z=8,r;r=func(finc(x,y),z);cout14D、158 .执行语句序列in
3、tn;cinn;switch(n)case1:case 2: cout,;case 3:case 4: cout,2,;break;default:cout3;时,假设键盘输入1,那么屏幕显示OoA、1B、2C、3D、129 .假设二维数组a有m列,那么在aij之前的元素个数为()。A、j*m+iBsi*m4jC、i*m+j-lD、i*m+j+l10 .语句的int*p=&k定义于指针P,于这个语句等效的语句序列是OoAint*p;p=&k;Bint*p;p=k;C、int*p;*p=&k;Dint*p;*p=k;11 .:intm=10;在以下定义引用的语句中,正确的选项是。A、int&x=
4、m;inty=&m;Cint&z;D、int&t=&m;12、有如下程序段inti=0,j=l;int&r=i;/r=j;int*p=&i;*p=&r;II其中会产生编译错误的语句是0。A、B、C、D、13 .在函数中,可以用auto,extern,register和StatiC这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,那么默认的存储类型是U0A、autoB、externC、registerD、static14 .数组arr的定义如下:()。intarr5=1,2,3,4,5;以下语句中输出结果不是2的是Acout*arrlVVend1;B、cout*(arr+l)endl
5、;C、coutarrlendl;D、cout*arrendl;15 .在类声明中,紧跟在“public:后声明的成员的访问权限是0oA、私有B、公有C、保护D、默认二、改错题(每题有几处错误,在错误处画线,并写出正确语句。每找对1个错误,加1分,每修改正确1个错误,再加1分。共3小题,共16分)1.#includeusingnamespacestd;constfloatpi=3.1416;constfloatr=3.2;intmain()floatsi;r=2.8;cl=pi*r*r;si=2*pi*r;coutc1s1endl;return0;)2 .以下程序功能是求X的y次方(缺省是X的2
6、次方)#includeusingnamespacestd;doublefun(doublex,doubley)inti;doubles=l;fbr(i=Oi=l;iy;i+)s=s*x;returns;intmain()doublex=2.5,y=3;coutnpow(2.5,2)fun(x,2)endl;CoUtVV”pow(2.5,3):,fin(x,y)endl;returnO;)3 .将一维数组按升序排列。#includeusingnamespacestd;voidsort(int*p,i11tn)inti,j,temp;fbr(i=O;in-l;i+)for(j=i+l;jn;j+)
7、if(piPlj)temp=pi;p11=pD;pj=temp;)intmain(void)intal6=l,3,2,5,4,6,*pi,i;pi=alpi=alO;sort(pi,6);for(i=0;i6;i+)couta1i,t,;coutendl;returnO;三、程序理解分析题(分析以下程序代码,并写出程序的输出结果,共4小题,每题4分,共16分)1. #includeusingnamespacestd;intmain()intsum;fbr(inti=0;i6;i+=3)(sum=i;fbr(intj=i;j6;j+)sum+=j;)coutsumend1;return0;2.
8、#includeusingnamespacestd;intmain()inti=5;int&r=i;r=7;coutiendl;returnO;3. #includeusingnamespacestd;intmain()(chara=,abcdabcabfgacd;intil=0,i2=0,i=0;while(ai!=,O,)ifiai=,a,)il+;if(ai=,b,)i2+;i+;cout,il=,i1u,i2=i2endl;return0;4. #includeusingnamespacestd;inta=200;voids()staticinta=20;a+;couta,;intma
9、in()i11ti;for(i=l;i=2;i+)a+;couta,;s();)return0;四、程序填空题(在横线处填上一个语句,使程序实现其相应的功能。每空3分,共6个空,总共18分)1、求三个数中的最大值和最小值。#includeusingnamespacestd;voidmaxmin(inta,intb,intc,int&n)i11tt;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;m=a;*第一空*/n=c;*第二空*/intmain()inta,b,c,max,min;coutabc;maxmin(a,b,c,max,
10、min);/*第三空*/couta=,ab=,b,c=cendl;coutumax=,max,min-,minendl;return0;)2.以下程序的功能是输出二维数组中最大值所在行内最小元素的值。#includeusingnamespacestd;intfun(inta45)intij,m=0,n=0,min;for(i=0;i4;i+)fr(j=0y5+)if(amnaij)m=i*第一空*/n=j;min=am0*第二空*/fbr0=l;jamj)min=amj/*第三空*/returnmin;intmain()inti,j,min;inta45=2,3,6,4,1,25,54,23,
11、28,26),7,9J5,20,35,67,18,30,88,38;fbr(i=0;i4;i+)fbr(j=0;j5;j+)coutaijn,;coutendl;min=fun(a);coutmin;return0;五、程序设计题(根据功能要求,编写程序,实现其功能,2题,每题10分,共20分)1 .请编写一个函数IongSUm(intn),用递归函数完成运算:sum(n)=l*l+2*2+.+n*n,递归表达式为SUm(n)=sum(n-1)+n2。请勿修改主函数main和其他函数中的任何内容,仅在函数SUm的花括号中填写假设干语句。includeusingnamespacestd;long
12、sum(intn)(intsum=0;while(n0)sum+=n*n;n-;)returnsum;)intmain()intn;COUtVV”输入n:“;cinn;cout,结果为:sum(n)endl;return0;)2 .请编写函数ftm(),该函数的功能是判断字符串是否为回文,假设是那么函数返回1,主函数中输出YES;否那么返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如:字符串LEVEL是回文,而字符串123312就不是回文。请勿修改主函数main和其他函数中的任何内容,仅在函数Rm的花括号中填写假设干语句。#includeusingnamespacestd;/Z
13、defineN80intfin(char*str)intmain()charsN;cout,Enterastring:,endl;gets(s);cout,nn;puts(s);if(fun(s)cout,YESn;elsecout,NOn;return0;)模拟试卷(A卷)参考答案及评分标准一、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。每题2分,共15小题,30分)I. D2.C3.D4.D5.C6.C7、D8.D9.B10.AII. A12、A13.A14.D15.B二、改错题(每题有几处错误,在错误处画线,并写出正确语句。每找对1个错误,加1分,每修改正确1个错误,再加1分。共3小