历年全国计算机等级考试二级C++真题及答案10年12年.docx
- 文档编号:3686109
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:91
- 大小:98.25KB
历年全国计算机等级考试二级C++真题及答案10年12年.docx
《历年全国计算机等级考试二级C++真题及答案10年12年.docx》由会员分享,可在线阅读,更多相关《历年全国计算机等级考试二级C++真题及答案10年12年.docx(91页珍藏版)》请在冰豆网上搜索。
历年全国计算机等级考试二级C++真题及答案10年12年
历年全国计算机等级考试二级C++真题及答案(最新)
2012年9月全国计算机等级考试二级C++笔试试卷
C++语言程序设计
(考试时间90分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列链表种,其逻辑结构属于非线性结构的是
A)循环链表B)双向链表C)带链的栈D)二叉链表
(2)设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为
A)16B)20C)0或35D)15
(3)下列关于栈的叙述中,正确的是
A)栈顶元素一定是最先入栈的元素B)栈操作遵循先进后出的原则
C)栈底元素一定是最后入栈的元素D)以上三种说法都不对
(4)在关系数据库中,用来表示实体间联系的是
A)二维表B)树状结构C)属性D)网状结构
(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是
A)m:
1联系B)1:
m联系C)1:
1联系D)m:
n联系
(6)有两个关系R和S如下:
R
S
A
B
C
A
B
C
a
1
2
c
3
1
b
2
1
c
3
1
则由关系R得到关系S的操作是
A)自然连接B)选择C)并D)投影
(7)数据字典(DD)所定义的对象都包含于
A)程序流程图B)数据流图(DFD图)C)方框图D)软件结构图
(8)软件需求规格说明书的作用不包括
A)软件可行性研究的依据B)用户与开发人员对软件要做什么的共同理解
C)软件验收的依据D)软件设计的依据
(9)下面属于黑盒测试方法的是
A)逻辑覆盖B)语句覆盖C)路径覆盖D)边界值分析
(10)下面不属于软件设计阶段任务的是
A)数据库设计B)算法设计
C)软件总体设计D)制定软件确认测试计划
(11)下列关于函数重载的叙述中,错误的是
A)重载函数的参数个数可以不同
B)重载函数的参数类型可以不同
C)重载函数的返回值类型必须不同
D)重载函数的参数个数或参数类型必须有所不同
(12)下列关于类成员对象构造函数调用顺序的叙述中,正确的是
A)与它们在初始化列表中顺序相同
B)与它们在类中声明的顺序相同
C)与析构函数的调用顺序相同
D)顺序不确定
(13)下列关于派生类的叙述中,错误的是
A)派生类至少要有一个基类
B)派生类中包括了从基类继承的成员
C)一个派生类可以作为另一个派生类的基类
D)基类成员被派生类继承以后访问权限保持不变
(14)下列关于运算符重载的叙述中,正确的是
A)通过运算符重载机制可以为C++语言扩充新的运算符
B)运算符重载的作用是使已有的运算符作用于类的对象
C)重载运算符的操作数类型可以全部为基本类型
D)所有运算符都可以重载
(15)下列关于模板的叙述中,错误的是
A)调用模板函数时,有时可以省略模板实参
B)函数模板的每个实例就是一个函数定义
C)类模板的每个实例就是一个类定义
D)类模板的实例是一个类对象
(16)下列关于输入输出流的叙述中,正确的是
A)一个文件流可以与一个数据文件相联系
B)cin是专门从键盘输入数据的输入流类
C)流运算符<<用来从输入流中读取数据
D)宽度设置的效果永久有效
(17)下列选项中可以做C++标识符的是
A)_256B)fat/pigC)deleteD)5char
(18)关键字unsigned不能修饰的类型是
A)charB)intC)floatD)longint
(19)有如下程序:
#include
usingnamespacestd;
intmain(){
chara;
cin>>a;
if(a='*')cout<<"***"< elsecout<<"###"< return0; } A)***B)###C)***###D)无输出 (20)下列对一维数组a的定义中,语法正确的是 A)inta(10)B)intn=7,a[n];C)intn;cin>>n;inta[n];D)constintsize=10;inta[size]; (21)假设函数fun已经定义,其原型为”voidfun(inta,intb=7,char*p=”**”);”,下列函数调用中错误的是 A)fun(5)B)fun(5,8)C)fun(6,”##”)D)fun(0,0.”==”) (22)已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是 A)voidprint()const;B)constvoidprint();C)voidconstprint();D)voidprint(const); (23)已知基类Employees只有一个构造函数,其定义如下: Employee: : Employee(intn): id(n){} Manager是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是 A)Manager: : Manager(intn): id(n){} B)Manager: : Manager(intn){id=n;} C)Manager: : Manager(intn): Employee(n){} D)Manager: : Manager(intn){Employee(n);} (24)已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于 A)c1.operator*(c2.operator+(c1))B)c1.operator+(c2.operator*(c1)) C)c1.operator*(c1.operator+(c2))D)c2.operator+(c1.operator*(c1)) (25)下列类模板的定义中语法格式错误的是 A)template B)template C)template D)template (26)在C++中既可以用于文件输入又可以用于文件输出的流类是 A)fstreamB)ifstreamC)ofstreamD)iostream (27)有如下类定义: classMyClass{ intb;chara;doublec; public: MyClass(): c(0.0),b(0),a(','){} }; 创建这个类的对象时,数据成员的初始化顺序是 A)a,b,cB)c,b,aC)b,a,cD)c,a,b (28)有如下类定义 classMyClass{ intx; public: MyClass(): x(0),y(0){} intGetX(){returnx;} voidSetX(intxx){x==xx;} inty; }; 已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是 A)obj.x;B)obj.y;C)obj.GetX();D)obj.SetX(0); (29)有如下类定义 classTest{ chara;constcharb; public: Test(charc){a=c;b=c;}//第1行 voidf(chara)const{this->a=a;}//第2行 voidg(charb){this->b=b;}//第3行 charh()const{returna;}//第4行 }; 编译时没有错误的行是 A)第1行B)第2行C)第3行D)第4行 (30)有如下程序: #include usingnamespacestd; classA{ public: A(){cout<,'A';} ~A(){cout<<'C';} }; classB: publicA{ public: B(){cout<<'G';} ~B(){cout<<'T';} }; intmain(){ Bobj; return0; } 运行这个程序的输出结果是 A)GATCB)AGTCC)GACTD)AGCT (31)有如下程序: #include usingnamespacestd; classBase{ public; voidfun(){cout<<'B';} }; classDerived: publicBase{ public; voidfun(){cout<<'D';} }; intmain(){ Derivedd; d.fun(); return0; } 若程序的输出结果是BD,则划线处缺失的部分是 A)fun() B)Base.fun()C)Base: : fun()D)Base->fun() (32)有如下程序: #include usingnamespacestd; classB{ public; virtualvoidf(){cout<<"B";} voidg(){cout<<"B";} } classD;publicB{ public; voidf(){cout<<"D";} voidg(){coun<<"D";} } voidh(B*p){p->f();p->g();} intmain(){ Dobj; h(&obj); return0; } 运行这个程序的输出结果是: A)DDB)BBC)BDD)DB (33)有如下程序: #include #include usingnamespacestd; classMyString{ public; charstr[80]; MyString(constchar*s){strcpy(str,s);} MyString&operator+=(MyStringa){ strcat(str,a.str); return*this; } }; ostream&operator<<(ostream&s,constMyString&z){returns< intmain(){ MyStringx("abc"),y("cde"); cout<<(x+=y)< return0; } 运行这个程序的输出结果是 A)abcB)cdeC)abcdeD)abccde (34)有如下程序: #include #include usingnamespacestd; intmain(){ cout< return0; } A)##OK123B)##OK#123C)OK##123D) OK##123# (35)有如下语句序列: ifstreaminfile("DATA.DAT"); if(infile.good())cout<<"A"; else{ cout<<"B"; ofstreamoutfile("DATA.DAT"); if(outfile.fail())cout<<"C";elsecout<<"D"; } 若执行这个语句序列显示的是BD,则说明文件DATA.DAT A)以读方式打开成功 B)以读方式打开失败,但以写方式打开成功 C)以读方式打开失败,以写方式打开也失败 D)以读方式打开成功,以写方式打开也成功 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。 注意: 以命令关键字填空的必须拼写完整 (1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。 (2)设栈的存储空间为S(1: 40),初始状态为bottom=0,top=0,现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。 (3)数据独立性分为逻辑独立性和物理独立性。 当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3】。 (4)关系数据库中能实现的专门关系运算包括【4】、连接和投影。 (5)软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),Unix操作系统属于【5】软件。 (6)若有定义语句“intx=10;”,则表达式“x<=10? 20: 30”的值为【6】。 (7)下列语句的作用是计算正整数n的各位数字之和,例如: n=123,sum=1+2+3,请将下列语句补充完整。 do{ sum+=; n=n/10; }while(n1=0) (8)有如下程序: #include usingnamespacestd; voidfun(int&x,inty){ y=y+x; x=y/4; x++; } intmain(){ intx=4,y=5; fun(x,y); cout< return0; } 运行这个程序的输出结果是【8】。 (9)有如下程序: #include usingnamespacestd; classA{ pubic; A(){cout<<1;} A(constA&){cout<<2;} -A(){cout<<3;} }; intmain(){ Aobj1; Aobj2(obj1); return0; } 运行这个程序的输出结果是【9】。 (10)若下列程序的输出结果是20,请将横线处缺失部分补充完整。 #include usingnamespacestd; classMyClass{ pubic; MyClass(intx=)10: value(x){} voidSetValue(intx){value=x;cout< private; intvalue; }; intmain(){ MyClass*ptr=newMyClass; 【10】//通过对象指针ptr调用SetValue函数 deleteptr; return0; } (11)有下列程序的输出结果是2334,请将横线处缺失部分补充完整。 #include usingnamespacestd; classBase{ intm; pubic; Base(intk): m(k){} intgetM()const{returnm;} } classDerived: publicBase{ intn; public; Derived(intk): 【11】,n(k){} intgetN()const{returnn;} } intmain(){ Derivedd1(3),d2(4); cout< return0; } (12)在C++中,编译时的多态性是通过模板或函数【12】实现的。 (13)有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。 若在一个重载的运算符函数的定义中成功地使用了this指针,说明它是作为【13】重载的。 (14)有如下程序: #include usingnamespacestd; template TAdd(Tv1,Tv2){returnv1+v2;} intmain(){ cout< return0; } 运行这个程序的输出结果是【14】。 (15)有如下程序: #include usingnamespacestd; classPoint{ doublex,y; public; Point(doublexx=0.0,doubleyy=0.0): x(xx),y(yy){} doublegetX()const{returnx;} doublegetY()const{returny;} voidshow()const{cout<<'('< } classLine{ Pointp1,p2; public; Line(Pointpp1,Pointpp2): p1(pp1),p2(pp2){} PointLeftMost()const{ if(p1.getX()<=P2.getX())returnp1; returnp2; } } intmain(){ Lineline(Point(3.1,5.2),Point(8.2,4.4)); line.LeftMost().show(); return0; } 运行这个程序的输出结果是【15】。 2012年9月全国计算机等级考试二级笔试C++答案 一、选择题答案 1-5)DCBAB 6-10)BBADD 11-15)CBDBC 16-20)AAABD 21-25)CACBD 26-30)ABACB 31-35)CDDAC 二、填空题答案 1、6 2、21 3、物理独立性 4、选择 5、系统 6、 20 7、 n%10 8、 8 9、1233 10、 ptr->setvalue(20); 11、base(k-1) 12、重载 13、成员函数 14、5,5.8 15、(3.1,5.2) } 2012年3月全国计算机等级考试二级笔试试卷 VisualC++程序设计 (考试时间90分钟,满分100分) 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)循环队列是队列的一种链式存储结构B)循环队列是一种逻辑结构 C)循环队列是队列的一种顺序存储结构D)循环队列是非线性结构 (2)下列叙述中正确的是 A)栈是一种先进先出的线性表B)队列是一种后进先出的线性表 C)栈与队列都是非线性结构D)以上三种说法都不对 (3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为 A)4B)16C)10D)6 (4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 A)逻辑模式B)概念模式C)内模式D)外模式 (5)在满足实体完整性约束的条件下 A)一个关系中可以没有候选关键字 B)一个关系中只能有一个候选关键字 C)一个关系中必须有多个候选关键字 D)一个关系中应该有一个或多个候选关键字 (6)有三个关系R、S和T如下: R s t A B C A B C A B C a 1 2 a 1 2 b 2 1 b 2 1 d 2 1 c 3 1 c 3 1 则由关系R和S得到关系T的操作是 A)并B)差C)交D)自然连接 (7)软件生命周期的活动中不包括 A)软件维护B)需求分析C)市场调研D)软件测试 (8)下面不属于需求分析阶段任务的是 A)确定软件系统的性能需求B)确定软件系统的功能需求 C)制定软件集成测试计划D)需求规格说明书评审 (9)在黑盒测试方法中,设计测试用例的主要根据是 A)程序外部功能B)程序数据结构C)程序流程图D)程序内部结构 (10)在软件设计中不使用的工具是 A)系统结构图B)程序流程图C)PAD图D)数据流图(DFD图) (11)若一个函数的原型为"int*Xfun1(intx,int&y,charz);",则该函数的返回值类型为 A)int*B)int C)int&D)char (12)若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。 如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为 A)AA.getA()B)x.getA() C)x.aD)AA: : a (13)当派生类继承一个基类时,默认的继承方式为 A)publicB)protected C)privateD)不确定 (14)若需要为XV类重载乘法运算符,运算结果为XV类型,在将其声明为类的成员函数时,下列原型声明正确的是 A)XVoperator*(XV,XV); B)XV*(XV); C)operator*(XV); D)XVoperator*(XV); (15)在定义函数模板或类模板时,开头的保留字是 A)typenameB)template C)classD)typedef (16)若需要向一个二进制文件尾部添加数据,则该文件的打开方式为 A)ios_base: : app B)ios_base: : binary|ios_base: : out C)ios_base: : out D)ios_base: : binary|ios_base: : app (17)在开发一个c++程序的整个过程中,第3个步骤为 A)链接B)运行 C)编辑D)编译
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 全国 计算机等级考试 二级 C+ 答案 10 12
![提示](https://static.bdocx.com/images/bang_tan.gif)