模拟试题一
- 格式:doc
- 大小:59.50 KB
- 文档页数:10
《C++程序设计》模拟试题(一) 一、选择题(本大题共10小题,每小题2分,共20分) 1.C++源程序文件扩展名为( B)。 A..h B..cpp C..1ib D..obj 2.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( A )。 A.cin B.cout C.cerr D.clog 3.对于类中没有设置访问属性的数据成员,其默认为( A )。 A.public B.protected C.private D.static 4.下列关于类和对象的叙述中,错误的是( A )。 A.一个类只能有一个对象 B.对象是类的具体实例 C.类是对某一类对象的抽象 D.类和对象的关系是一种数据类型与变量的关系 5.类的构造函数是在定义该类的一个( C )时被自动调用执行的。 A. 成员函数 B. 数据成员 C. 对象 D. 友元函数 6.派生类的对象可以访问以下哪种情况继承的基类成员( D )。 A.私有继承的私有成员 B.公有继承的私有成员 C.私有继承的保护成员 D.公有继承的公有成员 7.int Func(int,int);不可与下列哪个函数构成重载( A )。 A.int Func(int,int,int); B.double Func(int,int); C.double Func(double,double); D.double Func(int,double); 8.假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( A )。
A.int AA::a() B.int AA:a() C.AA::a() D.AA::int a() 9.设函数void swap(int,int)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为( C )。
A.10,10 B.10,15 C.15,10 D.15,15 10.当一个类A或函数f()被声明为另一个类B的友元后,类A或函数f()能够直接访问类B的( D )。 A.只能是公有成员 B.只能是保护成员 C.只能是除私有成员之外的任何成员 D.任何权限的成员
二、填空题(本大题共10小题,每小题2分,共20分) 1.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用 iostream______头文件。 2.同一个函数名可以对应着多个不同的函数实现,每一类实现对应着一个函数体,称为_____函数的重载___。
3.在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为_____this___指针。
4.假定A为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为__x.a()______。
5.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为___n-1_____。
6.在C++中,对于基类的protected成员,当以public方式派生一个新类时,该成员将成为派生类的______公有__成员。
7.能够用来作为基类派生出新类,却不能创建自己的对象的类称为________。 8.在C++程序中使用的cout标识符是系统类库中定义的________类中的一个对象。 9.若x=5,y=10,则x>y的逻辑值为________。 10.执行“char ch=14*5+2;cout<三、阅读下列程序,写出执行结果(本大题共5小题,每小题4分,共20分) 1. #include void main() { int a[9]={2,4,6,8,10,12,14,16,18}; for(int i=0;i<9;i++) { cout
~A(); private: static int c; }; int A::c =0; A::A() {
cout <<"constructor." cout <<"destructor. "<} void main() { A a,b; a.Show(); b.Show(); } 5. #include class base { int n; public: base(){}; base (int a) { cout << "constructing base class" << endl; n=a; cout << "n=" << n << endl; } ~base() { cout << "destructing base class" << endl; } }; class subs : public base { int m; public: subs(int a, int b) : base(a) { cout << "constructing sub class" << endl; m=b; cout << "m=" << m << endl; } ~subs() { cout << "destructing sub class" << endl; } }; void main () { subs s(1,2); } 四、程序填空题(本大题共5小题,每小题4分,共20分) 1.根据输出结果,在下划线处填上正确的语句。 #include class Sample { int x,y; public: Sample() {________;} ________ { x=a; y=b; } void disp() { cout<<"x="<} }; void main() { Sample s1,s2(2,3); s1.disp(); s2.disp(); } 输出结果为: x=1,y=1 x=2,y=3 2.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。 #include using namespace std; ________pi=3.14159; void main( ) { double r; cout<<"r="; ________ ; double l=2.0*pi*r;