☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
湖北汽车工业学院 面向对象程序设计 考试试卷(题)
课程编号 020690 考试形式 考试日期
+ 三、单项选择题(每小题2分,共30分)
) 考试时间 120分钟 1. 下列调用方式中,_____是引用调用。
(A)形参是引用,实参是普通变量 (B)形参和实参都是普通变量 (C)形参是指针,实参是地址值 (D)形参是引用,实参是地址值 2. _____不是面向对象程序设计方法所包含的要素。
☆☆☆☆☆☆☆☆ 题号 一 二 三 四 五 六 七 八 九 十 总分 ☆☆☆☆☆☆☆☆号 ☆☆☆☆☆☆☆☆位得分 ☆☆☆☆☆☆☆☆座(☆☆☆☆☆☆☆☆ 阅卷 ☆☆☆☆☆☆☆☆ ☆☆☆☆☆☆☆☆ ☆☆☆☆☆☆☆☆ ☆☆☆☆☆☆☆☆名+ 一、填空题(每个空1分,共10分)
1. 对象由 和方法构成,对象之间通过 进行通信。 ☆☆☆☆☆☆☆☆姓 题☆☆☆☆☆☆☆☆ 答2. 5/2<=3?1:2的值是 ,sizeof(float)的值是 。
得3. 函数调用中又调用了函数自身,这种现象称为函数 ,其实现过程可以分为递推☆☆☆☆☆☆☆☆ 不☆☆☆☆☆☆☆☆ 内和 两个阶段。
线4. 表达式1|2&3的值是 ,表达式3<<1+7/4的值是 。 ☆☆☆☆☆☆☆☆ 订 5. 每个对象都维护了一个指向自身的指针,该指针称为 。 ☆☆☆☆☆☆☆☆号装6. 如果一个类具有纯虚函数,则称该类为 。
☆☆☆☆☆☆☆☆学 ☆☆☆☆☆☆☆☆ ☆☆☆☆☆☆☆☆ + 二、判断题(每小题2分,共20分)
☆☆☆☆☆☆☆☆ ( ) 1. 结构体类型的长度为最长成员的长度。 ☆☆☆☆☆☆☆☆ ☆☆☆☆☆☆☆☆ ( ) 2. 不能在函数声明语句中设置函数的默认形参值。 ☆☆☆☆☆☆☆☆号( ) 3. 可以通过函数形参个数的不同来分辨重载的函数。
☆☆☆☆☆☆☆☆班生( ) 4. 对象的长度为数据成员的长度之和。 ☆☆☆☆☆☆☆☆考☆☆☆☆☆☆☆☆( ) 5. 拷贝构造函数的形参是本类的对象。
☆☆☆☆☆☆☆☆( ) 6. 在类的内部可以直接访问对象成员的私有数据成员。 ☆☆☆☆☆☆☆☆( ) 7. 析构函数的调用顺序与构造函数相同。
☆☆☆☆☆☆☆☆( ) 8. 语句const char *p;表示p是指向常量字符串的指针。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ( ) 9. -1.2f是合法的C++常量。 ☆☆☆☆☆☆☆☆ ( ) 10. 运算符重载实质上是函数重载。
☆☆☆☆☆☆☆☆ (A)类 (B)模板 (C)对象 (D)继承 3. 以下有关类的说法中,正确的是____。
(A)类是一种用户定义的普通数据类型
(B)通常只有类的成员函数才能存取类中的私有数据成员 (C)不能在类中定义成员函数
(D)在类中如不做特别说明,所有数据成员均为公有类型 4. int x=2,y;
y=x+++x+++x++; 则y的值为_____。
(A)6 (B)7 (C)8 (D)9 5. 是析构函数的特征。
(A)析构函数不可以定义在类体之外 (B)一个类可以定义多个析构函数 (C)析构函数可以有形参 (D)析构函数在对象消亡时自动调用 6. C++语言规定else总是与_______配对。
(A)缩进位置相同的if (B)同一行上的if (C)其之前最近的if (D)其之后最近的if 7. 友元关系 。
(A)可以继承 (B)是双向的 (C) 可以传递 (D)必须显式声明 8. 运算符.*的功能是用来完成 的操作。
(A)对象指针对类成员指针 (B)对象对类成员指针 (C)对象指针对类成员 (D)对象对类成员 9. 已知print是一个类的常成员函数,返回值是常整型引用。下列表示中______是正确的。(A)int& const print( ) (B)int print( ) const
(C)const int& print( ) const (D)const int& print( ) 10. 某个类既有基类、虚基类,还有对象成员。创建该类的对象时,最先调用是 的构造函数。
(A)本类 (B)基类 (C)虚基类 (D)对象成员 11. 对基类的数据成员,一般把它的访问控制属性设置为 。 (A)public (B)protected (C)private (D)static
12. 若用数组名作为函数调用的实参,则传递给形参的是_______。 (A)数组的首地址 (B)数组第一个元素的值 (C)数组全部元素的值 (D)数组元素的个数
13. 下列关于运算符重载的描述中,______是正确的。
(A)可以改变运算符的原有功能 (B)不可以设置为成员函数 (C)不可以设置为友元函数 (D)不可以改变操作数的个数 14. 以下程序的运行结果为______。 #include
#include
{ int a[3][3]={1,2,3,4,5,6,7,8,9},i;
}
void A::display(void)
{ cout< a.display(); cout< cout< (A)3 6 9 (B)3 5 7 (C)1 5 9 (D)2 4 7 15. 以下程序段错误的地方是_____。 class A { public: virtual void display(void)=0; (A) A(int x){a=x;} (B) private: int a; }; (C) int main( ) { A b(6); (D) return(0); } + 四、写出下列程序的运行结果(每小题3分,共12分) 1. #include public: A(int x); void display(void); private: int x; }; A::A(int x) { A::x=x+2; ::x++; cout< } 运行结果: 2. #include int main( ) { int i,j; for(i=1,j=1;i<=100;i++,j++) { if(j>=10) break; if(j%3==1) j+=2; } cout< 运行结果: 3. #include class A{ public: A( ) {cout<<”A”;} }; class B{ public: B( ){cout<<”B”;} }; class C:public B { A a; public: C( ){cout<<”C”;} }; class D: public A,public B { C c; public: D( ){cout<<”D”;} }; int main( ) { D d; return(0); } 运行结果: 4. #include void sub(int x, int y, int &z) { z=y-x;} int main( ) {int a,b,c; sub(3,5,a); sub(1,a,b); sub(a,b,c);