1、面向对象程序设计题库C+docx、单项选择题1.在 C+ 语言中,对函数参数默认值描述正确的是:( D )A)函数参数的默认值只能设定一个B)一个函数的参数若有多个,则参数默认值的设定可以不连续C)函数参数必须设定默认值D)在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值2.假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的( B )A)有参构造函数 B) 无参构造函数C) 拷贝构造函数 D) 赋值构造函数3.下述关于开关语句的描述中,( )是正确的。A)开关语句中 default 子句可以没有,也可以有一个 ;B)开关语句中每个语句序列中必须有 break 语句
2、 ;C)开关语句中 default 子句只能放在最后;D)开关语句中 case 子句后面的表达式可以是整形表达式。4.关于对象概念的描述中,( ) 是错误的。A)对象就是 C 语言中的结构变量 ;B)对象代表着正在创建的系统中的一个实体;C)对象是一个状态和操作(或方法)的封装体D) 对象之间的信息传递是通过消息进行的5.下列给字符数组进行初始化中,( )是正确的。7.声明类 test 的拷贝构造函数的正确形式是 ( D )8.关于 new 运算符的下列描述中,( ) 是错的。A)它可以用来动态创建对象和对象数组;B)使用它创建的对象或对象数组可以使用运算符 delete 删除 ;C)使用它创
3、建对象时要调用构造函数;D)使用它创建对象数组时必须指定初始值。9.在 C+ 中有以下 4 条语句: static int hot=200;int &rad=hot;A)0 B) 100C)300 D) 20010.下列关于构造函数的描述中,错误的是 ( B )A)构造函数可以设置默认参数;B)构造函数在声明对象时自动执行;C)构造函数可以对静态数据成员进行初始化;D)构造函数可以重载;11.下面关于重载函数的说明中正确的是 ( )。A)重载函数必须具有不同的返回类型。B)重载函数形参的个数必须不同C)重载函数必须具有不同的形式参数表D) 重载函数名可以不同12.下列关于 C+ 函数的说明中,
4、正确的是 ( )。A)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是 return 语句C)C+ 要求在调用一个函数前必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式13.已知函数原型为:void foo(int*, long &b);实参定义为:int i;long f;则正确的调用语句是 ( ).A)foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f);14.C+ 中对于结构中定义的成员,其默认的访问权限为 ( )。A)public B) protected C) privat
5、e D) static15.下列关于类与对象的说法中,不正确的是 ( )。A)对象是类的一个实例B)任何对象只能属于一个具体的类C)一个类只能有一个对象D)类与对象的关系和数据类型与变量的关系相似16.下列关于构造函数的描述中错误的是 ( )21.下列属于 C+ 语句的是A); B) a=17 C) a+5 D) coutb?a:cd?c:d 的值为”A) 3 B) 2 C) 1 D) 425.执行下列语句后的输出结果是 。 int hot=100;int &rad=hot; hot+=100;coutradendl;A) 0 B) 100C)200 D) 30026.下列关于 break 语
6、句的叙述不正确的是 。A) break 语句可用于循环体中,它将使执行流程跳出本层循环体;break 语句可用于 switch 语句中,它将使执行流程跳出当前的 switch 语句; break 语句可用于 if 语句中,它将使执行流程跳出当前 if 语句; break 语句在一层循环体中可以出现多次。27.下面关于类的对象性质的描述,正确的是 。A) 对象之间不可以相互赋值 B) 不可以说明指向对象的指针C) 对象不能用作数组元素 D) 一个对象能用作另一个对象的成员28.在 C+ 中实现封装是借助于 。A) 枚举 B) 类C) 数组 D) 函数29.下列不是描述类的成员函数的是 。A) 构
7、造函数 B) 析构函数C) 友元函数 D) 拷贝构造函数30.不能作为函数重载判断依据的是 。A) 参数个数 B) 参数类型C)函数名称 D)返回值类型31.假定一个类的构造函数为 A(int aa,int bb)a=aa+;b=a*bb+; ,则执行A X(4,5); 语句后, X.a 和 X.b 的值分别为 。A) 4 和 5 B) 5 和 30C) 4 和 20 D) 20 和 532.对于 double (*p)10; 的描述, 是正确的。A) p 是一个指向数组的指针,所指向的数组是 10 个 double 型元素;B)p 是一个指向某个数组中第 10 个元素的指针,该元素是 dou
8、ble 型变量;C)p5 表示某个数组的第 10 个元素的值;D)p 是一个具有 10 个元素的指针数组,每个元素是一个 double 型指针;D) 构造函数不可以重载C) 对象的初始化 D) 对象的删除B) 静态数据成员不可以被类的实例调用C) *pc+= y D) pc=&c35.下列关于构造函数的叙述,错误的是A) 构造函数可以设置默认参数;B)构造函数在说明类变量时自动调用;C)构造函数可以对静态数据成员进行初始化;D)构造函数可以重载;36.下列关于构造函数的描述中错误的是 ( )A) 构造函数可以设置默认参数 B) 构造函数在定义类对象时自动执行C) 构造函数可以对静态数据成员进行
9、初始化37.类的析构函数的作用是 ( )。A) 作为类的一般成员函数 B) 类的初始化38.以下关于静态数据成员的描述正确的是 ( )。A) 静态数据成员可以在类体中进行初始化C) 静态数据成员不能受 protected 面关于友元函数的描述中正确的是A) 友元函数的实现必须在类的内部定义C) 友元函数破坏了类的封装性和隐藏性40. 下面关于友元函数的描述中错误的是控制符的作用 D) 静态数据成员可以直接用类名调用39.)。B) 友元函数是类的成员函数C) 友元函数不能访问类的私有成员 )。A) 如果类 A 是类 B 的友元,那么类 B 也是类 A 的友元B)如果函数 fun() 被说明为类
10、A 的友元,那么在 fun() 中可以访问类 A 的私有成员C)友元关系不能被继承D) 如果类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元函数41.重载函数在调用时选择的依据中,错误的是( )A. 函数的参数 B. 参数的类型C. 函数的名字D. 函数的类型42.一个函数功能不太复杂,但要求被频繁调用,选用( .)A. 内联函数 B. 重载函数C.递归函数D. 嵌套函数43.下列不是描述类的成员函数的是 ()A. 构造函数 B. 析构函数C.友元函数D. 拷贝构造函数44.构造函数不具备的特征的是 ()A. 构造函数的函数名与类名相同 B. 构造函数可以重载C. 构造函
11、数可以设置默认参数 D. 构造函数可以指定返回类型45.通常,拷贝构造函数的参数是 ( )A. 某个对象名 B. 某个对象的成员名C. 某个对象的引用名 D. 某个对象的指针名46.继承机制的作用是 ( )A. 信息隐藏 B. 数据封装 C. 代码重用 D. 数据抽象47.类的析构函数的作用是 ( )A. 一般成员函数 B.类的初始化 C.对象的初始化 D.删除对象创建的所有对象48.类的析构函数是在 ( ) 调用的。A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用49.已知 print () 函数是一个类无返回值的常成员函数,下列表示中正确的是 ( )。A.void pr
12、int()const B.const void print()C.void const print ; D.void print (const );50.如果类 A 被说明成类 B 的友元,则 ( )A. 类 A 的成员即类 B 的成员 B. 类 B 的成员即类 A 的成员C. 类 A 的成员函数不得访问类 B 的成员 D. 类 B 不一定是类 A 的友元51.通过一个对象调用虚函数时, C+ 系统对该调用采用 ( )。A.动态联编 B.静态联编 C.不确定是哪种联编 D.函数重载52.在公有继承的情况下,基类成员在派生类中的访问权限 ( )A. 受限制 B. 保持不变 C. 受保护 D. 不
13、受保护53.在 C+ 中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为 ( ) 指针。A.对象 B.派生 C基类 D.this54.假定 AB 为一个类,则执行 AB x ; 语句时将自动调用该类的 ( )A. 有参构造函数 B. 无参构造函数C. 拷贝构造函数 D. 赋值构造函数55.C+ 语言建立类族是通过 ( )A. 类的嵌套 B. 类的继承 C. 虚函数 D. 抽象类二、判断题1、C+ 中,数组下标从 1 开始。 ( 错 )2、C+ 允许对字符串进行整体操作。 ( )3、 break 语句也可以用于 if 体内,它可退出 if 语句。( )4、 在说
14、明语句 Char a( A ),&b=a,*pa=&a; 中,b的值与*pa的值相等。()5、 对象数组的元素可以是不同类的对象。( )6、 私有继承中,基类中所有成员对派生类的对象都是不可见的。( )7、 类中所提供的成员函数可以直接访问私有成员。( )8、 按照标识符的要求,下划线是不能组成正确标识符的。( )9、 函数的默认参数没有顺序要求,可以随意定义。( )10、 在C+语言中,” A”占两个字节,而A占一个字节。( )11 、 C+ 语言支持封装性和继承性,不支持多态性。 错 13、字符串 sdfgh 的长度是 5 。 14、引用和指针都可作函数参数。 15、友元函数说明在类体内,它是一种成员函数。 16、友元类必须被说明为公有成员。 17、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。 18、析构函数不能被继承。 19、运算符重载以后,其优先级和结合性都不能改变。 20、在 C+ 中,函数名实际上是一个指针,它指向函数的入口。 21、构造函数可以被继承。 ( )22、析构函数不能被继承。 ( )23、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。 ( )24、解决多
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1