C考试题库及答案

上传人:东*** 文档编号:26620141 上传时间:2021-08-12 格式:DOCX 页数:49 大小:29.64KB
返回 下载 相关 举报
C考试题库及答案_第1页
第1页 / 共49页
C考试题库及答案_第2页
第2页 / 共49页
C考试题库及答案_第3页
第3页 / 共49页
点击查看更多>>
资源描述
判断char型变量cl是否为小写字母的正确表达式是_。2.0分A、(cl=a)&(cl=cl)|(z=cl)C、a=cl=a)&(cl=z)假定MyClass为一个类,那么执行MyClass a(2),b5,*c4后,执行构造函数的次数为_。2.0分A、6B、11C、10D、5char *s1=hello,*s2;s2=s1;那么_。2.0分A、s1不能再指向其它单元B、couts1;与coutp=5;D、A1.p=5;C+异常处理机制中没有_。2.0分A、finallyB、tryC、throwD、catch所谓多态性是指_。2.0分A、一个对象调用不同名称的对象B、一个对象调用不同名称的函数C、不同的对象调用一样名称的函数D、不同的对象调用不同名称的函数关于new运算符的以下描绘中,_是错的。2.0分A、使用它创立对象数组时必须指定初始值B、它可以用来动态创立对象和对象数组C、使用它创立对象时要调用构造函数D、使用它创立的对象和对象数组可以使用运算符delete删除以下正确的说法是:在C+语言中进展值传递时_。2.0分A、形参是虚拟的,不占用存储单元B、实参和与其对应的形参各占用独立的存储单元C、只有当实参和与其对应的形参同名时才共占用存储单元D、实参和与其对应的形参共占用一个存储单元C+类体系中,能被派生类继承的是_。2.0分A、友元函数B、析构函数C、构造函数D、虚函数对于重载的运算符,它是一个_。2.0分A、用于输出的成员函数B、用于输入的友元函数C、用于输入的成员函数D、用于输出的友元函数_是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。2.0分A、静态成员函数B、纯虚函数C、虚析构函数D、虚构造函数定义重载函数的以下要求中,_是错误的。2.0分A、要求函数的返回值不同B、要求参数个数一样时,参数类型不同C、要求参数中至少有一个类型不同D、要求参数的个数不同可以通过友元函数重载的运算符为_。2.0分A、B、()C、=D、在以下运算符中,不能重载的是_。2.0分A、deleteB、sizeofC、!D、new以下运算符中,_运算符在C+语言中不能重载。2.0分A、newB、C、+=D、:可以通过友元函数重载的运算符为_。2.0分A、()B、C、=D、不能被重载的运算符 1、. (成员访问运算符) 2、.* (成员指针访问运算符) 3、: (域运算符) 4、sizeof(长度运算符) 5、?: (条件运算符以下运算符中,只能作为类成员函数重载的是_。2.0分A、=B、b?a:cd?c:d后的结果是_。2.0分 A、4B、3C、2D、1假设i为整型变量,那么以下循环执行次数是_。 for(i=2;i=0;) couti-;2.0分 A、2次B、无限次C、1次D、0次设char *s;,以下正确的表达式是_。2.0分A、*s=s;B、*s=software;C、s=software;D、*s=software;以下程序段的输出结果为_。 #includevoid main() char s=123,*p; p=s; cout*p+ str; cout str; 执行时输入的是“this is a test line!,那么输出的内容是_。2.0分A、thisB、this is a test line!C、this is a test lineD、this is a testcin流遇空白符号完毕,因此只会读入第一个单词this,输出this关于析构函数的特征,正确的选项是_。2.0分A、析构函数和构造函数都可重载B、析构函数必须将指针类型的数据成员的值置未NULLC、析构函数不能有参数D、析构函数的返回值必须为void析构函数没有数据类型,也没有参数,没有返回值,一个类只能有一个析构函数。以下关于虚函数的说明中,正确的选项是_。2.0分A、抽象类中的成员函数都是虚函数B、虚函数不得是静态成员函数C、只能通过指针或引用调用虚函数D、从虚基类继承的函数都是虚函数以下关于成员函数的描绘中,正确的选项是_。2.0分A、成员函数可以有默认参数B、成员函数一定是内联函数C、成员函数没有返回值D、成员函数可以通过类名直接调用函数的形参是_。2.0分A、外部变量B、部分变量C、全局变量D、静态变量在那种情况下不需要使用初始化列表_。2.0分A、类数据成员B、初始化常量数据成员C、普通的数据成员D、调用基类的构造函数在C+语言中,char型数据在内存中的存储形式是_。2.0分A、反码B、补码C、原码D、ASCII码_不是构造函数的特征。2.0分A、构造函数可以重载B、构造函数必须指定类型说明C、构造函数可以设置缺省参数D、构造函数的函数名与类名一样关于纯虚函数和抽象类的描绘,错误的选项是_2.0分A、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出B、纯虚函数是一种特殊的函数,它没有详细实现代码C、一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类是指具有纯虚函数的类假如在派生类中没有对纯虚函数进展了定义,那这个派生类也是抽象类.不能用来定义对象以下对派生类的描绘中,_是错误的。2.0分A、派生类中继承的基类成员的访问权限到派生类保持不变B、一个派生类可以作为另一个派生类的基类C、派生类至少有一个基类D、派生类的成员除了它自己的成员外,还包含了它的基类成员关于关键字class和typename,以下表述正确的选项是_。2.0分A、程序中所有的typename都可以交换为classB、程序中所有的class都可以交换为typenameC、A)和B)都可以D、A)和B)都不可以:类A中一个成员函数说明如下: void Set(A& a); 其中,A&的含义是_。2.0分A、将a的地址值赋给变量SetB、a是类A对象的引用,用来作函数Set()的参数C、变量A与a按位与作为函数Set()的参数D、指向类A的指针为a在公有派生情况下,有关派生类对象和基类对象的关系,不正确的表达是_。2.0分A、派生类的对象的地址可以赋给指向基类的指针B、派生类的对象可以直接访问基类中的成员C、派生类的对象可以初始化基类的引用D、派生类的对象可以赋给基类的对象关于this指针使用说法正确的选项是_。2.0分A、保证基类私有成员在子类可以被访问B、保证基类共有成员在子类可以被访问C、保证每个对象都拥有自己的数据成员,但共享处理这些数据的代码D、保证基类保护成员在子类可以被访问以下函数中,不能重载运算符的函数是_。2.0分A、友元函数B、成员函数C、普通函数D、构造函数以下关于运算符重载的表达中,正确的选项是_。2.0分A、重载一个二元运算符时,必须声明两个形参B、有的运算符只能作为成员函数重载C、通过运算符重载,可以定义新的运算符D、假设重载运算符+,那么相应的运算符函数名是+当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中_。2.0分A、都不是虚函数B、只有被重新说明时才是虚函数C、只有被重新说明为virtual时才是虚函数D、都是虚函数拷贝构造函数的参数是_。2.0分A、某个对象的指针名B、某个对象名C、某个对象的成员名D、某个对象的引用名以下不是描绘类的成员函数的是_。2.0分A、拷贝构造函数B、析构函数C、友元函数D、构造函数拷贝构造函数的参数是_。2.0分A、某个对象的指针名B、某个对象名C、某个对象的成员名D、某个对象的引用名设 int x=1, y=1; 表达式(!x|y-)的值是_1_。执行语句 int i = 10; cout i+ + i+; 输出结果是_。2.0分A、不确定B、22C、20D、21拷贝构造函数的参数通常是_。2.0分A、无特殊要求B、对象C、指向对象的指针D、自身类对象的常引用以下表达中不正确的选项是_。2.0分A、以下是正确的宏定义 #define IBM_PCA选项,这样的宏定义运行时未报错,在使用时,就将其看做什么也没有,例如, int x=5; printf(number is %d,BM_DEF x);B、预处理命令行都必须以#号开场C、C+程序在执行过程中对预处理命令行进展处理D、在程序中但凡以#号开场的语句行都是预处理命令行关于在调用模板函数时模板实参的使用,以下表述中正确的选项是_。2.0分A、对于常规参数所对应的模板实参,任何情况下都不能省略B、对于虚拟类型参数所对应的模板实参,假设可以省略那么必须省略C、对于虚拟类型参数所对应的模板实参,假如能从模板函数的实参中获得一样的信息,那么都可以省略D、对于虚拟类型参数所对应的模板实参,假如它是参数表中的最后的假设干个参数,那么都可以省略在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表(用“括起来的参数表)或从模板函数实参表(用“()括起来的参数表)。假如从后者获得的信息已经可以断定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的假设干参数,那么模板实参表中的那几个参数可以省略。假如模板实参表中的实参都被省略了,那么空表“也可以不要,因此选项D错误。反之,对于某个模板实参,假如从模板函数的实参表中无法获得同样的信息,就不能省略;或者虽然可以获得同样的信息,但在它后面还有其他不能省略的实参,那么其自身还是不能省略。在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值_。2.0分A、部分一样B、不同C、一样D、相容一个C+程序的执行是从_.2.0分A、本程序文件的第一个函数开场,到本程序main函数完毕B、本程序文件的第一个函数开场,到本程序文件的最后一个函数完毕C、本程序的main函数开场,到本程序文件的最后一个函数完毕D、本程序的main函数开场,到main函数完毕以下对C+语言函数的描绘中,正确的选项是_。2.0分A、C+程序必须由一个或一个以上的函数组成B、函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否那么不能使用函数D、C+程序中有调用关系的所有函数必须放在同一个程序文件中以下关于友元函数描绘,正确的选项是_。2.0分A、在类的外部定义友元函数时必须加上friend关键字B、一个友元函数不能同时定义为两个类的友元函数C、友元函数是独立于当前类的外部函数D、友元函数必须在类的外部进展定义友元函数_。2.0分A、不能修改数据成员的值B、只能用对象名来调用C、没有this指针D、可以用类名或对象名来调用类A是类B的友元, 类B是类C的友元,那么_。2.0分A、类C的成员可以访问类B对象的任意成员B、类A的成员函数可以访问类B对象的任意成员C、类C一定是类A的友元D、类A一定是类C的友元关于类模板,以下描绘错误的选项是_。2.0分A、函数的类模板参数须通过构造函数实例化B、根据建立对象时的实际数据类型,编译器把类模板实例化为模板类C、类模板从普通类派生,也可以从类模板派生D、一个普通基类不能派生类模板在重载一个运算符时,假如其参数表中有一个参数,那么该运算符是_。2.0分A、选项B和C都有可能B、二元成员运算符C、一元友元运算符D、一元成员运算符重载一目运算符没有参数,重载二目运算符要有一个参数关于纯虚函数和抽象类的描绘,错误的选项是_2.0分A、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出B、一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类C、纯虚函数是一种特殊的函数,它没有详细实现代码D、抽象类是指具有纯虚函数的类在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;以下关于这个函数的表达中,错误的选项是_。2.0分A、这是运算符-的重载运算符函数B、这个函数所重载的运算符是一个一元运算符C、这是一个成员函数D、这个函数不改变数据成员的值以下定义数组的语句中正确的选项是_。2.0分A、#define size 10 char str1size,str2size+2;B、char str;C、int num10;D、int n=5; int ann+2;所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是_。2.0分A、数据块B、类C、函数体D、对象以下函数模板的定义中,合法的是_。2.0分A、template T abs(T x)return xo?-x:x;B、template Tabs(T x)return x0?-x:x;C、template classT abs(T x)return x0?-x:x;D、templateT abs(T x)return x0?-x:x;C+对C语言做了很多改良,即从面向过程变成为面向对象的主要原因是_。2.0分A、允许函数重载,并允许函数设置缺省参数B、规定函数说明符必须用原型C、增加了一些新的运算符D、引进了类与对象的概念C+语言中函数调用的方式有_。2.0分A、函数调用作为语句、函数表达式或函数参数三种B、函数调用作为语句一种C、函数调用作为语句或函数表达式两种D、函数调用作为函数表达式一种设 int x=1, y=1; 表达式(!x|y-)的值是_。2.0分A、-1B、2C、1D、0下面判断是否构成重载函数的条件中,错误的判断条件是_。2.0分A、函数返回值不同B、参数顺序不同C、参数类型不同D、参数个数不同以下对C+语言函数的描绘中,正确的选项是_。2.0分A、C+程序中有调用关系的所有函数必须放在同一个程序文件中B、函数必须有返回值,否那么不能使用函数C、C+程序必须由一个或一个以上的函数组成D、函数既可以嵌套定义又可以递归调用有如下类定义: class XA int x; public: XA(int n) x=n; ; class XB: public XA int y; public: XB(int a,int b); ; 在构造函数XB的以下定义中,正确的选项是_。2.0分A、XB:XB(int a,int b):XA(a),XB(b) B、XB:XB(int a,int b):XA(a),y(b) C、XB:XB(int a,int b):x(a),XB(b) D、XB:XB(inta,intb):x(a),y(b)假设Class Y:public X,即类Y是类X的派生类,那么说明一个Y类的对象时和删除Y类对象时 ,调用构造函数和析构函数的次序分别为_。2.0分A、Y,X;Y,XB、Y,X;X,YC、X,Y;Y,X构造从内到外,析构从外到内D、X,Y;X,Y解决定义二义性问题的方法有_。2.0分A、使用成员名限定或赋值兼容原那么B、使用作用域分辨运算符或虚基类C、使用作用域分辨运算符或成员名限定D、只能使用作用域分辨运算符关于多继承二义性的描绘,_是错误的。2.0分A、一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性B、派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性C、解决二义性最常用的方法是作用域运算符对成员进展限定D、派生类和它的基类中出现同名函数时,将可能出现二义性设置虚函数的主要目的是_。2.0分A、减少目的代码B、进步运行效率C、消除二义性D、简化程序有如下函数模板定义: templateT func(Tx,Ty)return x*x+y*y; 在以下对func的调用中不正确的选项是_。2.0分A、funcint(3,5.5)B、func(3,5)C、func(3,5.5)D、func3,5)定义对象数组时必须有不需要参数的构造函数2.0分T 假设有 #define S(a,b) a*b 那么语句 area=S(3,2); area的值为6.2.0分Tchar ch1 = student, ch210;ch2=ch1; 是错误的2.0分T数组名是个名字,不可被赋值。要想实现数组拷贝可以用memcpy字符串拷贝还可以用strcpy赋值兼容规那么也适用于多继承的组合。2.0分T在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式.定义类的非成员函数运算符重载,必须将它声明为友元函数。2.0分F构造函数和析构函数的返回类型为void2.0分F(构造函数的名字与类的名字一样,并且不能指定返回类型)构造函数实现类的类型转换,不合适将其它类型转换成类类型。F在说明一个构造变量后,不能整体引用构造体变量,需要逐一引用。T所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类外的函数对它们的访问都是非法的。2.0分F 私有成员还可以被友元函数访问基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数。T子类可以新添自己的数据成员,但成员函数只能从父类继承。F子类可以新添自己的成员函数,但数据成员只能从父类继承。FC+中有五种作用域分别为文件作用域、块作用域、函数作用域、函数原型作用域和类作用域。T基类构造函数的调用顺序是由它们在派生类的构造函数实现中初始化表中出现的顺序决定的。F常量对象只能调用常量成员函数和静态成员函数,无法调用普通成员函数。T赋值运算符只能作为成员函数进展重载。T(因为编译器会提供一个默认的赋值运算符,你假如把自己定义赋值运算符的写成友元的话,函数的参数列表不一样,不会发生重载)作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。T对于函数原型:int fun(int a, int b=300,int c=200,int d=100);可以使用如下方式调用:fun();F常对象只能调用常成员函数。T包含空格的字符数组输入时,常常使用C+的cin.outline()函数实现。F派生类的虚函数与基类的虚函数需要有不同的形式参数。F派生类能过通过继承关键字改变对基类的函数成员的访问权限。T根据数据的组织形式,可以分为ASCII文件和文本文件两种。F应为ASCII文件和二进制文件对于内联函数,c+编译器执行内联扩展,将函数代码直接插入每一处调用途.由此可以减少函数调用的开销。T假如函数值的类型和return语句中表达式的值不一致,那么以函数类型为准。T容器(container)是用来存储其他对象的对象,它是用模板技术实现的。T类的友元函数可以访问该类对象的所有成员。T类的构造函数可以有默认参数,但类内的普通成员函数不能有默认参数。F可以显式调用对象的构造函数。F在运算符重载中,operator是保存关键字,表示运算符函数T友元函数访问对象中的成员可以不通过对象名。F友元函数是在类声明中由关键字friend修饰说明的类的成员函数。F进展宏定义时,宏名必须使用大写字母表示。FC+语言把文件看作是字符(字节)的序列,即由一个一个字符(字节)的数据按照随机顺序组成。F静态数据成员必须在类外定义和初始化。T重载流操作符 时,假如第一个参数的类型为ostream 和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。 T纯虚函数与函数体为空的虚函数等价。F作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。T运算符的重载形式有两种,重载为类的成员函数和重载为类的友元函数。2.0分T在同一个类中,可以定义重载的成员函数 void f(int);和virtual void f(int); F类内的常量数据成员必须用初始化列表来初始化数据成员。T多重继承往往产生二义性问题,可用成员名限定法来消除,这对成员变量、成员函数都适用。T基类成员的访问才能在派生类中维持不变。FC+语言中只能逐个引用数组元素而不能一次引用整个数组。2.0分T运行时的多态性可通过模板和虚函数实现。F 静态通过重载,动态通过虚函数和基类指针引用来实现。静态成员函数不能访问非静态的类成员2.0分T虚函数可以是static类型的函数。F设有函数说明 void f(const int&);那么在调用该函数时,提供的参数既可以是变量,又可以是常量。F类内的public的成员函数能被外部访问,不能被类内部函数调用2.0分F抽象类不能用于创立对象。T抽象类可以用来直接创立对象。F类内的public成员函数不能访问类里的private数据成员2.0分F抽象类可以用来直接创立对象。2.0分F实参与形参值传递是双向的传递.2.0分FC+提供的顺序类型容器有向量(vector)、链表(list)、双端队列(deque)、集合(set)。F49 / 49
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!