至10年全国计算机等级考试二级C++笔试试题及答案.docx
- 文档编号:9966223
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:52
- 大小:565.80KB
至10年全国计算机等级考试二级C++笔试试题及答案.docx
《至10年全国计算机等级考试二级C++笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《至10年全国计算机等级考试二级C++笔试试题及答案.docx(52页珍藏版)》请在冰豆网上搜索。
至10年全国计算机等级考试二级C++笔试试题及答案
2008年9月全国计算机等级考试二级C++真题试卷及答案
1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A)123456ABCDE
B)EDCBA54321
C)ABCDE12345D)54321EDCBA
(2)下列叙述中正确的是()。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A)O(n)B)O(n2)
C)O(log2n)D)O(nlog2n)
(4)下列叙述中正确的是()。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
(5)数据流图中带有箭头的线段表示的是()。
A)控制流
C)模块调用
B)事件驱动
D)数据流
(6)在软件开发中,需求分析阶段可以使用的工具是()。
A)N-S图
C)PAD图
B)DFD图
D)程序流程图
(7)在面向对象方法中,不属于“对象”基本特点的是()。
A)一致性
C)多态性
B)分类性
D)标识唯一性
(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A)一对一
C)多对一
B)一对多
D)多对多
(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。
A)人工管理阶段
C)数据库系统阶段
(10)有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为()。
A)笛卡尔积
B)交
C)并
D)自然连接
(11)在下列原型所示的C++函数中,按“传值”方式传递参数的是()。
A)voidf1(intx);B)voidf2(int*x);
C)voidf3(constint*x);D)voidf4(int&x)
(12)在C++中,编译系统自动为一个类生成缺省构造函数的条件是()。
A)该类没有定义任何有参构造函数
B)该类没有定义任何无参构造函数
C)该类没有定义任何构造函数
D)该类没有定义任何成员函数
(13)在一个派生类的成员函数中,试图调用其基类的成员函数“voidf();”,但无法通过编
译。
这说明()。
A)f()是基类的私有成员
C)派生类的继承方式为私有
B)f()是基类的保护成员
D)派生类的继承方式为保护
(14)下列关于运算符重载的叙述中,错误的是()。
A)有的运算符可以作为非成员函数重载
B)所有的运算符都可以通过重载而被赋予新的含义
C)不得为重载的运算符函数的参数设置默认值
D)有的运算符只能作为成员函数重载
(15)下列关于模板的叙述中,错误的是()。
A)调用模版函数时,在一定条件下可以省略模板实参
B)可以用int、double这样的类型修饰符来声明模版参数
C)模板声明中的关键字class都可以用关键字typename替代
D)模板的形参表中可以有多个参数
(16)要利用C++流进行文件操作,必须在程序中包含的头文件是()。
A)iostreamB)fstreamC)strstreamD)iomanip
(17)下列字符串中不能作为C++标识符使用的是()。
A)WHILEB)userC)_lvarD)9stars
(18)下列语句中错误的是()。
A)constinta;
B)constinta=10;
C)constint*point=0;
D)constint*point=newint(10);
(19)有如下程序:
#include
usingnamespacestd;
intmain(){
intsum;
for(inti=0;i<6;i+=3){
sum=i;
for(intj=i;j<6;j++)sum+=j;
}
cout< return0; } 运行时的输出结果是()。 A)3B)10C)12D)15 (20)下列语句中,正确的是()。 A)char*myString="Hello-World! "; B)charmyString="Hello-World! "; C)charmyString[11]="Hello-World! "; D)charmyString[12]="Hello-World! "; (21)若已经声明了函数原型“voidfun(inta,doubleb=0.0);”,则下列重载函数声明中正确 的是()。 A)voidfun(inta=90,doubleb=0.0);B)intfun(inta,doubleB); C)voidfun(doublea,intB);D)boolfun(inta,doubleb=0.0); (22)有如下程序: #include usingnamespacestd; classSample{ public: Sample(){} ~Sample(){cout<<'*';} }; intmain(){ Sampletemp[2],*pTemp[2]; return0; } 执行这个程序输出星号(*)的个数为()。 A)1 B)2 C)3 D)4 (23)下列选项中,与实现运行时多态性无关的是()。 A)重载函数B)虚函数C)指针D)引用 (24)下列运算符函数中,肯定不属于类Value的成员函数的是()。 A)Valueoperator+(Value); C)Valueoperator*(int); B)Valueoperator-(Value,Value); D)Valueoperator/(Value); (25)下列模板声明中,有语法错误的是()。 A)templateTfun(Tx){returnx;} B)templateTfun(Tx,intn){returnx*n;} C)templateTfun(T*p){return*p;} D)templateTclassA{Tn;}; (26)在语句“cout<<'A';”中,cout是()。 A)类名 C)函数名 (27)有如下程序: #include usingnamespacestd; classMyClass{ public: MyClass(inti=0){cout<<1;} MyClass(constMyClass&x){cout<<2;} B)对象名 D)C++的关键字 MyClass&operator=(constMyClass&x){cout<<3;return*this;} ~MyClass(){cout<<4;} }; intmain(){ MyClassobj1 (1),obj2 (2),obj3(obj1); return0: } 运行时的输出结果是()。 A)112444B)11114444C)121444D)11314444 (28)有如下程序: #include usingnamespacestd; classMyClass{ public: MyClass(intx): val(x){} voidSet(intx){val=x;} voidPrint()const{cout<<"val="< private: intval; }; intmain(){ constMyClassobj1(10); MyClassobj2(20); obj1.Print();//语句1 obj2.Print();//语句2 obj1.Set(20);//语句3 obj2.Set(30);//语句4 return0; } 其主函数中错误的语句是( )。 A)语句1 B)语句2 C)语句3 D)语句4 (29)在类声明中,紧跟在“public: ”后声明的成员的访问权限是()。 A)私有 B)公有 C)保护 D)默认 (30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明 该基类成员的访问权限是()。 A)公有或私有 B)私有 C)保护或私有 D)公有或保护 (31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。 A)私有继承 B)非私有继承 C)保护继承 D)公有继承 (32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。 A)派生类、成员对象类、基类 B)成员对象类、基类、派生类 C)基类、成员对象类、派生类 D)基类、派生类、成员对象类 (33)如果表达式a>=b中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为 ()。 A)a.operator>=(b)B)b.operatotr>=(a) C)operator>=(a,b)D)operator>=(b,a) (34)当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 ()。 A)iosbase: : in B)ios_base: : binary C)ios_base: : in|ios_base: ut D)ios_base: ut (35)在一个抽象类中,一定包含有()。 A)虚函数B)纯虚函数 C)模板函数D)重载函数 二、填空题(每空2分,共30分) (1)对下列二叉树进行中序遍历的结果___________。 (2)按照软件测试的一般步骤,集成测试应在___________测试之后进行。 (3)软件工程三要素包括方法、工具和过程,其中,___________支持软件开发的各个环节 的控制和管理。 (4)数据库设计包括概念设计、___________和物理设计。 (5)在二维表中,元组的___________不能再分成更小的数据项。 (6)当使用关键字___________作为函数返回类型时,该函数不返回任何值。 (7)已知数组a中有n个元素,下列语句将数组a中从下标xl开始的k个元素移动到从下 标x2开始的k个元素中,其中0<=xl For(inti=xl+k-1;i>=xl;i--) a[___________]=a; (8)有如下程序: #include usingnamespacestd; intfun1(intx){return++x;} intfun2(int&x){return++x;} intmain(){ intx=1,y=2; y=fun1(fun2(x)); cout< return0: } 程序的输出结果是___________。 (9)有如下程序: #include usingnamespacestd; classpumpkin{ public: pumpkin(){++count;} ~pumpkin(){--count;} staticvoidtotal_count(){ cout< } private: staticintcount; }; intpumpkin: : count=0; intmain(){ pumpkinpl[10]; pumpkin: : total_count(); return0; } 这个程序的输出结果是___________。 (10)有如下递归函数: intFun(intn){ if(n<=1)return1; ___________ } 请补充完整,使得函数Fun能够正确计算形参n的阶乘。 (11)请在下列程序中的空格处填写正确的语句: classSample{ public: Sample(){} ~Sample(){} voidSetData(intdata){//将Sample类成员变量data设置成形参的值 ___________ } private: intdata; }; (12)有如下类定义,请将Sample类的拷贝构造函数补充完整。 classSample{ public: Sample(){) ~Sample(){if(p)deletep;) Sample(constSample&s){ ___________ } voidSetData(intdata){p=newint(data);} private: int*p; }; (13)重载加法运算符“+”,其函数名是___________。 (14)有如下程序: #include usingnamespacestd; classWages{//“工资”类 doublebase;//基本工资 doublebonus;//奖金 doubletax;//税金 public: Wages(doubleCBase,doubleCBonus,doubleCTax): base(CBase),bonus(CBonus),tax(CTax){} doublegetPay()const;//返回应付工资额 Wagesoperator+(Wagesw)const;//重载加法 }; doubleWages: : getPay()const{returnbase+bonus-tax;} WagesWages: perator+(Wagesw)const{ returnWages(base+w.base,bonus+w.bonus,tax+w.tax); } intmain(){ Wageswl(2000,500,100),w2(5000,1000,300); cout<<(wl+w2).getPay0< retun0; } 程序的输出结果是___________ (15)有如下程序: #include usingnamespacestd; classPet{ charname[10]; public: Pet(char*name){strcpy(this->name,name);} constchar*getName()const{returnname;} virtualvoidcall()const=0; }; classDog: publicPet{ public: Dog(char*name)et(name){} voidcall()const{cout<<"汪汪叫";} }; classCat: publicPet{ public: Cat(char*name)et(name){} voidcall()const{cout<<"喵喵叫";} }; intmain(){ Pet*pet1=newDog("哈克"),*pet2=newCat("吉米"); cout cout return0; 2008年9月二级C++笔试试卷参考答案 一、选择题 (1)B) (2)D)(6)B)(7)A)(11)A)(12)A)(16)B)(17)B) (21)C)(22)C)(26)B)(27)C)(31)A)(32)C)(3)C) (8)B)(13)C)(18)D)(23)A)(28)B)(33)A)(4)A)(9)C) (14)B)(19)A)(24)D)(29)A)(34)B)(5)D)(10)D(15)D (20)D(25)C)(30)D(35)C) 二、填空题 (1)DBXEAYFZC (2)单元(3)过程(4)逻辑设计(5)分量(6)联接 (7)设计(8)选择结构(或条件结构)(9)RunSQL(10)动态(11)64 (12)num(13)f0+f1(14)rs.eof(15)fd 2009年3月计算机等级考试二级C++语言真题及参考答案 一、选择题(每小题2分,共70分) (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进后出”的线性表 C)循环队列是非线性结构 D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 (3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。 下面属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (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)有如下类定义和变量定义: classA{ publie: A(){data=0;} ~A(){} intGetData()coast{returndata;} voidSetData(intn) {data=n;} private: intdata; }; ccnstAa; Ab; 下列函数调用中错误的是 A)a.GetData(); B)a.SetData(10); C)b.GetData(); D)b.SetData(10); (13)有如下类定义和变量定义: classParents{ public: intpublicuata; private: intprivateData; }; classChildA: publicParents{/*类体略*/}; classChildB: privateParents{/*类体略*/); ChildAa; ChildBb; 下列语句中正确的是 A)cout< B)cout< C)cout< D)cout< (14)运算符重载时不需要保持的性质是 A)操作数个数 B)操作数类型 C)优先级 D)结合性 (15)下列关于函数模板的描述中,错误的是 A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准 B)对于常规参数所对应的模板实参,任何情况下都不能省略 C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参 D)模板参数表不能为空 (16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstreamfin=ifstream.open(“file.dat”); B)ifstream*fir.=newifstream(“file.dat”); C)ifstreamfin;fin.open(“file.dat”); D)ifstream*fin=newifstream();fin一>open(“file.dat”); (17)下列描述中,不属于面向对象思想主要特征的是 A)封装性 B)跨平台性 C)继承性 D)多态性 (18)有如下程序段: Tnti=4;intj=l; intmain(){ inti=8,j=i; cout< } 运行时的输出结果是 A)44 B)41 C)88 D)81 (19)有如下程序段: inti=5; while(inti=0){cout《'*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 全国 计算机等级考试 二级 C+ 笔试 试题 答案