XX大学
试题纸
课
程
面向对象的程序设计C++
(B)
班
级
学
号
姓
名
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
阅卷人
一、选择题:(每小题2分,共20分)
1.下面四个选项不属于表达式的语句是(B)。
A.z=x+y
B.x*y;
C.z=x;
D.z=y/2;
2.若定义int
a=10,下面选项中合法的if语句是(D)
Aif(a<
>0)a=a+2;
B.if(a=<1)a=a+2;
C.if(a=>1)a=a+2;
D.if(a=
=0)a=a+2;
3.表达式2!=3的值是(B)
A.非0值
B.1
C.0
D.2
4.假设Myclass是一个类,则该类的拷贝构造函数的声明语句为
C。
A.Myclass(Myclass
P);
B.Myclass
&(Myclass
P);
C.Myclass(Myclass
&p);
D.Myclass
(Myclass
*P);
5.下列说法正确的是:
A。
A.类定义中只能说明成员函数的函数头,不能定义函数体;
B.类中的成员函数可以在类体中定义,也可以在类体外定义;
C.类中的成员函数可以在类体外定义时必须要与类声明在同一文件中;
D.在类体外定义的成员函数不能操作该类的私有数据成员。
6.假定DD为一个类,则执行“DD
a[10],b(2);”语句时,系统自动调用该类构造函数的次数为
B。
A.12
B.11
C.2
D.1
7.下面对静态数据成员的描述中,正确的是:
B。
A.静态数据成员可以在类体内进行初始化;
B.静态数据成员不可以在类体内进行初始化;
C.静态数据成员不能受private控制符的作用;
D.静态数据成员不可以使用对象名访问。
D.类A的成员函数可以访问类B的对象的任何成员。
8.下列各类函数中,不是类的成员函数的是:
C。
A.构造函数;
B.析构函数;
C.友员函数;
D.拷贝构造函数。
9.下列静态数据成员的特性中,错误的是
D。
A.说明静态数据成员时前边要加上static
B.静态数据成员要在类体外初始化;
C.引用静态数据成员时要在静态数据成员前加<类名>和作用域运算符;
D.静态数据成员不是一个类所有对象共享的。
10.假定一个类的构造函数为“A(int
aa=1,int
bb=0){a=aa;b=bb;}”,则执行“A
x(4);”语句后,x.a和x.b的值分别为
D。
A.1和0
B.4和1
C.1和4
D.4和0
二、填空题:(每空2分,共10分)
1.面向对象程序设计的三大特征是:、和。
2.在下面程序的横线处填上适当字句,使该程序执行结果为8。
#include
class
Myclass
{
int
x;
public:
//为X置值
//取X值
};
void
main()
{
Myclass
test;
test.init(8);
cout< } 三、编程题:(共50分) 要求:1)符合题意,测试结果正确; 2)语句简洁易懂、程序版式良好。(版式差也在扣分之列!!) 1.有一个函数: 2x+5 (x<1) y = (1≤x<10) 1/x (x≥10) 输入x,输出 y。(15分) 2.求1~12的立方,并按每行4个数的格式排列整齐输出。(15分) 3.设计一个圆类Circle,要求输出圆的半径、周长和面积等数据。其中,类Circle包含数据成员radius和求圆的半径、周长和面积的成员函数。通过实例验证其正确性。(20分) 四、改错题:P234第10题(20分) 一、BDBCA BBCDD 二、1.封装性、继承性、多态性 2.void init(int r) { x = r ; } //为X置值 int Getnum() { return x; } //取X值 三、1./*1.有一个函数: 2x+5 (x<1) y = (1≤x<10) 1/x (x≥10) 输入x,输出 y。(15分) */ #include void main() { double y ; double x ; cout << “enter x=“ < cin >> x ; if (x<10) { if(x<1) { y=2*x+5; } else y= 2/(x*x+3); } else y=1/x; cout << “y=“ << y<< endl; } 2./*求1~12的立方,并按每行4个数的格式排列整齐输出。(15分)*/ #include void main() { int i; int a=1; int m; int b[12]; for (i=0 ; i<12 && a <=12 ; i++) { m=a*a*a; b[i]=m; a++; } for (i=0 ; i<12 ; i++) { cout << b[i]<< “ “; if (i==3 || i==7) cout << endl; } 3./*设计一个圆类Circle,要求输出圆的半径、周长和面积等数据。 其中,类Circle包含数据成员radius和求圆的半径、周长和面积的成员函数 。通过实例验证其正确性。(20分)*/ #include const double pi=3.14159265; class circle { public: circle (double r) { radius = r; } double L () { return * pi * radius; } double A () { return pi * radius * radius; } void print() { cout << “r=“ << radius << endl; cout << “L=“ << L() << endl; cout << “A=“ << A() << endl; } private: double radius; }; void main () { double m; cout << “ enter m : “<< endl; cin >> m; circle r1(m); r1.print(); } 四、#include class Myclass { public: Myclass(int i,int j) { m1=i;m2=j; } void Print() { cout< } friend void setm(Myclass &m,int i,int j); friend void setm(Myclass &m,int i); private: int m1,m2; }; void setm(Myclass &m,int i,int j) { m.m1=i; m.m2=j; } void setm(Myclass &m,int i) { m.m1=i; m.m2=i; } void main() { Myclass m1 (5,10),m2 (0,0); m1.Print(); setm(m2,3,6); m2.Print(); setm(m2,8); m2.Print(); }