竭诚为您提供优质文档/双击可除c,,模板类实例化篇一:类模板的使用实际上是将类模板实例化成一个具体的()。
a.类b.对一、整体解读试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。
试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。
1.回归教材,注重基础试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。
2.适当设置题目难度与区分度选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。
3.布局合理,考查全面,着重数学方法和数学思想的考察在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。
包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。
这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。
篇二:c++模板及应用习题答案1.概念填空题1.1c++最重要的特性之一就是代码重用,为了实现代码重用,代码必须具有通用性。
通用代码需要不受数据类型的影响,并且可以自动适应数据类型的变化。
这种程序设计类型称为参数化程序设计。
模板是c++支持参数化程序设计的工具,通过它可以实现参数化多态性性。
1.2函数模板的定义形式是template返回类型函数名(形式参数表){…}。
其中,中参数可以有多个,用逗号分开。
模板参数主要是模板类型参数。
它代表一种类型,由关键字typename或class后加一个标识符构成,标识符代表一个潜在的内置或用户定义的类型参数。
类型参数由可以是任意合法标识符。
c++规定参数名必须在函数定义中至少出现一次。
1.3编译器通过如下匹配规则确定调用那一个函数:首先,寻找最符合函数名和参数类型的一般函数,若找到则调用该函数;否则寻找一个函数模板,将其实例化成一个模板函数,看是否匹配,如果匹配,就调用该模板函数;再则,通过类型转换规则进行参数的匹配。
如果还没有找到匹配的函数则调用错误。
如果有多于一个函数匹配,则调用产生二义性,也将产生错误。
1.4类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任意类型(包括系统预定类型和用户自定义的类型)。
类是对一组对象的公共性质的抽象,而类模板则是对不同类的数据类型?的抽象,因此类模板是属于更高层次的抽象。
由于类模板需要一种或多种类型参数,所以类模板也常常称为参数化类。
2.简答题2.1简述函数模板生成函数的过程。
2.2简述类模板生成对象的过程。
2.3简述函数模板与模板函数、类模板与模板类的区别。
3.选择题3.1关于函数模板,描述错误的是(a)。
a.函数模板必须由程序员实例化为可执行的函数模板b.函数模板的实例化由编译器实现c.一个类定义中,只要有一个函数模板,则这个类是类模板d.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化3.2下列的模板说明中,正确的是(d)。
a.templateb.templatec.templated.template3.3函数模板定义如下:templatemax(ta,tb,t}下列选项正确的是(b)。
a.intx,y;charz;b.doublex,y,z;max(x,y,z);max(x,y,z);c.intx,y;floatz;d.floatx;doubley,z;max(x,y,z);max(x,y,z);3.4下列有关模板的描述错误的是(d)。
a.模板把数据类型作为一个设计参数,称为参数化程序设计。
b.使用时,模板参数与函数参数相同,是按位置而不是名称对应的。
c.模板参数表中可以有类型参数和非类型参数。
d.类模板与模板类是同一个概念。
3.5类模板的使用实际上是将类模板实例化成一个(c)。
a.函数b.对象c.类d.抽象类3.6类模板的模板参数(d)。
a.只能作为数据成员的类型b.只可作为成员函数的返回类型c.只可作为成员函数的参数类型d.以上三种均可3.7类模板的实例化(a)。
a.在编译时进行b.属于动态联编c.在运行时进行d.在连接时进行3.8以下类模板定义正确的为(a)。
a.template4.编程题4.1设计一个函数模板,其中包括数据成员ta[n]以及对其进行排序的成员函数sort(),模板参数t可实例化成字符串。
#includeusingnamespacestd;templatevoidsort(t*a,intn){inti,j;tt;for(i=0;ia[j+1])b.templated.templatec.template{t=a[j];a[j]=a[j+1];a[j+1]=t;}}templatevoidprint(t*a,intn){}inti;for(i=0;i intmain(){stringstr[10]={"zhang","li","wang","qian","zhao","wu","xu ","tang","shen","liang"};}4.2设计一个类模板,其中包括数据成员ta[n]以及在其中进行查找数据元素的函数intsearch(t)模板参数t可实例化成字符串。
usingnamespacestd;templateclassa{intsize;t*element;public:a();~a();intsearch(t);voidsetelement(intindex,constt};templatea::a(){size=n>1n:1;element=newt[size];}templatea::~a(){delete[]element;}templateinta::search(tt){inti;}for(i=0;i(str,10);sort(int,8);sort(dou,7);prin t(str,10);print(int,8);print(dou,7);return0;templatevoida::setelement(intindex,constt}intmain(){aintary;//用int实例化,建立模板类对象}adouary;//用double实例化,建立模板类对象inti;for(i=0;i=0)cout=0)cout 4.3设计一个单向链表类模板,节点数据域中数据从小到大排列,并设计插入、删除节点的成员函数。
#includeusingnamespacestd;templateclasslist;templateclassnode{tinfo;//数据域node*link;//指针域public:node();//生成头结点的构造函数node(constt//生成一般结点的构造函数friendclasslist;};templatenode::node(){link=null;}templatenode::node(consttlink=null;//定义链表类templateclasslist{node*head;//链表头指针和尾指针public:list();//构造函数,生成头结点(空链表)~list();//析构函数voidmakeempty();//清空一个链表,只余表头结点node*Find(tdata);//搜索数据域与data相同的结点,返回该结点的地址voidprintlist();//打印链表的数据域voidinsertorder(node*p);//按升序生成链表node*creatnode(tdata);//创建一个结点(孤立结点) node*deletenode(node*p);//删除指定结点};templatelist::list(){head=newnode(-9999);//头结点,最小的数据从小到大插入}templatelist::~list(){makeempty();deletehead;}templatevoidlist::makeempty(){}node*tempp;while(head->link!=null){}tempp=head ->link;head->link=tempp->link;//把头结点后的第一个节点从链中脱离deletetempp;//删除(释放)脱离下来的结。