北京交通大学面向对象的程序设计期末考试题集

奥鹏期末考核

77649–面向对象的程序设计-北交期末考试复习题合集

单选题:
(1)要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )
A.int vect[ ]={30,50,-88};
B.int vect[ ]={30,50,-88,0,0};
C.int vect[5]={30,50,-88};
D.int vect[5]={30,50,-88,0,0};
答案问询微信:424329

(2)关于虚函数的描述中,正确的是()
A.虚函数是一个static类型的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
答案问询微信:424329

(3)假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为( )。
A.3
B.4
C.6
D.9
答案问询微信:424329

(4)下面有关重载函数的说法中正确的是( )
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同
答案问询微信:424329

(5)有如下函数模板定义: template T func(T x, T y) { return x*x+y*y; } 在下列对func的调用中,错误的是( )
A.func(3, 5);
B.func(3.0, 5.5);
C.func (3, 5.5);
D.func(3, 5.5);
答案问询微信:424329

(6)设x和y均为bool量,则x&&y为真的条件是 ( )
A.它们均为真
B.其中一个为真
C.它们均为假
D.其中一个为假
答案问询微信:424329

(7)下面关于析构函数特征的描述正确的是( )。
A.一个类中可以定义多个析构函数
B.析构函数名与类名相同
C.析构函数不能指定返回类型
D.析构函数可以有一个或多个参数
答案问询微信:424329

(8)面向对象系统不具有( )特性
A.继承性
B.封装性
C.过程性
D.多态性
答案问询微信:424329

(9)假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( )
A.AB operator+(AB & a , AB & b)
B.AB operator+(AB & a)
C.operator+(AB a)
D.AB & operator+( )
答案问询微信:424329

(10)下列静态数据成员的特性中,错误的是( )
A.说明静态数据成员前边加static
B.静态数据成员要在类体外初始化
C.引用静态数据成员时,要在静态数据成员前加和作用域运算符
D.静态数据成员不是一个类所有对象共享的
答案问询微信:424329

(11)对于包括()类型数据成员的用户定义类型必须定义其析构函数
A.static
B.指针类型
C.字符串
D.字符型
答案问询微信:424329

(12)下列字符列中,可作为C++语言程序自定义标识符是( )
A.switch
B.file
C.break
D.do
答案问询微信:424329

(13)下列关于C++函数的说明中,正确的是( )
A.内联函数就是定义在另一个函数体内部的函数
B.函数体的最后一条语句必须是return语句
C.标准C++要求在调用一个函数之前,必须先声明其原型
D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
答案问询微信:424329

(14)使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。
A.iostream
B.fstream
C.iomanip
D.stdlib
答案问询微信:424329

(15)以下错误的描述是( )。 函数调用可以
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形奥鹏期末考核参
答案问询微信:424329

(16)有如下程序: _include using namespace std; class Test { public: Test( ) { n+=2; } ~Test( ) { n-=3; } static int getNum( ) { return n; } private: static int n; }; int Test::n = 1; int main( ) { Test* p = new Test; delete p; cout "n=" Test::getNum( ) end
A.n=0
B.n=1
C.n=2
D.n=3
答案问询微信:424329

(17)下面关于C++流的叙述中,正确的是( )
A.cin是一个输入流对象
B.可以用ifstream定义一个输出流对象
C.执行语句序列char *y="PQMN"; cout
D.执行语句序列char x[80]; cin.getline(x,80); 时,若键入 Happy new year 则x中的字符串是"Happy"
答案问询微信:424329

(18)下列关于类和对象的叙述中,错误的是( )
A.一个类只能有一个对象
B.对象是类的具体实例
C.类是对某一类对象的抽象
D.类和对象的关系是一种数据类型与变量的关系
答案问询微信:424329

(19)已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )
A.这是运算符-的重载运算符函数
B.这个函数所重载的运算符是一个一元运算符
C.这是一个成员函数
D.这个函数不改变类的任何数据成员的值
答案问询微信:424329

(20)已知枚举类型定义语句为: enum Token { NAME, NUMBER, PLUS = 5, MINUS, PRINT = 10 }; 则下列叙述中错误的是( )(
A.枚举常量NAME的值为1
B.枚举常量NUMBER的值为1
C.枚举常量MINUS的值为6
D.枚举常量PRINT的值为10
答案问询微信:424329

(21)在每个C++程序中都必须包含有这样一个函数,该函数的函数名( )。
A.main
B.MAIN
C.name
D.function
答案问询微信:424329

(22)若一个类中含有纯虚函数,则该类称为( )。
A.基类
B.虚基类
C.抽象类
D.派生类
答案问询微信:424329

(23)用关键字( )标记的函数被称为虚函数。
A.virtual
B.private
C.public
D.protected
答案问询微信:424329

(24)有关运算符重载正确的描述是( )。
A.C++语言允许重载运算符时改变运算符的操作个数
B.C++语言允许重载运算符时改变运算符的优先级
C.C++语言允许重载运算符时改变运算符的结合性
D.C++语言允许重载运算符时改变运算符原来的功能
答案问询微信:424329

(25)以下保留字( )不能出现在说明虚函数原型的语句中。
A.static
B.operator
C.void
D.const
答案问询微信:424329

(26)下列描述中,成员函数中包括( )的类肯定是抽象类
A.virtual double Area();
B.virtual double Area()=0;
C.virtual double Area(void){}
D.double Area(void)=0;
答案问询微信:424329

(27)在声明类时 ,下面说法正确的是( )。
A.可以在类的声明中给数据成员赋初值
B.数据成员的数据类型可以是register
C.private,public,proected 可以按任意的顺序出现
D.没有用private,public,proected定义的数据成员是共有成员
答案问询微信:424329

(28)下面的哪个保留字不能作为函数的返回类型? ( )
A.void
B.int
C.new
D.long
答案问询微信:424329

(29)文件操作中,打开文件的访问模式常量中,( )是以追加方式打开文件的。
A.ios::in
B.ios::out
C.ios::binary
D.ios::ate
答案问询微信:424329

(30)有如下类声明: class Foo { int bar; }; 则Foo类的成员bar是( )
A.公有数据成员
B.公有成员函数
C.私有数据成员
D.私有成员函数
答案问询微信:424329

(31)下列关于C++函数的叙述中,正确的是()
A.每个函数至少要具有一个参数
B.每个函数都必须返回一个值
C.函数在被调用之前必须先声明
D.函数不能自己调用自己
答案问询微信:424329

(32)下面关于派生类的描述中,( )是错的。
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
答案问询微信:424329

(33)下面( )不是构造函数的特征。
A.构造函数可以重载
B.构造函数可以设置缺省参数
C.构造函数的函数名和类名相同
D.构造函数必须指定返回值类型
答案问询微信:424329

(34)结构化程序设计所规定的三种基本控制结构是 ( )
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
答案问询微信:424329

(35)以下不属于类访问权限的是( )
A.public
B.static
C.protected
D.private
答案问询微信:424329

(36)假定a为一个整型数组名,则元素a[4]的字节地址为 ( )。
A.a+4
B.a+8
C.a+16
D.a+32
答案问询微信:424329

(37)若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在 函数原型或函数头的前面。
A.in
B.inline
C.inLine
D.InLiner
答案问询微信:424329

(38)下列对模板的声明中,正确的是( )。
A.templateA,B
B.templateclass A,B
C.templatetypename A,typename B
D.templateclass A;class B
答案问询微信:424329

(39)下列关于运算符重载的叙述中,正确的是( )
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
答案问询微信:424329

(40)下面函数的功能是( )。 void fun(char s1[ ], char s2[ ]) { while(s2++=s1++); }(
A.字符串比较
B.字符串复制
C.字符串连接
D.字符串反向
答案问询微信:424329

(41)作用域运算符的功能是( )
A.给定作用域的大小
B.表示作用域的级别的
C.某个成员是属于哪个类的
D.指出作用域的范围的
答案问询微信:424329

(42)在下列函数原型中,可以作为类AA构造函数的是( )
A.void AA(int);
B.int AA( );
C.AA(int)const;
D.AA(int);
答案问询微信:424329

(43)下列有关类的说法不正确的是( )。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
答案问询微信:424329

(44)在以下关于C++语言的注释的叙述中,不正确的是( )
A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
答案问询微信:424329

(45)下列的各函数中,( )不是类的成员函数。
A.构造函数
B.析构函数
C.拷贝初始化构造函数
D.友元函数
答案问询微信:424329

(46)在以下说明中,标识符ptr( )。 int (*ptr)[3];
A.说明不合法
B.是一个指针数组名,每个元素是一个指向整数变量的指针
C.是一个指针数组名,每个元素是一个指向整数变量的指针
D.是一个指向整型变量的指针
答案问询微信:424329

(47)在下面的一维数组定义中,哪一个有语法错误。( )
A.int a[ ]={1,2,3}
B.int a[10]={0}
C.int a[ ]
D.int a[5]
答案问询微信:424329

(48)for(int x=0,y=0;!x=5;y++)语句执行循环的次数是()
A.0
B.5
C.6
D.无数次
答案问询微信:424329

(49)执行语句序列 int i=0; while(i25) i+=3; coui; 输出结果是/( )
A.24
B.25
C.27
D.28
答案问询微信:424329

(50)通常拷贝构造函数的参数是()
A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名
答案问询微信:424329

(51)若用数组名作为函数调用时的实参,则实际上传递给形参的是( )
A.数组首地址
B.数组的第一个元素值
C.数组中全部元素的值
D.数组元素的个数
答案问询微信:424329

(52)下列不是C++流对象的是( )。
A.cout
B.cin
C.cerr
D.ostream
答案问询微信:424329

(53)下列不合法的变量名为( )
A.int
B.int1
C.name_1
D.name0
答案问询微信:424329

(54)下列函数中,( )是对文件进行读操作的。
A.read()
B.write()
C.tellg()
D.seekp()
答案问询微信:424329

(55)下列关于模板的叙述中,错误的是( )
A.模板声明中的第一个符号总是关键字template
B.在模板声明中用 和 括起来的部分是模板的形参表
C.类模板不能有数据成员
D.在一定条件下函数模板的实参可以省略
答案问询微信:424329

(56)C++语言的跳转语句中,对于break和continue说法正确的是( )
A.break语句只应用于循环体中
B.continue语句只应用于循环体中
C.break是无条件跳转语句,continue不是
D.break和continue的跳转范围不够明确,容易产生问题
答案问询微信:424329

(57)在进行任何的C++流操作后,都可以用C++流的有关成员函数检测流的状态,用来检测是否到达文件的末尾函数是( )。
A.fail()
B.eof()
C.bad()
D.good()
答案问询微信:424329

(58)下列关于派生类可访问它基类成员的描述中,错误的是( )。
A.派生类可访问它基类中的成员与继承方式有关
B.派生类不可访问它基类中的私有成员
C.公有继承方式下,派生类可访问它基类的私有成员
D.私有继承方式下,派生类可访问它基类中的公有成员和保护成员
答案问询微信:424329

(59)下列运算符中,不能被重载的是( )。
A.【】
B..
C.()
D./
答案问询微信:424329

(60)下列关于this指针的叙述中,正确的是( )
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数才有this指针
答案问询微信:424329

(61)设x和y均为bool量,则x || y为假的条件是( )。
A.它们均为真
B.其中一个为真
C.它们均为假
D.其中一个为假
答案问询微信:424329

(62)有如下类声明: class MyBASE{ int k; public: void set(int n){ k=n;} int get( )const{ return k; } }; class MyDERIVED: protected MyBASE{ protected: int j; public: void set(int m, int n){MyBASE::set(m); j=n;} int get( )const{ return MyBASE::get( )+j; } }; 则类MyDERIVE
A.4
B.3
C.2
D.1
答案问询微信:424329

(63)( )不是属于面向对象程序设计的特性
A.抽象性
B.数据相关性
C.多态性
D.继承性
答案问询微信:424329

(64)将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的( )
A.类
B.虚函数
C.运算符重载
D.模板
答案问询微信:424329

(65)在C++函数的形参前加const关键字,是为了提高函数的( )
A.数据封装性
B.可理解性
C.可维护性
D.可重用性
答案问询微信:424329

(66)函数重载的目的是( )
A.实现共享
B.使用方便,提高可读性
C.提高速度
D.减少空间
答案问询微信:424329

(67)面向对象系统的( )是一种信息隐藏技术,目的在于将对象的使用者与设计者分开,使用者不必知道对象实现的细节,只需用设计者提供的对象接口。
A.多态性
B.继承性
C.复用性
D.封装性
答案问询微信:424329

(68)下列关于运算符重载的叙述中,正确的是( )。
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
答案问询微信:424329

(69)C++语言的跳转语句中,对于break和continue说法正确的是( )。
A.break语句只应用于循环体中
B.continue语句只应用于循环体中
C.break是无条件跳转语句,continue不是
D.break和continue的跳转范围不够明确,容易产生问题
答案问询微信:424329

(70)下面有关重载函数的说法中正确的是( )。
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同
答案问询微信:424329

(71)下列字符列中,可作为C++语言程序自定义标识符是( )。
A.switch
B.file
C.break
D.do
答案问询微信:424329

(72)进行文件输入操作时应包含( )文件。
A.fstream.h
B.ifstream.h
C.ofstream.h
D.iostream.h
答案问询微信:424329

(73)假设已经有定义“const char *const name=“chen”;”,下面的语句中正确的是( )。
A.“name[3]=’a’;”;
B.“name=“lin”;”;
C.“name=new char [5];”;
D.“coutname[3];”
答案问询微信:424329

(74)关于this 的描述正确的是( )。
A.this指针是指向对象的指针
B.this指针是在使用对象引用成员函数时系统自动生成的
C.this指针是指向成员函数的指针
D.this指针可以在程序中显示使用
答案问询微信:424329

(75)下面关于析构函数特征的描述正确的是( )。
A.一个类中可以定义多个析构函数
B.析构函数名与类名相同
C.析构函数不能指定返回类型
D.析构函数可以有一个或多个参数
答案问询微信:424329

(76)有如下程序: _include using namespace std; class Test {public:Test( ) { n+=2; } ~Test( ) { n-=3; } static int getNum( ) { return n; } private: static int n; }; int Test::n = 1; int main( ) {Test* p = new Test;delete p;cout "n=" Test::getNum( ) endl; return 0; } 执行后的输出结果是( )。
A.n=0
B.n=1
C.n=2
D.n=3
答案问询微信:424329

(77)有如下函数模板定义: template T func(T x, T y) { return x*x+y*y; } 在下列对func的调用中,错误的是( )。
A.func(3, 5);
B.func(3.0, 5.5);
C.func (3, 5.5);
D.func(3, 5.5);
答案问询微信:424329

(78)( )在对象生命周期结束时被系统自动调用和执行。
A.内联函数
B.构造函数
C.析构函数
D.虚函数
答案问询微信:424329

(79)如果一个类的成员函数print( )不修改类的数据成员值,则应将其声明为( )
A.void print() const;
B.const void print();
C.void const print();
D.void print(const);
答案问询微信:424329

(80)下列关于构造函数的论述中,不正确的是( )
A.构造函数的函数名与类名相同
B.构造函数可以设置默认参数
C.构造函数的返回类型缺省为int型
D.构造函数可以重载
答案问询微信:424329

(81)在程序代码:A::A(int a, int *b) { this-x = a; this-y = b; }中,this的类型是( )
A.int
B.int *
C.A
D.A *
答案问询微信:424329

(82)内存泄漏是指( )
A.内存中的数据出现丢失
B.试图释放一个已经释放了的动态分配的堆内存
C.函数中局部变量所占的栈内存没有及时回收
D.动态分配的堆内存在程序退出后始终被占用
答案问询微信:424329

(83)先定义类,再用类定义对象是( )。
A.结构化程序设计的主要特点
B.C语言的主要特点
C.面向过程的程序设计的主要特点
D.面向对象程序设计的主要特点
答案问询微信:424329

(84)在以下关于C++语言的注释的叙述中,不正确的是( )。
A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
答案问询微信:424329

(85)有如下类声明: class Foo { int bar; }; 则Foo类的成员bar是( )。
A.公有数据成员
B.公有成员函数
C.私有数据成员
D.私有成员函数
答案问询微信:424329

(86)关于类模板,下列表述不正确的是( )。
A.用类模板定义一个对象时,不能省略实参
B.类模板本身在编译中不会生成任何代码
C.类模板只能有虚拟类型参数
D.类模板的成员函数都是模板函数
答案问询微信:424329

(87)在C++中,用于实现运行时多态性的是( )。
A.内联函数
B.重载函数
C.模板函数
D.虚函数
答案问询微信:424329

(88)能用友元函数重载的运算符是( )。
A.+
B.=
C.[]
D.-
答案问询微信:424329

(89)关键字class和typename用于定义模板类型参数,其含义为( )。
A.任何用户定义的类类型
B.C++内部的类型
C.A与B
D.都不是
答案问询微信:424329

(90)若一个类中含有纯虚函数,则该类称为( )。
A.基类
B.虚基类
C.抽象类
D.派生类
答案问询微信:424329

(91)下列不是C++流对象的是( )。
A.cout
B.cin
C.cerr
D.ostream
答案问询微信:424329

(92)程序设计所规定的三种基本控制结构是( )。
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
答案问询微信:424329

(93)在下面的一维数组定义中,哪一个有语法错误。( )
A.int a[]={1,2,3}
B.int a[10]={0}
C.int a[]
D.int a[5]
答案问询微信:424329

(94)可以访问类的对象的私有成员的是( )。
A.该类的直接基类的成员函数
B.由该类的友元类派生出的类的成员函数
C.该类中说明的友元函数
D.该类的公有派生类的成员函数
答案问询微信:424329

(95)面向对象系统不具有( )特性。
A.继承性
B.封装性
C.过程性
D.多态性
答案问询微信:424329

(96)关于虚函数的描述中,正确的是( )。
A.虚函数是一个static类型的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
答案问询微信:424329

(97)假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:( )。
A.AB operator+(AB & a , AB & b)
B.AB operator+(AB & a)
C.operator+(AB a)
D.AB & operator+( )
答案问询微信:424329

(98)在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中正确的是( )。
A.operator+有两个参数,operator*有两个参数
B.operator+有两个参数,operator*有一个参数
C.operator+有一个参数,operator*有两个参数
D.operator+有一个参数,operator*有一个参数
答案问询微信:424329

(99)程序设计所规定的三种基本控制结构是( )。
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
答案问询微信:424329

(100)关于C++语言的注释的叙述中,不正确的是( )。
A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
答案问询微信:424329

(101)基类和派生类的相互关系正确的是( )。
A.从基类到派生类称为派生
B.从基类到派生类称为继承
C.从派生类到基类称为派生
D.派生类包含了基类
答案问询微信:424329

(102)下面函数的功能是( )。 void fun(char s1[ ], char s2[ ]) { while(s2++=s1++); }
A.字符串比较
B.字符串复制
C.字符串连接
D.字符串反向
答案问询微信:424329

(103)类模板的使用实际上是将类模板实例化成一个具体的( )。
A.类
B.对象
C.函数
D.模板类
答案问询微信:424329

(104)友元的作用是( )。
A.加强类的封装性
B.提高程序的运行效率
C.实现数据的隐藏性
D.增加成员函数的种类
答案问询微信:424329

(105)面向对象系统的( )是一种信息隐藏技术,目的在于将对象的使用者与设计者分开,使用者不必知道对象实现的细节,只需用设计者提供的对象接口。
A.多态性
B.继承性
C.复用性
D.封装性
答案问询微信:424329

(106)1.语句执行循环的次数是( )。
A.0
B.5
C.6
D.无数次
答案问询微信:424329

(107)下列关于运算符重载的叙述中,正确的是( )。
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
答案问询微信:424329

(108)下列关于函数的描述中,错误的是()。
A.函数可以没有返回值
B.函数可以没有参数
C.函数可以是一个类的成员
D.函数不能被定义为模板
答案问询微信:424329

(109)为真的条件是 ( )。
A.它们均为真
B.其中一个为真
C.它们均为假
D.其中一个为假
答案问询微信:424329

(110)下列关于this指针的叙述中,正确的是( )。
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数才有this指针
答案问询微信:424329

(111)在C++语言的if语句中,用作判断的表达式为( )。
A.关系表达式
B.逻辑表达式
C.算术表达式
D.任意表达式
答案问询微信:424329

(112)析构函数的特征是( )。
A.一个类中只能有一个析构函数
B.析构函数名与类名相同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
答案问询微信:424329

(113)关于new运算符的描述中,错误的是( )。
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象和对象数组可以使用delete删除
C.使用它创建对象时要调用对应类的构造函数
D.使用它创建对象数组时必须指定初值
答案问询微信:424329

(114)假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为( )。
A.3
B.4
C.6
D.9
答案问询微信:424329

(115)下列描述中,成员函数中包括( )的类肯定是抽象类。
A.virtual double Area();
B.virtual double Area()=0;
C.virtual double Area(void){}
D.double Area(void)=0;
答案问询微信:424329

(116)下列字符串中,正确的C++标识符是( )。
A.foo-1
B.2b
C.new
D._256
答案问询微信:424329

(117)有如下程序: _include “iostream.h” void fun(int x = y; y = t; } int main( ) { int a[2] = {23, 42}; fun(a[1], a[0]); std::cout a[0] ", " a[1] std::endl; return 0; } 执行后的输出结果是( )。
A.42, 42
B.23, 23
C.23, 42
D.42, 23
答案问询微信:424329

(118)下列关于模板的叙述中,错误的是( )。
A.模板声明中的第一个符号总是关键字template
B.在模板声明中用 和 括起来的部分是模板的形参表
C.类模板不能有数据成员
D.在一定条件下函数模板的实参可以省略
答案问询微信:424329

(119)下列各类函数中,不是类的成员函数的是( )。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
答案问询微信:424329

(120)当一个函数无返回值时,定义它时函数的类型为( )。
A.任意
B.无
C.void
D.int
答案问询微信:424329

(121)结构化程序设计所规定的三种基本控制结构是 ( )。
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
答案问询微信:424329

(122)如下两个类定义: class AA{}; class BB{ AA v1,*v2; BB v3; int *v4; }; 其中有一个成员变量的定义是错误的,这个变量是()。
A.v1
B.v2
C.v3
D.v4
答案问询微信:424329

(123)有如下程序:
A.BASE
B.DERIVED
C.BASEDERIVED
D.DERIVEDBASE
答案问询微信:424329

(124)下列关于构造函数的描述中,错误的是()。
A.构造函数可以设置默认参数
B.构造函数在定义类对象时自动执行
C.构造函数可以是内联函数
D.构造函数不可以重载
答案问询微信:424329

(125)设x和y均为bool量,则x&&y为真的条件是 ( )。
A.它们均为真
B.其中一个为真
C.它们均为假
D.其中一个为假
答案问询微信:424329

(126)下面的哪个保留字不能作为函数的返回类型?( )
A.void
B.int
C.new
D.long
答案问询微信:424329

(127)在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( )。
A.main
B.MAIN
C.name
D.function
答案问询微信:424329

(128)若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值.如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为:( )。
A.AA.getA()
B.x.getA()
C.x.a
D.AA::a
答案问询微信:424329

(129)下面函数的功能是( )。 void fun(char s1[ ], char s2[ ]) { while(s2++=s1++); }
A.字符串比较
B.字符串复制
C.字符串连接
D.字符串反向
答案问询微信:424329

(130)有如下程序: _include “iostream.h” using namespace std; int main( ) { cout.fill('*'); cout.width(6); cout.fill('_'); cout 123 endl; return 0; } 执行后的输出结果是( )。
A.___123
B.123___
C.***123
D.123***
答案问询微信:424329

(131)要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )。
A.int vect[ ]={30,50,-88};
B.int vect[ ]={30,50,-88,0,0};
C.int vect[5]={30,50,-88};
D.int vect[5]={30,50,-88,0,0};
答案问询微信:424329

(132)若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。
A.数组首地址
B.数组的第一个元素值
C.数组中全部元素的值
D.数组元素的个数
答案问询微信:424329

(133)中都必须包含有这样一个函数,正确的是( )。
A.内联函数就是定义在另一个函数体内部的函数
B.函数体的最后一条语句必须是return语句
C.标准C++要求在调用一个函数之前,必须先声明其原型
D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
答案问询微信:424329

(134)对于Point类的拷贝构造函数原型Point(const Point& p),其中Point& p表示( )。
A.指向Point类的指针为p
B.将p的地址赋给变量const
C.p是类Point的对象引用
D.变量Point与p的按位相与
答案问询微信:424329

(135)设置虚基类的目的是( )。
A.简化程序
B.消除二义性
C.提高程序运行效率
D.减少目标代码
答案问询微信:424329

(136)下列关于模板的叙述中,错误的是( )。
A.模板声明中的第一个符号总是关键字template
B.在模板声明中用 和 括起来的部分是模板的形参表
C.类模板不能有数据成员
D.在一定条件下函数模板的实参可以省略
答案问询微信:424329

(137)为了取代C中带参数的宏,在C++中使用 ( )。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
答案问询微信:424329

(138)类模板的使用实际上是将类模板实例化成一个具体的()。
A.类
B.对象
C.函数
D.模板类
答案问询微信:424329

(139)下列关于类和对象的叙述中,错误的是( )。
A.一个类只能有一个对象
B.对象是类的具体实例
C.类是对某一类对象的抽象
D.类和对象的关系是一种数据类型与变量的关系
答案问询微信:424329

(140)下列写法正确的是( )。
A.int *p = 15;
B.const int a; a=15;
C.int
D.int b = 15; int* a =
答案问询微信:424329

(141)在下面循环语句中循环体执行的次数为( )。for(int i=0, n=10; in; i++) if(i n/2) break;
A.5
B.6
C.7
D.8
答案问询微信:424329

(142)定义p并使p指向包含30个整数的数组所使用的定义语句为( )。
A.int *p=new int[30];
B.int *p=new int(30);
C.int *p=new [30];
D.*p=new int[30];
答案问询微信:424329

(143)在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( )
A.cerr
B.cin
C.cout
D.cfile
答案问询微信:424329

(144)包含自定义头文件file.h的预处理指令是( )
A._define
B._include file.h
C._define file.h
D._include"file.h"
答案问询微信:424329

(145)下列十六进制整型常量的写法中,错误的是( )
A.0xaf
B.0.
C.0X1b
D.0xAE
答案问询微信:424329

(146)在定义类成员时,为产生封装性,则需使用哪个关键字( )
A.public
B.publish
C.protected
D.private
答案问询微信:424329

(147)设函数void swap(int,int)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为( )
A.10,10
B.10,15
C.15,10
D.15,15
答案问询微信:424329

(148)函数默认参数在函数原型中说明,默认参数必须放在参数序列的( )
A.前部
B.中部
C.后部
D.两端
答案问询微信:424329

(149)下列函数不能和函数void print(char)构成重载的是( )
A.int print(int);
B.void print(char,char);
C.int print(char);
D.void print(int,int);
答案问询微信:424329

(150)在下列成对的表达式中,运算结果类型相同的一对是( )
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
答案问询微信:424329

(151)类的私有成员可在何处被访问( )
A.本类的成员函数中
B.本类及子类的成员函数中
C.通过对象名在任何位置
D.不可访问
答案问询微信:424329

(152)通常拷贝构造函数的参数是()
A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名
答案问询微信:424329

(153)for(int x=0,y=0;!x=5;y++)语句执行循环的次数是( )
A.0
B.5
C.6
D.无数次
答案问询微信:424329

(154)在下面的一维数组定义中,哪一个有语法错误。()
A.int a[ ]={1,2,3}
B.int a[10]={0}
C.int a[ ]
D.int a[5]
答案问询微信:424329

(155)下列关于类成员对象构造函数调用顺序的叙述中,正确的是:()。
A.与它们在初始化列表中的顺序相同
B.与它们在类中声明的顺序相同
C.与析构函数的调用顺序相同
D.顺序不确定
答案问询微信:424329

(156)在以下关于C++语言的注释的叙述中,不正确的是( )
A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
答案问询微信:424329

(157)下列有关类的说法不正确的是( )。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
答案问询微信:424329

(158)关于编程下列说法错误的是:()。
A.编程需要用一种程序设计语言
B.编程就是软件开发的全部工作
C.编写面向对象的程序最好选用面向对象的语言
D.编程完成之后需要进行测试
答案问询微信:424329

(159)下列运算符中,不能被重载的是()。
A.【】
B..
C.()
D./
答案问询微信:424329

(160)下列关于派生类可访问它基类成员的描述中,错误的是( )。
A.派生类可访问它基类中的成员与继承方式有关
B.派生类不可访问它基类中的私有成员
C.公有继承方式下,派生类可访问它基类的私有成员
D.私有继承方式下,派生类可访问它基类中的公有成员和保护成员
答案问询微信:424329

(161)C++语言的跳转语句中,对于break和continue说法正确的是( )
A.break语句只应用于循环体中
B.continue语句只应用于循环体中
C.break是无条件跳转语句,continue不是
D.break和continue的跳转范围不够明确,容易产生问题
答案问询微信:424329

(162)下列关于模板的叙述中,错误的是( )
A.模板声明中的第一个符号总是关键字template
B.在模板声明中用 和 括起来的部分是模板的形参表
C.类模板不能有数据成员
D.在一定条件下函数模板的实参可以省略
答案问询微信:424329

(163)下列叙述中错误的是:()
A.false是一个bool型常量
B.“b”是一个char型常量
C.365是一个int型常量
D.3.1415926是一个double型常量
答案问询微信:424329

多选题:
(1)下面说法正确的是( )
A.将数据结构和算法置于同一个函数内,即为数据封装
B.一个类通过集成可以获得另一个类的特征
C.面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序
D.同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性
答案问询微信:424329

(2)继承是( )的方法。
A.将特殊的类变成通用的类
B.把通用的参数传送给特殊的类的对象
C.将通用的类变成特殊的类
D.将已有的类添加新的特性,但不重写它们
答案问询微信:424329

(3)下面关于析构函数描述正确的是( )
A.系统可以提供默认的析构函数
B.析构函数必须由用户定义
C.析构函数没有参数
D.析构函数可以设置默认参数
答案问询微信:424329

(4)下列函数中,可以作为虚函数的是( )。
A.普通函数
B.非静态成员函数
C.构造函数
D.析构函数
答案问询微信:424329

判断题:
(1)抽象类中只能有一个纯虚函数。( )
答案问询微信:424329

(2)静态数据成员函数是属于某个对象的。( )
答案问询微信:424329

(3)以app方式打开文件时,当前指针定位于文件尾。( )
答案问询微信:424329

(4)纯虚函数是一种不给出具体实现的虚函数。( )
答案问询微信:424329

(5)友元函数说明在类体内它是一种成员函数 。( )
答案问询微信:424329

(6)友元类中所有成员函数都是友元函数 。( )
答案问询微信:424329

(7)使用const说明常量时,可以不必指出类型.( )
答案问询微信:424329

(8)虚函数不能是类的静态成员。( )
答案问询微信:424329

(9)构造函数的定义必须在类体内 。( )
答案问询微信:424329

(10)变量必须先定义后赋值。( )
答案问询微信:424329

(11)在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。( )
答案问询微信:424329

(12)派生类不能作为基类派生出新类。( )
答案问询微信:424329

(13)抽象类只能用作其他类的基类。( )
答案问询微信:424329

(14)成员函数中调用的虚函数可能实现动态联编。( )
答案问询微信:424329

(15)在类体内允许对数据成员进行初始化 。( )
答案问询微信:424329

(16)作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。( )
答案问询微信:424329

(17)在C++语言中,类是支持数据封装的工具。( )
答案问询微信:424329

(18)析构函数是不能重载的 。( )
答案问询微信:424329

(19)一般对象和指向对象指针的成员函数表示分别是运算符.和-。( )
答案问询微信:424329

(20)在私有继承方式下,派生类的对象可访问基类中的公有成员。( )
答案问询微信:424329

(21)派生类的成员函数可以直接访问基类的所有成员。( )
答案问询微信:424329

(22)静态数据成员的值是不能改变的 。( )
答案问询微信:424329

(23)类的友元函数可以直接访问该类的所有成员。( )
答案问询微信:424329

(24)常量不能作为左值使用。( )
答案问询微信:424329

(25)一个类可以作为另一个类的友元类。( )
答案问询微信:424329

(26)用new动态申请的内存是在堆中分配的,而不是在栈中分配的。( )
答案问询微信:424329

(27)在类的定义中,引入友元的原因是提高效率。( )
答案问询微信:424329

(28)多重继承中,派生类构造函数对其基类构造函数的执行顺序取决于它成员函数初始化表中说明的基类顺序。( )
答案问询微信:424329

(29)在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。( )
答案问询微信:424329

(30)子对象的初始化在其构造函数的成员初始化列表中实现。( )
答案问询微信:424329

(31)所有类型的函数都一定有函数体。 ( )
答案问询微信:424329

(32)break语句也可以用于if体内,它可退出if语句。 ( )
答案问询微信:424329

(33)正常情况下new和delete操作符一定是成对出现的。 ( )
答案问询微信:424329

(34)构造函数不可以重载。 ( )
答案问询微信:424329

(35)如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。 ( )
答案问询微信:424329

(36)void fun(void) throw(); 声明该函数可以抛出任意类型的异常。( )
答案问询微信:424329

(37)析构函数是一个函数体为空的成员函数。 ( )
答案问询微信:424329

(38)函数重载可以实现动态多态,虚函数可以实现静态多态。 ( )
答案问询微信:424329

(39)若有定义:doublex[3][5],则x数组列的下标上限是5,下限是1。( )
答案问询微信:424329

(40)用class定义的类中,默认的访问权限是私有的。 ( )
答案问询微信:424329

(41)友元函数说明在类体内,它是一种成员函数。 ( )
答案问询微信:424329

(42)构造函数不能重载。( )
答案问询微信:424329

(43)AA(int)可以作为类AA构造函数。()
答案问询微信:424329

(44)作用域运算符的功能是某个成员是属于哪个类的。()
答案问询微信:424329

(45)在C++中,函数名实际上是一个指针,它指向函数的入口。()
答案问询微信:424329

(46)假定a为一个整型数组名,则元素a[4]的字节地址为a+16。()
答案问询微信:424329

(47)static不属于类访问权限。()
答案问询微信:424329

(48)构造函数的函数名和类名相同构造函数的特征。()
答案问询微信:424329

(49)每个函数至少要具有一个参数。()
答案问询微信:424329

(50)有如下类声明: class Foo { int bar; }; 则Foo类的成员bar是私有数据成员。()
答案问询微信:424329

(51)字符串"sdfgh"的长度是5。()
答案问询微信:424329

(52)private,public,proected 可以按任意的顺序出现。()
答案问询微信:424329

(53)可以在类的声明中给数据成员赋初值。()
答案问询微信:424329

(54)变量根据其作用域的范围可以分作局部变量和全局变量。()
答案问询微信:424329

填空题:
(1)为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与__配对。
1、答案问询微信:424329

(2)用new申请某一个类的动态对象数组时,在该类中必须能够匹配到__构造函数,否则应用程序会产生一个编译错误。
1、答案问询微信:424329

(3)在C++中,函数的参数有两种传递方式,它们是值传递和__。
1、答案问询微信:424329

(4)静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象__。
1、答案问询微信:424329

(5)举出C++中两种代码复用的方式:__和复用。
1、答案问询微信:424329

(6)举出C++中两种用户自定义的数据类型:__和枚举。
1、答案问询微信:424329

(7)静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象__。
1、答案问询微信:424329

(8)假定一个一维数组的定义为“char * a[8] ;”,则该数组所含元素的个数为8,所占存储空间的字节数为__。
1、答案问询微信:424329

(9)为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与__配对。
1、答案问询微信:424329

(10)float 和 double 类型的大小分别为4字节和__。
1、答案问询微信:424329

(11)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[ ]运算符只能作为类的__函数重载。
1、答案问询微信:424329

(12)在C++中,函数的参数有两种传递方式,它们是值传递和__。
1、答案问询微信:424329

(13)十进制数值2转换为二进制__。
1、答案问询微信:424329

(14)作为语句标号使用的C++保留字case和default只能用于__ 语句的定义体中。
1、答案问询微信:424329

(15)__是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
1、答案问询微信:424329

(16)类是用户定义的类型,具有类类型的变量称作 __。
1、答案问询微信:424329

(17)C++程序必须有且只有一个主函数,其函数名为__ 。
1、答案问询微信:424329

(18)动态多态是指在执行时才能确定使用哪个__函数的方式。
1、答案问询微信:424329

(19)若要仿真指针变量P所指向的数据,应使用表达式__。
1、答案问询微信:424329

(20)若希望用一个已有对象来构造另一个同类型的对象,可以使用__ 来实现。
1、答案问询微信:424329

(21)有一句只在循环语句或swich语句中使用的流程控制语句,表示该语句的关键字是__ 。
1、答案问询微信:424329

(22)在C++语句中,逻辑假用__表示。
1、答案问询微信:424329

(23)构造函数的特殊性表现在创建对象时会__。
1、答案问询微信:424329

(24)表达式:26%3= __。
1、答案问询微信:424329

(25)cin是一个。
1、答案问询微信:424329

(26)数据成员要在类体外初始化。
1、答案问询微信:424329

(27)假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:。
1、答案问询微信:424329

(28)面向对象系统具有继承性、封装性和 。
1、答案问询微信:424329

(29)析构函数不能指定返回。
1、答案问询微信:424329

(30)设x和y均为bool量,则x border-bottom: 2px solid black;"> 。
1、答案问询微信:424329

(31)virtual double Area()=0;成员函数中包括( )的类肯定是。
1、答案问询微信:424329

(32)由C++目标文件连接而成的可执行文件的默认扩展名为。
1、答案问询微信:424329

(33)在每个C++程序中都必须包含有这样一个函数,该函数的函数名。
1、答案问询微信:424329

(34)是对某一类对象的抽象。
1、答案问询微信:424329

(35)函数调用可以作为一个函数的 。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

程序题:
(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

编程题:
(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

(36)使用如setfill()的操作符对数据进行格式输出时,应包含头文件。
1、答案问询微信:424329

计算题:
(1)定义一个Date类如下:
答案问询微信:424329

(2)定义一个基类Student(学生)如下:
答案问询微信:424329

(3)请写出myTextl.txt文本文件中的内容
答案问询微信:424329

简答题:
(1)写出下列程序的运行结果。_include iostream.h_include iomanip.hvoid main(){ int i,j,k; for(i=1;i=3;i++) //控制输出行 { for(j=1; j=6-i; j++) //每行前的空格 cout" "; //输出四个空格 for(k=1;k=i;k++) coutsetw(4)k; for(k=i-1; k0 ;k–) coutsetw(4)k; coutendl; }}输出结果:
答案问询微信:424329

(2)写出下面程序的运行结果。 _include "iostream.h" class test{ private: int num; float fl; public: test(); int getint( ){return num;} float getfloat( ){return fl;} ~test( );};test::test(){ cout "Initalizing default" endl; num=0; fl=0.0;}test::~test( ){ cout "Desdtructor is active" endl;}void main( ){ test array[2]; coutarray[1].getint()" "array[1].getfloat()endl;}输出结果:
答案问询微信:424329

(3)什么叫友元函数?什么叫友元类?
答案问询微信:424329

(4)写出下面程序的运行结果。
答案问询微信:424329

(5)类模板与类有何关系?
答案问询微信:424329

(6)异常处理的作用是什么?
答案问询微信:424329

(7)什么叫内联函数? 有哪些特点?
答案问询微信:424329

(8)面向对象的编程语言有哪些特点?
答案问询微信:424329

(9)简述抽象类及其特性。
答案问询微信:424329

(10)构造函数和析构函数有什么作用?
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网