2022年C++考试题库及答案.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -判定 char 型变量 cl 是否为小写字母的正确表达式是A、cl>='a'&&cl<='z'B、'a'>=cl|'z'<=clC、a'<=cl<='z'D、cl>=a&&cl<=z_;( 2.0 分)假定 MyClass 为一个类 ,就执行 "MyClass a2,b5,*c4" 后,执行构造函数的次数为 _;(2.0 分)A、6B、11C、10D、5char *s1="hello",*s2;s2=s1; 就_;( 2.0 分)A、s1 不能再指向其它单元B、cout<<s1;与 cout<<s2;结果相同C、不能拜访 "hello"D、s2 指向不确定的内存单元已知 :p 是一个指向类A 数据成员 m 的指针 ,A1 是类 A 的一个对象;假如要给m 赋值为 5,正确的是 _;( 2.0 分)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -A、*A1.p=5;B、A1.*p=5;C、A1->p=5;D、A1.p=5;C+反常处理机制中没有 _;( 2.0 分)A、finallyB、tryC、throwD、catch所谓多态性是指 _;( 2.0 分)A、一个对象调用不同名称的对象B、一个对象调用不同名称的函数C、不同的对象调用相同名称的函数D、不同的对象调用不同名称的函数关于 new 运算符的以下描述中 A、,_是错的;( 2.0 分)使用它创建对象数组时必需指定初始值B、它可以用来动态创建对象和对象数组细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -C、使用它创建对象时要调用构造函数D、使用它创建的对象和对象数组可以使用运算符 delete 删除以下正确的说法是 :在 C+语言中进行值传递时 _;( 2.0 分)A、形参是虚拟的 ,不占用储备单元B、实参和与其对应的形参各占用独立的储备单元C、只有当实参和与其对应的形参同名时才共占用储备单元D、实参和与其对应的形参共占用一个储备单元C+类体系中 ,能被派生类继承的是 _;( 2.0 分)A、友元函数B、析构函数C、构造函数D、虚函数对于重载的运算符 >>,它是一个 _;( 2.0 分)A、用于输出的成员函数B、用于输入的友元函数C、用于输入的成员函数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -D、用于输出的友元函数_是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必需定义自己的版本;(2.0 分)A、静态成员函数B、纯虚函数C、虚析构函数D、虚构造函数定义重载函数的以下要求中 A、要求函数的返回值不同B、,_是错误的;( 2.0 分)要求参数个数相同时 ,参数类型不同C、要求参数中至少有一个类型不同D、要求参数的个数不同 可以通过友元函数重载的运算符为 _;( 2.0 分)A、>>B、C、=D、细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -在以下运算符中 ,不能重载的是 _;( 2.0 分)A、deleteB、sizeofC、.D、new以下运算符中 ,_运算符在 C+语言中不能重载;(2.0 分)A、newB、C、+=D、:可以通过友元函数重载的运算符为 _;( 2.0 分)A、B、C、=D、>>不能被重载的运算符1、. 成员拜访运算符 2、.* 成员指针拜访运算符 3、: 域运算符 4、细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -sizeof长度运算符 5、.: 条件运算符)以下运算符中 ,只能作为类成员函数重载的是A、=B、<<C、+D、+_;( 2.0 分)类 MyA 的拷贝初始化构造函数是 _;( 2.0 分)A、MyAMyAB、MyAMyA&C、MyAMyA*D、MyA;用 cin 为整型变量输入数据时,假如从键盘输入的不是数字,输入后整型变量中的结果会是:_(2.0 分)A、不确定B、0C、正数D、负数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -在 C+语言中 ,引用数组元素时,其数组下标的数据类型答应是_;( 2.0 分)A、任何类型的表达式B、整型表达式C、整型常量或整型表达式D、整型常量关于类模板描述不正确选项 _;( 2.0 分)A、依据它可以定义多个对象B、它的存在不代表一个详细的、实际的类 ,而是代表一类的类C、它可以使类中的某些数据取任意类型D、依据它可以产生一系列类以下说法不正确选项 _;( 2.0 分)A、不同函数中 ,可以使用相同名字的变量B、在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效C、形式参数是局部变量D、主函数 main 中定义的变量在整个文件或程序中有效建立包含有类对象成员的派生类对象时,自动调用构造函数的执行次序依次为_的构细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -造函数;( 2.0 分)A、基类、自己所属类、对象成员所属类B、对象成员所属类、基类、自己所属类C、自己所属类、对象成员所属类、基类D、基类、对象成员所属类、自己所属类关于运算符重载,以下表述中正确选项_;( 2.0 分)A、可以通过运算符重载来创建 C+中原先没有的运算符B、在类型转换函数的定义中不需要声明返回类型C、运算符函数的返回类型不能声明为基本数据类型D、C+已有的任何运算符都可以重载以下关于运算符重载不正确选项 _;( 2.0 分)A、运算符重载不能转变运算符的优先级B、运算符重载能转变对预定义类型数据的操作方式C、运算符重载不能转变运算符的结合性D、运算符重载不能转变运算符的操作数个数在表达式 x+y*z 中 ,+是作为成员函数重载的运算符 ,* 是作为非成员函数重载的运算符;以下表达中正确选项 _;( 2.0 分)A、operator+ 有两个参数 ,operator* 有一个参数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -B、operator+ 有两个参数 ,operator* 有两个参数C、operator+ 有一个参数 ,operator* 有两个参数D、operator+ 有一个参数 ,operator* 有一个参数+和* 都是二元运算符,当作为成员函数重载时,参数表中只有一个参数,对应于其次个参数,而第一个操作数就是对象本身,仅以 this 指针的形式隐匿在参数表中当作为非成员函数重载时有两个参数;以下表达中正确选项 _;( 2.0 分)A、静态 static类别变量的生存期贯穿于整个程序的运行期间B、函数的形参都属于全局变量C、未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值D、全局变量的作用域肯定比局部变量的作用域范畴大在公有派生情形下,有关派生类对象和基类对象的关系,不正确的表达是_;( 2.0 分)A、派生类的对象的地址可以赋给指向基类的指针B、派生类的对象可以初始化基类的引用C、派生类的对象可以直接拜访基类中的成员D、派生类的对象可以赋给基类的对象不能作为重载函数的调用的依据是 _;( 2.0 分)A、函数名称细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -B、参数类型C、参数个数D、函数类型如已定义的函数有返回值,就以下关于该函数调用的表达中错误选项_;( 2.0 分)A、函数调用可以作为一个函数的形参B、函数调用可以显现在表达式中C、函数调用可以作为独立的语句存在D、函数调用可以作为一个函数的实参在有参函数调用中,是将主调函数的实参值传给被调函数的形参;按函数在程序中显现的位置来分,有以下三种函数调用形式: 函数调用作为一条语句;例如:fun;这时不要求函数带回值,只要求函数完成肯定的操作;应选项 A正确; 函数显现在表达式中,这种表达式称为函数表达式;这时要求函数带回一个确定的值以参与表达式的运算;例如:c=5*maxa,b ;函数 max 是表达式的一部分,将其值乘以5 后赋给c;应选项 C正确;函数调用作为一个函数的实参,例如:m=maxa,maxb,c;其中 maxb,c是一次函数调用,它的值作为 max 另一次调用的实参;应选项 B正确;函数调用不行作为一个函数的形参,由于函数调用参数的数据传递是单向传递,即实参传给形参, 不能由形参传给实参;应选项A错误;假如 a=1,b=2,c=3,d=4,执行表达式A、4B、3C、2a>b.a:c<d.c:d 后的结果是 _;( 2.0 分)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -D、1如 i 为整型变量 ,就以下循环执行次数是 A、2 次 B、无限次C、1 次 D、0 次_; fori=2;i=0; cout<<i -;(2.0 分)设"char *s;", 以下正确的表达式是 _;( 2.0 分)A、*s='s'B、*s="software"C、s="software"D、*s="software"下 列 程 序 段 的 输 出 结 果 为 _ ;#include void main char s="123",*p; p=s; cout<<*p+<<endl; (2.0 分)A、1B、123C、3D、321细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -假如有如下语句char str20; cin >> 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、从虚基类继承的函数都是虚函数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -以下关于成员函数的描述中A、成员函数可以有默认参数B、成员函数肯定是内联函数C、成员函数没有返回值D、,正确选项 _;( 2.0 分)成员函数可以通过类名直接调用函数的形参是 _;( 2.0 分)A、外部变量B、局部变量C、全局变量D、静态变量在那种情形下不需要使用初始化列表 _;( 2.0 分)A、类数据成员B、初始化常量数据成员C、一般的数据成员D、调用基类的构造函数在 C+语言中 ,char 型数据在内存中的储备形式是 A、反码_;( 2.0 分)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -B、补码C、原码D、ASCII码_不是构造函数的特点;(2.0 分)A、构造函数可以重载B、构造函数必需指定类型说明C、构造函数可以设置缺省参数D、构造函数的函数名与类名相同关于纯虚函数和抽象类的描述 A、抽象类只能作为基类来使用B、,错误选项 _(2.0 分),其纯虚函数的实现由派生类给出纯虚函数是一种特别的函数 ,它没有详细实现代码C、一个基类中声明有纯虚函数D、,该基类的派生类肯定不再是抽象类抽象类是指具有纯虚函数的类假如在派生类中没有对纯虚函数进行了定义 ,那这个派生类也是抽象类 .不能用来定义对象以下对派生类的描述中 ,_是错误的;( 2.0 分)A、派生类中继承的基类成员的拜访权限到派生类保持不变细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -B、一个派生类可以作为另一个派生类的基类C、派生类至少有一个基类D、派生类的成员除了它自己的成员外 ,仍包含了它的基类成员关于关键字 class 和 typename, 以下表述正确选项 _;( 2.0 分)A、程序中全部的typename 都可以替换为classB、程序中全部的class 都可以替换为typenameC、A和 B都可以D、A和 B都不行以已知 :类 A 中一个成员函数说明如下 A、将 a 的地址值赋给变量 SetB、: void SetA& a; 其中 ,A&的含义是 _;( 2.0 分)a 是类 A 对象的引用 ,用来作函数 Set的参数C、变量 A 与 a 按位与作为函数 Set的参数D、指向类 A 的指针为 a在公有派生情形下,有关派生类对象和基类对象的关系,不正确的表达是_;( 2.0 分)A、派生类的对象的地址可以赋给指向基类的指针B、派生类的对象可以直接拜访基类中的成员细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -C、派生类的对象可以初始化基类的引用D、派生类的对象可以赋给基类的对象关于 this 指针使用说法正确选项 _;( 2.0 分)A、保证基类私有成员在子类可以被拜访B、保证基类共有成员在子类可以被拜访C、保证每个对象都拥有自己的数据成员D、保证基类爱护成员在子类可以被拜访,但共享处理这些数据的代码以下函数中 ,不能重载运算符的函数是 _;( 2.0 分)A、友元函数B、成员函数C、一般函数D、构造函数以下关于运算符重载的表达中 A、,正确选项 _;( 2.0 分)重载一个二元运算符时 ,必需声明两个形参B、有的运算符只能作为成员函数重载C、通过运算符重载 ,可以定义新的运算符D、细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 16 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -如重载运算符 +,就相应的运算符函数名是 +当一个类的某个函数被说明为virtual 时,该函数在该类的全部派生类中_;( 2.0 分)A、都不是虚函数B、只有被重新说明时才是虚函数C、只有被重新说明为 virtual 时才是虚函数D、都是虚函数拷贝构造函数的参数是 _;( 2.0 分)A、某个对象的指针名B、某个对象名C、某个对象的成员名D、某个对象的引用名以下不是描述类的成员函数的是 _;( 2.0 分)A、拷贝构造函数B、析构函数C、友元函数D、构造函数拷贝构造函数的参数是 _;( 2.0 分)A、某个对象的指针名细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -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、细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -预处理命令行都必需以 #号开头C、C+程序在执行过程中对预处理命令行进行处理D、在程序中凡是以 #号开头的语句行都是预处理命令行关于在调用模板函数时模板实参的使用 ,以下表述中正确选项 _;( 2.0 分)A、对于常规参数所对应的模板实参 ,任何情形下都不能省略B、对于虚拟类型参数所对应的模板实参 ,如能够省略就必需省略C、对于虚拟类型参数所对应的模板实参,假如能从模板函数的实参中获得相同的信息,就都可以省略D、对于虚拟类型参数所对应的模板实参 ,假如它是参数表中的最终的如干个参数 ,就都可以省略在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表 用“ ” 括起来的参数表 或从模板函数实参表 用“” 括起来的参数表 ;假如从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最终的如干参数,就模板实参表中的那几个参数可以省略;假如模板实参表中的实参都被省略了,就空表“ ”也可以不要,因此选项 D 错误;反之,对于某个模板实参,假如从模板函数的实参表中无法获得同样的信息,就不能省略; 或者虽然能够获得同样的信息,但在它后面仍有其他不能省略的实参,就其自身仍是不能省略;在派生类中 ,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的次序和函数的返回值 _;( 2.0 分)A、部分相同B、不同C、相同D、相容细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 19 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -一个 C+程序的执行是从 _.(2.0 分)A、本程序文件的第一个函数开头,到本程序main 函数终止B、本程序文件的第一个函数开头C、,到本程序文件的最终一个函数终止本程序的 main 函数开头 ,到本程序文件的最终一个函数终止D、本程序的 main 函数开头 ,到 main 函数终止以下对 C+语言函数的描述中A、,正确选项 _;( 2.0 分)C+程序必需由一个或一个以上的函数组成B、函数既可以嵌套定义又可以递归调用C、函数必需有返回值 ,否就不能使用函数D、C+程序中有调用关系的全部函数必需放在同一个程序文件中以下关于友元函数描述 ,正确选项 _;( 2.0 分)A、在类的外部定义友元函数时必需加上 friend 关键字B、一个友元函数不能同时定义为两个类的友元函数C、友元函数是独立于当前类的外部函数D、友元函数必需在类的外部进行定义友元函数 _;( 2.0 分)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 20 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -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 都有可能细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 21 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -B、二元成员运算符C、一元友元运算符D、一元成员运算符重载一目运算符没有参数,重载二目运算符要有一个参数关于纯虚函数和抽象类的描述A、抽象类只能作为基类来使用B、一个基类中声明有纯虚函数C、,错误选项 _(2.0 分),其纯虚函数的实现由派生类给出,该基类的派生类肯定不再是抽象类纯虚函数是一种特别的函数 ,它没有详细实现代码D、抽象类是指具有纯虚函数的类已知在一个类体中包含如下函数原型:VOLUME operator -VOLUMEconst;以下关于这个函数的表达中 ,错误选项 _;( 2.0 分)A、这是运算符 -的重载运算符函数B、这个函数所重载的运算符是一个一元运算符C、这是一个成员函数D、这个函数不转变数据成员的值以下定义数组的语句中正确选项 _;( 2.0 分)A、#define size 10 char str1size,str2size+2;B、char str;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 22 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -C、int num'10'D、int n=5; int ann+2;所谓数据封装就是将一组数据和与这组数据有关操作组装在一起 是_;( 2.0 分)A、数据块B、类C、函数体D、对象以下函数模板的定义中 ,合法的是 _;( 2.0 分)A、template T absT xreturn x<o. -x:x;B、template TabsT xreturn x<0. -x:x;C、template classT absT xreturn x<0. -x:x;D、templateT absT xreturn x<0. -x:x;,形成一个实体 ,这实体也就C+对 C 语言做了许多改进,即从面对过程变成为面对对象的主要缘由是_;(2.0 分)A、答应函数重载 ,并答应函数设置缺省参数B、规定函数说明符必需用原型C、增加了一些新的运算符细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 23 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -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 分)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 24 页,共 29 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -A、C+程序中有