1、07计算机等级二级C+模拟试题2来源:希赛网更新:2007-3-29 9:41:16计算机等级考试考试论坛一、选择题(每小题2分,共70分) 下列各题A),B) ,C) ,D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A)GEDHFBCA B)DGEBHFCA C)ABCDEFGH D)ACBFEDHG(2)树是节点的集合,它的根节点数目是A)有且只有1 B)1或多于1C)0或1 D)至少2(3)如果进栈序列为el,e2,e3,e4,则可能的出栈序
2、列是A)e3,el,e4,e2 B)e2,e4,e3,elC)e3,e4,e1,e2 D)任意顺序(4)在设计程序时,应采纳的原则之一是A)不限制goto语句的使用 B)减少或取消注解行C)程序越短越好 D)程字结构应有助于读者理解(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分 B)变量成分 C)语句成份 D)传输成分(6)下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(7)下列不属于软件工程的3个要素的是A)工具 B)
3、过程 C)方法 D)环境(8)单个用户使用的数据视图的描述称为A)外模式 B)概念模式 C)内模式 D)存储模式(9)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性 B)关系 C)键 D)域(10)SQL语言又称为A)结构化定义语言 B)结构化控制语言C)结构化查询语言 D)结构化操纵语言(11)下面关于类和对象的描述中,错误的是A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量B)类和对象之间的关系是抽象和具体的关系C)对象是类的实例,一个对象必须属于一个已知的类D)类是具有共同行为的若干对象的统一描述体(12)以下各选项组中,均是C+语言关键字的组是A) public
4、 operator this B)shod string staticC)it while D)private cout printf(13)设int a10,b11,c12;,表达式(a+b)n为true或mn&mnB)switch语句结构中必须有default语句C)if语句结构中必须有else语句D)如果至少有一个操作数为true,则包含“”运算符的表达式为true(15)下列语句中不是死循环的是A)int i10; B)for( int i1:i=0):(16)下面关于break语句的描述中,不正确的是A)break可以用于循环体内 B) break语句可以在for循环语句中出现多次C
5、)break语句可以在switch语句中出现多次 D)break语句可用于if条件判断语句内(17)下面关于数组的描述错误的是A)在C+语言中数组的名字就是指向该数组第一个元素的指针B)长度为n的数组,下标的范围是0-n-1C)数组的大小必须在编译时确定D)数组只能通过值参数和引用参数两种方式传递给函数(18)下面程序错误的语句是#includevoid main()int*pnew int1;p=9;cout *peddl;deletep A) B) C) D)(19)下面的哪个选项不能作为函数的返回类型?A)void B)int C)new D)long(20)不能作为重载函数的调用的依据
6、是A)参数个数 B)参数类型 C)函数类型 D)函数名称(21)下列程序的输出结果为 #include int func(int n) ifn1)return 1; else return n+tune(n-1): return 0; void main() coutfunc(5)endl;A) 0 B)10 C)15 D)16(22)在C+语言中,数据封装要解决的问题是A)数据的规范化 B)便于数据转换C)避免数据丢失 D)防止不同模块之间数据的非法访问(23)以下程序中,错误的行是 #include class A public: int n2: A( int val)coutval cl
7、ass A int num; public: A(int i)num=i; A(A &a)numa. num+; void print()coutnum; ; void main() A a(1),b(a); a. print(); b.print();A)11 B)12 C)21 D)22(26)下面对静态数据成员的描述中,正确的是A)静态数据成员是类的所有对象共享的数据 B)类的每个对象都有自己的静态数据成员C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用(27)如果类A被说明成类B的友元,则A)类A的成员即类B的成员 B)类B的成员即类A的成员C)类A的成员函
8、数不得访问类B的成员 D)类B不一定是类A的友元(28)可以用p.a的形式访问派生类对象P的基类成员a,其中a是A)私有继承的公有成员 B)公有继承的私有成员C)公有继承的保护成员 D)公有继承的公有成员(29)建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为A)abc B)acb C)cab D)cba(30)下面关于虚函数的描述,错误的是A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C)虚函数可以是另一个类的友元函数,但
9、不能是静态成员函数D)基类中说明的纯虚函数在其任何派生类中都必须实现(31)下面关于模板的描述,错误的是A)函数模板和类模板的参数可以是任意的数据类型B)类模板不能直接使用,必须先实例化为相应的模板类然后定义了模板类的对象后才能使用C)函数模板不能直接使用,需要实例化为模板函数后才能使用D)类模板的成员函数都是模板函数(32)语句ofstream f(”SALARY. DAT,ios:app iios:binary);的功能是建立流对象f,试图打开文件SAL:aRY. D AT并与之连接,并且A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;
10、若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件(33)下面程序的运行结果是 #include void main() int num=1; int &ref=num: refref+2; cout(num; num=num+3; coutrefendl; A)13 B)16 C)36 D)33(34)下面程序的运行结果是 #include void fun(int*a,int*b) int x=*a *a=,b;*b=x; cout*a*b” ”; void main() int x1,y=2;
11、 fun(&x,&y); coutxyendl; A)12 12 B)12 21 C)21 12 D)21 21(35)下列程序的运行结果为 #include int i0; class A public: A()i+; ; void main() Aa,b3,*c; cb: coutiendl; A)2 B)3 C)4 D)5 二、填空题(每空2分,共30分) 请将答案分别写在答题卡中序号为【1】【15】的横线上,答在试卷上不得分。 (l)数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。 (2)在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。 (3)耦合和内聚是评价模块独
12、立性的两个主要标准其中 【3】 反映了模块内各成份之间的联系。 (4)一个项目具有一个项目主管一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 【4】 的联系。 (5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设设计阶段、实施阶段、运行和维护阶段。 (6)开发一个C+语言程序的步骤通常包括编辑、 【6】 、链接、运行和调试。 (7)假设int a=1,b2;则表达式a+-b的值为 【7】 。 (8)下面程序的输出结果为 【8】 。 #include void main() int num0,i8; do i-; num+; while(-i): coutnum void fun(int x0,int y=0) coutx”) (12)【13】运行时 (13)【14】操作符个数 (14)【15】coutA;