计算机二级考试9套真题及答案.docx
- 文档编号:7504298
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:153
- 大小:77.90KB
计算机二级考试9套真题及答案.docx
《计算机二级考试9套真题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级考试9套真题及答案.docx(153页珍藏版)》请在冰豆网上搜索。
计算机二级考试9套真题及答案
2009年9月全国计算机等级考试笔试试卷
二级公共基础知识和二级C++语言程序设计
(考试时间90分钟,满分100分)
一、选择题(
(1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,70分)
(1)下列数据结构中,属于非线性结构的是()。
A)循环队列B)带链队列
C)二叉树D)带链栈
(2)下列数据结构中,能够按照“先进后出”原则存取数据的是()。
A)循环队列B)栈
C)队列D)二叉树
(3)对于循环队列,下列叙述中正确的是()。
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
(4)算法的空间复杂度是指()。
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
(5)软件设计中划分模块的一个准则是()。
A)低内聚低耦合B)高内聚低耦合
C)低内聚高耦合D)高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是()。
A)可封装B)自顶向下
C)模块化D)逐步求精
(7)软件详细设计产生的图如下:
该图是()。
A)N-S图B)PAD图C)程序流程图D)E-R图
(8)数据库管理系统是()。
A)操作系统的一部分B)在操作系统支持下的系统软件
C)一种编译系统D)一种操作系统
(9)在E-R图中,用来表示实体联系的图形是()。
A)椭圆形B)矩形C)菱形D)三角形
(10)有三个关系R,S和T如下:
begin
RST
A
B
C
A
B
C
A
B
C
a
1
2
d
3
2
a
1
2
b
2
1
b
2
1
c
3
1
c
3
1
d
3
2
其中关系T由关系R和S通过某种操作得到,该操作为()。
A)选择B)投影C)交D)并
(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。
A)FA必须定义在FB之前
B)FB必须定义在FA之前
C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
(12)有如下两个类定义:
classAA{};
classBB{
AAv1,*v2;
BBv3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是()。
A)v1B)v2C)v3D)v4
(13)有如下类定义:
classXX{
intxdata;
public:
XX(intn=0):
xdata(n){}
};
classYY:
publicXX{
intydata;
public:
YY(intm=0,intn=0):
XX(m),ydata(n){}
};
YY类的对象包含的数据成员的个数是()。
A)1B)2C)3D)4
(14)下列关于运算符函数的描述中,错误的是()。
A)运算符函数的名称总是以operator为前缀
B)运算符函数的参数可以是对象
C)运算符函数只能定义为类的成员函数
D)在表达式中使用重载的运算符相当于调用运算符重载函数
(15)下列关于模板形参的描述中,错误的是()。
A)模板形参表必须在关键字template之后
B)模板形参表必须用括弧()括起来
C)可以用class修饰模板形参
D)可以用typename修饰模板形参
(16)在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()。
A)ios_base:
:
curB)ios_base:
:
beg
C)ios_base:
:
outD)ios_base:
:
end
(17)下列字符串中可以用作C++标识符的是()。
A)2009varB)goto
C)test-2009D)_123
(18)下列枚举类型的定义中,包含枚举值3的是()。
A)enumtest{RED,YELLOW,BLUE,BLACK};
B)enumtest{RED,YELLOW=4,BLUE,BLACK};
C)enumtest{RED=-1,YELLOW,BLUE,BLACK};
D)enumtest{RED,YELLOW=6,BLUE,BLACK};
(19)有如下程序段:
inti=1;
while
(1){
i++;
if(i==10)break;
if(i%2==0)cout<<'*';
}
}
执行这个程序段输出字符*的个数是()。
A)10B)3C)4D)5
(20)已知数组arr的定义如下:
intarr[5]={1,2,3,4,5};
下列语句中输出结果不是2的是()。
A)cout<<*arr+1< C)cout< (21)计算斐波那契数列第n项的函数定义如下: intfib(intn){ if(n==0)return1; elseif(n==1)return2; elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib (2),函数fib被调用的次数是()。 A)1B)2C)3D)4 (22)Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是()。 Samplea[2],*P=newSample; A)0B)1C)2D)3 (23)下列关于虚基类的描述中,错误的是()。 A)使用虚基类可以消除由多继承产生的二义性 B)构造派生类对象时,虚基类的构造函数只被调用一次 C)声明“classB: virtualpublicA”说明类B为虚基类 D)建立派生类对象时,首先调用虚基类的构造函数 (24)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是()。 A)不合法的运算符B)一元运算符 C)无操作数的运算符D)二元运算符 (25)有如下模板声明: template 下列声明中,与上述声明不等价的是()。 A)template B)template C)template D)template (26)下列关于C++流的描述中,错误的是()。 A)cout>>'A'表达式可输出字符A B)eof()函数可以检测是否到达文件尾 C)对磁盘文件进行流操作时,必须包含头文件fstream D)以ios_base: : out模式打开的文件不存在时,将自动建立一个新文件 (27)有如下程序: #include usingnamespacestd; classToy{ public: Toy(char*_n){strcpy(name,_n);count++;} ~Toy(){count--;} char*GetName(){returnname;} staticintgetCount(){returncount;} private: charname[10]; staticintcount; }; intToy: : count=0; intmain(){ Toyt1("Snoopy"),t2("Mickey"),t3("Barbie"); cout< return0; } 运行时的输出结果是()。 A)1B)2C)3D)运行时出错 (28)有如下程序: #include usingnamespacestd; classA{ public: A(inti): r1(i){} voidprint(){cout<<'E'< voidprint()const{cout<<'C'< private: intr1; }; intmain(){ Aa1 (2);constAa2(4); a1.print();a2.print(); return0; } 运行时的输出结果是()。 A)运行时出错B)E2-C16-C)C4-C16-D)E2-E4- (29)有如下程序: #include usingnamespacestd; className{ charname[20]; public: Name(){ strcpy(name,"");cout<<'? '; } Name(char*fname){ strcpy(name,fname);cout<<'? '; } }; intmain(){ Namenames[3]={Name("张三"),Name("李四")}; return0; } 运行此程序输出符号? 的个数是()。 A)0B)1C)2D)3 (30)有如下程序: #include usingnamespacestd; classAA{ public: AA(){cout<<'1';} }; classBB: publicAA{ intk; public: BB(): k(0){cout<<'2';} BB(intn): k(n){cout<<'3';} }; intmain(){ BBb(4),c; return0; } 运行时的输出结果是()。 A)1312B)132C)32D)1412 (31)有如下程序: #include usingnamespacestd; classC1{ public: ~C1(){cout<<1;} }; classC2: publicC1{ public: ~C2(){cout<<2;} }; intmain(){ C2cb2; C1*cb1; return0; } 运行时的输出结果是()。 A)121B)21C)211D)12 (32)有如下程序: #include usingnamespacestd; classPublication{//出版物类 charname[30]; public: Publication(char*name="未知名称"){ strcpy(this->name,name); } constchar*getName()const{returnname;} virtualconstchar*getType()const{return"未知类型";} }; classBook: publicPublication{//书类 public: Book(char*name): Publication(name){} virtualconstchar*getType()const{return"书";} }; voidshowPublication(Publication&p){ cout< "< } intmain(){ Bookbook("精彩人生"); showPublication(book); return0; } 运行时的输出结果是()。 A)未知类型: 未知名称B)未知类型: 精彩人生 C)书: 未知名称D)书: 精彩人生 (33)下列关于运算符重载的描述中,错误的是()。 A): : 运算符不能重载 B)类型转换运算符只能作为成员函数重载 C)将运算符作为非成员函数重载时必须定义为友元 D)重载[]运算符应完成“下标访问”操作 (34)有如下程序: #include #include usingnamespacestd; intmain(){ ints[]={123,234}; cout< for(inti=0;i<2;i++){cout< return0; } 运行时的输出结果是()。 A)123B)***123C)***123D)***123 234234***234234*** (35)有如下类定义: ciassA{ char*a; public: A(): a(0){} A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间 a=__________; strcpy(a,aa); } ~A()(delete[]a;} }; 横线处应填写的表达式是()。 A)newchar[strlen(aa)+1]B)char[strlen(aa)+1] C)char[strlen(aa)]D)newchar[sizeof(aa)-1] 二、填空题(每空2分,共30分) (1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。 (2)程序流程图中的菱形框表示的是【2】。 (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中【3】阶段产生“软件需求 规格说明书”。 (4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课 程”的联系为【4】。 (5)人员基本信息一般包括: 身份证号,姓名,性别,年龄等。 其中可以作为主关键字的是【5】。 (6)若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为【6】。 (7)有如下循环语句: for(inti=50;i>20;i-=2)cout< 运行时循环体的执行次数是【7】次。 (8)利用表达式a[i]可以访问int型数组a中下标为i的元素。 在执行了语句int*p=a;后,利用指针p也可 访问该元素,相应的表达式是【8】。 (9)下面是一个递归函数,其功能是使数组中的元素反序排列。 请将函数补充完整。 voidreverse(int*a,intsize){ if(size<2)return; intk=a[0]; a[0]=a[size-1]; a[size-1]=k; reverse(a+l,【9】); } (10)类Sample的构造函数将形参data赋值给数据成员data。 请将类定义补充完整。 classSample{ public: Sample(intdata=0); private: intdata; }; Sample: : Sample(intdata){ 【10】 } (11)有如下类定义: classSample{ public: Sample(); ~Sample(); private: staticintdata; }; 将静态数据成员data初始化为0的语句是【11】。 (12)“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle 类中的CalArea函数补充完整。 classShape{ public: virtualintCalArea()=0; }; classTriangle: publicShape{ public: Triangle(ints,inth): side(s),height(h){} 【12】。 {returnside*height/2;} private: intside; intheight; }; (13)有如下程序: #include usingnamespacestd; classGrandChild{ public: GrandChild(){strcpy(name,"Unknown");} constchar*getName()const{returnname;} virtualchar*getAddress()const=0; private: charname[20]; }; classGrandSon: publicGrandChild{ public: GrandSon(char*name){} char*getAddress()const{return"Shanghai";} }; intmain(){ GrandChild*gs=newGrandSon("Feifei"); cout< deletegs; return0; } 运行时的输出结果是【13】。 (14)如下程序定义了“单词”类Word,类中重载了<运算符,用于比较“单词”的大小,返回相应的逻 辑值。 程序的输出结果为: AfterSorting: HappyWelcome,请将程序补充完整。 #include #include usingnamespacestd; classWord{ public: Word(strings): str(s){} stringgetStr(){returnstr;} booloperator<(Wordw)const{return(str friendostream&operator<<(ostream&output,constWord&w) {output< private: stringstr; }; intmain(){ Wordw1("Happy"),w2("Welcome"); cout<<"Aftersorting: "; if(w1 elsecout< return0; } (15)请将下列模板类Data补充完整。 template classData{ public: voidput(Tv){val=v;} 【15】get()//返回数据成员val的值,返回类型不加转换 {returnval;} private: Tval; }; 1 2009年9月笔试试卷参考答案 一、选择题 (1)C) (2)B)(3)D)(4)A)(5)B) (6)A)(7)C)(8)B)(9)C)(10)D) (11)D)(12)C)(13)B)(14)C)(15)B) (16)A)(17)D)(18)A)(19)C)(20)D) (21)B)(22)D)(23)C)(24)B)(25)D) (26)A)(27)C)(28)B)(29)D)(30)A) (31)B)(32)D)(33)C)(34)B)(35)A) 二、填空题 (1)14 (2)逻辑判断 (3)需求分析 (4)多对多 (5)身份证号 (6)double型 (7)15 (8)*(p+i) (9)size-1 (10)this->data=data (11)intSample: : data=0 (12)intCalArea(size,height) (13)Unknown住在Shanghai (14)booloperator<(Wordw) (15)T 2009年3月全国计算机等级考试二级笔试试卷 C++语言程序设计 (考试时间90分钟,满分100分) 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置 上,答在试卷上不得分。 (1)下列叙述中正确的是()。 A)栈是“先进先出”的线性表 B)队列是“先进后出”的线性表 C)循环队列是非线性结构 D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是()。 A)栈B)树 C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。 A)10B)8 C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是()。 A)冒泡排序B)简单选择排序 C)直接插入排序D)堆排序 (5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 套真题 答案