2016级C++程序设计试题

  • 格式:doc
  • 大小:61.00 KB
  • 文档页数:5

计算机学院《C++程序设计》期末试题年度:2016-2017 考核形式:闭卷班级:姓名:学号:一、选择题(共40分,每题2分,)1.执行cout<<123<<endl<<”123”;,屏幕上显示的是()A.123endl”123”B.123endl123 C.123 D.123“123”1232.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×54.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>26.与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>void main( ) Array { 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 ;} ;void main(){ TriCoor a( 1, 2, 3 ), b, c ; a.show();b.show();c.show(); for( int i = 0; i < 5; i ++ ) ++ b; b.show() ; c.assign( 3, 3, 3 ); c=a+b+c ; c.show() ; c = b = a ; c.show() ; }3.#include<iostream.h> void main(){double x=123.45678; cout.width(10); cout<<x<<endl; cout.precision(5); cout<<x<<endl; cout.setf(ios::showpos); cout<<x<<endl; cout.setf(ios::scientific);cout<<x<<endl;}四、编程题(22分)1.编写一个函数,由实参传来一个字符串,统计些字符串中字母、数字、空格和其他字符的个数。

在主函数中输入字符串以及输出上述结果。

共 5 页 第 4 页2.定义一个Book(图书)类,在该类定义中包括数据成员:bookname(书名)、price(价格) 和number(存书数量)。

成员函数:display( )显示图书的情况;borrow( )将存书数量减1。

并显示当前存书数量;restore( )将存书数量加1,并显示当前存书数量。

在main函数中,要求建立某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。

3.设计基类person,表示个人的基本信息,包含姓名、身份证号、性别和年龄属性以及能够显示这些信息的操作;设计表示工作人没的类job继承person类,增加工作证号和工作部门属性以及显示相关工作信息的操作;设计表示学生的类student继承person类,增加学号和班级属性以及显示相关学校信息的操作;最后设计一个表示在职学生的类,继承于job类和student类,显示在职学生类的所有信息。

共 5 页第 5 页。