试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.C++异常处理机制中没有()
A.try
B.throw
C.catch
D.finally
2.使用流控制符()需要头文件
A.endl
B.hex
C.setw
D.left
3.C++泛型编程通过()实现
A.void
B.template
C.NULL
D.typedef
4.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由()的构造函数来传递
A.第一个父类
B.第二个父类
C.派生类
D.以上都不是
5.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
6.队列的最大特征是()
A.先进先出
B.后进先出
C.自动排序
D.大数优先
7.假定AB为一个类,则执行“ABa(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为()
A.4
B.5
C.8
D.13
8.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用()符号作为分隔符
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
9.执行语句 char ch[] = "Hello"; char * p = &ch[0]; cout<<*p 结果是输出 ( )。
A.一个地址
B.H
C.Hello
D.乱码
10.抽象类指的是()
A.没有任何成员的类
B.只有成员函数没有数据成员的类
C.有虚函数的类
D.有纯虚函数的类
11.已知函数 f 的原型是 void f(int *a, long & b);,变量 v1、v2 的定义是: int v1; loong v2; 下列调用语句中正确的是 ( )
A.f(v1,&v2)
B.f(v1,v2)
C.f(&v1,&v2)
D.f(&v1,v2)
12.若有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的是()
A.p1=&m,p2=&p1
B.p1=&m;p2=&n;*p1=*p2
C.p1=&m;p1=p2
D.p1=&m;*p2=*p1
13.有如下类和对象的定义: class Constants{ public: static double getPI(){return 3.1416;} }; Constants constants; 下列各组语句中,能输出 3.1416 的是 ( )
A.cout<<constants->getPI();和cout<<Constants::gerPI();
B.cout<<constants.getPI();和cout<<Constants.getPI();
C.cout<<constants->getPI();和cout<<Constants->getPI();
D.cout<<constants.getPI();和cout<<Constants::getPI();
14.在定义inta[3][4][2];后,第10个元素是()
A.a[2][1][2]
B.a[1][0][1]
C.a[2][0][1]
D.a[2][2][1]
15.数组名表示的是数组的()
A.类型
B.用途
C.地址
D.长度
16.两个指针变量不可以()
A.相加
B.比较
C.相减
D.指向同一地址
17.如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是()
A.1
B.2
C.3
D.4
18.下列哪个是C++语言的有效标识符?()
A._No1
B.No、1
C.12345
D.int
19.下列排序算法中,平均效率最低的排序算法是()
A.插入法
B.冒泡法
C.选择法
D.快速排序法
20.下面是一个模板声明的开始部分: templute<typename T> double __ 由此可知 ( )
A.这可能是一个函数模板的声明
B.这可能是一个类模板的声明
C.这既可能是一个函数模板的声明,也可能是一个类模板的声明
D.这肯定是一个错误的模板声明
21.C++函数的声明和定义可以分开,函数声明不需要()
A.返回类型
B.函数名
C.参数表
D.函数体
22.如果在try块中用throw"error";语句抛出一个异常,则参数类型是()的catch块能够捕获这个异常。
A.char*
B.constchar*
C.Char
D.constchar
23.在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
24.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
25.若有定义:intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是()
A.&aa[0]+1
B.&aa[1]
C.&aa[0]++
D.aa+1
26.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为()
A.a+4
B.a+8
C.a+16
D.a+32
27.有如下类定义: class Point{ private; static int how_many; }; ___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A.ing
B.staticint
C.intPoint::
D.staticintPoint::
28.下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
D.纯虚函数都不能有函数体
29.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:()
A.0
B.负数
C.正数
D.不确定
30.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
二、多选题 (共 5 道试题,共 20 分)
31.C++中变量要求()
A.有明确的类型
B.先声明后使用
C.名字中不能使用下划线
D.严格区分大小写
32.模板定义中的类型参数可以用作()
A.局部变量类型
B.函数参数类型
C.函数返回值类型
D.数据成员类型
33.两个同名函数构成重载关系,只要()不同
A.返回类型
B.参数个数
C.参数类型
D.函数头后有无const
34.设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_( )、
A.for(i=0;i<6;i++)printf(“%2d”,*(p++));
B.for(i=0;i<6;i++)printf(“%2d”,*(p+i));
C.for(i=0;i<6;i++)printf(“%2d”,*p++);
D.for(i=0;i<6;i++)printf(“%2d”,(*p)++);
35.面向对象的编程方法的主要特征包括()
A.封装
B.继承
C.多态
D.消息
三、判断题 (共 5 道试题,共 20 分)
36.结构化程序设计的基本方法是递归法。()
37.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。()
38.重载函数形参个数可以不同。()
39.C++语言的跳转语句中,break语句只应用于循环体中。()
40.C++程序从上机到得到结果的几个操作步骤依次是:编辑、编译、连接、运行。()