等级考试

9月计算机等级考试二级C++

时间:2024-12-23 17:41:29 等级考试 我要投稿
  • 相关推荐

2008年9月计算机等级考试二级C++

一、选择题(每小题2分,共70分)
(1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是(B)。
A)123456ABCDE              B)EDCBA54321
C)ABCDE12345                D)54321EDCBA
(2)下列叙述中正确的是(D)。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
(3)在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是(C)。
A)O(n)                                    B)O(n2)
C)O(log2n)                D)O(nlog2n)
(4)下列叙述中正确的是(A)。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
(5)数据流图中带有箭头的线段表示的是(D)。
A)控制流                          C)模块调用
B)事件驱动                      D)数据流
(6)在软件开发中,需求分析阶段可以使用的工具是(B)。
A)N-S 图                         B)DFD 图(数据流图)
C)PAD 图                        D)程序流程图
(7)在面向对象方法中,不属于“对象”基本特点的是(A)。
A)一致性                          B)分类性
C)多态性                          D)标识唯一性
(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(B)。
A)一对一                          B)一对多
C)多对一                          D)多对多
(9)在数据管理技术发展的三个阶段中,数据共享最好的是(C)。
A)人工管理阶段        B) 文件系统阶段
C)数据库系统阶段     D) 二个阶段相同
(10)有三个关系 R、S 和 T 如下:
R                 S                   T
 

2008年9月计算机等级考试二级C++

 

A B   B C   A B C
m 1 1 3 m 1 3
n 2 3 5  

 


 
由关系 R 和 S 通过运算得到关系 T,则所使用的运算为(D)。
A)笛卡尔积                      B)交
C)并                                        D)自然连接
(11)在下列原型所示的 C++函数中,按“传值”方式传递参数的是(A)。
A)void f1(int x);                      B)void f2(int*x);
C)void f3(const int*x); D)void f4(int&x);
(12)在 C++中,编译系统自动为一个类生成缺省构造函数的条件是(C)。
A)该类没有定义任何有参构造函数
B)该类没有定义任何无参构造函数
C)该类没有定义任何构造函数
D)该类没有定义任何成员函数
(13)在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明(A)。
A)f()是基类的私有成员
C)派生类的继承方式为私有
B)f()是基类的保护成员
D)派生类的继承方式为保护
(14)下列关于运算符重载的叙述中,错误的是(B)。
A)有的运算符可以作为非成员函数重载
B)所有的运算符都可以通过重载而被赋予新的含义
C)不得为重载的运算符函数的参数设置默认值
D)有的运算符只能作为成员函数重载
(15)下列关于模板的叙述中,错误的是(C)。
A)调用模版函数时,在一定条件下可以省略模板实参
B)可以用 int、double 这样的类型修饰符来声明模版参数
C)模板声明中的关键字 class 都可以用关键字 typename 替代
D)模板的形参表中可以有多个参数
(16)要利用 C++流进行文件操作,必须在程序中包含的头文件是(B)。
A)iostream                        B)fstream
C)strstream                        D)iomanip
(17)下列字符串中不能作为 C++标识符使用的是(D)。
A)WHILE   B)user   C)_lvar   D)9stars
(18)下列语句中错误的是(A)。
A)const int a;
B)const int a=10;
C)const int*point=0;
D)const int*point=new int(10);
(19)有如下程序:
#include<iostream> 
using namespace std;
int main(){
int sum;
for(int i=0; i<6; i+=3){
sum=i;
for(int j = i; j<6; j++)sum+=j;
}
cout<<sum<<end1;
return 0;
}
运行时的输出结果是(D)。
A)3              B)10          C)12           D)15
(20)下列语句中,正确的是(A)。
A)char*myString="Hello-World!";
B)char myString="Hello-World!";
C)char myString[11]="Hello-World!";
D)char myString[12]="Hello-World!";
(21)若已经声明了函数原型“void fun(int a, double b=0.0);”,则下列重载函数声明中正确的是(C)。
A)void fun(int a=90, double b=0.0);
B)int fun(int a, double B);
C)void fun(double a, int B);
D)bool fun(int a, double b = 0.0);
(22)有如下程序:
#include<iostream> 
using namespace std;
class Sample{
public:
Sample(){}
~Sample(){cout<<'*';}

};
int main(){
Sample temp[2], *pTemp[2];
return 0;
}
执行这个程序输出星号(*)的个数为(B)。
A)1             B)2                     C)3                     D)4
(23)下列选项中,与实现运行时多态性无关的是(A)。
A)重载函数                      B)虚函数
C)指针                                    D)引用
(24)下列运算符函数中,肯定不属于类 Value 的成员函数的是(B)。
A)Value operator+(Value);
B)Value operator-(Value, Value);
C)Value operator*(int);
D)Value operator/(Value);
(25)下列模板声明中,有语法错误的是(D)。
A)template<typename T>T fun(T x){return x;}
B)template<typename T>T fun(T x, int n){return x*n;}
C)template<class T>T fun(T *p){return *p;}
D)template<class T>T classA{T n;};
(26)在语句“cout<<'A';”中,cout 是(B)。
A)类名                             B)对象名
C)函数名                          D)C++的关键字
相关文档推荐:
2011年3月全国计算机二级C++考试真题与答案
计算机全部等级考试
2011年9月计算机等级考试二级C++
2009年9月二级C++笔试
2010年3月计算机等级考试二级C++笔试
2010年9月全国计算机二级C++笔试
2008年9月二级C++笔试
2012年3月全国计算机等级考试二级C++
(27)有如下程序:
#include<iostream> 

using namespace std;
class MyClass{
public: 
MyClass(int i=0){cout<<1;}
MyClass(const MyClass&x){cout<<2;}
MyClass& operator=(const MyClass&x)
{cout<<3; return*this;}
~MyClass(){cout<<4;}
};
int main(){
MyClass obj1(1),obj2(2),obj3(obj1);
return 0:

}
运行时的输出结果是(A)。
A)112444                  B)11114444
C)121444                          D)11314444
(28)有如下程序:
#include<iostream>
using namespace std;
class MyClass{
public:
MyClass(int x):val(x){}
void Set(int x){val=x;}
void Print()const{cout<<"val="<<val<<'\t';}
private:
int val;
};
int main(){
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print(); //语句 1
obj2.Print(); //语句 2
obj1.Set(20); //语句 3
obj2.Set(30); //语句 4
return 0;
}
其主函数中错误的语句是(C)。 
A)语句 1                          B)语句 2
C)语句 3                          D)语句 4
(29)在类声明中,紧跟在“public:”后声明的成员的访问权限是(B)。
A)私有        B)公有        C)保护        D)默认
(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是(D)。
A)公有或私有                          B)私有
C)保护或私有                          D)公有或保护
(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为(A)。
A)私有继承                            B)非私有继承
C)保护继承                             D)公有继承
(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为(C)。
A)派生类、成员对象类、基类
B)成员对象类、基类、派生类
C)基类、成员对象类、派生类
D)基类、派生类、成员对象类
(33)如果表达式 a>=b 中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为(C)。
A)a.operator>=(b)      B)b.operatotr>=(a)
C)operator>=(a,b)       D)operator>=(b,a)
(34)当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为(D)。
A)ios base::in
B)ios_base::binary
C)ios_base::in|ios_base::out
D)ios_base::out
(35)在一个抽象类中,一定包含有(B)。
A)虚函数                          B)纯虚函数
C)模板函数                      D)重载函数
二、填空题(每空2分,共30分)
 

 

A

 

 

B

 

 

C

 

 

D

 

 

E

 

 

F

 

 

X

 

 

Y

 

 

Z

 

(1)对下列二叉树进行中序遍历的结果_DBXEAYFZC_。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(2)按照软件测试的一般步骤,集成测试应在__单元__测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,__过程__支持软件开发的各个环节的控制和管理。
(4)数据库设计包括概念设计、_逻辑设计_和物理设计。
(5)在二维表中,元组的__分量__不能再分成更小的数据项。
(6)当使用关键字__void__作为函数返回类型时,该函数不返回任何值。
(7)已知数组 a 中有 n 个元素,下列语句将数组 a 中从下标 x1 开始的 k 个元素移动到从下标 x2 开始的 k 个元素中,其中 0<=x1<x2<n,x2+k<n,请将下列语句补充完整。
for (int i = x1+k-1; i>=x1; i--)
a[_x2+k-1_]=a[i];
(8)有如下程序:
#include<iostream> 
using namespace std;
int fun1(int x) {return++x;}
int fun2(int &x) {return++x;}
int main(){
int x=1,y=2;
y=fun 1(fun2(x));
cout<<x<<','<<y;
return 0:
}
程序的输出结果是_2,3_。

相关文档推荐:
2011年3月全国计算机二级C++考试真题与答案
计算机全部等级考试
2011年9月计算机等级考试二级C++
2009年9月二级C++笔试
2010年3月计算机等级考试二级C++笔试
2010年9月全国计算机二级C++笔试
2008年9月二级C++笔试
2012年3月全国计算机等级考试二级C++

(9)有如下程序:
#include<iostream> 
using namespace std;
class pumpkin{
public:
pumpkin(){++count;}
~pumpkin(){--count;}
static void total_count(){
cout<<count<<"pumpkin(s)"<<endl;
}
private:
static int count;
};
int pumpkin::count=0;
int main(){
pumpkin pl[10];
pumpkin::total_count();
return 0;
}
这个程序的输出结果是__10pumpkin(s)__。
(10)有如下递归函数:
int Fun(int n){
if(n<=1) return 1;
__else return n*Fun(n-1);__
}
请补充完整,使得函数 Fun 能够正确计算形参 n 的阶乘。
(11)请在下列程序中的空格处填写正确的语句:
class Sample{
public:
Sample(){}
~Sample(){}
void SetData(int data)
{ //将 Sample 类成员变量 data 设置成形参的值
__Sample::data=data__ //注意形参与成员同名
}
private: int data;
};
(12)有如下类定义,请将Sample类的拷贝构造函数补充完整。
class Sample{ 
public:
Sample(){)
~Sample() {if(p) delete p;)
Sample (const Sample& s){
__p=new int;*p=s.*p__
}
void SetData(int data) {p=new int(data);}
private:
int*p;
};
(13)重载加法运算符“+”,其函数名是__operator +_。
(14)有如下程序:
#include<iostream> 
using namespace std;
class Wages{ //“工资”类
double base; //基本工资
double bonus; //奖金
double tax; //税金
public:
       Wages(double CBase, double CBonus,
double CTax)
:base(CBase), bonus(CBonus),
tax(CTax){}
double getPay()const; //返回应付工资额
Wages operator+(Wages w)const; //重载加法
};
double Wages::getPay()const
{return base+bonus-tax;}
Wages Wages::operator+(Wages w)const
{ return Wages(base+w.base, bonus+w.bonus,
tax+w.tax);
}
int main(){
Wages wl(2000,500,100),w2(5000,1000,300);
cout<<(wl+w2).getPay()<<end1;
retun 0;
}
程序的输出结果是__8100__
(15)有如下程序:
#include<iostream>
using namespace std; 
class Pet{
char name[10];
public:
Pet(char*name){strcpy(this->name, name);}
const char*getName()const {return name;}
virtual void call()const=0;
};
class Dog: public Pet{
public:
Dog(char*name):Pet(name){}
void call()const{cout<<"汪汪叫";}
};
class Cat:public Pet{
public:
Cat(char*name):Pet(name){}
void call()const{cout<<"喵喵叫";}
};
int main(){ 
Pet  *pet1=new Dog("哈克"),
*pet2=new Cat("吉米");
cout<<pet1->getName();
pet1->call();
cout<<end1;
cout<<pet2->getName();
pet2->call();
cout<<end1;
return 0;
}
程序的输出结果是__哈克汪汪叫__
__吉米喵喵叫__
 
 
2008年9月二级 C++笔试试卷参考答案
一、选择题
(1)B)(2)D)(3)C)(4)A)(5)D)(6)B)(7)A)(8)B)(9)C)(10)D(11)A) (12)A)(13)C)(14)B)(15)D(16)B) (17)B)(18)D)(19)A)(20)D(21)C) (22)C)(23)A)(24)D)(25)C)(26)B) (27)C)(28)B)(29)A)(30)D(31)A) (32)C)(33)A)(34)B)(35)C)
二、填空题
(1)DBXEAYFZC
(2)单元
(3)过程
(4)逻辑设计
(5)分量
(6)void
(7)X2+k-1
(8)2,3
(9)10pumpkin(s)
(10)else return n*Fun(n-1);
(11)Sample::data
(12)p=new int; *p=s.*p;
(13)operator +
(14)8100
相关文档推荐:
2011年3月全国计算机二级C++考试真题与答案
计算机全部等级考试
2011年9月计算机等级考试二级C++
2009年9月二级C++笔试
2010年3月计算机等级考试二级C++笔试
2010年9月全国计算机二级C++笔试
2008年9月二级C++笔试
2012年3月全国计算机等级考试二级C++

【9月计算机等级考试二级C++】相关文章:

2010年3月计算机等级考试二级C++笔试09-05

9月计算机等级考试二级Java试题10-29

计算机等级考试《二级C++》单选题08-16

2017年9月计算机二级C++考试模拟练习11-05

2012年9月计算机二级考试C++真题11-12

2017年9月计算机二级C++考试强化复习试题10-08

2010年9月计算机二级考试C++笔试真题09-28

2015年9月计算机考试二级C++模拟试题10-02

计算机等级考试二级C++考前指导训练08-29