《面向对象程序设计》第06章在线测试
剩余时间: 58:51
第一题、单项选择题(每题1分,5道题共5分)
1、模板参数在函数参数表中出现的次数不可能是( )。
A、1 C、0
B、2 D、任意
2、关于函数模板的说法错误的是( )
B、函数模板是具体的函数,在系统遇到具体函数调用时生成
C、函数模板是一组函数的抽象
A、函数模板是一个模板,其中用到通用类型参数
D、函数模板不能执行
3、下面函数模板的声明正确的是( )
A、template void fun(int x){?}
B、template < class T> void fun(int x){?} D、template <class T> void fun(class T x){?}
C、template < class T> void fun(T x){?}
4、下面关于函数调用的顺序说法正确的是( )
A、函数调用时首先匹配参数完全相同的函数 C、函数调用时如果没有找到对应的函数模板生成模板函数就查找参数相同的函数
5、下面的说法错误的是( )
A、类模板或类模板的引用可以作为函数的形参 C、调用带有类模板参数的函数时对应的实参应该是该类模板实例化的模板类对象
B、函数调用时首先寻找匹配的函数模板
D、函数调用时如果函数模板和函数都没有对应的,函数调用错误
B、带有类模板参数的函数与普通函数相同
D、类模板中可以设计友元函数
第二题、多项选择题(每题2分,5道题共10分) 1、关于模板函数的说法正确的是( )
A、模板函数是编译系统在编译时根据函数模板自动生成的。 B、模板函数是函数的模板
C、模板函数是程序员用代码写出来的 D、模板函数是函数模板的实例化
2、模板函数与函数模板的区别是( )
A、模板函数是函数模板的抽象 B、函数模板是模板函数的抽象 C、模板函数是函数模板的重载函数 D、函数模板是具体的函数
3、关于类模板的说法正确的是( )
A、类模板是类的抽象 B、类模板是模板类的抽象 C、类模板中用到通用类型参数
D、类模板和普通类一样可以用于定义对象
4、关于函数模板的说法正确的是( )
A、函数模板生成的模板函数是重载的,但是函数模板不能重载 B、C++程序中函数模板可以同名,但是形参个数和类型应有区别 C、函数模板可以和普通函数重载 D、函数模板不能重载
5、关于类模板的成员函数的说法正确的是( )
A、类模板的成员函数被认为是函数模板,也成为类属函数 B、类模板的成员函数的定义与类的成员函数的定义一样 C、类模板的成员函数通过类模板调用
D、类模板的成员函数可以在类外定义,但要符合函数模板定义的规范
第三题、判断题(每题1分,5道题共5分)
1、在C++中,当存在一个与模板函数同名的普通函数时,调用的顺序是模板函数优先。
正确
错误
2、带有类模板参数的友元函数必须是模板函数。
正确
错误
3、模板类型参数名可以用来指定函数模板的返回类型。
正确 错误 4、函数模板每个模板类型参数前面都必须用关键字class或typename修饰。 正确 错误 5、函数模板是程序员用代码写出来的,模板函数是编译系统在编译时根据函数模板自动生成的。 正确 错误
《面向对象程序设计》第07章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分) 1、下面叙述不正确 的是 ( )
A、派生类都用公有派生产生
C、赋值兼容规则也适用于多重继承的组合
B、对基类成员的访问必须是无二义性的 D、基类的公有成员在派生类中仍然是公有的
2、对基类和派生类的关系描述中, 错误 的是 ( )
A、派生类是基类的具体化 C、派生类是基类定义的延续
B、基类继承了派生类的属性 D、派生类是基类的特殊化
3、继承机制的作用是 ( )
A、信息隐藏 C、定义新类
B、数据封装 D、数据抽象
4、可以用 p.a 的形式访问派生类对象 p 的基类成员 a ,其中 a 是 ( )
A、私有继承的公有成员 C、公有继承的保护成员
B、公有继承的私有成员 D、公有继承的公有成员
5、下列虚基类的说明中,正确的是( )
A、class virtual B:public A C、virtual class B:public A
B、class B:virtual public A D、class B:public A virtual
第二题、多项选择题(每题2分,5道题共10分)
1、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( )c
A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用 C、派生类的对象可以直接访问基类中的成员 D、派生类的对象的地址可以赋给指向基类的指针
2、如果是类B在类A的基础上构造,那么,就称( )。
A、类A为基类或父类,类B为超类或子类 B、类A为基类、父类或超类,类B为派生类或子类
C、类A为派生类,类B为基类
D、类A为派生类或子类,类B为基类、父类或超类
3、对于公有继承,基类中的私有成员在派生类中将 ( )。
A、不能够直接使用成员名访问 B、能够通过成员运算符访问 C、仍然是基类的私有成员 D、变为派生类的私有成员
4、派生类的对象对其基类中( )不可以直接访问。
A、公有继承的公有成员 B、公有继承的私有成员 C、公有继承的保护成员 D、私有继承的公有成员
5、下面说法正确的是( )
A、派生类指针可以直接指向基类对象 B、派生类指针可以强制转换为基类指针 C、派生类成员可以通过基类指针引用 D、基类指针可以指向派生类中对象
第三题、判断题(每题1分,5道题共5分) 1、基类的保护成员不能被派生类的对象访问。
正确
错误
2、公有继承时基类中的protected成员在派生类中仍是protected的。
正确
错误
3、派生类的继承方式有两种,公有继承和私有继承。
正确
错误
4、在私有继承中,基类中只有公有成员对派生类是可见的。