




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2007年4月计算机等级考试C+考试及答案 一、选择题(每小题2分,共70分)下列各题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)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为A)n+1 B )n-1 C)2n D)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。A)井 B)交 C)投影 D)笛卡儿乘积(9)在E-R图中,用来表示实体之间是联系的图形是 。A) 矩形 B)椭圆形 C)菱形 D)平行四边形(10)下列叙述中错误的是 。A) 在数据库系统中,数据的物理结构必须与逻辑结构一致.B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)为了取代C中带参数的宏,在C+中使用A)重载函数 B)内联函数 C)递归函数 D)友元函数(12)下列关于类定义的说法中,正确的是A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C) 数据成员必须被声明为私有的D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中,错误的是A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数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_2006 B)_TEST_H C)Retum D)switch(18)字面常量42、4.2、42L的数据类型分别是A)long、double int B)long、float、intC)int、double、long D)int、float、long(19)执行下列语句段后,输出字符“*”的个数是for(int i =50;I1; i )cout”*”A)48 B)49 C)50 D)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=1func(x,y);则变量x和y值分别是A)0和1 B)1和1 C)0和2 D)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()coutobj.a;retum0;运行时输出的结果是A)0 B)1 C)2 D)3(23)下列有关继承和派生的叙述中,正确的是A) 派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C)派生类应当向基类的构造函数传递参数D)虚函数必须在派生类中重新实现(24)下列运算符中,不能被重载的是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”constructor”endl;test(int a)coutaendl;test(const test_test)a=_testa;cout”copy constructor”endl;test()cout”destructor”endl;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)11 B)111 C)1111 D11111(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;coutpoint:numberendl;deleteptr;运行时输出的结果是A)3 B)4 C)6 D)7(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。#includeusing namespace std;class Baseint a,b;public:Bace(int x ,int y) a=x; b=y;Void show() couta,bendl;clsaa 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() coutc,dshow();Return 0;运行时输出的结果是A)10,20 B)30,40 C)20,30 D)50,50(31)有如下程序:#includeusing namespace std;class Apublic;A(int i )x= i ;Void sispa()coutx,;Private:int x ;class B;publicApublic;B(int i):A(i +10) x =i ;voud dispb() dispa();coutx,endl;Private:Int x;int main()B b(2);b.dispb()retum 0:运行时输出的结果是A)10,2 B)12,10 C)12,2 D)2,2(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:#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 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();couta+.GetX();retum();编译和运行情况是A)运行时输出1011B)运行时输出1111C)运行时输出1112D)编译有错(34)有如下程序:#includeusing namespace std;int main()char str100,*p;coutstr;p=str;for(int i =0;*p!=”0”;p+, i +);cout i endl;retum 0;运行这个程序时,若输入字符串为abcdefg abcd则输出结果是A)7 B)12 C)13 D)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 sum=0for(int i =0; i 6; i +) sum+=fun(Sample( i );) coutsum;retum 0;运行时输出的结果是A)120 B)16 C)154 D)34二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(1)在深度为7的满二叉树中,度为2的结点个数为 【1】 。(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 【2】 测试。(3)在数据库系统中,实现各种数据管理体制功能的核心软件称为 【3】 。(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。编码和测试属于 【4】 阶段。(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)如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容,使拷贝构造函数的声明完整。Class my ClassPrivate:Int data:Public:MyClass(int value); /构造函数MyClass(const 【10】 another Object); /拷贝构造函数(11)用来派生新类的称为 【11】 ,而派生出的新类称为它的子类或派生类。(12)有如下程序:#includeusing namespace std;clsaa CApublic:CADcoutA;class CB ;private CApublic;CB()coutB;int main()coutB;int main()CA a;CB b;retum0;这个程序的输出结果是 【12】 。(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是 【13】 个。(14)有如下程序:#includeusing namespace std;class DAint k;public:DA(int x=1): k (x)DA()coutk ;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、63 2、黑盒 3、DBMS 4、开发 5、数据字典 6、false 7、 *P 8、fn(5.27) 9、tb10、myclass&11、基类 12、AAB 13、1个 14、11333 15、运行2009年3月全国计算机等级考试C+语言笔试试卷一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件或工具软件)。下面属于应用软件的是A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训(9)有两个关系R,S如下由关系R通过运算得到关系S,则所使用的运算为A)选择 B)投影 C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性 B)键 C)关系 D)域(11)对C+编译器区分重载函数无任何意义的信息是 A)参数类型 B)参数个数 C)返回值类型 D)常成员函数关键字coast (12)有如下类定义和变量定义: class A publie: A()data=0; A() int GetData ( ) coast return data; void SetData(int n) data=n; private: int data; ; ccnst A a; A b; 下列函数调用中错误的是 A)a .GetData(); B)a .SetData(10); C)b .GetData(); D)b .SetData(10); (13)有如下类定义和变量定义: class Parents public: int publicuata; private: int privateData; ; class ChildA:public Parents/*类体略*/; class ChildB:private Parents/*类体略*/); ChildA a; ChildBb; 下列语句中正确的是 A)couta.publicData endl ; B)couta.privateData endl ; C)coutb.publicData endl ; D)coutb.privateData open(file.dat); (17)下列描述中,不属于面向对象思想主要特征的是 A)封装性 B)跨平台性 C)继承性 D)多态性 (18)有如下程序段: Tnt i=4;int j=l; int main() int i=8,j=i; coutijendl; 运行时的输出结果是 A)44 B)41 C)88 D)81 (19)有如下程序段: int i=5; while(int i=0)cout*;i-; 运行时输出*的个数是 A)0 B)1 C)5 D)无穷(20)己知有数组定义 char a34; 下列表达式中错误的是 A)a2=WIN B)strcpy(a2,WIN) C)a 23=W D)a01=a01 (21)已知函数fun的原型为 int fun(int,int,int); 下列重载函数原型中错误的是 A)char fun(int,int); B)double fun(int,int,double); C)int fun(int,char*); D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用 A)析构函数 B)构造函数 C)静态函数 D)友元函数(23)通过派生类的对象可直接访问其 A)公有继承基类的公有成员 B)公有继承基类的私有成员 C)私有继承基类的公有成员 D)私有继承基类的私有成员 (24)己知表达式+a中的+是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为 A)a .orerator+(1) B)operator+(a) C)operator+(a,l) D)a.operator+( )(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是 A)( ) B) C) D) (26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base:in B)ios_base:in|ios_base:out C)ios_base:out D)ios_base:in&ios_base:out (27)有如下程序: #include #include using namespace std; class XCD char* a; int b; public: XCD(char* aa, int bb) a=new charstrlen(aa)+1; strcpty(a,aa); b=bb; Char* Geta ()return a;) int Getb() return b; ; int main() char *pl=abcd,*p2=weirong; int dl=6, d2=8; XCD x(pl,dl),Y(p2,d2); coutstrien (x .Geta()+y. Getb()+endl; return 0; 运行时的输出结果是 A)12 B)16 C)14 D)11(28)有如下程序: #include #include using namespace std; class XCF int a; public: XCF(int aa=0):a (aa)cout1; XCF(XCF& x)a=x .a; cout2;) XCF()couta; int Geta()return a; ; int main() XCF dl(5),d7 (dl); XCF *pd=new XCF(8); coutGeta(); delete pd; return 0; 运行时的输出结果是 A)121SS88 B)12188SS C)12185 D)128512(29)已知类MyClass声明如下: class MyClass int n; public; MyClass(int k):n(k) int getValue()constreturn n; ; 在下列数组定义中正确的是 A)MyClass x12; B)MyClass x22=new MyClass(1),new MyClass(2); C)MyClass *x32; D)MyClass *x42=MyClass(1),MyClass(2); (30)有如下程序: #include using namespace std; class AA lilt k; protected: int n; void setK(int k) this-k=k; public: void setN(int n) this-n=n; ; class BB: public /*类体略*/; int main() BB x_ ; /1 x .n=1; /2 x.setN (2); /3 x.k=3; /4 x .setK(4); return 0; 在标注号码的四条语句中正确的是 A)1 B)2 C)3 D)4(31)有如下类定义: class XX int xx; public: XX():xx(0)cout A; XX(int n):xx ( n)tout B; ; Class YY:public XX Int yy; public: YY():yy ( 0)cout+yy; YY(int n):XX(n+1),yy(n)coutyy; YY (int m, int n):XX (m),yy(n)coutyy; ; 下列选项中,输出结果为A0的语句是 A)YY y1(0,0); B)YY y2(1); C)YY y3(0); D)YY y4;(32)有如下程序: #include Using namespace std; class A public: virtual void f()cout+1; void g()cout2; ; class B:public A public: virtual void f()cout3; void g()ecut4; ; void show(A &a)a.f();a.g( ); int main() B b; show(b); return 0; 运行时的输出结果是 A)12 B)34 C)14 D)32(33)有如下程序: #include using namespace std; class Pair int m; int n; public: Pair(int i,int j):m(i),n(j) boot operator (pair p)const; /须在类体外给出定义 ; int main() Pair Al(3,4),p2(4,3);p3(4,5); Coutp2)P1)p3)p2); return 0; 运算符函数。operator的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是 A)bool Pair:operator(Pair p)const if (m!=p.m) return mp.m; return np.n; B)bool Pair:;operator(Pair p) if (m!=p.m) return mp.m; return np.n; C)bool Pair:operator(Pair p)const if (mp.m) return true; return np.n; D)bool Pair:;operator(Pair p) if (mp.m) return true; return np.n; (34)假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是 A)coutsetfill(*)123setw(9)321; B)coutsetfill(*)setw(6)left123setw(6)right321; C)cout123setfill(*)setw(6)321; D)coutsetfill(*)SetW(9)left123321; (35)有如下程序: #include using namespace std; class ONE int c; public: ONE():c(0)cout1; ONE(int n):c (n)cout2; ; class TWO ONE onel; ONE one2; public: TWO(int m):one2(m)cout3; ; int main()t TWO t(4) return 0 运行时的输出结果是 A)3 B)23 C)123 D)213 二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(1)假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于 【2】 测试。(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和 【3】 。(4)数据库系统的核心是 【4】 。(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是 【5】 框。(6)有如下程序段: int x=1,Y=2,z=3; x=xz; y=yz; z=xy; coutxyz; 执行这个程序段的输出是【6】。(7)有如下程序段: fer(int i=1; i=50;i+) if(i%3 != 0) continue; else if(i%5!=0) continue; touti,; 执行这个程序段的输出是【7】。(8)有如下程序段: Char c 20=examination; c4=0; coutcendl; 执行这个程序段的输出是【8】。 (9)下面的函数利用递归实现了求1+2+3+n的功能: int sum(int n) if(n=0) return 0; else return n+sum(n-1); 在执行sum(10)的过程中,递归调用sum函数的次数是【9】。 (10)非成员函数应该声明为类【10】函数才能访问该类的私有成员。(11)有如下程序: #include using namespace std; class Monitor public: Monitor(char t):type (t) void print( ) const coutThe type of monitor istypeendl; private: char type; ; class Computer public: Computer(int i,char c): 【11】 void Print()const coutThe computer isidendl;mon.Print(); private: int id; Monitor mon; ; const Computer myComputer(101,B); myComputer .Print(); return 0; 请将程序补充完整,使程序在运行时输出: The computer is 101 The type of monitor i.s 8 (12)有如下程序: #include using namespace std class Animal public: virtual char* getType()const return Animal; virtual char* getVoice()const return Voice; ; Class Dog : public Animal public: char* getType ( ) const return Dog; char* getVoice ( ) const return Woof ; void type(Animal& a) couta.getType(); void speak(Animal a) couta.getVoice(); int main( ) Dog d; type (d);cout speak;speak(d);coutendi; return 0; 运行时的输出结果是【12】。 (13)补充完整下面的类定义: const double PI=3 .14; class Circle /圆形物体的抽象基类 protected: double r; /半径 public: Circle(double radius=0):r(radius) 【13】;/计算圆形物体表面积的纯虚函数声明 ; class Cylinder:public Circle /圆柱体类 double h; /高度 public: Cylindr(double radius=0, doubli height=0): Circle(radius),h (height) Virtual double Area() /计算圆柱体的表面积 return 2*PI*r*(r+h); ; (14)补充完整下面的类定义: class XCH char* a; public: XCH(char* as) /构造函数 a=new charstrlen(aa)+1; strcpy(a,aa); XCH& operator=(const XCH& x) /重载赋值函数 Delele a; A=new charstrlen(x.a)+l; strcpy(a, x .a) 【14】; XCH() delete a; ; (15)补充完整下面的模板定义: template /Type为类型参数 class Xtwo /由两个Type类型的数据成员构成的模板类 Type a;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北邯郸市中煤水文局集团有限公司社会化招聘13人笔试参考题库附带答案详解
- 2025春季福建省港口集团有限责任公司校园招聘219人笔试参考题库附带答案详解
- 卸船机班安全培训制度课件
- 2025年枣庄市重点产业链急需紧缺人才需求(900人)笔试参考题库附带答案详解
- 2025年山东土地资本投资集团有限公司春季社会招聘(10人)笔试参考题库附带答案详解
- 2025年国网河北省电力有限公司高校毕业生招聘(第二批)笔试参考题库附带答案详解
- 2025年合肥市产业投资控股(集团)有限公司校园招聘31人笔试参考题库附带答案详解
- 2025山东济南翠河玫瑰制品有限责任公司招聘7人笔试参考题库附带答案详解
- 2025四川长虹美菱国际区品牌运营中心招聘产品策划岗位4人笔试参考题库附带答案详解
- 2025内蒙古京海煤矸石发电有限责任公司招聘笔试参考题库附带答案详解
- 代加工协议合同范本
- 转基因玉米培训课件
- 3.2《学习成就梦想》教案 -2025-2026学年统编版道德与法治七年级上册
- 造血干细胞移植并发症
- 2025年GCP制度培训测试题(附答案)
- 冷库维保合同(2025版)
- 2025国核示范电站有限责任公司校园招聘笔试历年参考题库附带答案详解
- 2025年护士资格证考试试题(附答案)
- 医院实验室生物安全管理体系文件
- 生活垃圾清运工安全教育培训手册
- 普通诊所污水、污物、粪便处理方案及周边环境情况说明
评论
0/150
提交评论