计算机二级C++真题及答案.docx
- 文档编号:11332519
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:103
- 大小:136.56KB
计算机二级C++真题及答案.docx
《计算机二级C++真题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C++真题及答案.docx(103页珍藏版)》请在冰豆网上搜索。
计算机二级C++真题及答案
全国计算机等级考试二级笔试试卷(2004年9月)
公共基础知识及C++语言程序设计
(考试时间90分钟,满分100)分)
一、选择题(
(1)~(35)每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下面叙述正确的是______
A)算法的执行效率与数据的存储结构无关
B)算法的空间复杂度是指算法程序中指令(或语句)的条数
C)算法的有穷性是指算法必须能在执行有限个步骤之后终止
D)以上三种描述都不对
(2)以下数据结构中不属于线性数据结构的是______
A)队列B)线性表C)二叉树D)栈
(3)在一棵二叉树上第5层的结点数最多是______
A)8B)16C)32D)15
(4)下面描述中,符合结构化程序设计风格的是______
A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B)模块只有一个入口,可以有多个出口
C)注重提高程序的执行效率D)不使用goto语句
(5)下面概念中,不属于面向对象方法的是______
A)对象B)继承C)类D)过程调用
(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______
A)可行性分析B)需求分析C)详细设计D)程序编码
(7)在软件开发中,下面任务不属于设计阶段的是______
A)数据结构设计B)给出系统模块结构
C)定义模块算法D)定义需求并建立系统模型
(8)数据库系统的核心是______
A)数据模型C)软件工具B)数据库管理系统D)数据库
(9)下列叙述中正确的是______
A)数据库系统是一个独立的系统,不需要操作系统的支持
B)数据库设计是指设计数据库管理系统
C)数据库技术的根本目标是要解决数据共享的问题
D)数据库系统中,数据的物理结构必须与逻辑结构一致
(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是______
A)内模式B)外模式C)概念模式D)逻辑模式
(11)关于面向对象的程序设计方法,下列说法正确的是
A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理
B)“多态性”指的是对象的状态会根据运行时要求自动变化
C)基类的私有成员在派生类的对象中不可访问,也不占内存空间
D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用
(12)判断字符型变量ch是否为大写英文字母,应使用表达式____
A)ch>='A'&ch<='Z'B)ch<='A'||ch>='Z'
C)'A'<=ch<='Z'D)ch>='A'&&ch<='Z'
(13)已知下列语句中的x和y都是int型变量,其中错误的语句
A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;
(14)执行语句序列
intn;
cin>>n;
switch(n)
{case1:
case2:
cout<<'1';
case3:
case4:
cout<<'2';break;
default:
cout<<'3';
}
时,若键盘输入1,则屏幕显示______
A)1B)2C)3D)12
(15)下列程序的输出结果是______
#include
usingnamespacestd;
intmain()
{
chara[]="Hello,World";
char*ptr=a;
while(*ptr)
{
if(*ptr>='a'&&*ptr<='z')
cout< elsecout<<*ptr; ptr++; } return0; } A)HELLO,WORLDB)Hello,World C)hELLO,wORLDD)hello,world (16)已知: intm=10;在下列定义引用的语句中,正确的是______ A)int&x=m;B)inty=&m;C)int&z;D)int&t=&m; (17)下列函数原型声明中错误的是______ A)voidFun(intx=0,inty=0); B)voidFun(intx,inty); C)voidFun(intx,inty=0); D)voidFun(intx=0,inty); (18)已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是______ A)chartest(int,int,int); B)doubletest(int,int,double); C)inttest(int,int,int=0); D)floattest(int,int,float=3.5F); (19)有以下程序 #include inti=0; voidfun() { { staticinti=1; std: : cout< } std: : cout< } intmain() { fun();fun(); return0; } 程序执行后的输出结果是______ A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0, (20)已知函数f的原型是: voidf(int*a,long&b);变量v1、v2的定义是: intv1;longv2;,正确的调用语句是______ A)f(v1,&v2);B)f(v1,v2); C)f(&v1,v2);D)f(&v1,&v2); (21)有以下类定义 classMyClass { public: MyClass(){cout<<1;} }; 则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是_____ A)11B)111C)1111D)11111 (22)关于友元,下列说法错误的是______ A)如果类A是类B的友元,那么类B也是类A的友元 B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元关系不能被继承 D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元 (23)关于动态存储分配,下列说法正确的是______ A)new和delete是C++语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化 C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间 D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new (24)有以下程序 #include usingnamespacestd; classMyClass { public: MyClass(intn){number=n;} //拷贝构造函数 MyClass(MyClass&other){number=other.number;} ~MyClass(){} private: intnumber; }; MyClassfun(MyClassp) { MyClasstemp(p); returntemp; } intmain() { MyClassobj1(10),obj2(0); MyClassobj3(obj1); obj2=fun(obj3); return0; } 程序执行时,MyClass类的拷贝构造函数被调用的次数是______ A)5B)4C)3D)2 (25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的______ A)公有成员和私有成员B)私有成员和保护成员 C)公有成员和保护成员D)私有成员、保护成员和公有成员 (26)在C++中用来实现运行时多态性的是______ A)重载函数B)析构函C)构造函数D)虚函数 (27)一个类可以同时继承多个类,称为多继承。 下列关于多继承和虚基类的表述中,错误的是______ A)每个派生类的构造函数都要为虚基类构造函数提供实参 B)多继承时有可能出现对基类成员访问的二义性问题 C)使用虚基类可以解决二义性问题并实现运行时的多态性 D)建立最派生类对象时,虚基类的构造函数会首先被调用 (28)在一个类体的下列声明中,正确的纯虚函数声明是______ A)virtualvoidvf()=0;B)voidvf(int)=0; C)virtualintvf(int);D)virtualvoidvf(int){} (29)在下面的运算符重载函数的原型中,错误的是______ A)Volumeoperator-(double,double); B)doubleVolume: : operator-(double); C)VolumeVolume: : operator-(Volume); D)Volumeoperator-(Volume,Volume); (30)下列是模板声明的开始部分,其中正确的是______ A)template B)template C)template D)template (31)执行语句序列 ofstreamoutfile("DATA.DAT"); if(...)cout<<"OK";elsecout<<"FAIL"; 后,如果文件打开成功显示“OK”,否则就显示“F厶n。 ”。 由此可知,上面if语句的... 处的表达式应是______ A)outfile.fail()或outfileB)outfile.good()或! outfile C)outfile.good()或outfileD)outfile.fail()或! outfile (32)C++流中重载的运算符>>是一个() A)用于输出操作的非成员函数B)用于输入操作的非成员函数 C)用于输出操作的成员函数D)用于输入操作的成员函数 (33)有以下类定义 classPoint{ public: Point(intx=0,inty=0){_.x=x;_.y=y;} voidMove(intxOff,intyOff) {_x+=xOff;_.y+=yOff;} voidPrint()const {cout<<'('<<_x<<','<<_y<<')'< private: int_x,_y; }; 下列语句中会发生编译错误的是______ A)Pointpt;pt.Print(); B)constPointpt;pt.Print(); C)Pointpt;pt.Move(l,2); D)constPointpt;pt.Move(l,2); (34)有以下类定义 classMyClass { private: intid; chargender, char*phone; public: MyClass(): id(0),gender('#'),phone(NULL){} MyClass(intno,charge='#',char*ph=NULl.) {id=no;gende=ge;phone=ph;} }; 下列类对象定义语句中错误的是______ A)MyClassmyObj; B)MyClassmyObj(11,""); C)MyClassmyObj(12,'m'); D)MyClassmyObj(12); (35)有以下程序 #include usingnamespacestd; classComplex { public: Complex(doubler=0,doublei=0): re(r),im(i){} doublereal()const{returnre;} doubleimag()const{returnim;} Complexoperator+(Complexc)const {returnComplex(re+c.re,im+c.im);} private: doublere,im; }; intmain() { Complexa=Complex(l,1)+Complex(5); cout< return0; } 程序执行后的输出结果是______ A)6+6iB)6+1iC)1+6iD)1+1i 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡[1]-[15]序号的横线上,答在试卷上不得分。 注意: 以命令关键字填空的必须拼写完整。 (1)算法的复杂度主要包括[1]复杂度和空间复杂度。 (2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的[2]。 (3)若按功能划分,软件测试的方法通常分为白盒测试方法[3]____________测试方法。 (4)如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在[4]的联系。 (5)关系数据库管理系统能实现的专门关系运算包括选择、连接和[5]。 (6)设有定义语句: inta=12;,则表达式a*=2+3的运算结果是[6]。 (7)从实现的角度划分,C++所支持的两种多态性分别是[7]______时的多态性和运行时的多态性。 (8)将—个函数声明为一个类的友元函数必须使用关键字[8]。 (9)请按下面注释的提示,将类B的构造函数定义补充完整。 classA { inta; public: A(intaa=0){a=aa;} }; classB: publicA{ intb; Ac; public: //用aa初始化基类A,用aa+1初始化类对象成员c B(intaa): [9]{b=aa+2;} }; (10)下列程序的输出结果是[10]。 #include usingnamespacestd; intmain() { inti=5; int&r=i;r=7; cout< return0; } (11)下列程序的输出结果是[11]。 #include usingnamespacestd; classTest{ public: Test(){cnt++;} ~Test(){cnt--;} staticintCount(){returncnt;} private: staticintcnt; }; intTest: : cnt=0; intmain() { cout< : Count0<<''; Testtl,t2; Test*pT3=newTest; Test*pT4=newTest; cout< : Count0<<''; deletepT4; deletepT3; cout< : Count()< return0; } (12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。 (注: 阶乘的定义是n! =n*(n-1)*...*2*1) unsignedfact(unsignedn) { if(n<=1) return1; return[12]; } (13)下列程序的输出结果是[13]。 #include usingnamespacestd; template Tfun(Ta,Tb){return(a<=b)? : b;} intmain() { cout< return0; } (14)与成员访问表达式p->name等价的表达式是[14]。 (15)下列程序的输出结果是[15]。 #include usingnamespacestd; classbase{ public: intn; base(intx){n=x;} virtualvoidset(intm){n=m;cout< }; classderiveA: publicbase{ public: deriveA(intx): base(x){} voidset(mtm){n+=m;cout< }; classderiveB: publicbase[ public: deriveB(intx): base(x){} voidset(intm){n+=m;cout< }; intmain() { deriveAdl (1);deriveBd2(3); base*pbase;pbase=&dl; pbase->aet (1);pbase=&d2; pbase->set (2);return0; } 计算机等级考试二级C++笔试试题(2010年3月) 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是______ A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) (2)算法的时间复杂度是指______ A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。 下面属于系统软件的是______ A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (4)软件(程序)调试的任务是______ A)诊断和改正程序中的错B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误D)确定程序中错误的性质 (5)数据流程图(DFD图)是______ A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。 详细设计属于______ A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是______ A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是______ A)文件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的______ A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段 (10)有两个关系R和T如下: 则由关系R得到关系T的操作是______ A)选择 B)投影 C)交 D)并 (11)下列关于函数的描述中,错误的是______ A)函数可以没有返回值 B)函数可以没有参数 C)函数可以是一个类的成员 D)函数不能被定义为模板 (12)若MyClass是一个类名,且有如下语句序列 MyClassc1,*c2; MyClass*c3=newMyClass; MyClass&c4=c1; 上面的语句序列所定义的类对象的个数是______ A)1 B)2 C)3 D)4 (13)下列关于继承方式的描述中,错误的是______ A)如果不显式地指定继承方式,缺省的继承方式是私有(private) B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是______ A)Decr&operator--(int); B)Decroperator--(Decr&,int); C)friendDecr&operator--(Decr&); D)frlendDecroperator--(Decr&,int); (15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempp2; MyTempp3[2]; 编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是______ A)1 B)2 C)3 D)0 (16)在C++中,cin是个______ A)类 B)对象 C)模板 D)函数 (17)在下列字符中,不允许作为C++标识符的是______ A)b B)B C)_ D)2 (18)下列叙述中,错误的是______ A)false是一个逻辑型常量 B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 C+ 答案