练习09-模板
练习09-模板
题量: 20 满分: 100
作答时间:05-10 19:45 至_06-26 19:45_
1.(单选题) 类模板的使用实际上是将类模板实例化成一个( )。
- A. 函数
- B. 对象
- C. 类
- D. 抽象类
2.(单选题) 下列类模版的定义中语法格式不正确的是( )。
- A. template
class Buffer{ }; - B. template
class Buffer{ }; - C. template
class Buffer{ }; - D. template
class Buffer{ };
3.(单选题) 如下函数模板的功能是将U类型数据转换为T类型数据。
已知 i 为 int 型变量,下列对模板函数 cast 的调用中正确的是( )。- A. cast(i);
- B. cast<>(i);
- C. cast
- D. cast
4.(单选题) 类模板的模板类型参数( )。
- A. 能作为数据成员的类型
- B. 可作为成员函数的返回类型
- C. 可作为成员函数的参数类型
- D. 以上三种类型均可
5.(单选题) 下列关于函数模板的描述中,正确的是( )。
- A. 函数模板是一个实例函数
- B. 使用函数模板定义的函数没有返回类型
- C. 函数模板的类型参数与函数的参数相同
- D. 通过使用不同的类型参数,可以从函数模板得到不同的实例函数
6.(单选题)
若mytemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列:
- A. 1
- B. 2
- C. 3
- D. 0
7.(单选题) 如下程序在编译过程中,函数模板max被实例化的次数是( )。
template<typename T>
T max(T d1,T d2) { return d1>d2 ? d1 : d2; }
int main() {
cout<<max(3,5)<<max(5,3)<<max(5.0,max(3.6,5.5));
}
- B. 2次
- C. 3次
- D. 4次
8.(单选题) 模板对类型的参数化提供了很好的支持,因此 ( )。
- A. 类模板的主要作用是生成抽象类
- B. 类模板实例化时,编译器将根据给出的模板实参生成一个类
- C. 在类模板中的数据成员都具有同样类型
- D. 类模板中的成员函数都没有返回值
9.(单选题) 下列关于类模板的描述中,错误的是( )。
- A. 类模板的成员函数都是模板函数
- B. 可以为类模板参数设置默认值
- C. 类模板描述了一组类
- D. 类模板中只允许有一个类型参数
10.(单选题) 有如下模板声明:
下列声明中,与上述声明不等价的是( )。- A. template
- B. template
- C. template
- D. template
11.(单选题) 下列有关模板的叙述中,正确的是( )。
- A. 函数模板不能含有常规形参
- B. 函数模板的一个实例就是一个函数定义
- C. 类模板的成员函数不能是模板函数
- D. 用类模板定义对象时,绝对不能省略模板实参
12.(单选题) 下面是一个模板声明的开始部分:
由此可知( )。- A. 这可能是一个函数模板的声明
- B. 这可能是一个类模板的声明
- C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明
- D. 这肯定是一个错误的模板声明
13.(单选题) 下列关于模板的叙述中,错误的是( )。
- A. 调用函数模板时,在一定条件下可以省略模板实参
- B. 可以用int、double这样的类型修饰符来声明模板参数
- C. 模板声明中的关键字class都可以用关键字typename替代
- D. 模板的形参表中可以有多个参数
14.(单选题) 下列关于模板的说法正确的是( )。
- A. 模板的实参在任何时候都可以省略
- B. 类模板与模板类所指的是同一概念
- C. 类模板的参数必须是虚拟类型的
- D. 类模板中的成员函数全部都是模板函数
15.(单选题) 下列关于模板的叙述中,错误的是( )。
- A. 调用函数模板时,有时可以省略模板实参
- B. 函数模板的每个实例就是一个函数定义
- C. 类模板的每个实例就是一个类定义
- D. 类模板的实例是一个类对象
16.(单选题) 下列类模板的定义中语法格式错误的是( )。
- A. template
class Buffer{/…/}; - B. template
class Buffer{/…/}; - C. template
class Buffer{/…/}; - D. template
class Buffer{/…/};
17.(单选题) 在定义函数模板或类模板时,开头的关键字是( )。
- A. typename
- B. template
- C. class
- D. typedef
18.(单选题) 若有函数模板mySwap和一些变量定义如下:
下列对mySwap的调用中,错误的是( )。- A. mySwap(i1,i2)
- B. mySwap(d1,d2)
- C. mySwap(i1,d1)
- D. mySwap
19.(单选题) 有如下函数模板定义:
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。- A. FUN(9)
- B. FUN<9>
- C. FUN
- D. FUN<9>(double)
20.(单选题) 有函数模板声明和一些变量定义如下:
则下列调用中,错误的是( )。- A. sum
- B. sum
- C. sum
- D. sum(d1,d2);
练习09-模板答案
正确答案列表:
- C
- D
- D
- D
- D
- B
- B
- B
- D
- D
- B
- A
- C
- D
- D
- D
- B
- C
- C
- D