南航试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.选择题: (每题2分,共30分,请将正确答案写在题号左边)
1.在下列成对的表达式中,运算结果类型相同的一对是( ) A.7/2和7.0/2.0 B.7/2.0和7/2
C.7.0/2和7/2 D.7.0/2.0和7.0/2
2.能正确表示“当x的取值在[1, 10]和[200, 210]范围内为真,否则为假”的表达式是()A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B.(x>=1)||(x<=10)||(x>=200)||(x<=210)
C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)
3.使用值传递方式将实参传给形参,下列说法正确的是()
A.引用类型形参不分配内存空间,仅仅是实参的别名
B.引用类型形参分配内存空间,形参与实参占用不同的内存空间
C.指针类型形参分配内存空间,形参接受实参传递的数值
D.指针类型形参不分配内存空间,仅仅是实参的别名
4.若有宏定义:#define MOD(x, y) x%y 则执行以下语句后输出为()int z, a = 15, b = 100;
z = MOD(b, a);
cout<< z + +;
A.11 B.10 C.6 D.宏定义不合法5.若有以下定义和语句,则对数组元素a[1][2]的正确引用为()。
int a[2][3], (*p)[3]; p=a;
A.(*(p+1))[2] B.*p[1][2] C.*(p+1)[2] D.*(p+1)+2
6.内联函数的特点是( )
A.减少代码量,加快访问速度B.减少代码量,减缓访问速度
C.增加代码量,减缓访问速度D.增加代码量,加快访问速度
7.C++类中定义的成员默认访问属性为( )
A.public B.private C.protected D.friend
8.类的私有成员可在何处被访问( )
A.本类的成员函数中B.本类及派生类的成员函数中
C.通过对象名在任何位置D.不可访问
9.对类A,拷贝构造函数的原型是( )
A.A::A(const A&);B.A::A(const A *);
C.A::A(const A);D.A::A( );
10.下列关于析构函数描述正确的是( )
A.可以重载B.函数体中必须有delete语句
C.返回类型必须是void类型D.不能指定返回类型
11.如果类A被声明成类B的友元,正确的是( )
A.类A的成员函数即为类B的成员函数
B.类B的成员函数即为类A的成员函数
C.类A的成员函数不可以访问类B的成员
D.类B不一定是类A的友元
12.this指针存在的目的是()
A.保证基类公有成员在派生类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在派生类中可以被访问
D.保证基类私有成员在派生类中可以被访问
13.在公有继承的情况下,允许派生类直接访问的基类成员包括()
D.只能是保护成员
)
static类型的成员函数
说明一个虚函数后,派生类中相同原型的函数也是虚函数
)
D.C++中可以重载所有的运算符
二.写出下列程序的运行结果(每题3分,共24分)
1. #include
void main( )
{
cout<< x ;
程序运行结果为:。
*z=t;
程序运行结果为:。
}
cout < 程序运行结果为:。 { char Num[10]; char *Name; int Score; public: Student(char *nump, char *namep, int score) { if(nump) strcpy(Num, nump); else strcpy(Num, ""); if(namep) { Name=new char[strlen(namep)+1]; strcpy(Name, namep); } else Name=0; Score=score; cout<<"Constructor Called!\n"; } ~Student( ) { if(Name) delete [ ] Name; cout<<"Desturctor Called!\n"; } void Show( ) { cout << Num <<'\t'<< Name << '\t' << Score << endl; } }; void main( ) { Student a("0409204", "George", 90); a.Show( ); } 程序运行结果为:。 5. #include class A { int num1; static int num2; public: A( ) { num1=1; num2--; cout< static int getnum(A &n1){ return n1.num1+num2; } }; int A::num2=5; void main() { A n1,n2; cout< } 程序运行结果为:。 6.#include class A { protected: int x; public: A(int a=0){ x=a; } void Show( ) { cout << "A:x=" << x << '\n' ; } }; class B : public A { protected: int x; public: B(int a,int b) :A(a) {x=b;}