计算机学院《C++程序设计》期末试题
年度: 2016-2017 考核形式:闭卷 班级: 姓名: 学号:
析构函数的定义题号 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 九 | 十 | 总分 |
得分 | |||||||||||
一、选择题(共40分,每题2分,)
1.执行cout<<123<<endl<<”123”;,屏幕上显示的是( )
A.123endl”123” B.123endl123 C.123 D.123
“123” 123
2.A>B&&A<=B的值( )
A.true B.false C.与A>B值相同 D.与A<=B值相同
3.下列表达式中正确的是( )
A.{{(k+b)*c}-s} B.++k-=5 C.y÷3 D.k×5
4.x>=0的等价条件是( )
A.x<0 B.!(x>=0) C.!(x<0) D.!(x>0)
5.执行cin>>k;
Switch (k) {
default :
case 1: cout<<”G”;
case 2: cout<<”L”; 后显示输出的是GL,则k不可能出现的情况是( )
A.k= =1 B.k= =2 C.k<1 D.k>2
6.与if (x>0) if (y<0) x+=y; else x-=y; 等效的语句有( )
A.if (x>0||y<0) x+=y; else x-=y; B.if (x<=0||y>=0) x+=y; else x-=y;
C.if (x>0) x=(y>=0? x-y : x+y); D.if (y>=0) if (x<=0) x-=y; else x+=y;
7.要使字符串变量str具有初值“hello!”,正确的定义语句是( )
A.char str[6]={‘h’,’e’,’l’,’l’,’o’,’!’}; B.char str[6]=”hello!”;
C.char str[ ]={‘h’,’e’,’l’,’l’,’o’,’!’,’\0’}; D.char str[]={”hello!”};
8.关于全局变量,下列说法正确的是( )
A.全局变量必须定义于文件的首部,位于任何函数定义之前
B.全局变量可以在函数中定义
C.全局变量可用于函数之间传递数据
D.任何全局变量都只能被定义它的函数中的语句访问
共 5 页 第 1 页
9.已知一运行正常的唾弃中有这样两个语句:
int *p2=&x, *p1=a;
*p2=b; 由此可知,变量a和b的类型分别是( )
A.int 和int B.int* 和int C.int 和int* D.int* 和int*
10.已知函数f1的原形是:void f1(int *a,char *b);,变量v1,v2的定义是:int v1; char v2[ ]=”ABCDW”;,把v1和v2分别作为第一参数和第二参数来调用函数f1,正确的调用语句是( )
A.f1(v1,v2) B.f1(&v1,v2) C.f1(v1,&v2) D.f1(&v1,&v2)
11.关于类和对象不正确的说法是( )
A.类是一种类型,它封装了数据和操作 B.对象是类的实例
C.一个类的对象只有一个 D.一个对象必属于某个类
12.下面对析构函数的正确描述是( )
A.系统可以提供默认的析构函数。 B.析构函数必须由用户定义。
C.析构函数没有参数。 D.析构函数可以设置默认参数。
13.下列关于运算符重载的描述中,( )是正确的。
A.可以改变参与运算的操作数个数 B.可以改变运算符原来的优先级
C.可以改变运算符原来的结合性 D.不能改变原运算符的语义
14.在Complex类中定义了重载运算符">"的成员函数,已知Complex类的对象c1和c2,当执行c1>c2时,C++编译器解释为( )
A.operator >( c1, c2); B.>(c1,c2); C.c1.operator >(c2); D.c2.operator >(c1);
15.设置虚基类的目的是( )
A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码
16.在C++中,不能被派生类继承的函数是( )
A.成员函数 B.构造函数 C.析构函数 D.静态成员函数
17.下面函数原型声明中,( )声明了fun 为纯虚函数。
A.void fun()=0 B.virtual void fur()=0 C.virtual void fun() D.virtual void fun()
18.关于类模板,描述错误的是( ).
A.一个普通基类不能派生类模板
B.类模板从普通类派生,也可以类模板派生
C.根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
D.函数的类模板参数须通过构造函数实例化
19.使用重载函数编程序的目的是( )
A.使用相同的函数名调用功能相似的函数 B.共享程序代码
C.提高程序的运行速度 D.节省存储空间
C.ifstream infile("D:\f1.txt", ios::in); D.ifstream infile("D:\\f1.txt", ios::in);
共 5 页 第 2 页
20.在下列选项中( )不是ostream类的对象。
A. cin B. cerr C. clog D.cout
二、填空题(共20分,每空2分)
1.与a3+3a3b+3ab2+b3 对应的C++表达式是 。
2.执行if (x || !x) cout<<”ABC”; else cout<<”XYZ”;屏幕上显示的是 。
3.p为一指针变量,使p指向前一个单元,然后取该单元的数据作为表达式的值的表达式是 。
4.假定AB为一个类,则语句AB(AB&x);为该类 构造函数的原型说明。
5.在具有继承关系的类层次结构中,一个类的数据成员有从基类继承的成员和自身定义成员构成,从基类继承的成员需要调用_______________进行初始化。
6.C++有三种文件流:分别是______________、__________________和fstream。
7.在定义类的对象时,C++程序将自动调用该对象的 函数初始化对象自身;在撤销类的对象时,C++程序将自动调用该对象的 函数。
8.面向对象程序设计语言的特点是:__________、继承性和多态性。
三、给出以下程序的输出结果 (18分,每题6分)
1.# include<iostream.h>
1.输出结果:
void main( ) { int i,sum;
for ( i=sum=1 ; i<5 ; i++)
{ sum*=i;
if ( sum>5*i )
break;
}
cout<<”i=”<<i<<endl;
cout<<”sum=”<<sum<<endl;
}
2.#include<iostream.h>
class TriCoor
{ public:
TriCoor( int mx = 0, int my = 0, int mz = 0 ) { x = mx ; y = my ; z = mz ; }
TriCoor operator + ( TriCoor t )
{ TriCoor temp ;
temp.x = x+t.x ; temp.y = y+t.y ; temp.z = z+t.z ;
return temp ; }
TriCoor operator = ( TriCoor t ) { x = t.x ; y = t.y ; z = t.z ; return * this ; }
TriCoor operator ++ () { x ++ ; y ++ ; z ++ ; return *this ; }
void show() { cout << x << " , " << y << " , " << z << "\n"; }
共 5 页 第 3 页
void assign( int mx, int my, int mz ) { x = mx; y = my; z = mz; }
private:
int x, y, z ;
} ;
2.输出结果:
void main(){ TriCoor a( 1, 2, 3 ), b, c ;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论