2007年9月二级C++笔试试卷
(考试时间90分钟,满分100分)
一、选择题
下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。
(1)软件是指
A) 程序 B) 程序和文档
C) 算法加数据结构 D) 程序、数据与相关文档的完整集合
(2)软件调试的目的是
A) 发现错误 B) 改正错误
C) 改善软件的性能 D) 验证软件的正确性
(3)在面向对象方法中,实现信息隐蔽是依靠
A) 对象的继承 B) 对象的多态
C) 对象的封装 D) 对象的分类
(4)下列叙述中,不符合良好程序设计风格要求的是
A) 程序的效率第一,清晰第二 B) 程序的可读性好
C) 程序中要有必要的注释 D) 输入数据前要有提示信息
(5)下列叙述中正确的是
A) 程序执行的效率与数据的存储结构密切相关
B) 程序执行的效率只取决于程序的控制结构
C) 程序执行的效率只取决于所处理的数据量
D) 以上三种说法都不对
(6)下列叙述中正确的是
A) 数据的逻辑结构与存储结构必定是一一对应的
B) 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C) 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D) 以上三种说法都不对
(7)冒泡排序在最坏情况下的比较次数是
A) n(n+1)/2 B) nlog2n C) n(n-1)/2 D) n/2
(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A) 219 B) 221 C) 229 D) 231
(9)下列叙述中正确的是
A) 数据库系统是一个独立的系统,不需要操作系统的支持
B) 数据库技术的根本目标是要解决数据的共享问题
C) 数据库管理系统就是数据库系统
D) 以上三种说法都不对
(10)下列叙述中正确的是
A) 为了建立一个关系,首先要构造数据的逻辑关系
B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C) 一个关系的属性名表称为关系模式
D) 一个关系可以包括多个二维表
(11)在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是
A) auto B) extern C) register D) static
(12)对于一个类定义,下列叙述中错误的是
A) 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。
B) 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。
C) 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。今年的英文
D) 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。
(13)如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是
平安回家
A) public和public B) public和protected
C) protected和public D) protected和protected
(14)下列运算符函数中肯定不属于类FunNumber的成员函数的是
A) int operator-(FunNumber);
B) FunNumber operator-();
C) FunNumber operator-(int);
D) int operator-(FunNumber,FunNumber);
(15)C++中的模板包括
A) 对象模板和函数模板 B) 对象模板和类模板
C) 函数模板和类模板 D) 变量模板和对象模板
(16)如果利用C++流进行输入输出,下面的叙述中正确的是
A) 只能借助于流对象进行输入输出。
B) 只能进行格式化输入输出。
C) 只能借助于cin和cout进行输入输出。
D) 只能使用运算符>>和<<进行输入输出。
(17)下列符号中不属于C++关键字的是
A) friend B) namespace C) continue D) byte
(18)下列各组类型声明符中,含义相同的一组是
A) unsigned long int和long B) signed short int和short
C) unsigned short和short D) short int和int
(19)必须用一对大括号括起来的程序段是
A) switch语句中的ca标号语句。
B) if语句的分支。
C) 循环语句的循环体。
D) 函数的函数体。
(20)语句int*p=&k;定义了指针p,与这个语句等效的语句序列是
A) int*p;p=&k; B) int*p;p=k;
C) int*p;*p=&k; D) int*p;*p=k;
(21)关于函数重载,下列叙述中错误的是
A) 重载函数的函数名必须相同。
B) 重载函数必须在参数个数或类型上有所不同。
C) 重载函数的返回值类型必须相同。
D) 重载函数的函数体可以有所不同。
(22)有如下头文件:
int f1();
static int f2();
class MA{
public:
int f3();
static int f4();
};
在所描述的函数中,具有隐含的this指针的是
A) f1 B) f2 C) f3 D) f4
(23)派生类的成员函数不能访问基类的
A) 公有成员和保护成员 B) 公有成员
C) 私有成员 D) 保护成员
(24)下列关于运算符重载的描述中,正确的是
A) 运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符
B) 一元运算符只能作为成员函数重载
C) 二元运算符重载为非成员函数时,参数表中有一个参数
D) C++中可以重载所有的运算符
(25)下列关于类模板的模板参数的叙述中,错误的是
A) 模板参数可以作为数据成员的类型
B) 模板参数可以作为成员函数的返回类型
C) 模板参数可以作为成员函数的参数类型哥舒夜带刀
中式隔断
D) 模板参数不能作为成员函数的局部变量的类型
(26)已知一程序运行后执行的第一个输出操作是
cout<<tw(10)<<tfill('*')<<1234;
则此操作的输出结果是
A) 1234 B) ******1234
C) *********1234 D) 1234******
(27)有如下程序:
#include <iostream>
using namespace std;
class MyClass {
对酒当歌 public:
MyClass() { ++count; }
~MyClass() { --count; }
static int getCount() { return count; }
private:
static int count;
};
int MyClass::count=0;
int main() {
MyClass obj;
cout<<Count();
MyClass *ptr=new MyClass;名人名言100句
cout<<MyClass::getCount();
delete ptr;
cout<<MyClass::getCount();
return 0;
}陆苹
程序的输出结果是
A) 121 B) 232 C) 221 D) 122
(28)有如下程序:
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(int x):val(x) {}
void Print() const { cout<<"const:val="<<val<<'\t';}
void Print() { cout<<"val="<<val<<'\t';}
private:
天蝎和金牛
int val;
};
int main() {
const MyClass obj1 (10);
MyClass obj2(20);
obj1.Print();
obj2,Print();
return 0;
}
程序的输出结果是
A) val=10 const:val=20
B) const:val=10 const:val=20
C) const:val=10 val=20
D) val=10 val=20
(29)有如下程序:
#include <iostream>
using namespace std;