1、全国计算机等级考试二级C2007年4月全国计算机等级考试二级C+笔试试题一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是 。A)算法的效率只与问题的规模有关,而与数据的存储结构无关.B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的.D)算法的时间复杂度与空间复杂度一定相关. (2)在结构化程序设计中,模块划分的原则是 。A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大C)各模块之间的联系应尽量紧密D) 模块内具有高内
2、聚度,模块间具有低耦合度(3)下列叙述中正确的是 。A)软件测试的主要目的是发现程序中的错误.B)软件测试的主要目的是确定程序中错误的位置.C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4) 下面选项中不属于面向对象程序设计特征的是 。A)继承性B)多态性C)类比性D)封装性(5) 下列对列的叙述正确的是 。A) 队列属于非线性表B) 队列按”先进后出”的原则组织数据C)队列在队尾删除数据D) 队列按“先进先出”原则组织数据(6)对下列二叉树进行前序遍历的结果为A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDE
3、FXYZ(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为A)n+1B)n-1C)2nD)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。(11)为了取代C中带参数的宏,在C+中使用A)重载函数B)内联函数C)递归函数D)友元函数 (12)下列关于类定义的说法中,正确的是A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C) 数据成员必须被声明为私有的D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中,错误的是A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义
4、构造函数C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(14)通过运算符重载,可以改变运算符原有的A)操作数类型B)操作数个数C)优先级D)结合性 (15)有如下函数模板:template T souare(T x) (retumx * x ;)基中T是A)函数形参B)函数实参C)模板形参D)模板实参 (16)使用输入输出操作符setw,可以控制A)输出精度B)输出宽度C)对齐方式D)填充字符 (17)下列字符串中,不可以用作C+标识符的是A)y_2006B)_TEST_HC)RetumD)switch(
5、18)字面常量42、4.2、42L的数据类型分别是A)long、double intB)long、float、intC)int、double、longD)int、float、long(19)执行下列语句段后,输出字符“*”的个数是for(int i =50;I1; i )cout”*”A)48B)49C)50D)51(20)有如下程序段inti =0, j=1;intr=i ; / r =j; /int*p=i ; /*p=r ; /基中会产生编译错误的语句是A)B)C)D)(21)有如下函数定义:void func (int a,intb) a+; b+;若执行代码段:intx=0 ,y=1
6、func(x,y);则变量x和y值分别是A)0和1 B)1和1C)0和2D)1和2(22)有如下程序:#includeusing namespace std;class Apublicstatic int a;void init()a=1;A(int a=2) init();a+;int A:;a=0A obj;Int main()coutretum0;运行时输出的结果是A)0B)1C)2D)3(23)下列有关继承和派生的叙述中,正确的是A) 派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C)派生类应当向基类的构造函数传递参数D)虚函数必须在派生类中重新实现(24)下列运算符中,不
7、能被重载的是A)B)!=C).D)+(25)下列函数模板的定义中,合法的是A) template Tabs(T x) return x 0 x: x;B)template class Tabs(Tx)retumx0 -x;x;C)template Tabs(T x)retum x0 -x;x;D)template T abs(T x)returm xdata;中,cin是A)C+的关键字B)类名C)对象名D)函数名 (27)有如下程序:#includeusing namespace std;class test private:int a;public:test()cout”construct
8、or”test(int a)couttest(const test_test)a=_testa;cout”copy constructor”test()cout”destructor”;int main()test A(3)return0;运行时输出的结果是A)3B)constructordestruclorC)copy constructorD)3dstructor destruclor (28)若有如下类声明class My Class public:MyClass() cout1;执行下列语句MyClass a,b2,*P2;以后,程序的输出结果是A)11B)111C)1111D1111
9、1(29)有如下程序:#includeusing namespace std;class point public:static int number;public:point()number+;point()number-;imt point:number=0;void main()point*ptr;printA,B;point*ptr_point=new point3;ptr=ptr_point;pointC;coutdeleteptr;运行时输出的结果是A)3B)4C)6D)7(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序
10、,没有使用多态机制。#includeusing namespace std;class Baseint a,b;public:Bace(int x ,int y) a=x; b=y;Void show() coutclsaa Derived:public Base int c ,d;public:Derived(int x,int y,int z,int m):Base(x,y)c=z; d=m;Void show() coutshow();Return 0;运行时输出的结果是A)10,20B)30,40C)20,30D)50,50(31)有如下程序:#includeusing namespa
11、ce std;class Apublic;A(int i )x= i ;Void sispa()coutPrivate:int x ;class B;publicApublic;B(int i):A(i +10) x =i ;voud dispb() dispa();coutPrivate:Int x;int main()B b(2);b.dispb()retum 0:运行时输出的结果是A)10,2B)12,10C)12,2D)2,2(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有
12、如下程序:#includeusing namespace std;class Basepublic:virtual void f()cout”f0+”;void g() cout”g0+”;class Derived:public Basepublic:void f() cout”f+”;void g() coutf(); p-g();return 0:运行时输出的结果是A)f+g+B)f0+g+C)f+g0+D)f0+g0+(33)下面程序中对一维坐标点类Point进行运算符重载#includeusing namespace std;class point public:point (int
13、 vaI) x=val;point operator+()x+;retum*this;print operator+(int) point old=*this,+(*this);retum old;int GetX() const retum x;private:int x;int main()point a(10);cout(+a).GetX();coutretum();编译和运行情况是A)运行时输出1011B)运行时输出1111C)运行时输出1112D)编译有错(34)有如下程序:#includeusing namespace std;int main()char str100,*p;co
14、utstr;p=str;for(int i =0;*p!=”;p+, i +);cout i retum 0;运行这个程序时,若输入字符串为abcdefg abcd则输出结果是A)7B)12C)13D)100(35)有如下程序:#includeusing namespace std:class Samplefriend long fun (Sample s);public:Sample (long a )x=a;Private:long x;long fun (Sample s)if(s.x2)retum 1;retum s.x*fun(Sample(s.x-a);int main()int
15、sum=0for(int i =0; i 6; i +) sum+=fun(Sample( i );) coutretum 0;运行时输出的结果是A)120B)16C)154D)34二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(1)在深度为7的满二叉树中,度为2的结点个数为 【1】 。 (2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 【2】 测试。 (3)在数据库系统中,实现各种数据管理体制功能的核心软件称为 【3】 。 (4)软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。编码和测试属于 【4
16、】 阶段。 (5)在结构化分析使用的数据流图(DFD)中,利用 【5】 对其中的图形元素进行确切解释。 (6)C+中只有两个逻辑常量:true和 【6】 。 (7)若要访问指针变量p所指向的数据,应使用表达式 【7】 。(8)已知一个函数的原型是:int fn(double x);若要以5.27为实参调用该函数,应使用表达式 【8】 。 (9)有如下定义:class MAint value;public:MA(int n=0):valut(n);MA*ta,tb;其中MA类的对象名标识符是 【9】 。(10)如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容,使拷贝构造函数的声
17、明完整。Class my ClassPrivate:Int data:Public:MyClass(int value); /构造函数MyClass(const 【10】 another Object); /拷贝构造函数(11)用来派生新类的称为 【11】 ,而派生出的新类称为它的子类或派生类。 (12)有如下程序:#includeusing namespace std;clsaa CApublic:CADcout;class CB ;private CApublic;CB()cout;int main()cout;int main()CA a;CB b;retum0;这个程序的输出结果是 【
18、12】 。(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是 【13】 个。 (14)有如下程序:#includeusing namespace std;class DAint k;public:DA(int x=1): k (x)DA()cout;int main()DA d=DA(3),DA(3),DA(3);DA* p=new DA2;deletep;return0;这个程序的输出结果是 【14】 。(15)C+语言中的多态性分为编译时的多态性和 【15】 时的多态性。2007年4月计算机等级考试C+考试答案选择题:15BDACD6-10CABCA11-15BADAC16-20BCDBA21-25CCCCA26-30CDBDA30-35CBBBC填空:1、632、黑盒3、DBMS 4、开发 5、数据字典 6、false7、 *P 8、fn(5.27) 9、tb10、myclass&11、基类12、AAB 13、1个14、11333 15、运行
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1