西安石油大学《面向对象程序设计》(填空题)
- 格式:doc
- 大小:112.00 KB
- 文档页数:13
把对象实例化可以生成多个对象,利用_________运算符为对象分派内存空间。
java程序引入接口的概念,是为了弥补只允许类的________的缺憾。
java语言以_______为程序的大体单位,它是具有某些一路特性实体的集合,是一种抽象的概念。
抽象方式只能存在于抽象类中。
抽象方式用关键字________来修饰。
java语言中_______是所有类的根.在java中有一种叫做_______特殊方式,在程序顶用它来对类成员进行初始化.new是______对象的操作符.继承主要强音调类在父类的基础上取”长”补”短”,而______主要强调的是类与类之间的传输咱们在java程序中,把关键字________加到方式名称的前面,来实现子类挪用父类的方式概念一个类包括概念类头和概念______两个部份在java程序里,同一类中重载的多个方式具有相同的方式名和_____的参数列表.重载的方式可以有不同的返回值类型java是面向对象语言,对象是客观事物的_______,对象与之是一一对应的,它是很具体的概念.java语言通过接口支持______继承,使类继承具有更灵活的扩展性一个对象的生命周期包括三个阶段:生成, ______ 和清除java语言中,挪用方式时,参数传递是______挪用,而不是地址挪用接口是一种只含有抽象方式或______的一种特殊抽象类创建一个类就是创建一个新的数据类型,而类在java中属于______数据类型。
abstract方式________(不能或能)与final并列修饰同一个类若是一个类中概念了几个名为method的方式,这些方式的参数都是整数,则这些方式的________必需是不同的,这种现象称为方式的重载。
在面向对象概念中,整个世界是由各类各样的_____________组成的。
______________是一套高度优化的指令集,它由Java运行期解释器执行,帮忙Java实现了可移植性和安全性。
习题1基本概念题:9.1 填空题:(1)一个完整的可运行程序中必须有一个名为________的函数。
(2)一条表达式语句必须以________作为结束符。
(3)一个函数定义由________和________两部分组成。
(4)若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的________语句。
(5)C++头文件和源程序文件的扩展名分别为________和________。
(6)程序文件的编译错误分为________和_________两类。
(7)当使用________保留字作为函数类型时,该函数不返回任何值。
(8)当函数参数表用_________保留字表示时,则表示该参数表为空。
(9)从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为________,该函数带有________个参数。
(10)在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。
(11)重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。
(12)如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分。
(13)函数形参的作用域是该函数的____________。
(14)当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的_______。
9.2 选择题:(1)以下说法中正确的是()。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中(2)以下叙述中不正确的是()。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量(3)函数重载是指()。
面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。
A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。
A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。
A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。
2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。
3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。
4.当删除对象时, 程序自动调用析构函数。
5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。
8. 抽象类是指类里有一个函数, 是纯嘘函数。
三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。
本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。
《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. 源程序文件的缺省扩展名为( )。
A. B. C. D.2. x>0 5的相反表达式为()。
A. x<=0 5B. x<=0 5C. x>0 5D. x>0 53. 在下面的字符数组定义中,有语法错误的是( )。
A. a[20]=“”;B. a[]=“55.”;C. a[15];D. a[10]=’5’;4. 以下正确的函数原型语句是( )。
A. ( y)B. ( y)C. ();D. ( );5. 在下面存储类中,()的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“ { [40]; ;}; * ;”,则正确的语句是()。
A. (>,””);B. (,””);C. (*,””);D. ((*)->,””);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。
A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有()函数的文件称为()。
A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用表示,包含的指针域用表示,链队的队首指针用表示,队尾指针用表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
A. B.C. 和D. 或10. 假定为一个类,则执行“ a, b(2), c[3], *;”语句时共调用该类无参构造函数的次数为( )。
A. 5B. 6C. 3D. 411. 引入友元的主要目的是为了()。
A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性12. 如果是类B在类A的基础上构造,那么,就称()。
A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类二、填空(每空1分,15小题,共18分)1. 语言是在语言的基础上发展起来的。
西电《面向对象程序设计(++)》在线作业一、单选题(共 25 道试题,共 100 分。
)1. ()是面向对象语言中的一种复合数据类型。
它是复合数据类型的超集。
. 复合数据类型. 类. 对象. 成员. 引用正确答案:2. 阅读下面程序int list[]=nw int[10]##for(int I=0##I<=list.lngth##I++) list[I]=I##list[0]的值为( ). 10. 9. 不一定. 出错正确答案:3. 强制挂起线程,而且指定挂起时间的函数是(). slp( ). suspn( ). rsum( ). join( )正确答案:4. 阅读下面程序int list[]=nw int[10]##for(int I=0##I<=list.lngth##I++) list[I]=I##list[0]的值为( ). 10. 9. 不一定. 出错正确答案:5. 设有如下定义:设有如下定义: strutsk{ int; flot; }t; int*p; 若要使p指向t中的成员,则正确的赋值语句为()。
. p=&;. p=t.;. p=&t.;. *p=t.;正确答案:6. 下列对派生类的描述中,错误的是()。
. 一个派生类可以作为另一个派生类的基类. 派生类至少有一个基类. 派生类的缺省继承方式为privt. 派生类只继承了基类的公有成员和受保护成员正确答案:7. 一个pplt程序(). 不用修改就一定可以当作应用程序运行. 怎么修改都不能当作应用程序运行. 可以又作为应用程序运行. 要视操作系统和浏览器而定正确答案:8. 阅读下面程序 lss x3125 { puli stti voi min(String [] rgs) { int i=0## i=i++## Systm.out.println(i)## }}} 现在想先编译再运行该程序,结果是(). 0. 1. 2. 出错正确答案:9. uiolip的()方法可以循环播放声音文件. ply. loop. ontinu. rply正确答案:10. 阅读下面程序 String s="Hllo"##String t=s##t="1234"t代表的字符串为. null. 1234. Hllo. H正确答案:11. int lmnts[]={1,2,3,4,5,6}## int hol[]={10,9,8,7,6,5,4,3,2,1}## 要把lmnts数组中的所有元素复制到hol数组中,因该使用. Systm.rryopy(lmnts,0,hol,0,lmnts.lngth). Systm.rryopy(hol,0,lmnts,0,lmnts.lngth). Systm.rryopy(hol,0,lmnts,0,hol.lngth). Systm.rryopy(lmnts,0,hol,0,hol.lngth)正确答案:12. ++语言中whil循环和o-whil循环的主要区别是()。
面向对象程序设计期末综合练习二(填空题)填空题1.以面向对象方法构造的系统,其基本单位是____对象_____。
2.每个对象都是所属类的一个____实例______。
3.对象将其大部分实现细节隐藏起来,这种机制称为___封装_______。
4.基类和派生类的关系称为____继承______。
5.复杂对象可以由简单对象构成,这种现象称为_______聚合___。
6.对象是对问题域中客观事物的_抽象_,它是一组属性和在这些属性上操作的_封装体______。
7.特殊类的对象拥有其一般类的全部属性与操作,称特殊类____继承____了一般类。
8.如果一个派生类的基类不止一个,则这种继承称为_____多继承_______。
9.如果一个派生类只有一个唯一的基类,则这样的继承关系称为____单继承______。
10.C++支持两种多态性:____编译_____时的多态性和_____运行_____时的多态性。
11.在C++中,编译时的多态性是通过_____重载_____实现的,而运行时的多态性则是通过______虚函数____实现的。
12.面向对象软件开发的生命周期分为三个阶段,即分析、____设计__和___实现____。
13.面向对象的分析包括_____问题域_____分析和____应用__分析两步。
14.类定义中,既包含数据成员,也包含____函数____成员。
15.类中的数据成员的访问属性通常被指明为___private_____。
16.类中的供外部调用定义的函数成员,其访问属性通常被定义为_____public___。
17.对于类中定义的任何成员,其隐含访问权限为____ private_____。
18.对于结构中定义的任何成员,其隐含访问权限为_____ public____。
19.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为___ private______。
20.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于___内联_____函数。
《面向对象程序设计》1999-2000学年度第一学期期末考试试题及答案1.(本题共20分)下面列出了由三个文件main.cpp、MyClass.h和MyClass.cpp组成的一个程序。
文件main.cpp中实现了主函数;文件MyClass.h中定义了类MyClass;文件MyClass.cpp中实现了类MyClass的成员函数。
题中没有给出三个文件的完整实现。
仔细阅读所给的程序,根据题意补充文件MyClass.h和文件MyClass.cpp 的内容。
要求:a.将成员变量定义为私有的;b.不要增加题中没有用到的类成员。
/******************************************************************** ***///文件main.cpp#include#include "MyClass.h"void main(){MyClass obj(3.3);cout << obj.GetMember() << endl;obj.SetMember(5.6);cout << obj.GetMember() << endl;}/******************************************************************** ***//******************************************************************** ***///文件 MyClass.cpp#include "MyClass.h"float MyClass::GetMember(){return member;}void MyClass::SetMember(float member){MyClass::member=member;//在这里写出构造函数的实现函数/******************************************************************** ***//******************************************************************** ***///文件 MyClass.h//类MyClass的定义class MyClass {//在下面写出类的定义体};/******************************************************************** ***/2.写出能被编译、连接和运行的最小的C++程序。
西安石油大学大二(上)C++面向对象程序设计课件第5章习题习题5基本概念问题:5.1填空:(1)派生类的成员函数可以直接访问基类的成员,不能直接访问基类的______成员。
(2)保护继承时,基类的成员成为派生类中的受保护成员,派生类对象不能直接访问基类成员。
(3)在定义一个派生类时,使用__________关键字或者不显式地使用它则表示为__________继承。
(4)如果在多个基类及其派生类中定义了具有相同名称的成员函数,则在访问相应的函数___________________。
(5)若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以____________的方式直接继承它。
5.2多项选择题:(1)从一个基类派生出的各个类的对象之间()。
a、共享所有成员变量,每个对象还包含基类的所有属性。
B.共享一些成员变量,每个对象也包含基类的所有属性。
C.不共享任何成员变量,但每个对象还包含基类的所有属性。
D.共享一些成员变量和成员函数(2)如果是类b在类a的基础上构造,那么,就称()。
a.类a为基类或父类,类b 为超类或子类b、类A是基类、父类或超类,类b是派生类或子类,C.类A是派生类,类b是基类d.类a为派生类或子类,类b为基类、父类或超类(3)c++的继承性允许派生类继承基类的()。
a、部分功能,并允许添加新功能或重新定义基类的功能。
B.部分功能,但不允许添加新功能或重新定义基类的功能。
C.所有特性,并允许添加新特性或重新定义基类的特性。
D.所有特性,但不允许添加新特性或重新定义基类的特性。
(4)派生类的成员函数可以直接访问基类的()成员。
a.所有b.公有和保护c.保护和私有d.私有(5)对于公有继承,基类的公有和保护成员在派生类中将()成员。
a.全部变成公有b.全部变成保护c、 D.保持公共并相应地受到保护(7)对于公共继承,基类中的私有成员将()保留在派生类中。
a.能够直接使用成员名访问b.能够通过成员运算符访问一百三十六c.仍然是基类的私有成员d.变为派生类的私有成员(8)保护继承时,基类的()将成为派生类中的受保护成员。
计科技专业面向对象程序设计试题2002年10月07日试卷代号:1008中央广播电视大学2000—2001学年度第二学期“开放教育(本科)”期末考试(开)计科技专业面向对象程序设计试题2001年7月一、对错题。
判断以下说法的正确性,在下面表格中对应的编号下面写上“对”或“错”。
(20分,每个题目2分)题号 1 2 3 4 5 6 7 8 9 10对/错1.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。
2.所有的表达式都有值。
3.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。
4.类的静态数据成员需要在定义每个类的对象时进行初始化。
5.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。
6.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。
7.当函数的返回值是数组类型的,传递的是数组第一个元素的地址。
8.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。
9.字符串’hello,world”在内存中存放时,占用11个字节的空间。
10.用new动态申请的内存空间,必须用delete来释放。
二、简单编程题。
根据程序要求,写出函数的完整定义。
(共25分)1.(本小题15分)写一个函数,找出给定字符串中数字字符(即’0’—‘9’这10个数字)的个数(如字符串”olympic2000”中数字字符的个数为4个。
函数的原型为:int CalcDigital(char *str);函数参数:str为所要处理的字符串。
函数返回值:所给字符串中数字字符的个数。
int CalcDigital(char *str){//在下面写出程序的实现}2.(本小题10分)用递归函数完成以下运算:sum(n)=12+22+…+n2函数的原型如下:long sum(int n);该函数完成12+22+…+n2的运算,并返回运算结果,其中n>0。
面向对象程序设计期末综合练习二(填空题)填空题1. C++语言是在_________语言的基础上发展起来的。
2. C++语言的编译单位是扩展名为__________的__________文件。
3. 行尾使用注释的开始标记符为__________。
4. 多行注释的开始标记符和结束标记符分别为__________和__________。
5. 用于输出表达式值的标准输出流对象是_________。
6. 用于从键盘上为变量输入值的标准输入流对象是________。
7. 一个完整程序中必须有一个名为________的函数。
8. 一个函数的函数体就是一条_________语句。
9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。
11. 程序中的预处理命令是指以______字符开头的命令。
12. 一条表达式语句必须以______作为结束符。
13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。
14. 使用#include命令可以包含一个头文件,也可以包含一个______文件。
15.一个函数定义由________和________两部分组成。
16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。
17.C++头文件和源程序文件的扩展名分别为______和______。
18.程序文件的编译错误分为________和________两类。
19.当使用_______保留字作为函数类型时,该函数不返回任何值。
20.当函数参数表用______保留字表示时,则表示该参数表为空。
21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。
22. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到________的开始位置。
23. 假定x=5,y=6,则表达式x++*++y的值为__________。
24. 假定x=5,y=6,则表达式x--*--y的值为__________。
25. 假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和__________。
26. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。
27. C++常数0x145对应的十进制值为__________。
28. C++常数0345对应的十进制值为__________。
29. 十进制常数245对应的十六进制的C++表示为__________。
30. 十进制常数245对应的八进制的C++表示为__________。
31. signed char类型的值域范围是________至__________之间的整数。
32. int和float类型的数据分别占用_________和__________个字节。
33. float 和double 类型的数据分别占用_________和________个字节。
34. bool 和char 类型的数据分别占用_________和________个字节。
35. unsigned short int 和int 类型的长度分别为_________和________。
36. 字符串”This\’s a book.\n ”的长度为__________。
37. 字符串”\nThis\’s a pen\n\n ”的长度为__________。
38. 在C++中存储字符串”abcdef ”至少需要________个字节。
39. 在C++中存储字符串”a+b=c ”至少需要________个字节。
40. 假定x 和y 为整型,其值分别为16和5,则x%y 和x/y 的值分别为__________和__________。
41. 假定x 和y 为整型,其值分别为16和5,则x/y 和double(x)/y 的值分别为__________和__________。
42. 假定x 是一个逻辑量,则x && true 的值为__________。
43. 假定x 是一个逻辑量,则x || true 的值为__________。
44. 假定x 是一个逻辑量,则x && false 的值为__________。
45. 假定x 是一个逻辑量,则x || false 的值为__________。
46. 假定x 是一个逻辑量,则!x || false 的值为__________。
47. 假定x 是一个逻辑量,则x && !x 的值为__________。
48. 假定x 是一个逻辑量,则x || !x 的值为__________。
49. 数学算式xyy x 2+的C++表达式为________________。
50. 数学算式y x xy +3的C++表达式为________________。
51. 数学算式221byax +的C++表达式为________________。
52. 设enum Printstatus{ready,busy,error}; 则 cout<<busy 的输出结果是________。
53. 设enum Printstatus{ready=2,busy,error}; 则cout<<busy 的输出结果是________。
54. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。
55. 枚举类型中的每个枚举值都是一个__________,它的值为一个__________。
56. 常数100和3.62的数据类型分别为__________和__________。
57. 若x=5, y=10, 则计算y*=++x 表达式后,x 和y 的值分别为______和______。
58. 假定x 和ch 分别为int 型和char 型,则sizeof(x)和sizeof(ch)的值分别为______和______。
59. 假定x=10,则表达式x<=10?20:30的值为______。
60. 表达式sqrt(81)和pow(6,3)的值分别为______和______。
61. 含随机函数的表达式rand()%20的值在_____至______区间内。
62. 在switch 语句中,每个语句标号所含关键字case 后面的表达式必须是_______。
63. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。
64. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。
65. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)________执行。
66. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。
67. 若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。
68. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。
69. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。
70. 在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
71.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。
72. 元素类型为int的数组a[10]共占用________字节的存储空间。
73. 元素类型为double的二维数组a[4][6]共占用________字节的存储空间。
74. 元素类型为char的二维数组a[10][30]共占用________字节的存储空间。
75. 存储字符’a’和字符串”a”分别需要占用________和________个字节。
76. 空串的长度为________,存储它需要占用________个字节。
77. 字符串”\’a\’xy=4\n”的长度为________。
78. 字符串”a:\\xxk\\数据”的长度为________。
79. 用于存储一个长度为n的字符串的字符数组的长度至少为________。
80. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为__________。
81. 若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为__________。
82. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。
83. 对一个二维字符数组a进行初始化的数据为{”123”,”456”,”789”},则a[1]元素对应的字符串为__________。
84. strlen(”apple”)的值为________,strcmp(”a”,”A”)的值为________。
5 185. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。
85. 假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为________和________。
86. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]和a[2][3]分别被初始化为_______和________。
87. 在C++语言中,一个函数由函数头和__________组成。
88. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。
89. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。
90. 若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要访问此x , 则应在文件F2.CPP中添加对x的声明语句为_________________。
91. 定义一个函数模板要用到的第一个修饰符是____________。
92. 在函数模板的参数中,用class修饰的参数称为__________参数。