c++大一模拟试题(带答案).docx
模拟试卷(A卷)一、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。每题2分,共15小题,30分)1 .以下字符串中不能作为C+标识符使用的是OOAWHILEB>USerC、IvarD>9stars2 .C+语言规定:在一个源程序中,main函数的位置(1。A、必须在程序的最开场B、必须在系统调用的库函数的后面C、可以任意D、必须在程序的最后3 .假定int类型变量占用两个字节,其有定义intx10=0,2,4;,那么数组X在内存中所占字节数是()oA、3B、6C、10D、204 .判断字符型变量Ch是否为大写英文字母,应使用表达式()。A、ch>=,A,&ch<=,Z'B、ChV=AIlCh>=。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 .有如下程序#include<iostream>usingnamespacestd;intfunc(inta,intb)return(a+b);intmain()intx=2,y=5,z=8,r;r=func(finc(x,y),z);cout<<r;return0;该程序的输出的结果是()A、12B、13C>14D、158 .执行语句序列intn;cin»n;switch(n)case1:case 2: cout«,;case 3:case 4: cout«,2,;break;default:cout«3;时,假设键盘输入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;B>int*p;p=k;C、int*p;*p=&k;Dint*p;*p=k;11 .:intm=10;在以下定义引用的语句中,正确的选项是。A、int&x=m;inty=&m;C>int&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«*arr÷lVVend1;B、cout«*(arr+l)<<endl;C、cout«arrl<<endl;D、cout«*arr<<endl;15 .在类声明中,紧跟在“public:后声明的成员的访问权限是0oA、私有B、公有C、保护D、默认二、改错题(每题有几处错误,在错误处画线,并写出正确语句。每找对1个错误,加1分,每修改正确1个错误,再加1分。共3小题,共16分)1.#include<iostream>usingnamespacestd;constfloatpi=3.1416;constfloatr=3.2;intmain()floatsi;r=2.8;cl=pi*r*r;si=2*pi*r;cout<<c1«s1<<endl;return0;)2 .以下程序功能是求X的y次方(缺省是X的2次方)#include<iostream>usingnamespacestd;doublefun(doublex,doubley)inti;doubles=l;fbr(i=Oi=l;i<y;i+)s=s*x;returns;intmain()doublex=2.5,y=3;cout<<npow(2.5,2)<<fun(x,2)<<endl;CoUtVV”pow(2.5,3):,<<fin(x,y)<<endl;returnO;)3 .将一维数组按升序排列。#include<iostream>usingnamespacestd;voidsort(int*p,i11tn)inti,j,temp;fbr(i=O;i<n-l;i+)for(j=i+l;j<n;j+)if(pi<Plj)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;i<6;i+)cout<<a1i<<,t,;cout<<endl;returnO;三、程序理解分析题(分析以下程序代码,并写出程序的输出结果,共4小题,每题4分,共16分)1. #include<iostream>usingnamespacestd;intmain()intsum;fbr(inti=0;i<6;i+=3)(sum=i;fbr(intj=i;j<6;j+)sum+=j;)cout<<sum<<end1;return0;2. #include<iostream>usingnamespacestd;intmain()inti=5;int&r=i;r=7;cout«i«endl;returnO;3. #include<iostream>usingnamespacestd;intmain()(chara=,abcdabcabfgacd;intil=0,i2=0,i=0;while(ai!=,O,)ifiai=,a,)il+;if(ai=,b,)i2+;i+;cout<<,'il=,<<i1<<u,i2=<<i2<<endl;return0;4. #include<iostream>usingnamespacestd;inta=200;voids()staticinta=20;a+;cout<<a<<,;intmain()i11ti;for(i=l;i<=2;i+)a+;cout«a«',;s();)return0;四、程序填空题(在横线处填上一个语句,使程序实现其相应的功能。每空3分,共6个空,总共18分)1、求三个数中的最大值和最小值。#include<iostream>usingnamespacestd;voidmaxmin(inta,intb,intc,int&n)i11tt;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;if(b<c)t=b;b=c;c=t;m=a;*第一空*/n=c;*第二空*/intmain()inta,b,c,max,min;cout<<nPleaseinputabc:n;cin>>a>>b>>c;maxmin(a,b,c,max,min);/*第三空*/cout<<a=,'<<a<<b=',<<b<<,'c=<<c<<endl;cout<<umax=',<<max<<,min-,<<min<<endl;return0;)2.以下程序的功能是输出二维数组中最大值所在行内最小元素的值。#include<iostream>usingnamespacestd;intfun(inta45)intij,m=0,n=0,min;for(i=0;i<4;i+)fr(j=0y<5+)if(amn<aij)m=i*第一空*/n=j;min=am0*第二空*/fbr0=l;j<5;j+)if(min>amj)min=amj/*第三空*/returnmin;intmain()inti,j,min;inta45=2,3,6,4,1,25,54,23,28,26),7,9J5,20,35,67,18,30,88,38;fbr(i=0;i<4;i+)fbr(j=0;j<5;j+)cout<<aij<<n,'cout<<endl;min=fun(a);cout<<min;return0;五、程序设计题(根据功能要求,编写程序,实现其功能,2题,每题10分,共20分)1 .请编写一个函数IongSUm(intn),用递归函数完成运算:sum(n)=l*l+2*2+.+n*n,递归表达式为SUm(n)=sum(n-1)+n2。请勿修改主函数main和其他函数中的任何内容,仅在函数SUm的花括号中填写假设干语句。include<iostream>usingnamespacestd;longsum(intn)(intsum=0;while(n>0)sum+=n*n;n-;)returnsum;)intmain()intn;COUtVV”输入n:“;cin>>n;cout<<,'结果为:<<sum(n)<<endl;return0;)2 .请编写函数ftm(),该函数的功能是判断字符串是否为回文,假设是那么函数返回1,主函数中输出YES;否那么返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如:字符串LEVEL是回文,而字符串123312就不是回文。请勿修改主函数main和其他函数中的任何内容,仅在函数Rm的花括号中填写假设干语句。#include<iostream>usingnamespacestd;/ZdefineN80intfin(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小题,共16分)1 .答案:#include<iostream>usingnamespacestd;constfloatpi=3.1416;constfloatr=3.2;intmain()floatSLC1:M=2.8:cl=pi*r*r;si=2*pi*r;cout<<cl«s1<<endl;return0;2 .答案:#include<iostream>usingnamespacestd;doublefun(doublex,doubley)i11ti;doubles=l;fbKi=lJv=yj+)s=s*x;returns;)intmain()doublex=2.5,y=3;CoUtVV/pow(252)"VVfim(X.2)VVend1:COUtVV"pow(2.5,3):“VVftm(X,y)vvendl;returnO;3 .答案:#include<iostream>usingnamespacestd;voidsort(intp,intn)intij,temp;for(i=O;i<n-l;i+)for(i=i;i<n;i+)if(Nil>叫Dtemp=pi;pi=pU;pj=temp;)intmain(void)intal6=l,3,2,56,*pi,i;Di=al;sort(pi,6);for(i=0;i<6;i+)cout<<a1i<<,t,;cout<<endl;return0;)三、程序理解分析题分析以下程序代码,并在程序右侧写出程序的输出结果,共4小题,每题4分,共16分)1 .运行时的输出结果是152 .运行时的输出结果是73 .运行时的输出结果是il=4,i2=34 .运行时的输出结果是201,21,202,22四、程序填空题(在横线处填上一个语句,使程序实现其相应的功能。每空3分,共6个空,总共18分)1、m/*第一空*/n/*第二空*/min/*第三空*/2.m=i;/*第一空*/min=am0;/*第二空*/min=amj;/*第三空*/五、程序设计题(根据功能要求,编写程序,实现其功能,2题,每题10分,共20分)1 .【参考答案】longsum(intn)ifn=l)return1;elsereturnn*n+sum(n-l);)2 .【参考答案】intfin(char*str)(inti,n=0,fg=l;char*p=str;while(*p)(n+;P+;for(i=0;i<n/2;i+)if(stri=strn-l-i);elsefg=O;break;)returnfg;