试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.函数的形参是()
A.全局变量
B.局部变量
C.静态变量
D.部变量
2.执行语句 char ch[] = "Hello"; char * p = &ch[0]; cout<<*p 结果是输出 ( )。
A.一个地址
B.H
C.Hello
D.乱码
3.执行下列语句段后,输出字符“*”的个数是()for(inti=50;i>1;I-=2)cout<<~*~;
A.24
B.25
C.26
D.50
4.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为()
A.0xFFED1201
B.0xFFED1202
C.0xFFED1203
D.0xFFED1204
5.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会( )
A.调用拷贝构造函数
B.调用整型参数的构造函数
C.调用赋值运算符
D.引起编译错误
6.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A.拷贝构造函数
B.无参构造函数
C.输出流运算符
D.赋值运算符
7.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么()
A.在子类中这两个函数构成重载关系
B.子类不会继承父类的这个函数
C.子类中的函数会覆盖父类中的函数
D.编译时会发生错误
8.C++泛型编程通过()实现
A.void
B.template
C.NULL
D.typedef
9.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
10.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含()文件
A.iostream、h
B.iomanip、h
C.fstream、h
D.ststreh
11.若有定义:intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是()
A.&aa[0]+1
B.&aa[1]
C.&aa[0]++
D.aa+1
12.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
13.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为()
A.a+4
B.a+8
C.a+16
D.a+32
14.链表的基本单元是()
A.节点
B.头指针
C.尾指针
D.数据域
15.C++异常处理机制中没有()
A.try
B.throw
C.catch
D.finally
16.有如下类定义: class MyClass{ int value; public: MyClass(int n): value (n) {} int gerValue()const{ return value;} }; 则类 MyClass 的构造函数的个数是 ( )
A.1个
B.2个
C.3个
D.4个
17.有如下定义: int a[5]={1,3,5,7,9},*p=a; 下列表达式中不能得到数值 5 的是 ( )
A.a[2]
B.a[3]
C.*(p+2)
D.*p+4
18.抽象类指的是()
A.没有任何成员的类
B.只有成员函数没有数据成员的类
C.有虚函数的类
D.有纯虚函数的类
19.下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
D.纯虚函数都不能有函数体
20.使用流控制符()需要头文件
A.endl
B.hex
C.setw
D.left
21.下面是一个模板声明的开始部分: templute<typename T> double __ 由此可知 ( )
A.这可能是一个函数模板的声明
B.这可能是一个类模板的声明
C.这既可能是一个函数模板的声明,也可能是一个类模板的声明
D.这肯定是一个错误的模板声明
22.若有说明: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
23.下面函数调用语句含有实参的个数为: ( ) func((exp1,exp2),(exp3,exp4,exp5))
A.1
B.2
C.4
D.5
24.下面不支持下标操作的容器是()
A.vector
B.deque
C.list
D.map
25.有如下类定义: class Point{ private; static int how_many; }; ___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A.ing
B.staticint
C.intPoint::
D.staticintPoint::
26.两个指针变量不可以()
A.相加
B.比较
C.相减
D.指向同一地址
27.判断一个ofstream类对象file打开文件是否失败,应该判断()
A.创建文件流对象时是否抛出异常
B.open成员函数的返回值
C.feof成员函数的返回值
D.!file是否为真
28.在定义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]
29.有如下类和对象的定义: 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();
30.C++函数的声明和定义可以分开,函数声明不需要()
A.返回类型
B.函数名
C.参数表
D.函数体
二、多选题 (共 5 道试题,共 20 分)
31.设有定义语句: 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)++);
32.类成员的访问属性可以是()
A.public
B.protected
C.private
D.default
33.流程控制语句有()几种
A.条件语句
B.循环语句
C.分支语句
D.表达式语句
34.面向对象的编程方法的主要特征包括()
A.封装
B.继承
C.多态
D.消息
35.两个同名函数构成重载关系,只要()不同
A.返回类型
B.参数个数
C.参数类型
D.函数头后有无const
三、判断题 (共 5 道试题,共 20 分)
36.逻辑运算符两侧运算对象的数据类型只能是0或1。()
37.结构化程序设计的基本方法是递归法。()
38.C++语言的跳转语句中,break语句只应用于循环体中。()
39.1.234e0为C++语言合法常量。()
40.字符串"ab\\\n"在机器中占6个字节。()