第七章 习题

匿名 (未验证) 提交于 2019-12-03 00:22:01

一、名词解析

函数模板:一个带类属参数的函数。

类模板:一个带类属参数的类。

模板函数  :通过参数实例化可以再构造出具体的函数。

模板类:通过参数实例化可以再构造出具体的类。

二、填空题

(1)C++支持两种模板,一种是     函数模板      ,另一种是    类模板               

(2)关键字   template      是定义模板的关键字。

(3)<模板参数>中包含一个或多个用逗号分开的模板参数项,每一项由保留字      class      或者      typename    开始。

(4)重载函数模板便于定义     类属参数      或者函数参数的类型、个数不相同所进行的      类似     操作。

(5)函数模板实例化时,      没有    普通传值参数的类型转换机制。

(6)STL提供的容器是常用数据结构的     类模板    

(7)STL容器类库包含7种基本容器。他们可以分成两组:       顺序容器       关联容器   

(8)STL迭代器主要包括5种基本类别:   输入迭代器     输出迭代器     前向迭代器       双向迭代器      随机访问迭代器  

三、选择题(至少选一个,可以多选)

(1)关于函数模板,描述错误的是(A)

A、函数模板必须由程序员实例化为可执行的模板函数

B、模板函数的实例化有编辑器实现

C、一个类定义中,只要有一个函数模板,则这个类是类模板

D、类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

(2)下列模板说明中,正确的是(A)

A、template<typename T1,typename T2>

B、template<class T1,T2>

C、template(class T1,class T2)

D、template(typename T1 ,T2)

(3)假设有函数模板定义如下:

template <typename T>

Max(T a,T b, T&c)

{c=a+b;}

下列选项正确的是(AB)

A、float x ,y ;float z;

    Max(x ,y ,z);

B、int x,y,z;

Max(x,y,z);

C、int x,y;float z;

Max(x,y,z);

D、float x; double y ,z;

Max(x,y,z);

(4)建立类模板对象的实例化过程为(C)

A、基类 ――>派生类                      B、构造函数――>对象         C、模板类――>对象          D、模板类――>模板函数

(5)下面(ABD)是标准模板库中的主要组件。

A、容器           B、迭代器                 C、文件                D、算法

四、判断题

(1)一个模板函数能够被相同函数名的另外模板函数重载。                                                  (对 )

(2)作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。                  ( 错)

(3)在类模板<模板参数表>中,必须至少有一个类参数。                                                    ( 对)

(4)在类模板<模板参数表>中,可以使用函数类型参数,该参数与普通函数参数的用法和功效完全相同。           ( 错)

(5)迭代器就是我们平常所用的指针。                                                                                   ( 错)

五、程序设计题

(1)用函数模板实现求整数、实现平方根的程序。


(2)设计一个类模板,然后将该类模板实例化为整数型和字符型类。利用类模板的成员函数为其数据成员赋值,并显示所赋给的值。


转载请标明出处:第七章 习题
文章来源: 第七章 习题
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!