C++期中考试试卷

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++语言程序设计期中考试试题考试时间:2012年4月17日姓名:学号:班级:一、选择题(每小题1分,共40分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。1.关于友元,下列说法错误的是()A)如果类A是类B的友元,那么类B也是类A的友元B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元函数可以减少系统开销,提高效率。D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元A2.下面选项中不属于面向对象程序设计特征的是()。A)继承性B)多态性C)类比性D)封装性C3.已知下列语句中的x和y都是int型变量,其中错误的语句()A)x=y++;B)x=++y;C)x++=y;D)++x=y;C4.为了提高函数调用的实际运行速度,可以将较简单的函数定义为()。A)内联函数B)重载函数C)递归函数D)函数模板A5.下列关于C++函数的叙述中,正确的是()。A)每个函数至少要具有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己C6.有以下程序#includeiostreaminti=0;voidfun(){{staticinti=1;std::couti++',';}std::couti',';}intmain(){fun();fun();return0;}程序执行后的输出结果是()A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,D7.下列字符串中,可以用作C++标识符的是A)y_2012B)intC)3dD)foo-1A8.cout2^-5endl;的输出结果为()A)7B)-5C)0.03125D)-7D9.下列关于类和对象的叙述中,错误的是()。A)一个类只能有一个对象B)对象是类的具体实例C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系A10.设inta=3,b=2;,则++a*b++的结果是()。A)6B)8C)9D)12B11.在32位计算机中,一个int型数据所占用的内存长度为()字节。A)2B)4C)6D)8B12.下列十六进制整型常量的写法中,错误的是()。A)0xafB)0C)0X1bD)0xAEB13.下列变量定义中,正确的是()A)intm,n,x,y;floatx,z;B)charc1,c2=”c”;C)doubleage,do;D)floatf1,_time=0;doublescore_;D14.若有下面的函数调用:fun(a+b+c+d,3,min(a,b),n)则fun函数的实参个数是()。A.3B.4C.5D.6B15.有如下函数定义:voidfunc(inta,int&b){a++;b++;}若执行代码段:intx=2,y=2;func(y,x);则变量x和y的值分别是()。A.2和2B.3和3C.3和2D.2和3C16.在语句coutdata中,cout是个()A)类B)对象C)C++关键字D)函数B17.下列叙述中,错误的是A)false是一个逻辑型常量B)b是一个字符型常量C)365是一个int常量D)3.1415926是一个double常量B18.执行语句序列intn;cinn;switch(n){case1:cout'1';case2:cout'2';case3:case4:cout'3';break;default:cout'4';}时,若键盘输入1,则屏幕显示A)1B)14C)12D)123D19.有如下程序:intx=4;do{x-=3;coutx;}while(!(--x));执行这个程序的输出结果是()。A.1B.41C.1-2D.死循环C20.已知枚举类型定义语句为:enumToken{NUMBER,NAME,PLUS=5,MINUS,PRINT=10};则下列叙述中错误的是()A)枚举常量NAME的值为1B)枚举常量NUMBER的值为1C)枚举常量MINUS的值为6D)枚举常量PRINT的值为10B21.执行语句序列:inti=0;while(i25)i+=3;couti;,输出结果是()。A)24B)25C)27D)28C22.有如下程序:#includeiostreamusingnamespacestd;voidfun(intx){coutxendl;}intmain(){coutfun(23);return0;}如上程序的输出为()A)23B)2323C)编译错误D)运行错误C23.有如下程序:#includeiostreamusingnamespacestd;voidswap(int&x,inty){intt=x;x=y;y=t;}intmain(){inta=23,b=42;swap(b,a);couta,bendl;return0;}执行后的输出结果是()。A)42,42B)23,23C)23,42D)42,23B24.已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是A)chartest(int,int,int);B)doubletest(int,int,double);C)inttest(int,int,int=0);D)floattest(int,int,float=3.5F);B25.有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout'*';}执行这个程序段输出字符*的个数是A)10B)3C)4D)5C26.计算斐波那契数列第n项的函数定义如下:intfib(intn){if(n==0)return1;elseif(n==1)return2;elsereturnfib(n-1)+fib(n-2);}若执行函数调用表达式fib(2),函数fib被调用的次数是A)1B)2C)3D)4C27.有如下程序:#includeiostreamusingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);coutval;return0;}voidfunction(doubleval){val=3;}编译运行这个程序将出现的情况是A)编译出错,无法运行B)输出:3C)输出:3.0D)输出一个不确定的数D28.有如下类声明:classFoo{intbar();};则Foo类的成员bar是()。A)公有数据成员B)公有成员函数C)私有数据成员D)私有成员函数D29.若有语句“inti=1,j=2;coutj/I+i/j;”,则输出结果是()A)0B)2.5C)0.5D)2D30.在类声明中,紧跟在“public:”后声明的成员的访问权限是()。A)私有B)公有C)保护D)默认B31.关于函数重载,下列叙述中错误的是A重载函数的函数名必须相同B重载函数必须在函数形参个数或类型上有所不同C重载函数的返回值类型必须相同D重载函数的函数体可以有所不同C32.以下关键字不能用来声明类的访问权限的是______。A)publicB)staticC)protectedD)privateB33.在下列函数原型中,可以作为类AA构造函数的是()。A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);D34.有如下程序:#includeiostreamusingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){AAa(5);constAAb(6);couta.get()b.get();return0;}执行后的输出结果是()。A)55B)57C)75D)77B35.有如下类定义:classAA{inta;public:intgetRef()const{return&a;}//①intgetValue()const{returna;}//②voidset(intn)const{a=n;}//③friendvoidshow(AAaa)const{couta;}//④};其中的四个函数定义中错误的是()A)①③B)②C)③D)①③④D36.有如下程序:#includeiostreamusingnamespacestd;classMyClass{public:MyClass(){cout‘*’;}MyClass(MyClass&a){cout‘#’;}~MyClass(){cout‘@’;}};intmain(){MyClassa;MyClassb(a);return0;}运行时的输出结果是()。A)*@#@B)#@*@C)*#@@D)#*@@C37.有如下程序:#includeiostreamusingnamespacestd;classtest{private:inta;public:test(){coutconstructorendl;}test(inta){coutaendl;}test(consttest&test){a=test.a;cout”copyconstructorendl;}~test(){coutdestructorendl;}};intmain(){testA(3);return0;}运行时输出的结果是A)3B)constructordestructorC)copyconstructordestructorD)3destructorD38.对于一个类定义,下列叙述中错误的是()A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B)如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D)如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数B39.有如下类定义:classFoo{public:Foo(intv):value(v){}//①~Foo(){}//②private:Foo(){}//③intvalue=0;//④};其中存在语法错误的行是A)①B)②C)③D)④D40.有以下程序#includeiostreamusingnamespacestd;classMyClass{public:MyClass(intn){number=n;}MyClass(MyClass&other){number=other.number;}~MyClass(){}private:intnumber;};MyClassfun(MyClassp){MyClasstemp(p);returntemp;}intmain(){MyClassobj1(10),obj2(0);MyClassobj3(obj1);obj2=fun(obj3);return0;}程序执行时,MyClass类的拷贝构造函数被调用的次数是A)5B)4C)3D)2B二、填空题(共60分)下面1-8每题1分,9-20每题2分,21-26每题3分,27-28每题5分。1.C++是面向的程序设计语言。对象2.在C++语言中,032表示一个____八____进制数,而0x23表示一个___十六_____进制数。3.高级语言屏蔽了机器的细节,提高了语言的________。抽象层次4.C++中只有两个逻辑常量:true和______。false5.已知一个函数的原型是:intfn(doublea);若要以5.27为实参调用该函数,应使用表达式________。fn(5.27)6.非成员函数应声明为类的________函数才能访问这个类的private成员。友元7.若有定义语句”i

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功