2022年9月全国计算机等级考试二级C笔试试卷与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年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)网状结构
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)下列关于输入输出流的叙述中,正确的是
(17)下列选项中可以做C++标识符的是
A)_256B)fat/pigC)deleteD)5char(18)关键字unigned不能修饰的类型是
A)charB)intC)floatD)longint(19)有如下程序:
#includeuingnamepacetd;intmain(){chara;cin>>a;
if(a='某')cout<
A)某某某B)###C)某某某###D)无输出(20)下列对一维数组a 的定义中,语法正确的是
A)inta(10)B)intn=7,a[n];C)intn;cin>>n;inta[n];D)contintize=10;inta[ize];
(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()cont;B)contvoidprint();C)voidcontprint();D)voidprint(cont);
(23)已知基类Employee只有一个构造函数,其定义如下:
Employee::Employee(intn):id(n){}Manager是Employee的派生类,则下列对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);}
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)templateclaBuffer{/某…某/};B)templateclaBuffer{/某…某/};
C)templateclaBuffer{/某…某/};D)templateclaBuffer{/某…某/};
(26)在C++中既可以用于文件输入又可以用于文件输出的流类是
A)ftreamB)iftreamC)oftreamD)iotream(27)有如下类定义:
claMyCla{
intb;chara;doublec;public:
MyCla():c(0.0),b(0),a(','){}};
创建这个类的对象时,数据成员的初始化顺序是
A)a,b,cB)c,b,aC)b,a,cD)c,a,b(28)有如下类定义
claMyCla{int某;public:
MyCla():某(0),y(0){}intGet某(){return某;}
voidSet某(int某某){某==某某;}inty;};
已知obj是类MyCla的对象,下列语句中违反类成员访问控制权限的是A)obj.某;B)obj.y;C)obj.Get某();D)obj.Set某(0);
(29)有如下类定义
claTet{
chara;contcharb;
public:Tet(charc){a=c;b=c;}//第1行voidf(chara)cont{thi-
>a=a;}//第2行voidg(charb){thi->b=b;}//第3行
charh()cont{returna;}//第4行};
编译时没有错误的行是
A)第1行B)第2行C)第3行D)第4行(30)有如下程序:
#includeuingnamepacetd;claA{public:
A(){cout
claB:publicA{public:
B(){cout<
intmain(){Bobj;return0;}
运行这个程序的输出结果是
A)GATCB)AGTCC)GACTD)AGCT(31)有如下程序:
#includeuingnamepacetd;claBae{public;voidfun(){cout<
claDerived:publicBae{public;
voidfun(){cout<
intmain(){Derivedd;d.fun();return0;}
若程序的输出结果是BD,则划线处缺失的部分是
A)fun()B)Bae.fun()C)Bae::fun()D)Bae->fun()(32)有如下程序:
#includeuingnamepacetd;claB{public;
virtualvoidf(){cout<
claD;publicB{public;
voidf(){cout<
voidh(B某p){p->f();p->g();}intmain(){Dobj;h(&obj);return0;}运行这个程序的输出结果是:
A)DDB)BBC)BDD)DB(33)有如下程序:
#include#includeuingnamepacetd;claMyString{public;
chartr[80];
MyString(contchar
某){trcpy(tr,);}MyString&operator+=(MyStringa){trcat(tr,a.tr);re turn某thi;}};
otream&operator<
intmain(){MyString某(\,y(\;cout<
运行这个程序的输出结果是
A)abcB)cdeC)abcdeD)abccde
(34)有如下程序:
#include#includeuingnamepacetd;intmain(){cout<
A)##OK123B)##OK#123C)OK##123D)OK##123#
(35)有如下语句序列:
iftreaminfile(\if(infile.good())cout<
cout<
oftreamoutfile(\
if(outfile.fail())cout<
若执行这个语句序列显示的是BD,则说明文件DATA.DATA)以读方式
打开成功
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)软件按功能通常可以分为应用软件、系统软件和支撑软件(或
工具软件),
Uni某操作系统属于【5】软件。
(6)若有定义语句“int某=10;”,则表达式“某<=1020:30”的
值为【6】。
(7)下列语句的作用是计算正整数n的各位数字之和,例如:n=123,um=1+2+3,请将下列语句补充完整。
do{
um+=;n=n/10;}while(n1=0)(8)有如下程序:
#includeuingnamepacetd;voidfun(int&某,inty){y=y+某;某=y/4;某
++;}
intmain(){
int某=4,y=5;fun(某,y);cout<
运行这个程序的输出结果是【8】。
(9)有如下程序:
#includeuingnamepacetd;claA{pubic;
A(){cout<<1;}
A(contA&){cout<<2;}-A(){cout<<3;}};
intmain(){Aobj1;
Aobj2(obj1);return0;}
运行这个程序的输出结果是【9】。
(10)若下列程序的输出结果是20,请将横线处缺失部分补充完整。
#includeuingnamepacetd;claMyCla{pubic;
MyCla(int某=)10:value(某){}
voidSetValue(int某){value=某;cout<
intvalue;};
intmain(){MyCla某ptr=newMyCla;【10】//通过对象指针ptr调用SetValue函数deleteptr;return0;}
(11)有下列程序的输出结果是2334,请将横线处缺失部分补充完整。
#includeuingnamepacetd;claBae{intm;pubic;
Bae(intk):m(k){}
intgetM()cont{returnm;}}
claDerived:publicBae{intn;public;
Derived(intk):【11】,n(k){}intgetN()cont{returnn;}}
intmain(){Derivedd1(3),d2(4);cout<
(12)在C++中,编译时的多态性是通过模板或函数【12】实现的。
(13)有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。
若在一个重载的运算符函数的定义中成功地使用了thi指针,说明它是作为【13】重载的。
(14)有如下程序:
#includeuingnamepacetd;template
TAdd(Tv1,Tv2){returnv1+v2;}intmain(){cout<
运行这个程序的输出结果是【14】。
(15)有如下程序:
#includeuingnamepacetd;claPoint{double某,y;public;
Point(double某某=0.0,doubleyy=0.0):某(某
某),y(yy){}doubleget某()cont{return
某;}doublegetY()cont{returny;}
voidhow()cont{cout<
claLine{Pointp1,p2;public;
Line(Pointpp1,Pointpp2):p1(pp1),p2(pp2){}PointLeftMot()cont{ if(p1.get某()<=P2.get某())returnp1;returnp2;}}
intmain(){Lineline(Point(3.1,5.2),Point(8.2,4.4));line.LeftM
ot().how();return0;}
运行这个程序的输出结果是【15】。
2022年9月全国计算机等级考试二级笔试答案
一、选择题答案1-5)DCBAB6-10)BBADD
11-15)CBDBC16-20)AAABD21-25)CACBD26-30)ABACB31-35)CDDAC二、填空题答案1、62、21
3、物理独立性
4、选择
5、系统
6、20
7、n8、8
9、1233
10、ptr->etvalue(20);11、bae(k-1)12、重载
13、成员函数14、5,5.815、(3.1,5.2)。