《2022年3月全国计算机等级考试C++笔试试卷.docx》由会员分享,可在线阅读,更多相关《2022年3月全国计算机等级考试C++笔试试卷.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年3月全国计算机等级考试C+笔试试卷2011年全国计算机二级C+笔试试题1一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对2下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构3某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)74在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规
2、格说明书5结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构6下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具7负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言8一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系9有三个关系R、S和T如下:则由关系R和S得到关系T的操作是10定义无符
3、号整数类为UInt,下面可以作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合1,2,3,4,511为了提高函数调用的实际运行速度,可以将较简单的函数定义为A)内联函数B)重载函数C)递归函数D)函数模板12若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为A)aB)AA.aC)a()D)AA:a()13当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是A)任何B)公有或保护C)保护或私有D)私有14若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是A)Dat
4、a+(Data);B)Dataoperator+(Data);C)Data+operator(Data);D)operator+(Data,Data);15下列关于函数模板的描述中,正确的是A)函数模板是一个实例函数B)使用函数模板定义的函数没有返回类型C)函数模板的类型参数与函数的参数相同D)通过使用不同的类型参数,可以从函数模板得到不同的实例函数16C+系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是A)coutB)cinC)cerrD)cset17Windows环境下,由C+源程序文件编译而成的目标文件的扩展名是A)cppB)exeC)objD)lik18字符串a+b=
5、12nt的长度为A)12B)10C)8D)619有如下程序:#includeusingnamespacestd;intmain()intf,f1=0,f2=1;for(inti=3;i<=6;i+)f=f1+f2;f1=f2;f2=f;cout<<F<<ENDL;return0;运行时的输出结果是A)2B)3C)5D)820有如下程序:#includeusingnamespacestd;intmain()inta6=23,15,64,33,40,58;ints1,s2;s1=s2=a0;for(int*p=a+1;p<A+6;P+)if(s1>*p)s
6、1=*p;if(s2<*p)s2=*p;cout<<S1+S2<<ENDL;return0;运行时的输出结果是A)23B)58C)64D)7921有如下程序:#includeusingnamespacestd;voidf1(intx,inty)intz=x;x=y;y=z;voidf2(intx,inty)intz=x;x=y;y=z;intmain()intx=10,y=26;f1(x,y);f2(x,y);cout<<Y<<ENDL;return0;运行时的输出结果是A)10B)16C)26D)3622有如下程序:#includeusi
7、ngnamespacestd;classXAinta;public:staticintb;XA(intaa):a(aa)b+;XA()intget()returna;intXA:b=0;intmain()XAd1(2),d2(3);cout<<D1.GET()+D2.GET()+XA:B<<ENDL;return0;运行时的输出结果是A)5B)6C)7D)823有如下程序:#includeusingnamespacestd;classPointintx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1)intget()returnx+
8、y;classCirclePointcenter;intradius;public:Circle(intcx,intcy,intr):center(cx,cy),radius(r)intget()returncenter.get()+radius;intmain()Circlec(3,4,5);cout<<C.GET()<<ENDL;return0;运行时的输出结果是A)5B)7C)9D)1224若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是A)operatorlong()const;B)operatorlong(BigNumber
9、);C)longoperatorlong()const;D)longoperatorlong(BigNumber);25有如下函数模板定义:templateT1FUN(T2n)returnn*5.0;若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为A)FUN(9)B)FUN<9>C)FUN(9)D)FUN<9>(double)26下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是A)cout<<INTERNAL<<123456;<SPAN>B)cout
10、<<LEFT<<123456;C)cout<<RIGHT<<123456;D)cout<<SETW(6)<<123456;27下列关于析构函数的描述中,错误的是A)析构函数可以重载B)析构函数由系统自动调用C)每个对象的析构函数只被调用一次D)每个类都有析构函数28下列关于构造函数的描述中,错误的是A)构造函数名与类名相同B)构造函数可以有返回值C)构造函数可以重载D)每个类都有构造函数29若PAT是一个类,则程序运行时,语句PAT(*ad)3;调用PAT的构造函数的次数是A)0B)1C)2D)330下列描述中,错误的是A
11、)公有继承时基类中的公有成员在派生类中仍是公有成员B)公有继承时基类中的保护成员在派生类中仍是保护成员C)保护继承时基类中的公有成员在派生类中仍是公有成员D)保护继承时基类中的保护成员在派生类中仍是保护成员31生成派生类对象时,派生类构造函数调用基类构造函数的条件是A)无需任何条件B)基类中显式定义了构造函数C)派生类中显式定义了构造函数D)派生类构造函数明确调用了基类构造函数32下列关于派生类和基类的描述中,正确的是A)派生类成员函数只能访问基类的公有成员B)派生类成员函数只能访问基类的公有和保护成员C)派生类成员函数可以访问基类的所有成员D)派生类对基类的默认继承方式是公有继承33有如下类
12、模板定义:templateclassBigNumberlongn;public:BigNumber(Ti):n(i)BigNumberoperator+(BigNumberb)returnBigNumber(n+b.n);己知b1、b2是BigNumber的两个对象,则下列表达式中错误的是A)bl+b2B)b1+3C)3+b1D)3+334下列关于文件流的描述中,正确的是A)文件流只能完成针对磁盘文件的输入输出B)建立一个文件流对象时,必须同时打开一个文件C)若输入流要打开的文件不存在,将建立一个新文件D)若输出流要打开的文件不存在,将建立一个新文件35有如下程序:#includeusingn
13、amespacestd;classPairintm,n;public:Pair(intj,intk):m(j),n(k)intget()returnm;intget()constreturnm+n;intmain()Paira(3,5);constPairb(3,5);cout<<A.GET()<<B.GET();return0;运行时的输出结果是A)33B)38C)83D)8836二、填空题(1)有序线性表能进行二分查找的前提是该线性表必须是存储的。37一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为。38对软件设计的最小单位(模块
14、或程序单元)进行的测试通常称为测试。39实体完整性约束要求关系数据库中元组的属性值不能为空。40在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称是关系A的外码。41若有定义语句intx=10,y=20,z=20;,则表达式x>zy=z的值为。42有如下语句序列:intx=-10;while(+x)运行时while循环体的执行次数为。43有如下语句序列:intarr22=9,8,7,6;int*p=arr0+1;cout<<*p<<ENDL;<SPAN>运行时的输出结果是。44函数fun的功能是将一个数字字符
15、串转换为一个整数,请将函数补充完整。intfun(char*str)intnum=0;while(*str)num*=10;num+=;str+;returnnum;45若要将函数voidFriFun();声明为类MyClass的友元函数,则应在类MyClass的定义中加入语句。(11)下列程序的输出结果为012,请根据注释将横线处的缺失部分补充完整。#includeusingnamespacestd;classTestpublic:Test(inta)data=a;Test()voidprint()cout<<DATA;private:intdata;intmain()Testt
16、3=;/对有3个元素的Test类对象数组t初始化for(inti=0;i<3;i+)ti.print();return0;46请在横线处填写派生类Derived的继承方式,使得程序的输出结果为Base。#includeusingnamespacestd;classBasepublic:voidprint()cout<<Base;classDerived:Base;intmain()Derivedd;d.print();return0;47下列程序的输出结果为12.324.6,请将横线处的缺失部分补充完整。#includeusingnamespacestd;classBasep
17、ublic:Base(inta):idata(a)voidprint()cout<<IDATA<<''private:intidata;classDerived:publicBasepublic:Derived(inta,doubleb):,ddata(b)voidprint()Base:print();cout<<DATA<<''private:doubleddata;intmain()Derivedd1(1,2.3),d2(2,4.6);d1.print();d2.print();return0;48下列程序的
18、输出结果为-5/8-3/4,请将横线处的缺失部分补充完整。#includeusingnamespacestd;classFraction/分数类public:Fraction(doublea,doubleb):num(a),den(b)Fraction()/重载取负运算符-,返回一个分数对象,其分子是原来分子的相反数。Fractionoperator-()returnf;voidprint()cout<<'/'<<DEN<<'SPAN?;<>private:doublenum;/分子doubleden;/分母;intmai
19、n()Fractionf1(5,8),f2(3,4);(-f1).print();(-f2).print();return0;(15)函数Min的功能是返回具有n个元素的数组array中的最小值。请将横线处的缺失部分补充完整,使得程序的输出结果为1.24。#includeusingnamespacestd;templateTMin(T*array,intn)Tmin=array0;for(inti=1;i<N;I+)if(arrayireturnmin;intmain()doublearr8=5.2,48.45,41.01,42,51.2,1.24,14.12,42;cout<<return0;第15页 共15页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页