1、C+考试题库及答案精简C+期末考试题库一、单选题:1。 能作为C+程序的基本单位是( C )。 A。 字符 B. 语句 C. 函数 D. 源程序文件2。 程序中主函数的名字为( A )。 A。 main B。 MAIN C. Main D。 任意标识符3。 关于C+与C语言的关系的描述中,(D)是错误的。 A. C语言是C+的一个子集; B。 C语言与C+是兼容的; C。 C+对C语言进行了一些改进; D。 C+和C语言都是面向对象的4。 可用作C+语言用户标识符的一组标识符是( B)。A。 void define +WORD B. a3_b3 _123 YNC。 for abc Case D
2、。 2a DO sizeof5. 存储以下数据,占用存储字节最多的是( D)。 A. 0 B. 0 C。 “0” D. 0.06. 设int a=12;则执行完语句a+=aa;后,a的值是( C )。 A。 12 B. 144 C. 156 D。 2887。 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是( D ).A。 1.0/a*b*c B. 1/(ab*c) C. 1/a/b/(float)c D. 1.0/a/b/c8。 以下说法中正确的是(B). A. C+程序总是从第一个定义的函数开始执行 B. C+程序总是从main函数开始执行 C。
3、 C+函数必须有返回值,否则不能使用函数 D。 C+程序中有调用关系的所有函数必须放在同一个程序文件中9. 下面有关构造函数的描述中,正确的是(B )。 A。 构造函数可以带有返回值 B。 构造函数的名字与类名完全相同 C。 构造函数必须带有参数 D. 构造函数必须定义,不能缺省10.10。在声明类时,下面的说法正确的是( )。A. 可以在类的声明中给数据成员赋初值B。 数据成员的数据类型可以是registerC。 private,public,protected可以按任意顺序出现D. 没有用private,public,protected定义的数据成员是公有成员11。在下面有关析构函数特征的
4、描述中,正确的是( A )。 A。 一个类可以有多个析构函数 B. 析构函数与类名完全相同 C. 析构函数不能指定返回类型 D。 析构函数可以有一个或多个参数12.构造函数是在(B )时被执行的. A。 程序编译 B。 创建对象 C. 创建类 D. 程序装入内存13. 下面有关静态成员函数的描述中,正确的是( B ) A。 在静态成员函数中可以使用this指针 B。 在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义是,要用static前缀 D. 静态成员函数只能在类外定义14。下面有关友员函数的描述中,真确的说法是(A ) A。 友员函数是独立于当前类的外部函数 B。 一个
5、友员函数不可以同时定义为两个类的友员函数 C. 友员函数必须在类的外部进行定义 D。 在类的外部定义友员函数时必须加上friend关键字15。友员的作用之一是( A ) A. 提高程序的运行效率 B。 加强类的封装 C。 实现数据的隐蔽性 D. 增加成员函数的种类16。使用派生类的主要原因是( A ) A. 提高代码的可重用性 B. 提高程序的运行效率 C。 加强类的封装性 D. 实现数据的隐藏17。在C+中继承方式有几中( C ) A。 1 B. 2 C. 3 D。 418。假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的
6、正确写法是( D ) A. class derived ::student private /。 B。 class derived :student public /。 C。 class derived ::public student /。 D. class derived ::private student /.19.派生类的对象对它的基类成员中(C)是可以访问的。 A。公有继承的公有成员; B。公有继承的私有成员; C.公有继承的保护成员; D.私有继承的公有成员。20。 类中定义的成员默认为(A )访问属性. A. public B. private C. protected D. f
7、riend21。下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )合适。 A。 内联函数; B. 重载函数; C. 递归调用; D. 嵌套调用。22。C+对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。 A。 增加了一些新的运算符; B. 允许函数重载,并允许设置缺省参数; C。 规定函数说明必须用原型; D。 引进了类和对象的概念;23。按照标识符的要求,(A)符号不能组成标识符。 A。 连接符 B. 下划线 C.大小写字母 D。 数字字符24.下列变量名中,( A )是合法的。 A CHINA B byte-
8、size C double D A+a25。下列各种函数中,( C)不是类的成员函数。 A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数26.下列( A )是正确的语句。 A ; B a=17 C x+y D cout0); D) ;59、(D)不是构造函数的特征.A)构造函数的函数名与类名相同 B)构造函数可以重载C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明60、以下程序段中与语句k=ab? 1:0;功能等价的是(D )。A) if(ab) k=1; B) if(ab) k=0C)if(ab) k=1; D)if(ab) k=0;else k=0; else k=1;
9、61、下列常量中,( D)不是字符常量。A)005 B)n C) c D)”a62、表示“x大于1而小于10”的逻辑表达式是(B )。A)1x10 B)x1&x=10) D)x1|x1063、关于成员函数特征的下列描述中,(A)是错误的。A)成员函数一定是内联函数 B)成员函数可以重载C)成员函数可以设置缺省参数值 D)成员函数可以是静态的64、有以下程序#include iostream。hvoid main( ) int i,s=0;for(i=1;i10;i+=2) s+=i;couts;程序执行后的输出结果是(C )。A) 自然数19的累加和 B) 自然数110的累加和C) 自然数19
10、中的奇数之和 D) 自然数110中的偶数之和65、设有定义:int n=0,p=&n,*q=&p;则以下选项中,正确的赋值语句是(D)。A) p=1; B) *q=2; C) q=p; D) *p=5;66、( A)能正确输出结果:C+。 A) char s=”C+”;coutsendl; B)char s3=”C+;coutsendl; C)char s3=C,+,+,0;coutsendl; D)char s3=C,+,+;coutsendl;67、有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,p=a,b;b=p5;b中的值是( B)。A)5 B)6 C) 8 D)
11、 968、有以下程序#include iostream.hvoid main( ) char *p10=abc,”aabdfg”,”dcdbe”,abbd”,”cd”;coutp3endl;执行后输出结果是 BA)dcdbe B) abbd C) abc D) abb69、下列静态数据成员的特性中,(C)是错误的。A) 说明静态数据成员时前边要加修饰符staticB) 静态数据成员要在类体外进行初始化C) 静态数据成员不是所有对象所共用的D)引用静态数据成员时,要在其名称前加类名和作用域运算符70、有以下语句struct S int g; char h; T;则下面叙述中不正确的是(C )。A
12、)S是结构体名 B)该结构体包含2个成员C)S是struct类型的变量 D)T是struct S类型的变量71、派生类的对象对它的基类成员中(A)是可以访问的。A)公有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)私有继承的公有成员72、实现运行时的多态性用 。DA、重载函数 B、构造函数 C、析构函数 D、虚函数73下列变量名中,( A )是合法的。 A. CHINA B. bytesize C. double D。 A+a74. 在int b3=1,3,2,4,5,6,0;b22的值是(D )。 A。 0 B。 2 C. 5 D。 675. 下列各运算符中,(B)优先级最高
13、.A。 +(双目) B。 (单目) C。 = D。 =76。 下列for循环的次数为( B ).for(int i(0),x=0;!x&i和作用域运算符;D。 静态数据成员不是所有对象所共用的.97. ( A)是析构函数的特征。A。 一个类中只能定义一个析构函数; B. 析构函数与类名不同;C. 析构函数的定义只能在类体内; D。 析构函数可以有各个或多个参数。;98. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,( C )是正确的。A。 A1。p=5; B。 A1-p=5;C。 A.*p=5; D。 *A1。p=5;99. 关于new运算符的下列描述中,
14、( D )是错的。A。 它可以用来动态创建对象和对象数组;B。 使用它创建的对象或对象数组可以使用运算符delete删除;C. 使用它创建对象时要调用构造函数;D。 使用它创建对象数组时必须指定初始值。 100. 派生类的构造函数的成员初始化列中,不能包含(C ).A. 基类的构造函数;B. 派生类中子对象的初始化;C. 基类的子对象初始化;D. 派生类中一般数据成员的初始化101. 派生类的对象对它的基类成员中( A)是可以访问的。A. 公有继承的公有成员; B。 公有继承的私有成员;C. 公有继承的保护成员;D. 私有继承的公有成员。102C+类体系中,不能被派生类继承的有( A)。A。构造函数 B。虚函数 C。静态成员函数 D.赋值操作函数103下面标识符中正确的是(A )。A_abc B3ab C int D+ab104下列哪项( D )不是面向对象程序设计的主要特征?a。封装 b.继承 c。多态 d.结构105若有以下定义,则说法错误的是( D)。 int a=100,p=&a ;A声明变量p,其中*表示p是一个指针变量B变量p经初始化