正确答案:
B
∙
单选题
12.【第2章】关于delete运算符的下列描述中,()是错误的。
∙A它必须用于new返回的指针
∙B使用它删除对象时要调用析构函数
∙C对一个指针可以使用多次该运算符
∙D指针名前只有一对方括号符号,不管所删除数组的维数
正确答案:
C
∙
单选题
13.【第2章】下列语句中错误的是()。
∙Aint*p=newint(10);
∙Bint*p=newint[10];
∙Cint*p=newint;
∙Dint*p=newint[40](0);
正确答案:
D
∙
单选题
14.【第2章】下列表达式中,不正确的表达式是()。
∙Aa=1,b=1
∙By=int(x)
∙Ca=b=5
∙Di++
正确答案:
B
∙
单选题
15.【第2章】假设已经有定义“char*Constname="chen";”下面的语句中正确的是()。
∙Aname[3]='q';
∙Bname=
∙Cname=newChar[5];
∙Dname=newChar('q');
正确答案:
A
∙
单选题
16.【第2章】在()情况下适宜采用内联函数。
∙A函数代码小,频繁调用
∙B函数代码多,频繁调用
∙C函数体含有递归语句
∙D函数体含有循环语句
正确答案:
A
∙
单选题
17.【第2章】下面的类型声明中正确是()。
∙Aint&a[4];
∙Bint&*p;
∙Cint&&q;
∙Dinti,*p=&i;
正确答案:
D
∙
单选题
18.【第2章】关于new运算符的下列描述中,()是错误的。
∙A它可以用来动态创建对象和对象数组
∙B使用它创建的对象或对象数组可以使用运算符delete删除
∙C使用它创建对象时要调用构造函数
∙D使用它创建对象数组时必须指定初始值
正确答案:
D
∙
单选题
19.【第2章】charA[10]="abcde",B[8]="fghi";strcpy(a+3,b+1);printf("%d",strlen(a));执行下面程序后的输出结果为()。
∙A5
∙B6
∙C9
∙D10
正确答案:
B
∙
单选题
20.【第2章】设有以下说明语句,则下面的叙述中不正确的是()。
structXYZ{intx;floaty;Charz;}xyz;
∙Ax,y,z都是结构成员名
∙BstructXYZ是结构类型名
∙Cstruct是定义结构类型的关键字
∙DXYZ是结构类型名
正确答案:
D
∙
单选题
21.【第2章】假设已经有定义“constChar*name="chen";”下面的语句中错误的是()。
∙Aname[3]='q';
∙Bname=
∙Cname=newChar[5];
∙Dname=newChar('q');
正确答案:
A
∙
单选题
22.【第2章】C++程序中函数原型(函数声明)错误的写法是()。
∙AintAdd(intA,intB);
∙BintAdd(int,int);
∙CintAdd(intA,B);
∙DintAdd(intA,int);
正确答案:
C
∙
单选题
23.【第2章】如果定义并初始化一个数组ints[10]={1,2,3,4,5,6,7,8,9,10};则执行printf("%d\n",a[a[1]*a[2]])语句后的输出结果是()。
∙A3
∙B4
∙C7
∙D2
正确答案:
C
∙
单选题
24.【第2章】以下各语句或语句组中,正确的操作是()。
∙Achars[6]="123456";
∙Bchar*s;s="123456";
∙Cchar*s;gets(s);
∙Dchars[6];scanf("%s",&s);
正确答案:
B
∙
单选题
25.【第2章】表达式:
36.5-(12+7%4)/2.0的运算结果是()类型。
∙Adouble
∙Bint
∙Cfloat
∙Dchar
正确答案:
A
∙
单选题
26.【第2章】执行x=-1;do{x=x*x;}while(!
x);循环时,下列说法正确的是()。
∙A循环体将执行一次
∙B循环体将执行两次
∙C循环体将执行无限次
∙D系统将提示有语法错误
正确答案:
A
∙
单选题
27.【第2章】已知有预编译指令#defines(a,b)(a*b),则执行语句i=1;Area=s(3,5-i)+3;后,变量area的值为()。
∙A14
∙B15
∙C16
∙D17
正确答案:
D
∙
单选题
28.【第2章】表示year为闰年的c语言表达式为()。
∙A(year%4==0&&year%100?
!
=0)&&(year%400==0)
∙B(year%4==0&&year%100?
!
=0)||(year%400==0)
∙C(year%4==0)&&(year%400==0)
∙D(year%4==0)||(year%400==0)
正确答案:
B
∙
单选题
29.【第2章】执行下列程序段后,int*p,A=10,B=1;p=&b;A=a+(*p)++;变量a,b的值为:
()。
∙Aa=10,b=1
∙Ba=10,b=2
∙Ca=11,b=1
∙Da=11,b=2
正确答案:
D
∙
单选题
30.【第2章】下列描述中,()是错误的。
∙A内联函数主要解决程序的运行效率问题
∙B内联函数的定义必须出现在内联函数第一次被调用之前
∙C内联函数中可以包括各种语句
∙D对内联函数不可以进行异常接口声明
正确答案:
C
∙
单选题
31.【第2章】下列选项中,当x为大于1的奇数时,值为0的表达式是()。
∙Ax%2==1
∙Bx%2==0
∙Cx%2!
=0
∙Dx/2
正确答案:
B
∙
单选题
32.【第2章】下列条件语句中,功能与其他语句不同的是()。
∙Aif(a)printf("%d\n",x);elseprintf("%d\n",y)
∙Bif(a==0)printf("%d\n",y);elseprintf("%d\n",x)
∙Cif(a!
=0)printf("%d\n",x);elseprintf("%d\n",y)
∙Dif(a==0)printf("%d\n",x);elseprintf("%d\n",y)
正确答案:
D
∙
单选题
33.【第2章】重载函数在调用时选择的依据中,()是错误的。
∙A函数名字
∙B函数的返回类型
∙C参数个数
∙D参数的类型
正确答案:
B
∙
单选题
34.【第3章】析构函数的特征是()。
∙A析构函数可以有多个参数。
∙B析构函数只能在类体内定义。
∙C一个类中只能定义一个析构函数。
∙D一个类中能定义多个析构函数。
正确答案:
C
∙
单选题
35.【第3章】下面有关对构造函数的描述中,正确的是()。
∙A构造函数可以带有返回值
∙B构造函数的名字与类名完全相同
∙C构造函数必须带有参数
∙D构造函数必须定义,不能默认
正确答案:
B
∙
单选题
36.【第3章】定义类,再用类定义对象是()。
∙A结构化程序设计的主要特点。
∙BC语言的主要特点。
∙C面向过程的程序设计的主要特点
∙D面向对象程序设计的主要特点。
正确答案:
D
∙
单选题
37.【第3章】对象是现实世界中的一个实体,其特性的是()。
∙A必须有一个关键字,以示区别。
∙B每个对象都有对象标识名。
∙C只有数据属性。
∙D只有操作函数。
正确答案:
B
∙
单选题
38.【第3章】关于成员函数特征的下述描述,不正确的是()。
∙A成员函数一定要在类内定义。
∙B成员函数可以重载。
∙C成员函数可以设置参数的默认值。
∙D可在类内定义。
正确答案:
A
∙
单选题
39.【第3章】先定义类,再用类定义对象、对象数组、对象指针是()。
∙A结构化程序设计的主要特点。
∙BC语言的主要特点。
∙C面向过程的程序设计的主要特点。
∙D面向对象程序设计的主要特点。
正确答案:
D
∙
单选题
40.【第3章】的概念是()。
∙A所有对象的集合。
∙B同一类记录的集合。
∙C同一类数据的集合。
∙D对一组具有共同的属性特征和行为特征的对象的抽象。
正确答案:
D
∙
单选题
41.【第3章】是构造函数的特征是()。
∙A构造函数不能与类同名。
∙B构造函数必须说明返回类型。
∙C构造函数可以有形式参数。
∙D程序中必须有调用构造函数的语句。
正确答案:
C
∙
单选题
42.【第3章】造函数是在()时被执行的。
∙A程序编译
∙B创建对象
∙C创建类
∙D程序装人内存
正确答案:
B
∙
单选题
43.【第3章】元的作用之一是()。
∙A提高程序的运行效率
∙B加强类的封装性
∙C实现数据的隐藏性
∙D增加成员函数的种类
正确答案:
A
∙
单选题
44.【第3章】面向对象的程序设计中,定义类时保留字是用()。
∙Atype
∙Bclass
∙Cprivate
∙Dpublic
正确答案:
D
∙
单选题
45.【第3章】C++中,类和对象之间的关系是()。
∙A结构类型和结构体的关系。
∙B定义和被定义的关系。
∙C调用和被调用的关系。
∙D型和值的关系。
正确答案:
A
∙
单选题
46.【第3章】声明类时,下面的说法正确的是()。
∙A可以在类的声明中给数据成员赋初值
∙B数据成员的数据类型可以是registe
∙Cprivate、public、protected可以按任意顺序出现
∙D没有用private、public、protected定义的数据成员是公有成员
正确答案:
C
∙
单选题
47.【第3章】下列的各种函数中,是本类的成员函数()。
∙A构造函数
∙B拷贝构造函数
∙C友元函数
∙D缺省参数的构造函数
正确答案:
C
∙
单选题
48.【第3章】不是析构函数的特征是()。
∙A析构函数可以有多个参数。
∙B析构函数是成员函数。
∙C一个类中只能定义一个析构函数。
∙D析构函数不能有参数。
正确答案:
A
∙
单选题
49.【第3章】是构造函数的特征是()。
∙A构造函数不可以有形式参数。
∙B在创建对象时被执行。
∙C构造函数与类不同名。
∙D构造函数必须说明返回类型。
正确答案:
B
∙
单选题
50.【第3章】下列的各函数中,是成员函数的是()。
∙A主函数
∙B返回对象的函数
∙C默认参数的构造函数
∙D友元函数
正确答案:
C
∙
单选题
51.【第3章】类的友元可以访问该类的()。
∙A只能是数据成员
∙B所有成员
∙C只能是成员函数
∙D只能是公有成员
正确答案:
B
∙
单选题
52.【第3章】下面有关友元函数的描述中,正确的说法是()。
∙A友元函数是独立于当前类的外部函数
∙B一个友元函数不能同时定义为两个类的友元函数
∙C友元函数必须在类的外部定义
∙D在外部定义友元函数时,必须加关键字friend
正确答案:
A
∙
单选题
53.【第3章】类的友元允许访问该类的()。
∙A只能是数据成员
∙B私有成员
∙C只能是成员函数
∙D只能是公有成员
正确答案:
B
∙
单选题
54.【第3章】不是构造函数的特征是()。
∙A构造函数与类同名。
∙B构造函数必须说明返回类型。
∙C构造函数可以有形式参数。
∙D编译系统会自动调用构造函数。
正确答案:
B
∙
单选题
55.【第3章】对象是现实世界中的一个实体,不是其特性的是()。
∙A必须有一个关键字,以示区别。
∙B每个对象必须有一个名字。
∙C有属性。
∙D有操作。
正确答案:
A
∙
单选题
56.【第3章】下列的各函数中,不是成员函数的是()。
∙A构造函数
∙B拷贝构造函数
∙C默认参数的构造函数
∙D友元函数
正确答案:
D
∙
单选题
57.【第3章】下面有关静态成员函数的描述中,正确的是()。
∙A在静态成员函数中可以使用this指针
∙B在建立对象前,就可以为静态数据成员赋值
∙C静态成员函数在类外定义时,要用static前缀
∙D静态成员函数只能在类外定义
正确答案:
B
∙
单选题
58.【第3章】现实世界中的对象,以下不是它的特性的是()。
∙A每一个必须有一个名字以区别于其他对象;
∙B用属性来描述对象的某些特征;
∙C有一组操作,每组操作决定对象的一种行为;
∙D有一关键字class
正确答案:
D
∙
单选题
59.【第3章】下面有关析构函数特征的描述中,正确的是()。
∙A一个类中可以定义多个析构函数
∙B析构函数名与类名完全相同
∙C析构函数不能指定返回类型
∙D析构函数可以有一个或多个参数
正确答案:
C
∙
单选题
60.【第3章】关于成员函数特征的下述描述,正确的是()。
∙A成员函数一定是内置函数。
∙B成员函数一定要在类外定义完整。
∙C成员函数可以设置参数的默认值。
∙D成员函数一定要在类内定义完整。
正确答案:
C
∙
单选题
61.【第3章】于成员函数的说法,不正确的是()。
∙A成员函数可以是内置函数。
∙B成员函数可以在类内先声明,再在类外定义完整。
∙C成员函数可以设置参数的默认值。
∙D成员函数一定要在类内定义完整。
正确答案:
D
∙
单选题
62.【第4章】置虚基类的目的是()。
∙A简化程序
∙B消除二义性
∙C提高运行效率
∙D减少目标代码
正确答案:
B
∙
单选题
63.【第4章】个基类可以派生出一个派生类,该派生类再派生出一个派生类,这种继承关系称为()。
∙A多继承
∙B多重继承
∙C双重继承
∙D单继承
正确答案:
D
∙
单选题
64.【第4章】生类构造函数的执行顺序正确的是()。
∙A先执行基类的构造函数,再执行派生类的构造函数。
∙B先执行派生类的构造函数,再执行基类的构造函数。
∙C先执行派生类构造函数的函数体,再执行基类构造函数的函数体。
∙D以上都不是。
正确答案:
A
∙
单选题
65.【第4章】类成员在派生类中的访问属性描述中,错误的是()。
∙A无论哪种派生,基类的公有成员允许派生类的成员函数访问。
∙B无论哪种派生,基类的保护成员允许派生类的成员函数访问。
∙C无论哪种派生,基类的私有成员不允许派生类的成员函数访问。
∙D无论哪种派生,基类的保护成员不允许派生类的成员函数访问。
正确答案:
D
∙
单选题
66.【第4章】类和派生类的相互关系不正确的是()。
∙A从基类到派生类称为派生。
∙B派生类还可以再作为另一派生类的基类。
∙C从派生类到基类称为派生。
∙D从派生类到基类称为继承。
正确答案:
C
∙
单选题
67.【第4章】设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是()。
∙Aclasederived:
:
studentprivate{…};
∙Bclasederived:
:
studentpublic{…};
∙Cclasederived:
:
privatestudent{…};
∙Dclasederived:
:
publicstudent{…};
正确答案:
C
∙
单选题
68.【第4章】类和派生类正确的关系是()。
∙A从基类到派生类称为继承。
∙B从派生类到基类称为派生。
∙C派生类包含了基类。
∙D从基类到派生类称为派生。
正确答案:
D
∙
单选题
69.【第4章】个基类可以派生出二个派生类,这种继承关系称为()。
∙A多继承
∙B多重继承
∙C单继承
∙D双重继承
正确答案:
C
∙
单选题
70.【第4章】类成员在派生类中的访问属性描述中,正确的是()。
∙A无论哪种派生,基类的公有成员不允许派生类的成员函数访问。
∙B无论哪种派生,基类的保护成员不允许派生类的成员函数访问。
∙C无论哪种派生,基类的私有成员允许派生类的成员函数访问。
∙D无论哪种派生,基类的保护成员允许派生类的成员函数访问。
正确答案:
D
∙
单选题
71.【第4章】多继承构造函数定义中,几个基类构造函数用()分隔。
∙A:
∙B;
∙C,
∙D:
:
正确答案:
C
∙
单选题
72.【第4章】用派中类的主要原因是()。
∙A提高代码的可重用性
∙B提高程序的运行效率
∙C加强类的封装性
∙D实现数据的隐藏
正确答案:
A
∙
单选题
73.【第4章】生类析构函数的执行顺序正确的是()。
∙A先执行基类的析构函数,再执行派生类的析构函数。
∙B先执行派生类的析构函数,再执行基类的析构函数。
∙C基类析构函数执行总是在先。
∙D以上都不是。
正确答案:
B
∙
单选题
74.【第4章】类和派生类的相互关系正确的是()。
∙A从基类到派生类称为派生。
∙B从基类到派生类称为继承。
∙C从派生类到基类称为派生。
∙D派生类包含了基类。
正确答案:
A
∙
单选题
75.【第5章】派生类中虚函数原型的()。
∙A函数类型可以与基类中虚函数的原型不同
∙B参数个数可以与基类中虚函数的原型不同
∙C参数类型可以与基