计算机类 二级 C++
全国计算机等级考试历年真题 &2007年9月计算机二级考试C++语言笔试试题 50 题 含答案 C++
1 单选题 1 / 50
软件是指
A 程序 B 程序和文档 C 算法加数据结构 D 程序、数据与相关文档的完整集合
查看答案 D. 程序、数据与相关文档的完整集合
2 单选题 2 / 50
软件调试的目的是
A 发现错误 B 改正错误 C 改善软件的性能 D 验证软件的正确性
查看答案 B. 改正错误
3 单选题 3 / 50
在面向对象方法中,实现信息隐蔽是依靠
A 对象的继承 B 对象的多态 C 对象的封装 D 对象的分类
查看答案 C. 对象的封装
4 单选题 4 / 50
下列叙述中,不符合良好程序设计风格要求的是
A 程序的效率第一, 清晰第二 B 程序的可读性好 C 程序中要有必要的注释 D 输入数据前要有提示信息
查看答案 A. 程序的效率第一, 清晰第二
5 单选题 5 / 50
下列叙述中正确的是
A 程序执行的效率与数据的存储结构密切相关 B 程序执行的效率只取决于程序的控制结构 C 程序执行的效率只取决于所处理的数据量 D 以上三种说法都不对
查看答案 A. 程序执行的效率与数据的存储结构密切相关
6 单选题 6 / 50
下列叙述中正确的是
A 数据的逻辑结构与存储结构必定是一一对应的 B 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 C 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 D 以上三种说法都不对
查看答案 D. 以上三种说法都不对
7 单选题 7 / 50
冒泡排序在最坏情况下的比较次数是
A n(n+1)/2 B nlog2 n C n(n-1)/2 D n/2
查看答案 C. n(n-1)/2
8 单选题 8 / 50
一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A 219 B 221 C 229 D 231
查看答案 A. 219
9 单选题 9 / 50
下列叙述中正确的是
A 数据库系统是一个独立的系统,不需要操作系统的支持 B 数据库技术的根本目标是要解决数据的共享问题 C 数据库管理系统就是数据库系统 D 以上三种说法都不对
查看答案 B. 数据库技术的根本目标是要解决数据的共享问题
10 单选题 10 / 50
下列叙述中正确的是
A 为了建立一个关系,首先要构造数据的逻辑关系 B 表示关系的二维表中各元组的每一个分量还可以分成若干数据项 C 一个关系的属性名表称为关系模式 D 一个关系可以包括多个二维表
查看答案 C. 一个关系的属性名表称为关系模式
11 单选题 11 / 50
在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量 的存储类型,如果不说明存储类型,则默认的存储类型是
A auto B extern C register D static
查看答案 A. auto
12 单选题 12 / 50
对于一个类定义,下列叙述中错误的是
A 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。 B 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。 C 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。 D 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。
查看答案 B. 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。
13 单选题 13 / 50
如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派 生类中的访问属性分别是
A public和public B public和protected C protected和public D protected和protected
查看答案 D. protected和protected
14 单选题 14 / 50
下列运算符函数中肯定不属于类FunNumber的成员函数的是
A int operator-(FunNumber); B FunNumber operator -(); C FunNumber operator -(int); D int operator -(FunNumber,FunNumber);
查看答案 D. int operator -(FunNumber,FunNumber);
15 单选题 15 / 50
C++中的模板包括
A 对象模板和函数模板 B 对象模板和类模板 C 函数模板和类模板 D 变量模板和对象模板
查看答案 C. 函数模板和类模板
16 单选题 16 / 50
如果利用C++流进行输入输出,下面的叙述中正确的是
A 只能借助于流对象进行输入输出。 B 只能进行格式化输入输出。 C 只能借助于cin和cout进行输入输出。 D 只能使用运算符>>和<<进行输入输出。
查看答案 A. 只能借助于流对象进行输入输出。
17 单选题 17 / 50
下列符号中不属于C++关键字的是
A friend B namespace C continue D byte
查看答案 D. byte
18 单选题 18 / 50
下列各组类型声明符中,含义想通的一组是
A unsigned long int 和 long B signed short int 和 short C unsigned short 和 short D short int 和 int
查看答案 B. signed short int 和 short
19 单选题 19 / 50
必须用一对大括号括起来的程序段是
A switch语句中的case标号语句。 B if语句的分支。 C 循环语句的循环体。 D 函数的函数体。
查看答案 D. 函数的函数体。
20 单选题 20 / 50
语句 int *p=&k;定义了指针p,与这个语句等效的语句序列是
A int *p;p=&k; B int *p;p=k; C int *p;*p=&k; D int *p;*p=k;
查看答案 A. int *p;p=&k;
21 单选题 21 / 50
关于函数重载,下列叙述中错误的是
A 重载函数的函数名必须相同。 B 重载函数必须在参数个数或类型上有所不同。 C 重载函数的返回值类型必须相同。 D 重载函数的函数体可以有所不同。
查看答案 C. 重载函数的返回值类型必须相同。
22 单选题 22 / 50
有如下头文件: int f1(); static int f2(); class MA{ public: int f3(); static int f4(); } 在所描述的函数中,具有隐含的this指针的是
A f1 B f2 C f3 D f4
查看答案 C. f3
23 单选题 23 / 50
派生类的成员函数不能访问基类的
A 公有成员和保护成员 B 公有成员 C 私有成员 D 保护成员
查看答案 C. 私有成员
24 单选题 24 / 50
下列关于运算符重载的描述中,正确的是
A 运算符重载为成员的函数时,若参数表中无参数,重载的是一元运算符 B 一元运算符只能作为成员函数重载 C 二元运算符重载为非成员函数是,参数表中有一个参数 D C++中可以重载所有的运算符
查看答案 A. 运算符重载为成员的函数时,若参数表中无参数,重载的是一元运算符
25 单选题 25 / 50
下列关于类木不安的模板参数的叙述中,错误的是
A 模板参数可以作为数据成员的类型 B 模板参数可以作为成员函数的返回类型 C 模板参数可以作为成员函数的参数类型 D 模板参数不能作为成员函数的局部不按量的类型
查看答案 D. 模板参数不能作为成员函数的局部不按量的类型
26 单选题 26 / 50
已知一程序运行后执行的第一个输出操作是 cout<<setw(10)<<setfill('*')<<1234; 此操作的输出结果是
A 1234 B ******1234 C **********1234 D 1234******
查看答案 B. ******1234
27 单选题 27 / 50
有如下程序: #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<<obj.getCount(); MyClass *ptr=new MyClass; cout<<MyClass:getCount(); delete ptr; cout<<MyClass::getCount(); return 0; } 程序的输出结果是
A 121 B 232 C 221 D 122
查看答案 A. 121
28 单选题 28 / 50
有如下程序: #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
查看答案 C. const:val=10 val=20
29 单选题 29 / 50
有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x){cout<<val;} ~Part(){cout<<val;} private: int val; }; class Whole{ public: Whole(int x,int y, int z=0):p2(x),p1(y),val(z){cout<<val;} ~Whole(){cout<<val;} private: Part p1,p2; int val; }; int main(){ Whole obj(1,2,3); return 0; } 程序的输出结果是
A 123321 B 213312 C 213 D 123123
查看答案 B. 213312
30 单选题 30 / 50
有如下程序: #include <iostream> using namespace std; class Base{ public: Base(int x=0){cout<<x;} }; class Derived:public Base{ public: Derived(int x=0){cout<<x;} private: Base val; }; int main(){ Derived d(1); return 0; } 程序的输出结果是
A 0 B 1 C 01 D 001
查看答案 D. 001
31 单选题 31 / 50
若有如下类定义 class B{ void fun1(){} protected: double var1; public: void fun2(){} }; class D:public B{ protected: void fun3(){} }; 已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是
A obj.fun1(); B obj.var1; C obj.fun2(); D obj.fun3();
查看答案 C. obj.fun2();
32 单选题 32 / 50
有如下程序: #include <iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void Print(){cout<<'B';} }; class derived:public Base{ public: void output(){cout<<2;} void Print(){cout<<'D';} }; int main(){ Base *ptr=new Derived; ptr->output(); ptr->Print(); delete ptr; return 0; } 程序的输出结果是
A 1B B 1D C 2B D 2D
查看答案 B. 1D
33 单选题 33 / 50
下列是重载惩罚运算符的函数原型生命,其中错误的是
A MyClass operator *(double,double); B MyClass operator * (double,MyClass); C MyClass operator * (MyClass,double); D MyClass operator * (MyClass,MyClass);
查看答案 A. MyClass operator *(double,double);
34 单选题 34 / 50
如下函数的作用是以双倍行距输出文件: void double_space(ifstream& f,ofstream& t){ char c; while (__________){ ____________; if(c=='\n') t.out(c); } } 画线处缺失的部分是
A f.get(c)与t.put(c) B f.put(c)与t.get(c) C t.get(c)与f.put(c) D t.put(c)与f.get(c)
查看答案 A. f.get(c)与t.put(c)
35 单选题 35 / 50
有如下程序: #include <iostream> using namespace std; class B{ public: virtual void show(){cout<<"B";} }; class D:public B{ public: void show(){cout<<"D";} }; void fun1(B *ptr){ptr->show();} void fun2(B &ref){ref.show();} void fun3(B b){b.show();} int main(){ B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); return 0; } 程序的输出结果是
A BBB B BBD C DBB D DBD
查看答案 C. DBB
36 填空题 36 / 50
软件需求规格说明书应具有完整性,无岐义性、正确性、可验证性、可修改性等特征,其中最重要的是__ 。
查看答案 无歧义性
37 填空题 37 / 50
在两种基本测试方法中,__ 测试的原则之一是保证所测模块中每一个独立路径至少执行一次。
查看答案 路径覆盖
38 填空题 38 / 50
线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的__ 存储结构。
查看答案 顺序存储结构
39 填空题 39 / 50
对下列二义树进行中序遍历的结果为
__ 。
查看答案 ACBDFEHGP
40 填空题 40 / 50
在E-R图中,矩形表示__ 。
查看答案 实体集
41 填空题 41 / 50
若有定义语句:int a=3,b=2,c=1;,则表达式a<b?a:b的值是__
查看答案 2
42 填空题 42 / 50
执行下列语句后,变量sum的值是__ int sum=0; for(int i=1;i<=3;i++) for(int j=1;j<=i;j++) sum++;
查看答案 6
43 填空题 43 / 50
已知有函数f的定义如下: int f(){ static int s=0; s+=2; return s; } 则在程序中第二次执行函数调用语句f();时,函数f的返回值是__ 。
查看答案 4
44 填空题 44 / 50
已知如下程序的输出结果是23,请将画线处缺失的部分补充完整。 #include <iostream> using namespace std; class MyClass{ public: void Print() const{cout<<23;} }; int main(){ MyClass *p=new MyClass();__ .Print(); return 0; }
查看答案 (*p)
45 填空题 45 / 50
有如下程序: #include <iostream> using namespace std; class A{ public: A(){cout<<"A";} ~A)(){cout<<"A";} }; class B{ A a; public: B(){cout<<"B";} ~B(){cout<<"B";} }; int main(){ B b; return 0; } 程序的输出结果是__ 。
查看答案 ABBA
46 填空题 46 / 50
请在如下程序中的空格处填写正确的语句: #include <iostream> using namespace std; class Base{ public: void fun(){cout<<"Base fun"<<endl;} } class Derived:public Base{ public: void fun(){__ ;//调用基类的函数fun() cout<<"Derived fun"<<endl; } };
查看答案 Base::fun()
47 填空题 47 / 50
已知类sample是一个抽象类,其成员函数display是无形参,无返货类型的纯虚函数, 请完成其声明: class sample{ public: sample(){};__ };
查看答案 virtual void display()=0;
48 填空题 48 / 50
有如下复数类的生命,请补充完整。 class complex{ double real; //实部 double imag; //虚部 public: complex(double x,double y){ real=x; imag=y; } complex operator +(complex c){//重载加法运算符“+” return complex(__ ); } };
查看答案 real+c.real,imag+c.imag
49 填空题 49 / 50
请将如下程序补充完整,使得输出结果为:bbaa #include <iostream> using namespace std; class A{ public:__ {cout<<"aa";} }; class B:public A{ public: ~B(){cout<<"bb";} }; int main(){ B *p=new B; delete p; return 0; }
查看答案 ~A()
50 填空题 50 / 50
请将下列栈类Stack补充完整 class Stack{ private: int pList[100]; int top; public: Stack():top(0){} void Push (const int &item); //新元素item压入栈 int Pop(void); //将栈顶元素弹出栈 }; void Stack::Push(const int &item){ if(top==99) //如果栈满,程序终止 exit(1); top++;__ ; } int Stack::Pop(){ if(top<0) //如果栈空,程序终止 exit(1); return pList[top--]; }
查看答案 plist[top]=item