您的当前位置:首页正文

c++选择题题集

2020-05-18 来源:客趣旅游网


C++选择题集

1、下列的各类函数中,不就是类的成员函数。( C )

A)构造函数 B)析构函数 C)友元函数 D)拷贝初始化构造函数

2、作用域运算符“::”的功能就是:( B )

A)标识作用域的级别的 B)指出作用域的范围的

C)给定作用域的大小的 D)标识成员就是属于哪个类的

3、下列说明中const char *ptr;其中ptr应该就是:( C )

A)指向字符常量的指针 B)指向字符的常量指针

C)指向字符串常量的指针 D)指向字符串的常量指针

4、已知:print()函数就是一个类的常成员函数,它无返回值,下列表示中,就是正确的。( A)void print()const; B)const void print();

C)void const print(): D)void print(const);

5、在类定义的外部,可以被访问的成员有( C )

A)所有类成员 B)private的类成员

A )

C)public的类成员 D)public或private的类成员

6、要求打开文件\"d:\\\可写入数据,正确的语句就是:( B )

ifstream infile(\"d:\\\ ios::in);

ifstream infile(\"d:\\\\\

ofstream infile(\"d:\\\ ios::out);

fstream infile(\"d:\\\\\

7、关于类与对象不正确的说法就是:( C )

A)类就是一种类型,它封装了数据与操作 B)对象就是类的实例

C)一个类的对象只有一个 D)一个对象必属于某个类

8、在C++中,类与类之间的继承关系具有( C )

A)自反性 B)对称性 C)传递性 D)反对称性

9.结构化程序设计所规定的三种基本控制结构就是:( C )

A)输入、处理、输出 B)树形、网形、环形

C)顺序、选择、循环 D)主程序、子程序、函数

10、C++语言就是从早期的C语言逐渐发展演变而来的、与C语言相比,它在求解问题方法上进行的最大改进就是:( B )

A)面向过程 B)面向对象 C)安全性 D)复用性

11、在C++中实现封装就是借助于( B )

A)枚举 B) 类 C) 数组 D)函数

12、C++语言就是从早期的C语言逐渐发展演变而来的与C语言相比,它在求解问题方法上进行的最大改进就是:( B )

A)面向过程 B)面向对象 C)安全性 D)复用性

13、在C++中用( D )能够实现将参数值带回。

a)数组 b)指针 c)引用 d)上述ABC都可

14、考虑函数原型void test(int a,int b=7,char ch=\"*\"),下面的函数调用中,属于不合法调用的就是:( C )

A)test(5) B)test(5,8) C)test(6,\"#\") D)test(0,0,\"*\");

15、下列关于类与对象的叙述中,错误的就是:( A )

A)一个类只能有一个对象; B)对象就是类的具体实例;

C)类就是对某一类对象的抽象; D)类与对象的关系就是一种数据类型与变量的关系。

16、已知: int m=10;下列表示引用的方法中,正确的就是:( C )

A)int &Z; B)int &t=10; C)int &X=m; D)float &f=&m;

17、对于int *pa[5];的描述中,正确的就是:( D )

A)pa就是一个指向数组的指针,所指向的数组就是5个int型元素

B)pa就是一个指向某数组中第5个元素的指针,该元素就是int型变量

C)pa[5]表示数组的第5个元素的值,就是int型的值

D)pa就是一个具有5个元素的指针数组,每个元素就是一个int型指针

18、定义析构函数时,应该注意:( C )

A)其名与类名完全相同 B)返回类型就是void类型

C)无形参,也不可重载 D)函数体中必须有delete语句

19、在公有继承的情况下,基类的成员(私有的除外)在派生类中的访问权限( A)受限制 B)保持不变 C)受保护 D)不受保护

20、下列不就是函数重载所要求的条件就是:( D )

A)函数名相同 B)参数个数不同

B )

C)参数类型不同 D)函数返回值类型不同

21、在C++中执行以下4条语句后输出rad值为:( C )

static int hot=200;

int &rad=hot;

hot=hot+100;

cout<A) 0 B) 100 C) 300 D) 200

22、类clase CC1的说明如下,错误的语句就是:( A clase CC1{

int a=2; //(A)

CC1(); //(B)

public:

CC1(int val); //(C)

~CC1(); //(D) )

};

23、下列各类函数中,不就是类的成员函数就是:( C )

A)构造函数 B)析构函数

C)友元函数 D)拷贝构造函数

24、类的指针成员的初始化就是通过函数完成的,这个函数通常就是:( A)析构函数 B) 构造函数 C)其它成员函数 D)友元函数

25、关于构造函数的说法,不正确的就是:( A )

A)没有定义构造函数时,系统将不会调用它 B)其名与类名完全相同C)它在对象被创建时由系统自动调用 D)没有返回值

26、按解释中的要求在下列程序划线处填入的正确语句就是:( C )

#include

class Base{

public:

void fun(){cout<<\"Base::fun\"<C )

};

class Derived:public Base{

public:

void fun()

{ //在此空格处调用基类的函数fun()

cout<<\"Derived::fun\"<};

A)fun(); B)Base、fun(); C)Base::fun(); D)Base->fun();

27、在C++中编译器所生成的文件的扩展名为( B )

A) 、cpp B) 、obj C) 、lib D) 、exe

28、在保护继承的情况下,基类的成员(私有的除外)在派生类中的访问权限( A)受限制 B)保持不变 C)受保护 D)不受保护

29、有如下一段程序:

int f1(float);

C )

int f2(char);

int f3(float);

int f4(float);

int(*pf)(float);

则以下不合法的就是:( C )

A)int(*p)(float)=&f1; B)pf=&f4; C)pf=&f2; D)pf=&f3;

30、通常拷贝构造函数的参数就是:( C )

A)对象名 B)对象的成员名 C)对象的引用名 D)对象的指针名

31、系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据就是:( A)参数个数 B)参数类型 C)函数名称 D)函数的返回值类型

32、下列描述中,正确的就是:( D )

A)所有的运算符号都可以重载。

B)基类类型的指针可以指向子类,子类类型的指针也可以指向基类。

C)可以在类的构造函数中对静态数据成员进行初始化。

)

D

D)动态联编要满足两个条件:被调用的成员函数就是虚函数;用指针或引用调用虚函数。

33、关于成员函数特征的描述中,错误的就是:( A )

A)成员函数一定就是内联函数 B)成员函数可以重载

C)成员函数可以设置参数的默认值 D)成员函数可以就是静态的

34、下列关于构造函数的描述中,错误的就是:( D )

A)构造函数可以设置默认参数; B)构造函数在定义类对象时自动执行

C)构造函数可以就是内联函数; D)构造函数不可以重载

35、下面描述中,表达错误的就是:( B )

A)公有继承时,基类中的public成员在派生类中仍就是public的

B)公有继承时,基类中的private成员在派生类中仍就是private的

C)公有继承时,基类中的protected成员在派生类中仍就是protected的

D)私有继承时,基类中的public成员在派生类中就是private的

36、C++语言就是从早期的C语言逐渐发展演变而来的,与C语言相比,C++在求解问题方法上进行的最大改进就是:( B )

A)面向过程 B)面向对象 C)安全性 D)复用性

37、有如下类声明“class A{int x; ……};”,则A类的成员x就是:( B )

A)公有数据成员 B)私有数据成员 C)公有成员函数 D)私有成员函数

38、有如下程序:执行后的输出结果应该就是:( A )

#include

class cla{

static int n;

public:

cla(){n++;}

~cla(){n--;}

static int get_n(){return n;}

};

int cla::n=0;

int main()

{

cla * p=new cla;

delete p;

cout<<\"n=\"<return 0;

}

A)n=0 B)n=1 C)n=3 D)n=4

39、有如下程序:执行后的输出结果应该就是:( A #include

class A{

public:

A(){cout<<\"A\";}

};

class C:public A{

public:

)

C(){cout<<\"C\";}

};

void main(){C cobj;}

A) AC B) CA C) A D) C

40、有如下程序:执行后的输出结果应该就是:( #include

class BASE{

public:

~BASE(){cout<<\"BASE\";}

};

class DERIVED: public BASE{

public:

~DERIVED(){cout<<\"DERIVED\";}

};

)

D

void main(){DERIVED x;}

A)BASE B)DERIVED C)BASEDERIVED D)DERIVEDBASE

41、类TM与类TN就是两个独立的类,那么类TM中哪种形式的数据成员一定就是不允许的:( C )

A)TM * a B)TN & a C)TM a D)TN a;

42、通过下述哪一项调用虚函数时,采用动态联编。( A )

A)对象指针 B)对象名 C)成员名限定 D)派生类名

43、在下述哪种情况下适宜采用inline定义内联函数。( C A)函数体含有循环语句 B)函数体含有递归语句

C)函数代码少、频繁调用 D)函数体含有switch语句

44、创建动态对象,需要使用操作符( A )

A) new B) delete C) 、 D) *

45、删除动态对象,需要使用操作符( B )

A) new B) delete C) 、 D) *

46、在C++中不能被重载的一组运算符就是:( A )

)

A):: ?: 、 sizeof B)?: 、 sizeof ++ ->

C):: ?: new delete D)++ -- ?: sizeof

47、如果类A被说明成类B的友元,则( C )

A)类A的成员即就是类B的成员

B)类B的成员即就是类A的成员

C)类A的成员函数可以访问类B的所有成员

D)类B的成员函数可以访问类A的所有成员

48、下面关于友元的描述中,错误的就是:( D )

A)友元函数可以直接访问该类的私有成员。

B)一个类的友元类中的所有成员函数都就是这个类的友元函数。

C)利用友元可以提高程序的运行效率,但却破坏了封装性。

D)友元关系不能被继承,就是双向可交换的。

49、下列虚基类的声明中,正确的就是:( B )

A)class virtual B: public A B)class B: virtual public A

C)class B: public A virtual D)virtual class B: public A

50、C++设置虚基类的目的就是( A )

A)消除二义性 B)简化程序 C)提高运行效率 D)减少目标代码

51、有如下模板定义:

template T fun(T x,T y){return x*x+y*y;}

在下列对fun的调用中,错误的就是:( C )

A)fun(2,8) B)fun(2、0,8、2) C)fun(2、3,8) D)fun(2,8、3)

52、通常情况下,函数模板中的类型参数个数不能就是( A )

A)0个 B)1个 C)2个 D)3个

53、以下关于this指针的叙述中正确的就是:( D )

A)任何与类相关的函数都有this指针; B)类的成员函数都有this指针;

C)类的友员函数都有this指针; D)类的非静态成员函数才有this指针;

54、当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数( A)都就是虚函数 B)只有被重新说明时才就是虚函数

A )

C)都不就是虚函数 D)只有被重新说明为virtual时才就是虚函数

55、在派生类中重新定义虚函数时,必须在下列哪方面与基类保持一致。( A )

A)参数类型 B)参数名字 C)操作内容 D)赋值

56、关于const关键字说法错误的就是( D )

A)const关键字可以修饰对象与成员函数 B)const对象不能被修改

C)const成员函数不能修改类数据成员 D)const可以用于说明类

57、执行如下程序后的输出结果就是:( B )

#include

class test{

static int count;

public:

test(){count++;}

~test(){count--;}

static int getCount(){return count;}

};

int test::count=0;

int main()

{

test * p=new test;

test * q=new test;

delete p;

cout<<\"count=\"<return 0;

}

A)count=0 B)count=1 C)count=2 D)count=3

58、关于类模板的说法正确的就是:( B )

A)类模板的主要作用就是生成抽象类

B)类模板实例化时,编译器将根据给出的模板实参生成一个类

C)在类模板中的数据成员具有同样类型

D)类模板中的成员函数没有返回值

59、有如下说明语句int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;则数值为9的表达式就是:( B )。

A)*p+9 B)*(p+8) C)*p+=9 D)p+7

60、以下关键字不能用来声明类的访问权限的就是:( C )

A)public B)private C)static D)protected

61、实现运行时的多态性采用( D )

A)重载函数 B)构造函数 C)析构函数 D)虚函数

62、下列说明语句中正确的就是:( D )

A)int a,&ra=a,&&ref=ra; B)int &refa[10];

C)int a,&ra=a,&*refp=&ra; D)int *pi, *&pref=pi;

63、进行文件操作时需要包含头文件( C )

A)iostream、h B)stdio、h C)fstream、h D)stdlib、64、使用如setw()的格式操纵符时需要包含头文件( C )

h

A)iostream、h B)fstream、h C)iomanip、h D)stdlib、h

65、对C++语言与C语言的兼容性,描述正确的就是:( A )

A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++

66.在C++中使用流进行输入输出,其中用于屏幕输出的对象就是:( C )

A)cerr B)cin C)cout D)c.对使用关键字new所开辟的动态存储空间,释放时必须使用( C )

A)free B)create C)delete D)realse

68.如没有使用private关键字定义类的数据成员,则默认为( A )

A)private B)public C)protected D)friend

69.使用值传递方式将实参传给形参,下列说法正确的就是:( A )

A)形参就是实参的备份 B)实参就是形参的备份

C)形参与实参就是同一对象 D)形参与实参无联系

70.在函数调用时,如某一默认参数要指明一个特定值,则有( A )

A)其之前所有参数都必须赋值 B)其之后所有参数都必须赋值

C)其前、后所有参数都必须赋值 D)其前、后所有参数都不必赋值

71.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的就是:( C )

A)int m = max(22,max(59,70)); B)int m = max(max(22,59),70);

C)int m = max(22,59,70); D)int m = max(59,max(22,70));

72.下列哪个类型函数不适合声明为内联函数( A )

A)函数体语句较多 B)函数体语句较少 C)函数执行时间较短 D)函数执行时间过长

73.int Func(int,int);不可与下列哪个函数构成重载( B )

A)int Func(int,int,int); B)double Func(int,int);

C)double Func(double,double); D)double Func(int,double);

74.类的私有成员可在何处访问( D )

A)通过子类的对象访问 B)本类及子类的成员函数中

C)通过该类对象访问 D)本类的成员函数中

75.如果没有为一个类定义任何构造函数的情况下,下列描述正确的就是:( A )

A)编译器总就是自动创建一个不带参数的构造函数 B)这个类没有构造函数

C)这个类不需要构造函数 D)该类不能通过编译

76.一个类可包含析构函数的个数就是:( B )

A)0个 B)1个 C)0个或1个 D)0个或多个

77.一个类可包含构造函数的个数就是:( D )

A)0个 B)0个或1个 C)0个或多个 D)1个或多个

78.this指针存在的目的就是:( B )

A)保证基类公有成员在子类中可以被访问

B)保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码

C)保证基类保护成员在子类中可以被访问

D)保证基类私有成员在子类中可以被访问

79.下列关于类的权限的描述错误的就是:( A )

A)类本身的成员函数只能访问自身的私有成员

B)类的对象只能访问该类的公有成员

C)普通函数不能直接访问类的公有成员,必须通过对象访问

D)一个类可以将另一个类的对象作为成员

80.在编译指令中,宏定义使用哪个指令( B )

A)#include B)#define C)#if D)#else

81.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的就是:( B )

A)A类构造函数先执行 B)成员构造函数先执行

C)两者并行执行 D)不能确定

82.下列描述错误的就是:( A )

A)在创建对象前,静态成员不存在 B)静态成员就是类的成员

C)静态成员不能就是虚函数 D)静态成员函数不能直接访问非静态成员

83.对于友元描述正确的就是:( B )

A)友元就是本类的成员函数 B)友元不就是本类的成员函数

C)友元不就是函数 D)友元不能访问本类私有成员

84.在哪种派生方式中,派生类可以访问基类中的protected成员( B )

A)public与private B)public与protected

C)protected与private D)仅protected

85、在每个C++程序中都必须包含的一个函数就是( B )

A)main() B)MAIN() C)name() D)function()

86、设x与y均为bool量,则x&&y为真的条件就是( A )

A)它们均为真 B)其中一个为真 C)它们均为假 D)其中一个为假

87、下面的哪个保留字不能作为函数的返回类型( C )

A)void B)int C)new D)long

88、假定a为一个整型数组名,则元素a[4]的字节地址为( C )

A)a+4 B)a+8 C)a+16 D)a+32

89、假定有类AB,有相应的构造函数定义,能正确执行“AB a(4),b(5), c[3] , *p[2]={&a,&b};”语句,请问执行完此语句后共调用该类构造函数的次数为( C )

A)3 B)4 C)5 D)6

90、假定有类AB,有相应的构造函数定义,能正确执行 “AB a(4),b(5), c[3] , *p[2]={&a,&b};”语句,请问执行完此语句后共调用该类析构函数的次数为( C )

A)3 B)4 C)5 D)6

91.对类中声明的变量,下列描述中正确的就是:( B )

A)属于全局变量 B)属于该类,某些情况下也可被该类不同实例所共享

C)只属于该类 D)任何情况下都可被该类所有实例共享

92、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( ? )

A)AB operator+(AB & A , AB & B); C)AB operator+(AB & A); D)AB * operator+(AB A);

B)AB & operator+(AB A);

因篇幅问题不能全部显示,请点此查看更多更全内容