《C++程序设计复习题(23页).doc》由会员分享,可在线阅读,更多相关《C++程序设计复习题(23页).doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C+程序设计复习题-第 22 页判断题5使用关键字class定义的类中默认的访问权限是私有(private)的.对6作用域运算符(:)只能用来限定成员函数所属的类.错7构造函数和析构函数都不能重载.错8析构函数是一种函数体为空的成员函数.错9说明或定义对象时,类名前面不需要加class关键字.对10对象成员的表示与结构变量成员的表示相同,使用运算符.或-.对11所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的.对12某类中的友元类的所有成员函数可以存取或修改该类中的私有成员.对13可以在类的构造函数中对静态数据成员进行初始化.错14函数的定义不
2、可以嵌套,类的定义可以嵌套.对15C+语言中,既允许单继承,又允许多继承.对16派生类是从基类派生出来,它不能再生成新的派生类.错17派生类的继承方式中有两种:公有继承和私有继承.错18在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的.错19在公有继承中,基类中只有公有成员对派生类对象是可见的.对20在私有继承中,基类中只有公有成员对派生类是可见的.错21在私有继承中,基类中所有成员对派生类的对象都是不可见的.对22在保护继承中,对于派生类的访问同于公有继承,而对于派生类的对象的访问同于私有继承.对23派生类中至少包含了它的所有基类的成员,在这些成员中可能有的是不可访问.对24构造
3、函数可以被继承.错25析构函数不能被继承.对26子类型是不可逆的.对27只要是类M继承了类N,就可以说类M是类N的子类型.错28如果A类型是B类型的子类型,则A类型必然适应于B类型.对29多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序.对30单继承情况下,派生类中对基类成员的访问也会出现二义性.错31解决多继承情况下出现的二义性的方法之一是使用成员名限定法.对32虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的问题.对33指向对象的指针和指向类的成员的指针在表达形式上是不相同的.对34已知:m是类A的对象,n是类A的公有数据成员,p
4、是指向类A中n成员的指针.下述两种表示是等价的. m.n和m.*p对35指向对象的指针与对象都可以作为函数参数,但是使用前者比后者好些.对36对象引用作为函数参数比用对象指针更方便些.对37对象数组的元素可以是不同类的对象.错38对象数组的既可以赋初值又可以赋值.对39指向对象数组的指针不一定必须指向数组的首元素.对40一维对象指针数组的每个元素应该是某个类的对象的地址值.对41const char *p说明了p是指向字符串常量的指针.对42一个能够更新的变量使用在一个不能被更新的环境中是不破坏类型保护的,反之亦然.错43一个类的构造函数中可以不包含对其子对象的初始化.错44转换函数不是成员函
5、数,它是用来时行强制类型转换的.错45使用模板可以减少重复劳动,提高代码重用率.对46C+语言中模板分为函数模板和类模板两种.对47类模板可以生成若干个模板类,每个模板类又可定义若干个对象.对48使用提取符()可以输出各种类型的变量的值,也可以输出指针值.对49预定义的插入符从键盘上接收数据是不带缓冲区的.错50预定义的提取符和插入符是可以重载的.对51记录流的当前格式化状态的标志字中每一位用于记录一种格式,这种格式是不能被设置或清除的.错52设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout.对53操作子本身是一个对象,它可以直接被提取符或插入符操作.对5
6、4get()函数不能从流中提取终止字符,终止字符仍留在流中.getline()函数从流中提取终止字符,但终止字符被丢弃.对55ios类的成员函数clear()是用来清除整个屏幕的.错56使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象.对57使用关闭文件函数close()关闭一个文件时,但流对象仍存在.对58以app方式打开文件时,当前的读指针和写指针都定位于文件尾.对59打开ASCII码流文件和二进制流文件时,打开方式是相同的.错60read()和write()函数可以读写文本文件,也可以读写二进制文件.对61流的状态包含流的内容、长度和下一次提取或插
7、入操作的当前位置.对62seekg()函数seekp()函数分别用来定位读指针和写指针.如果使用seek()函数可以同时定义读写指针.错63函数的参数个数和类型都相同,只是返回值不同,这不是重载函数.对64重载函数可以带默认值参数,但要注意二义性.对65多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的.对66对每个可重载的运算符来说,只能重载为友元函数.错67重载的运算符保持原来的优先级和结合性以及操作数的个数.对68虚函数是用virtual关键字说明的成员函数.对69构造函数说明为纯虚函数是没有意义的.对70运算符重载实际上是对已有的运算符重新定义其功能.对71运算符重载的
8、形式有两种:成员函数形式和友元形式.对72纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数.对73具有纯虚函数的类是抽象类,它的特点是不可以定义对象.对74预处理命令是在进行编译时首先执行的,然后再进行正常编译.对75宏定义命令是以分号结束的.错76带参数的宏定义只能有1 个或2 个参数.错77文件包含命令所包含的文件是不受限制的.错78条件编译命令只在编译时才有作用.对79预处理命令的主要作用是提高效率.错80复合语句就是分程序.错81条件语句不能作为多路分支语句.错82开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句.错83开关语句中的default 关键字,只能放在该
9、语句的末尾,不能放在开头或中间.错84switch 语句中必须有break 语句,否则无法退出switch 语句.错85while 循环语句的循环体至少执行一次.错86do-while 循环可以写成while 循环的格式.对87for 循环是只有可以确定的循环次数时才可使用,否则不能用for 循环.错88只有for 循环的循环体可以是空语句,其他种循环的循环体不能是空语句.错89当循环体为空语句时,说明该循环不做任何工作,只起延时作用.错90循环是可以嵌套的,一个循环体内可以包含另一种循环语句.对91在多重循环中,内重循环的循环变量引用的次数比外重循环多.对92break 语句可以出现在各种循
10、环体中.对93continue 语句只能出现在循环体中.对94在C+语言中,定义函数时必须给出函数的类型.对95在C+语言中,说明函数时要用函数原型,即定义函数时的函数头部分.对96在C+语言中,所有函数在调用前都要说明.错97如果一个函数没有返回值,定义时需用void 说明.对98在C+语言中,传址调用将被引用调用所替代.对99使用内联函数是以增大空间开销为代价的.对100返回值类型、参数个数和类型都相同的函数也可以重载.错101在设置了参数默认值后,调用函数的对应实参就必须省略.错102计算函数参数顺序引起的二义性完全是由不同的编译系统决定的.错103for 循环中,循环变量的作用域是该循
11、环的循环体内.错104语句标号的作用域是定义该语句标号的文件内.错105函数形参的作用域是该函数的函数体.对106定义外部变量时,不用存储类说明符extern ,而说明外部变量时用它.对107内部静态类变量与自动类变量作用域相同,但是生存期不同.对108静态生存期的标识符的寿命是短的,而动态生存期标识符的寿命是长的.错109重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此域内是不可见的.但是,它是存在的.对110静态类标识符在它的作用域之外是不存在的.错111所有的函数在定义它的程序中都是可见的.错112编译系统所提供的系统函数都被定义在它所对应的头文件中.对113调用系统函
12、数时,要先将该系统函数的原型说明所在的头文件包含进去.对114C+语言中模板分为函数模板和类模板两种.对115函数模板中模板参数可用任何一种类型替换.错116函数模板中模板参数只能有一个.错117函数模板在编译时不生成可执行代码.对118一个函数模板只生成一个模板函数.错119C+语言引进了引用的概念,给编程带来了很多方便.对120C+语言允许使用友元,但是友元会破坏封装性.对121C+语言中使用了新的注释符(/), C 语言中注释符(/* */ )不能在C+语言中使用.错122为了减轻使用者的负担,与C 语言相比,C+语言中减少了一些运算符. 错123C+程序中,每条语句结束时都加一个分号(
13、;).对124C+语言中标识符内的大小写字母是没有区别的.错125C+语言中不允许使用宏定义方法定义符号常量,只能用关键字const 来定义符号常量.错126在编写C+程序时,一定要注意采用人们习惯使用的书写格式,否则会降低其可读性.对127C+语言是一种以编译方式实现的高级语言.对128在C+程序编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的.对129预处理过程是编译过程之后、连接过程之前进行的.错130源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息.错131任何字符常量与一个任意大小的整型数进行加减都是有意义的.错132转义序列
14、表示法只能表示字符不能表示数字.对133在命名标识符中,大小写字母是不加区分的.错134C+的程序中,对变量一定要先说明再使用,说明只要在使用之前就可以.对135C+中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的.对136数组赋初值,初始值表中的数据项的数目可以大于或等于数组元素的个数.错137枚举变量的取值受到该枚举变量所对应的枚举表中枚举符的局限.对138指针是用来存放某种变量的地址值的变量.这种变量的地址值也可以存放在某个变量中,存放某个指针的地址值的变量称为指向指针的指针,即二级指针.对139引用是某个变量的别名.对引用的操作,实质上就是对被引用的变量的操作.对140运算
15、符的优先级和结合性可以确定表达式的计算顺序.对141在说明语句int a(5),&b=a, *p=&a;中,b的值与a 的值是相等的.对142已知:int a(5);表达式(a=7)+a 具有二义性.对143移位运符在移位操作中,无论左移还是右移,所移出的空位一律补O.错144某个变量的类型高是指该变量被存放在内存中的高地址处.错145隐含的类型转换都是保值映射,显式的类型转换都是非保值映射.错146类型定义是用来定义一些C+中所没有的新类型.错147定义结构变量时必须指出该结构变量是属于某种结构类型的.对148无名结构是不允许定义结构变量的.错149同一结构的不同成员占用不同的内存单元.对1
16、50联合的所有成员都是没有内存地址的.错151联合的所有成员都是没有内存地址的.错选择题1下列对派生类的描述中,( D )是错误的.A、一个派生类可以作为另一个派生类的基类 B、派生类至少有一个基类 C、派生类的成员除了它自己的成员外,还包含了它的基类的成员 D、派生类中继承的基类成员的访问权限到派生类保持不变2派生类的对象对它的基类中( A )是可以访问的.A公有继承的公有成员 B公有继承的私有成员C公有继承的保护成员 D私有继承的仍有成员3派生类的构造函数的成员初始化值表中,不能包含( C ).A基类的构造函数 B、派生类中子对象的初始化C、派生类中静态数据成员的初始化 D、派生类中一般数
17、据成员的初始化4关于子类型的描述中,( A )是错误的.A子类型就是指派生类是基类的子类型B一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型C在公有继承下,派生类是基类的子类型 D子类型关系是不可逆的5下列关于赋值兼容规则的描述中,( B )是错误的.A、赋值兼容规则在子类型情况下才可使用B、公有继承下,派生类对象不可给基类对象赋值C、公有继承下,派生类对象可对基类对象引用进行初始化D、公有继承下,派生类对象的地址值可以赋值给基类的对象指针6关于多继承二义性的描述中,( C )是错误的.A、一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B
18、、解决二义性的最常用的方法是对成员名的限定法C、基类和派生类中同时出现的同名函数,也存在二义性问题D、一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性7设置虚基类的目的是( B ).A、简化程序B、消除二义性C、提高运行效率D、减少目标代码8在带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( D ).A、与虚基类下面的派生类个数有关 B、多次 C、二次 D、一次9下面关键字中,用以说明类中公有成员是( A ).A、publicB、privateC、protected D、friend
19、10下列的各类函数中,( C )不是类的成员函数.A、构造函数 B、析构函数 C、友元函数 D、复制构造函数11作用域运算符的功能是( D ).A、标识作用域的级别 B、指出作用域的范围 C、给定作用域的大小D、标识某个成员是属于哪个类的12( D )不是构造函数的特征.A 构造函数的函数名与类名相同B、构造函数可以重载C 构造函数可以设置默认参数 D 构造函数必须指定类型说明13( A )是析构函数的特征.A 一个类中只能定义一个析构函数B 析构函数名与类名不同C 析构函数的定义只能在类体内D 析构函数可以有一个或多个参数14通常复制构造函数的参数是( C ).A 某个对象名B 某个对象的成
20、员名C 某个对象的引用D 某个对象的指针名15下面关于成员函数特征的描述中,( A )是错误的.A 成员函数一定是内联函数B 成员函数可以重载C 成员函数可以设置默认值D成员函数可以是静态的16下述静态数据成员的特性中,( D )是错误的.A 说明静态数据成员时前面要加修饰符static B 静态数据成员要在类体外进行初始化C 引用静态数据成员时,可在静态数据成员名前加和作用域运算符 D静态数据成员不是所有对象共用的17友元的作用( A ).A 提高程序的运行效率B 加强类的封装性C实现数据的隐藏性D 增强成员函数的种类18已知一个类A,( C )是指向类A成员函数的指针.假如类有三个公有成员
21、:void f1(int),void f2(int)和int a.A A *pint B A:*pc=&A:aC void A:*pa() D A *pp19运算符-*的功能是( A ).A 使用对象指针通过指向成员的指针表示成员的运算 B 使用对象通过指向成员的指针表示成员的运算 C 用来表示指向对象指针的成员的运算 D 用来表示对象成员的运算20已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( B )是正确的.A p=f1 B p=A:f1 Cp=A:f1() D p=f1()21已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象.如果要给m赋值为5
22、,( C )是正确的.A A1.p=5B A1-p=5C A1.*p=5D *A1.p=522已知:类A中一个成员函数说明如下:void Set(A &a);其中,A&a的含意是( C ).A 指向类A的指针为a B 将a的地址值赋给变量Set C a是类A 的对象引用,用来作为函数Set()的形参 D 变量A与a按位相与作为函数Set()的参数23下列关于对象数组的描述中,( D )是错误的.A 对象数组的下标是从0开始的B对象数组的数组名是一个常量指针 C 对象数组的每个元素是同一个类的对象D 对象数组只能赋初值,而不能赋值24下列定义中,( B )是定义指向数组的指针A p.int *p
23、5 B int (*p)5C (int *)p5 D int *p25下列说明中,const char *ptr;ptr应该是( C ).A 指向字符常量的指针B 指向字符的常量指针C 指向字符串常量的指针D 指向字符串的常量指针26已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的.A void print() const B const void print()C void const print()D void print (const)27关于new运算符的下列描述中,( D )是错误的.A 它可以用来动态创建对象和对象数组 B 使用它创建的对象或
24、对象数组可以使用运算符delete删除 C 使用它创建对象时要调用析构函数D 使用它创建对象数组时必须指定初始值28关于delete运算符的下列描述中,( C )是错的.A 它必须用于new返回的指针 B它也适用于空指针C 对一个指针可以使用多次该运算符 D 指针名前只用一对方括号符,不考虑所删除数组的维数29具有类型转换功能的构造函数,应该是( B ).A不带参数的构造的构造函数 B 带有一个参数的构造函数 C 带有两个以上参数的构造函数 D 默认构造函数30下列关于模板的描述中,错误的是( C ).A 类模板的成员函数可以是函数模板B 类模板生成模板类时,必须指定参数化的类型所代表的具体类
25、型C 定义类模板时只允许有一个模板参数 D 类模板所描述的是一组类31下列关于多态性说法不正确的是( C ).A 多态性是指同名函数对应多种不同的实现 B 多态性表现为重载和覆盖两种方式 C重载方式仅有函数重载 D 重载方式包含函数重载和运算符重载32下列函数中,( D )不能重载.A 成员函数 B 非成员函数 C 构造函数 D 析构函数33下列运算符中,( C )个运算符不能重载.A & B C : D new34下列关于运算符重载的描述中,( D )是正确的.A 运算符重载可以改变操作符的个数 B 运算符重载可以改变优先级C 运算符重载可以改变结合性 D 运算符重载不可以改变语法结构35关
26、于动态联编的下列描述中,( D )是错误的.A 动态联编是以虚函数为基础的 B 动态联编是在运行时确定所调用的函数代码的 C 动态联编调用函数操作是用指向对象的指针或是对象的引用 D 动态联编是在编译时确定操作函数的36关于虚函数的描述中,( C )是正确的.A 虚函数是一个静态类型的成员 B 虚函数是一个非成员函数 C 基类中说明了虚函数之后, D 派生类中将其对应的函数可不必说明为虚函数派生类的虚函数与基类的虚函数具有不同的参数个数和类型37关于纯虚函数和抽象类的描述中,( C )是错误的.A 纯虚函数是一种特殊的虚函数,没有具体实现B 抽象类是指具有纯虚函数的类C 抽象类可以定义对象D
27、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出38下列描述中为抽象类的最主要特征的是( D ).A可以说明虚函数 B 可以进行构造函数的重载 C 可以定义友元 D 不能说明其对象39进行文件操作时需要包含( B )文件Aiostream.hB fstream.h C stdio.h D stdlib.h40使用操作子对数据进行格式输出时,应包含( C )文件.A iostream.h B fstream.h C iomanip.h D stdlib.h41已知:int a,*pa=&a;输出指针pa十进制的地址值的方法是( D ).A coutpa; B cout*pa; C cout
28、&pa; D coutlong(&pa)42下列输出字符A的方法中,( A )是错误的.Acoutput(A);B coutA; C cout.put(A);D char A=A;coutA;43关于getline()函数的下列描述中,( D )是错误的.A 该函数是用来从键盘上读取字符串的 B 该函数读取的字符串长度是受限制的 C 该函数读取字符串时遇到终止符便停止D 该函数中所使用的终止符只能是换行符44关于read()函数的下列描述中,( B )是对的.A 该函只能从键盘输入中获取字符串B 该函数所获取的字符多少是不受限制的C 该函数只能用于文本文件的操作中D 该函数只能按规定读取所指定
29、的字符数45在ios中提供控制格式的标志位中,( A )是转换为十六进制形式的标志位.A hex B oct C dec D left46控制格式输出输入的操作中,( D )是设置域宽的.A ws B oct C setfill() D setw()47磁盘文件操作中,打开磁盘文件的访问方式常量中,( C )是以追加方式打开文件的.A in B out C app D ate48下列函数中,( D )是对文件进行写操作的.A get() B read() C seekg() D put()49预处理命令在程序中都是以( B )开头的.A * B # C : D /50文件包含命令中被包含的文件
30、的扩展名( D ).A 必须为.h B 不能用.h C 必须是.c D 不一定是.h51下列条件编译命令中 ( A ) #if() # else # endifA 整常量表达式 B 任何标识符C 任意表达式 D 被定义的宏名52带参数的宏定义中, 程序中引用宏定义的实参( D ).A 只能是常量B 只能是整型量 C 只能是整型表达式D 可以是任意表达式53下列( A )是语句.A ; B a=17 C x+y D coutn54下列for 循环的次数为( B ). for(int i(0),x=0;!x&i=5;i+) A 5 B 6 C 1 D 无限55下列while 循环的次数是( A )
31、. while ( int i=0 ) i-;A 0 B 1 C 5 D 无限56下列do-while 已知:循环的循环次数为( D ).已知 int i(5); do cout i-endl; i-; while (i!=0);A 0 B 1 C 5 D 无限57下列for 循环的循环体执行次数为( D ).for( int i(0),j(10); i=j=10; i+,j-)A0 B 1C 10 D 无限58已知:int a , b ;下列switch 语句中,( A )是正确的.A switch ( a ) case a : a +; break; case b : b+; break;
32、B switch ( a+b ) case l: a+b ; break;case 2: a-b;C switch ( a*a ) case l,2:+a; case 3,4:+b;D switch ( a/10+b ) case 5:a/5; break; default: a+b;59下述关于循环体的描述中,( C )是错误的.A 循环体中可以出现break 语句和continue 语句 B 循环体中还可以出现循环语句C 循环体中不能出现goto语句 D 循环体中可以出现开关语句60下述关于goto 语句的描述中,( D )是正确的.A goto 语句可在一个文件中随意转向 B goto
33、语句后面要跟上一个它所转向的语句C goto 语句可以同时转向多条语句 D goto语句只能在一个函数体内转向61下述关于break 语句的描述中,( C )是不正确的.A break 语句可用于循环体内,它将退出该重循环 B break 语句可用于开关语句中,它将退出开关语句 C break 语句可用于if 体内,它将退出if 语句 D break 语句在一个循环体内可以出现多次62下列关于开关语句的描述中,( A )是正确的.A 开关语句中default 子句可以没有,也可有一个 B 开关语句中每个语句序列中必须有break 语句 C 开关语句中default 子句只能放在最后 D 开关语
34、句中case 子句后面的表达式可以是整型表达式63下列关于条件语句的描述中,( C )是错误的.A if 语句中只有一个else 子句 B if 语句中可以有多个else if 子句 C if 语句中if 体内不能是开关语句 D if 语句的if 体中可以是循环语句64当一个函数无返回值时,定义它时函数的类型应是( A ).A void B 任意 C int D 无65在函数说明时,下列( D )项是不必要的.A 函数的类型 B 函数参数类型和名字 C 函数名字 D 返回值表达式66在函数的返回值类型与返回值表达式的类型的描述中,( B )是错误的.A 函数返回值的类型是在定义函数时确定,在函
35、数调用时是不能改变的 B 函数返回值的类型就是返回值表达式的类型C 函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型D 函数返回值类型决定了返回值表达式的类型67在一个被调用函数中,关于return 语句使用的描述,( D )是错误的.A 被调用函数中可以不用return 语句 B 被调用函数中可以使用多个return 语句B被调用函数中,如果有返回值,就一定要有return 语句 D 被调用函数中,一个return 语句可返回多个值给调用函数68下列描述中( D )是引用调用.A 形参是指针,实参是地址值 B 形参和实参都是变量 C 形参是数组名,实参是数组名 D
36、 形参是引用,实参是变量69在传值调用中,要求( C ).A 形参和实参类型任意,个数相等 B 实参和形参类型都完全一致,个数相等C 实参和形参对应的类型一致,个数相等 D 实参和形参对应的类型一致,个数任意70在C+语言中,关于下列设置参数默认值的描述中,( C )是正确的.A 不允许设置参数的默认值 B 设置参数默认值只能在定义函数时设置C 设置参数默认值时,应该是先设置右边的再设置左边的 D 设置参数默认值时,应该全部参数都设置71重载函数在调用时选择的依据中,( D )是错误的. A 参数个数 B 参数的类型C 参数的顺序 D 函数的类型72下列的标识符中,( C 是文件级作用域的.A
37、 函数形参B 语句标号 C 外部静态类标识符 D 自动类标识符73有一个int 型变量,在程序中使用频度很高,最好定义它为( A ).A register B auto C extern D static74下列标识符中,( B )不是局部变量.A register 类 B 外部static 类 C auto 类 D 函数形参75下列存储类标识符中,( C )的可见性与存在性不一致.A 外部类 B 自动类 C 内部静态类 D 寄存器类76在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A ) 比较合适. A 内联函数 B 重载函数 C 递归调用 D 嵌套调用7
38、7采用函数重载的目的在于( D )A 实现共享 B 减少空间 C 提高速度 D 使用方便,提高可读性78在将两个字符串连接起来组成一个字符串时,选用( C )函数.A strlen ( ) B strcpy ( ) C strcat ( ) D strcmp ( )79定义函数模板使用的关键字是( C ).A Class B inline C template D operator80下列有关对函数模板参数的描述,错误的是( C ).A 模板参数可以是一个或多个B 通常每个模板参数前必须加classC 模板参数是一个算术表达式D 模板参数是参数化的类型81下列关于函数模板和模板函数的描述中,错
39、误的是( D ).A 函数模板是一组函数的样板 B 函数模板是定义重载函数的一种工具C 模板函数是函数模板的一个实例 D 模板函数在编译时不生成可执行代码82已知函数模板定义如下:template T min ( T x ,T y ) return x操作有意义83已知函数模板定义如下:template T min ( T x ,T y ) return xy?x:y;在所定义的函数模板中,所生成的下列模板函数错误的是( D ).A int min ( int , int ) B char min ( char , char ) C double min ( double , double ) D double min ( double , int )84下列各种高级语言中,( C )是面向对象的程序设计语言.A BASIC PASCAL C C+ D Ada 85下列各种高级语言中,( B )最早提出了对象的概念.A Algol 60 B Simula 67C Smalltalk D C+86下列关于面向对象语言的基本要素的描述中,正确的是( D ).A 封装性和重载性 B 多态性和继承性C 继承
限制150内