2011-2012(1)C++复习资料
- 格式:doc
- 大小:86.50 KB
- 文档页数:17
试卷题型:
1) 选择题15题,共30分
2) 填空题15题,共30分
3) 程序阅读题3题,共15分
4) 简答题3题,共15分 5)编程题1题,共10分
一、 选择题:
1) C++源程序文件的扩展名为( A )。
A.CPP B.C C.DLL D.EXE
2) 下列C++标点符号中表示行注释开始的是( C )。
A.# B.; C.// D.}
3) 在C++中,使用流进行输入输出,其中用于屏幕输入(A)
A. cin
B. cerr
C. cout
D. clog
4) 每个C++程序都必须由且仅有一个( B )。
A.预处理命令 B.主函数 C.函数 D.语句
5) 已知:int k=1000;下列表示引用的方法中,( B )是正确的。
A.char &y; B.int &x=k; C.int &z=1000; D.float &t=&k;
6) ( B )是给对象取了一个别名,他引入了对象的同义词。
A.指针 B.引用 C.枚举 D.结构
7) 一个函数功能不太复杂应选用( A )。
A.内联函数 B.重载函数 C.递归函数 D.嵌套函数
8) 考虑函数原型void test(int a,int b=7,char c=’*’),下面的函数调用中,属于不合法调用的是( C )。
A.test(5); B.test(5,8); C.test(6,"#") D.test(0,0,’*’);
9) 适宜采用inline定义函数情况是(C)
A. 函数体含有循环语句
B. 函数体含有递归语句
C. 函数代码少、频繁调用
D. 函数代码多、不常调用
10) 在C++中,关于下列设置参数默认值的描述中,正确的是( C )。
A.不允许设置参数的默认值
B.设置参数默认值只能在定义函数时设置
C.设置参数默认值时,应该实现设置右边的再设置左边的
D.设置参数默认值时,应该全部参数都设置 11) 有如下定义:const char * ptr; 则ptr 应该是( C )
A.指向字符的指针 B.指向字符的常量指针
C.指向字符串常量的指针 D.指向字符串的常量指针
12) 下面有关new和delete操作符的说法。哪个是不正确的
选项A:使用new操作符,可以动态分配全局堆中的内存资源
选项B:若指针P的类型已由A强制转换为void*,那么执行语句delete P时,类A的析构函数不会被调用。
选项C:实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。
选项D:执行语句A* P=new A[100]时,类A的构造函数只会被调用一次。
试题答案:D
13) 下列有关重载函数的说法中正确的是
选项A:重载函数必须具有不同的返回值类型
选项B:重载函数参数个数必须相同
选项C:重载函数必须有不同的形参列表
选项D:重载函数名可以不同
试题答案:C
14) 对于下面的几个函数:
1. void f(int x) (…)
2. int f(int y) (…)
3.int f(int i,int j)(…)
4. floct k(int x) (…)
是重载函数的是:
选项A:4个全部
选项B:1和4
选项C:2和3
选项D:3和4
试题答案:C
15) 不能作为函数重载判断依据的是( D )。
A.参数个数 B.参数类型
C.函数名字 D.函数的返回类型
16) C++中声明常量的关键字是( A )。
A. const B. extern C. public D. enum
17) 与C语言printf(“Hello word\n”) ;语句功能相同的C++语句是( D )
选项A:cout>>”Hello word\n”
选项B:cin>>” Hello word\n”
选项C:cout<<” Hello word\n”
选项D:cin<<” Hello word\n”
18) 关于类概念的描述中,( D )是错误的。
A.类是抽象数据类型的实现;
B.类是具有共同行为的若干对象的统一描述体;
C.类是创建对象的样板;
D.类不是C++中的一种数据类型;
19) 以下关于C++中类的概念理解正确的是
选项A:类作为一种数据类型,在定义时不分配任何内存
选项B:类的成员要么是private的要么是public的
选项C:在类中,如果没有显示指定成员的访问权限,则缺省的访问权限是public
选项D:类对象与一般变量不同的是,在使用时无需初始化即可直接使用
试题答案:A
20) 当一个派生类私有继承一个基类时,基类中的所有保护成员成为派生类的( )。
选项A:public成员
选项B:private成员
选项C:protected成员
选项D:友元
试题答案:B
21) 有关类的说法不正确的是( D )。
A.类是一种用户自定义的数据类型。
B.只有类中的成员函数才能存取类中的私有成员。
C.在类中,如果不做特别说明,所指的数据均为私有类型。
D.在类中,如果不做特别说明,所指的成员函数均为公有类型。
22) 在下面几个元素中,不是面向对象的要素的是( A );
A. 重载 B. 对象 C. 类 D. 继承
23) C++中,封装是借助于(B )达到的。
A.指针 B. 类 C. 数组 D. 函数
24) 关于成员函数特征的下述描述中,( A )是错误的。
A.成员函数是内联函数; B.成员函数可以重载;
C.成员函数可以设置参数的缺省值; D.成员函数可以是静态的。 25) 下面( D )是对类ttt的声明。
A.void class ttt;
B.class int ttt;
C.class ttt( );
D.class ttt;
26) 下列关于构造函数的描述中,错误的是D
选项A:构造函数可以设置默认的参数
选项B:构造函数在定义类对象时自动执行
选项C:构造函数可以是内联函数
选项D:构造函数不可以重载
27) 下面说法中正确的是( B )
A.一个类只能定义一个构造函数,但可以定义多个析构函数
B.一个类只能定义一个析构函数,但可以定义多个构造函数
C.构造函数与析构函数同名,知识名字前加了一个求反符号(~)
D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
28) 假定一个类的构造函数为A(int aa,int bb) {a=aa--;b=a*bb;},则执行A
x(4,5);语句后,x.a和x.b的值分别为(C)
A. 3和15
B. 5和4
C. 4和20
D. 20和5
答案:C
29) 有关析构函数的说法不正确的是( B )
A.析构函数有且仅有一个
B.析构函数和构造函数一样可以有形参
C.析构函数的功能是用来释放一个对象
D.析构函数无任何函数类型
30) 下列不能作为类的成员的是(B)
A. 自身类对象的指针
B. 自身类对象
C. 自身类对象的引用
D. 另一个类的对象
答案:B 31) 对于任意一个类,析构函数的个数最多为( B )。
A.0 B.1 C.2 D.3
32) 已知X类,则当程序执行到语句X array[3];时,调用了( D )次构造函数。
A.0 B.1 C.2 D.3
33) 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)
A. x.a
B. x.a()
C. x->a
D. (*x).a()
答案:B
34) 通常拷贝构造函数的参数表是( C )
A.当前对象名 B.当前对象的成员名
C.当前对象的引用名 D.当前对象的指针名
35) 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D )
A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型
36) 下面关于类和对象的描述中,错误的是( A )
A. 类就是c语言中的结构体类型,对象就是C语言中的结构体变量
B. 类和对象之间的关系是抽象和具体的关系
C. 对象是类的实例,一个对象必须属于一个已知的类
D. 类是具有共同行为的若干对象的统一描述体 C
37) 假定AB为一个类,则该类的拷贝构造函数的声明语句为
选项A:AB&(AB x)
选项B:AB(AB x)
选项C:AB(AB&)
选项D:AB(AB* x)
试题答案:C
38) 在类定义的外部,可以被访问的成员有 C
选项A:所有类成员
选项B:private或protected的类成员
选项C:public的类成员
选项D:public或private的类成员
试题答案:C
39) 关于this指针的说法错误的是
选项A:this指针必须显示说明
选项B:当创建一个对象后,this指针就指向该对象
选项C:成员函数拥有this指针
选项D:静态成员函数不拥有this指针
试题答案:A
40) 声明一个类的对象时,系统自动调用构造函数,撤消对象时,系统自动调用( C )函数
选项A:成员函数
选项B:构造函数
选项C:析构函数
选项D:普通函数
试题答案:C
41) 下面对析构函数的正确描述是 C
选项A:系统不能提供默认的析构函数
选项B:析构函数必须由用户定义
选项C:析构函数没有参数
选项D:析构函数可以设置默认参数
试题答案:C
42) 对类的构造函数和析构函数描述正确的是( A )
A. 构造函数可以重载,析构函数不能重载
B. 构造函数不能重载,析构函数可以重载
c. 构造函数可以重载,析构函数也可以重载
D. 构造函数不能重载,析构函数也不能重载
43) 56.下面对静态数据成员的描述中,正确的是(A)
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员值
D. 静态数据成员不能通过类的对象调用
44) 59.下列说法正确的是( B )
A..内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C. 类的内联函数必须在类体内定义
D. 类的内联函数必须在类体外通过加关键字inline定义