1、计算机二级(C+)21 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:25,分数:1750.00)1.对表达式 for(表达式 1;表达式 3)可理解为( )。(分数:70.00)A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3)C.for(表达式 1;表达式 3;)D.for(;表达式 3)2.下列关于 C+语言类的描述中错误的是( )。(分数:70.00)A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间
2、可以通过一些方法进行通信和联络3.有以下程序 #includeiostreamh void main( ) int a=5,b=0,c=0; if(a=b+c) cout“* * *“ endl; else cout“$“endl; 下列选项叙述正确的是( )。 (分数:70.00)A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出* * *D.输出 $ $ $4.C+语言中,表示一条语句结束的标号是( )。(分数:70.00)A.Caption属性B.BackColor属性C.ForeColor属性D.Color属性5.下面程序输出的结果是( )。 #includeiostrea
3、mh void main( ) int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) coutaii“ “; (分数:70.00)A.15B.16C.510D.6106.以下关于 C+语言类的说法中正确的是( )。(分数:70.00)A.C+语言的默认访问权限是 privateB.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不能够嵌套定义7.下列程序的输出结果是( )。 #includeiostreamh void main( ) int a3,i,j,k=2;
4、for(i=0;i3;i+)ai=i; for(i=0;ik;i+) for(j=0;jk;j+) aj=ai; couta2; (分数:70.00)A.2B.3C.1D.08.以下对 C+语言函数的有关描述中,正确的是( )。(分数:70.00)A.KeyUp事件B.KeyPress事件C.Scroll事件D.Change事件9.下面关于 C+语言变量的叙述错误的是( )。(分数:70.00)A.字段变量的值B.内存变量的值C.随机显示D.错误信息10.对表达式 for(表达式 1;表达式 3)可理解为( )。(分数:70.00)A.MinB.MaxC.Max和 Min之间D.Max和 Mi
5、n之外11.下面程序应能对两个整型变量的值进行交换。以下正确的说法是( )。 #includeiostreamh void swap(int p,int q) int t; t=p; p=q; q=t; void main( ) int a=10,b=20; couta“ “b; swap(i3;i+)ai=i; for(i=0;ik;i+) for(j=0;jk;j+) aj=ai; couta2; (分数:70.00)A.2 B.3C.1D.0解析:本题里有三个 for循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个 a0=0,a1=1,a2=2;后面的两个 for是嵌套循环,
6、对数组元素的赋值,但由于 k=2,初值已定 for里的条件是小于 k,所以不管怎么处理都影响不到 a 2,故答案为 2。8.以下对 C+语言函数的有关描述中,正确的是( )。(分数:70.00)A.KeyUp事件B.KeyPress事件C.Scroll事件 D.Change事件解析:在表中找到记录,函数 FOUND( )的值为真。EOF( )是测试表文件尾标识的函数(表中最后一条记录的后面是一个表结束标识),只有当记录指针在此位置,EOF( )的值才为真。9.下面关于 C+语言变量的叙述错误的是( )。(分数:70.00)A.字段变量的值 B.内存变量的值C.随机显示D.错误信息解析:使用 S
7、ET PROCEDURETO命令可以将过程或函数放在单独的程序文件中,选项 B)用于设置键盘功能键,选项 A)和选项 C)语法错误。10.对表达式 for(表达式 1;表达式 3)可理解为( )。(分数:70.00)A.Min B.MaxC.Max和 Min之间D.Max和 Min之外解析:复选框也称检查框,它的 Value属性值可以设置或返回 0,1,2。 0:表示没有选中复选框。 1:表示选中该复选框。 2:表示该复选框被禁止,显示为灰色。 11.下面程序应能对两个整型变量的值进行交换。以下正确的说法是( )。 #includeiostreamh void swap(int p,int q
8、) int t; t=p; p=q; q=t; void main( ) int a=10,b=20; couta“ “b; swap(中的意思是 i=i+1;它其实是个合法的赋值语句。选项 A) a= =1和选项 D) !(+ +a!=b-)都是布尔逻辑表达式,不属于赋值表达式的范畴。 20.在 C+语言中,数据封装要解决的问题是( )。(分数:70.00)A.数据的规范化B.便于数据转换C.避免数据丢失D.防止不同模块之间数据的非法访问 解析:数据封装为了防止不同模块间数据的非法访问及修改。21.以下关于 C+语言类的说法中正确的是( )。(分数:70.00)A.a =10 or a =0
9、B.a =0 | a =10C.a =10 & a =0D.a =10,a =0 解析:通常我们都知道所有自己创建的异常对象都必须是 Exception的实例或它的子类的实例;但在题目中的要求是抛出异常,不是自己创建的异常对象,这两种的区别在于抛出异常中有可能继承了 Error类,所以它应是 Throwable类或其子类的实例。Throwable 类分为 Error和 Exception两子类。 22.下列运算符中全都可以被友元函数重载的是( )。(分数:70.00)A.0B.1C.2 D.3解析:在 Visual Basic中,BorderStyle 属性用来确定直线或形状的边界线线型, 可
10、以取 7种值: 0 - Transparent:表示透明; 1 - Solid:表示实线; 2 - Dash:表示虚线; 3 - Dot:表示点线; 4 - Dash - Dot:表示点划线; 5 - Dash - Dot-Dot:表示双点划线; 6 - Inside Solid:内实线; 23.设有 int x=11;,则表达式(x+ * 2/3)的值是( )。(分数:70.00)A.选项卡 B.命令按钮C.组合框D.选项组解析:Enabled 属性用于决定一个对象是否响应用户的事件,对于框架而言,通常把 Enabled属性设置为True,此时框架中的对象是“活动”的,如果把框架的 Enab
11、led 属性设置为 False,则其标题会变灰,框架中的所有对象,都将被屏蔽,由此可见,正确答案是选项 B) ;选项 A) 是名称,标识对象的。选项 C) 是显示文本;选项 D) 是控制控件可见性的。24.在 C+语言程序中,对象之间的相互通信通过( )。(分数:70.00)A.继承实现B.调用成员函数实现 C.封装实现D.函数重载实现解析:对象属于某个已知的类,是类的实例,对象之间通信实际上就是通 过函数传递信息,封装是把数据和操作结合在一起,继承是对于类的方法的改变和补充, 重载是多态性之一。25.下面程序的运行结果为( )。 # include iostreamh void main(
12、) for(int a = 0,x =0;! xa = 10;a+) a+; cout a endl; (分数:70.00)A.纵栏式报表B.表格式报表 C.图表报表D.标签报表解析:层次数据模型的特点:有且只有一个节点无双亲,这个节点称为“根节点”;其他节点有且只有一个双亲。网状数据模型的特点:允许一个以上节点无双亲;一个节点可以有多于一个的双亲。关系数据模型是以二维表的形式来表示的。26.软件复杂性度量的参数包括( )。(分数:-1.00)A.效率B.规模 C.完整性D.容错性解析:定量度量方法是程序复杂程度经常使用的方法,把程序的复杂程度乘以适当参数即可估算出软件中错误的数量以及软件开发
13、需要用的工作量,定量度量的结果可以用来比较两个不同设计或两个不同算法的优劣,程序的定量的复杂程度可作为模块规模的精确限度,因而软件复杂性度量的参数包括规模。27.由两个栈共享一个存储空间的好处是( )。(分数:-1.00)A.减少存取时间,降低下溢发生的机率B.节省存储空间,降低上溢发生的机率 C.减少存取时间,降低上溢发生的机率D.节省存储空间,降低下溢发生的机率解析:常常一个程序中要用到多个栈,为了不发生上溢错误,就必须给每个栈分配一个足够大的存储空间。但实际中,很难准确地估计,若每个栈都分配过大的存储空间,势必造成系统空间紧张;若让多个栈共用一个足够大的连续存储空间,则可利用栈的动态特性
14、使他们的存储空间互补。 28.需求分析中开发人员要从用户那里了解( )。(分数:-1.00)A.软件做什么 B.用户使用界面C.输入的信息D.软件的规模解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是准确回答“系统必须做什么”这个问题即软件系统功能,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 29.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是( )。(分数:-1.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大
15、到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 解析:线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。30.数据结构中,与所使用的计算机无关的是数据的( )。(分数:-1.00)A.存储结构B.物理结构C.逻辑结构 D.物理和存储结构解析:数据结构概念一般包括 3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。31.下列 SQL语句中,用于修改表结构的是( )。(分数:-1.00)A.ALTER
16、B.CREATEC.UPDATED.INSERT解析:SQL 语句中凡创建都用 CREATE,删除都用 DROP,改变用 ALTER,再跟类型和名字附加子句。32.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。(分数:-1.00)A.可重用性差B.安全性差C.非持久性D.冗余性 解析:文件系统所管理的数据文件基本上是分散的,相互独立的,因此相对于数据库系统,以此为基础的数据处理存在 3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。33.视图设计一般有 3种设计次序,下列不属于视图设计的是( )。(分数:-1.00)A.自顶向下B.由外向内
17、 C.由内向外D.自底向上解析:视图设计一般有 3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后对局部视图进行集成得到概念模式。 34.数据库系统的核心是( )。(分数:-1.00)A.数据库B.数据库管理系统 C.模拟模型D.软件工程解析:数据库管理系统(Database Management System,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,
18、数据库管理系统是数据库系统的核心。35.下列说法中,不属于数据模型所描述的内容的是( )。(分数:-1.00)A.数据结构B.数据操作C.数据查询 D.数据约束解析:数据模型所描述的内容有 3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。三、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.若从键盘输入 70,则以下程序输出的结果是 1。 #includeiostreamh void main2 int a;cina; if(a50) cou
19、ta; if(a40)couta; if(a30)couta (分数:3.00)填空项 1:_ (正确答案:707070)解析:本题考查对 if语句的掌握,当输入 70以后,程序中的 3个 if语句都成立,所以分别输出 70。 37.如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的 1 函数。(分数:3.00)填空项 1:_ (正确答案:内联)解析:本题考查内联函数与宏定义的区别。C+中的成员函数如果它的实现写在了类中,那么该函数就是一个内联函数。38.C+中封装性、继承性和 1 是面向对象思想的主要特征。(分数:3.00)填空项 1:_ (正确答案:多态性)解析:面向对象
20、系统包含了三个特征封装性、继承性和多态性,这三个特征可以 很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。 39. 1是 C+语言程序的入口。(分数:3.00)填空项 1:_ (正确答案:main-|_|-函数)解析:考查 C+语言的基本概念。main-|_|-是 C+语言的入口函数。40.类 test的析构函数是 1。(分数:3.00)填空项 1:_ (正确答案:test-|_|-;)解析:C+语言中虚构函数在每个类中只有一个,其函数的写法是在构造函数的前面加一个“”字符。 41.C+语言中表示双精度浮点数的关键字是 1。(分数:3.00)填空项 1:_ (正确答案:
21、double)解析:C+语言中基本的数据类型关键字,有 int,float,double。 42.operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:3.00)填空项 1:_ (正确答案:public)解析:本题考查 c+中运算符重载的固定格式和要求。C+中不论用成员函数还是友元函数重载运算符都必须用关键字 operator,都必须将函数声明为公有的。43.如果类 B继承了类 A,则称类 A为类 B的基类,类 B称为类 A的 1。(分数:3.00)填空项 1:_ (正确答案:派生类)解析:如果类 A为类 B
22、的基类,那么类 B称为类 A的派生类。 44.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:3.00)填空项 1:_ (正确答案:virtual int A-|_|-=0;)解析:C+语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了“=0”。45.以下程序的输出结果是 1。 #includeiostreamh voidfun( ) staticinta=0; a+=2; couta“; voidmain( ) intcc; for(cc=1;cc4;cc+) fun( ); coutendl; (
23、分数:3.00)填空项 1:_ (正确答案:2 4 6)解析:本题考查静态局部变量的使用。用关键字 static声明的局部变量为“静态局部变量”,其值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。 46.数据库保护分为:安全性控制、 1、并发性控制和数据的恢复。(分数:-1.00)填空项 1:_ (正确答案:完整性控制)解析:安全性控制:防止未经授权的用户有意或无意存取数据库巾的数据,以免数据被泄露、更改或破坏;完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作;并发控制:正确处理好多
24、用户、多任务环境下的并发操作,防止错误发生;恢复:当数据库被破坏或数据不正确时,使数据库能恢复到正确的状态。47.在面向对象的程序设计中,类描述的是具有相似性质的一组 1。(分数:-1.00)填空项 1:_ (正确答案:对象)解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。48.软件结构是以 1 为基础而组成的一种控制层次结构。(分数:-1.00)填空项 1:_ (正确答案:模块)解析:采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解,模块化使得软件容易测试和调试,因而有利于提高软件的可靠性,也有利于软件的组织管理,大型程序可由不同的程序员编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的部分。49.栈和队列通常采用的存储结构是 1。(分数:-1.00)填空项 1:_ (正确答案:链式存储和顺序存储)解析:栈和队列都属于线性表,它们一般采用顺序存储结构,也可以对它们采用链式存储结构。50.数据结构分为逻辑结构与存储结构,线性链表属于 1。(分数:-1.00)填空项 1:_ (正确答案:存储结构)解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。