第11章 模板与标准模板库习题_第1页
第11章 模板与标准模板库习题_第2页
第11章 模板与标准模板库习题_第3页
第11章 模板与标准模板库习题_第4页
第11章 模板与标准模板库习题_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题填空题模块参数主要是________参数。声明模板的关键字是____,在其后是尖括号<>描述的模板形参,模板形参需要由关键字____说明。模板一般分为____和____。模板是C++支持____多态的工具,它可以实现类型参数化,即把类型定义为参数,真正实现了代码的可重用性,减轻了编程及维护的工作量和难度。声明模板的关键字是____,定义模板形参的关键字是____。定义了类模板后就要使用类模板创建对象以及实现类中的成员函数,这个过程称为类模板的实例化,实例化出的具体类称为____。编译器生成具体类型函数的这一过程就称为实例化,生成的函数称为____。模板可以实现程序设计中的____,体现了面向对象程序设计的____。STL是泛型程序设计的一个良好的范例。标准C++类库包含的组件既支持面向对象程序设计的设计与编程,又支持__________设计。标准组件对两种设计方法的支持赋予了C++类库复合或双重特性。单项选择题关于函数模版,描述错误的是()。函数模版必须由程序员实例化为可执行的函数模版函数模版的实例化由编译器实现一个类定义中,只要有一个函数模版,则这个类是类模版类模版的成员函数都是函数模版,类模版实例化后,成员函数也随之实例化下列的模版说明中,正确的是()。template<typenameT1,T2>B.template<classT1,T2>template<classT1,classT2>C.template<tpyenameT1,typenameT2>类模板的实例化()。A.在编译时进行B.属于动态联编C.在运行时进行D在链接时进行类模板的使用实际上是将类模板、实例化成一个()。A.函数B.对象C.类D.抽象类下列有关模板的描述,错误的是()。模板把数据类型作为一个设计参数,称为参数化程序设计使用时,模板参数与函数参数相同,是按位置而不是名称对应的模板参数表中可以有类型参数和非类型参数D.类模板与模板类是同一个概念建立类模板对象的实例化对象称为()。基类派生类B.构造函数对象C.模板类对象D.模板类模板函数类模板的模板参数()。A.只可作为数据成员的类型B.可作为成员函数的返回类型C.可作为成员函数的参数类型D.以上三者皆可下列关于模板的说法中,错误的是()。A..用模板定义一个对象时,不能省略参数B.类模板只能有虚拟参数类型C.类模板的成员函数都是模板函数D.类模板在编绎中不会生成任何代码设有函数模板:template<classQ>QSum(Qx,Qy){return(x)+(y);}则下列语句中,哪一项对该函数模板的使用是错误的()A.Sum(10,2);B.Sum(5.0,6.7);C.Sum(15.2f,16.0f);D.Sum(“AB”,”CD”);下列的模板说明中,正确的是()。template<typenameT1,typenameT2>B.template<classT1,T2>template<T1,T2>D.template<typenameT1;typenameT2>假设有函数模板定义如下:template<typenameT>Max(Ta,Tb,T&c){c=a+b;}下列选项正确的是()。floatx,y;floatz;Max(x,y,z);B.intx;floaty,z;Max(x,y,z)C.intx,y;floatz;Max(x,y,z);D.floatx;inty,z;Max(x,y,z);下列选项中,哪一个函数可以定义为对许多数据类型完成同一任务()函数模板B.递归函数C.模板函数D.重载函数模板函数的真正代码是在哪个时期产生的()A.源程序中声明函数时B.源程序中定义函数时C.源程序中调用函数时D.运行执行函数时一个模板声明了多个形参,则每个参数都必须用关键字()。staticB.constC.voidD.class读程序写结果。(1)下列程序运行结果是。#include<iostream>usingnamespacestd;template<classT>Tmax(Tx,Ty){return(x>y?x:y);}intmain(){cout<<max(2,5)<<","<<max(3.5,2.8)<<endl;return0;}(2)程序运行结果是。#include<iostream>

usingnamespacestd;

template<typenameT>

Ttotal(T

*p)

{

Tsum=0;

while(*p)

sum+=*p++;

returnsum;

}

intmain()

{

intx[]={1,3,5,7,9,0,13,15,17};

cout<<total(x);

return0;

}(3)程序运行结果是。#include<iostream>usingnamespacestd;template<classT>classSample{Tn;public:Sample(){}Sample(Ti){n=i;}Sample<T>&operator+(constSample<T>&);voiddisp(){cout<<"n="<<n<<endl;}};template<classT>Sample<T>&Sample<T>::operator+(constSample<T>&s){staticSample<T>temp;temp.n=n+s.n;returntemp;}intmain(){Sample<int>s1(10),s2(20),s3;s3=s1+s2;s3.disp();system("pause");return0;}(4)下列程序运行结果是。#include<iostream>usingnamespacestd;template<classT>classSample{Tn;public:Sample(Ti){n=i;}voidoperator++();voiddisp(){cout<<"n="<<n<<endl;}};template<classT>voidSample<T>::operator++(){ n+=1;//不能用n++;因为double型不能用++}intmain(){Sample<char>s('a');s++;s.disp();system("pause");return0;}程序设计请编写程序,定义函数模板lsEqual来比较两个数据的大小,将函数模板特化比较字符串的大小。设计一个函数模板:,其中包括数据成员Ta[n]以及对其进行排序的成员函数sort,.模板参数T可以实列化字符串。(3)函数模板,分别编写一个求数组元素输入函数模板、数组元素求和函数模板和数组元素输出的函数模板,函数参数为数组名,长度。编写完整程序,检验各种类型的输入、求和和输出。(4)函数模板,编写求最大值max和最小值min的函数模板,函数参数为求两个数的最值。编写完整程序验证。以STL中的栈容器为资源,编程创建一个double栈,压入范围在100.0~2000的10个随机浮点数,去掉最后压入的3个数据,将剩下的栈中数据退枝输出再创建一只sting栈,压入5个朋友的名字,按相反的顺序输出。珊珊是个喜欢买买买的⼥孩⼦,今天她想去商店买⾐服,但她有选择恐惧症不知道去哪⼀家店,于是她想了个办法。她给n个商店编号(编号为1~n),从第1家店开始数,⼀直数到m,数到m的店不在她的选择范围内,剩下的店再接着从1开始数。这样⼀直重复,最后剩下哪家店,她就去那家店买⾐服。你能告诉珊珊她该去编号为多少的店买⾐服么。红红昨天玩了星星消消乐,但是特别不喜欢星星消消乐⾥没办法⼀次拿到所有星星的问题,所以他今天决定玩⼀个新的消消乐版本,号称队列消消乐,即消消乐只能拿队⾸元素出来判断能不能消除,但是队尾不能进⼈,所以红红决

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论