1、计算机二级(C+)7 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:25,分数:1750.00)1.下面对于友元函数描述正确的是( )。(分数:70.00)A.多线程就是同时执行几个事件B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行C.一个进程可产生多线程,形成执行流D.Java 语言支持多线程2.下面叙述不正确的是( )。(分数:70.00)A.基类的保护成员在派生类中仍然是保护的成员B.基类的保护成员在公有派生类中仍然是保护的C.基类的保护成员在私有派生类中仍然是私有的D.对基类成员的访问必须是无二义性3.设
2、有 int x=11;,则表达式(x+ * 2/3)的值是( )。(分数:70.00)A.选项卡B.命令按钮C.组合框D.选项组4.C+语言中类定义中默认的访问权限是( )。(分数:70.00)A.publicB.protectedC.pfivateD.default5.要想使 2378965421 的输出为 237887 应用的语句是( )。(分数:70.00)A.cout 2378965421;B.cout fixed 2378965421:C.cout 2378965421 -0001:D.cout fixed 2378965421 -0001;6.在 C+语言中,数据封装要解决的问题是
3、( )。(分数:70.00)A.start( ),stop( )和 run( )B.actionPerformed( )C.run( )D.init( )7.函数 fun 的返回值是( )。 fun(char*a,char*b) intnum=0,n=0; while(*(a+num)!=/0)num+; while(bn)*(a+num)=bn;num+;n+; returnnum; (分数:70.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和8.多态性指的是( )。(分数:70.00)A.以任何方式调用一个虚函数B.以
4、任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数9.有如下程序 #includeiostreamh voidmain( ) charch25=“6937“,“8254“,*p2; inti,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i2;i+) for(j=0;pij,/0,;j+=2) s=10*s+pij-0; coutS; 该程序的输出结果是( )。 (分数:70.00)A.69825B.63825C.6385D.69382510.下面程序的运行结果是( )。 #includeios
5、tream.h void main( ) int i=1; while(i=8) if(+i3!=2)continue; else cout i; (分数:70.00)A.static X x1B.public X x1=new X(int 123);C.Y x1;D.X x1;X( );11.下面的哪个选项不能作为函数的返回类型?(分数:70.00)A.NameB.CaptionC.PasswordCharD.Text12.下面的语句中错误的是( )。(分数:70.00)A.ItemListenerB.ActionListenerC.ContainerListenerD.WindowsLis
6、tener13.在 C+语言中,打开一个文件就是将这个文件与一个什么建立关联?(分数:70.00)A.被显示的字符串可以使用多种字体B.一行中最大的字符数是 40C.显示的宽度正好是 40 个字符宽D.用户可以编辑字符14.对类的构造函数和析构函数描述正确的是( )。(分数:70.00)A.Redim a As IntegerB.Static a As IntegerC.Public a As IntegerD.Dim a As Integer15.下列程序的运行结果为( )。 # include iostreamh voidprint (double a) cout +a; void pri
7、nt (int a,int b) cout b a; void main( ) print (1.2); cout “ “; print (3,4); (分数:70.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对16.每个 C+程序中都必须有且仅有一个( )。(分数:70.00)A.类B.预处理命令C.主函数D.语句17.如果表达式+x/y 中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为( )。(分数:70.00)A.(operator+(x) )operator/(y)B.(operator+(0) )operator/(y)
8、C.operator/( (operator+(x,0) ),y)D.operator/( (operator+(0) ),y)18.通常拷贝构造函数的参数是( )。(分数:70.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名19.下列关于运算符重载不正确的是( )。(分数:70.00)A.throwsB.throwC.ThrowableD.Exception20.下面有关 for 循环的正确描述是( )。(分数:70.00)A.A:func2( )和 B:func1( )都是虚函数B.A:func2( )和 B:func1( )都不是虚函数C.B:func1
9、( )是虚函数,而 A:func2( )不是虚函数D.B:func1( )不是虚函数,而 A:func2( )是虚函数21.设以下变量均为 int 类型,则值不等于 7 的表达式是( )。(分数:70.00)A.(x=y=6,x+y,X+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x+y,x+1)22.有如下数组声明:int num10;,下标值引用错误的是( )。(分数:70.00)A.num 10B.num5C.nam 3D.nam 023.有如下程序: #include“iostreamh“ void main( ) int x=1,
10、a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout “a=“ a “,“ “b=“ b; 该程序的输出结果是( )。 (分数:70.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=224.关于抽象类下面说法正确的是( )。(分数:70.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数25.在位运算中,操作数每右移一位,其结果相当于( )。(分数:70.00)A.2B.4C.6D.026.已知一棵二叉树前序遍历和
11、中序遍历分别为 ABDEGCFH 和 DBGEACHF,则该二叉树的后序遍历为 ( )。(分数:-1.00)A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG27.一个关系中属性个数为 1 时,称此关系为 ( )。(分数:-1.00)A.对应关系B.单一关系C.一元关系D.二元关系28.在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。(分数:-1.00)A.冒泡排序B.选择排序C.快速排序D.归并排序29.为用户与数据库系统提供接口的语言是( )。(分数:-1.00)A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言30.
12、一个关系中属性个数为 1 时,称此关系为 ( )。(分数:-1.00)A.对应关系B.单一关系C.一元关系D.二元关系31.下列叙述中正确的是( )。(分数:-1.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构32.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。(分数:-1.00)A.可重用性差B.安全性差C.非持久性D.冗余性33.应用数据库的主要目的是( )。(分数:-1.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题D.解决数据量大的问题34.数据库系统的核心是( )。(分数:-1.00)A.
13、数据库B.数据库管理系统C.模拟模型D.软件工程35.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:-1.00)A.控制流B.加工C.数据存储D.源和潭三、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.类 test 的析构函数是 1。(分数:3.00)填空项 1:_37.operator 是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:3.00)填空项 1:_38.重载的运算符保持其原有的 1、优先级和结
14、合性不变。(分数:3.00)填空项 1:_39.以下程序的输出结果是 1。 #includeiostreamh void main2 char s =“abcdef“;s3=/0; coutsendl; (分数:3.00)填空项 1:_40.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 1 方式。(分数:3.00)填空项 1:_41.表达式 operator + (x,y)还可以表示为 1。(分数:3.00)填空项 1:_42.C+语言程序的注释可以出现在程序中的任何地方,一个注释以 1 作为开始和结束的标记。(分数:3.00)填空项 1:_
15、43.执行下列语句后,c3 中的值为 1 int c1=1,c2=2,c3;c3=10/c2 * c1; (分数:3.00)填空项 1:_44. 1 是实现 C+语言编译时多态性的机制, 2 是实现 C+语言运行时多态性的机制。 (分数:3.00)填空项 1:_45.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:3.00)填空项 1:_46.软件的 1 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。(分数:-1.00)填空项 1:_47.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这
16、种情况称为 1。(分数:-1.00)填空项 1:_48.由关系数据库系统支持的完整性约束是指 1 和参照完整性。(分数:-1.00)填空项 1:_49.对软件是否能达到用户所期望的要求的测试称为 1。(分数:-1.00)填空项 1:_50.软件危机出现于 60 年代末,为了解决软件危机,人们提出了 1 的原理来设计软件这就是软件工程诞生的基础。 (分数:-1.00)填空项 1:_计算机二级(C+)7 答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:25,分数:1750.00)1.下面对于友元函数描述正确的是( )。(分数:70.
17、00)A.多线程就是同时执行几个事件 B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行C.一个进程可产生多线程,形成执行流D.Java 语言支持多线程解析:C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。2.下面叙述不正确的是( )。(分数:70.00)A.基类的保护成员在派生类中仍然是保护的成员 B.基类的保护成员在公有派生类中仍然是保护的C.基类的保护成员在私有派生类中仍然是私有的D.对基类成员的访问必须是无二义性解析:C+语言中如果基类的成员是保护的,它被继承后在于类中该成员可能是保护的,也可能不是,主要看继承的权
18、限是 public 还是 protected 或 private 的。3.设有 int x=11;,则表达式(x+ * 2/3)的值是( )。(分数:70.00)A.选项卡 B.命令按钮C.组合框D.选项组解析:Enabled 属性用于决定一个对象是否响应用户的事件,对于框架而言,通常把 Enabled 属性设置为True,此时框架中的对象是“活动”的,如果把框架的 Enabled 属性设置为 False,则其标题会变灰,框架中的所有对象,都将被屏蔽,由此可见,正确答案是选项 B) ;选项 A) 是名称,标识对象的。选项 C) 是显示文本;选项 D) 是控制控件可见性的。4.C+语言中类定义中
19、默认的访问权限是( )。(分数:70.00)A.publicB.protectedC.pfivate D.default解析:C+语言中类定义中默认的类的访问权限是 private。注意:C+语言中没有 default 权限。5.要想使 2378965421 的输出为 237887 应用的语句是( )。(分数:70.00)A.cout 2378965421;B.cout fixed 2378965421:C.cout 2378965421 -0001: D.cout fixed 2378965421 -0001;解析:C+语言中默认小数的输出位一共是 6 位,fixed 的意义是在小数点后保留
20、 6 位。6.在 C+语言中,数据封装要解决的问题是( )。(分数:70.00)A.start( ),stop( )和 run( )B.actionPerformed( )C.run( ) D.init( )解析:在 Visual Basic 中,系统提供了多种数据类型,有字符串类型、数值型、货币型、布尔型,日期型等,此外还有一种变体类型,Variant 是一种特殊的数据类型, Variant 变量中可以存放任何类型的数据,如数值、文本字符串、日期和时间等,向 Variant 变量赋值时不必进行任何转换,系统将自动进行必要的转换。如果变量未经定义就直接使用,则该变量为 Variant 类型。7
21、.函数 fun 的返回值是( )。 fun(char*a,char*b) intnum=0,n=0; while(*(a+num)!=/0)num+; while(bn)*(a+num)=bn;num+;n+; returnnum; (分数:70.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和 解析:本题首先通过第一个 while 循环计算字符串 a 的长度,再通过第二个循环,将字符串 a 和 b 相连,最后返回连接后的总长度。 8.多态性指的是( )。(分数:70.00)A.以任何方式调用一个虚函数B.以任何方式调用一个
22、纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数 D.借助于指向对象的基类指针或引用调用一个纯虚函数解析:本题考查多态性的基本概念。多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。9.有如下程序 #includeiostreamh voidmain( ) charch25=“6937“,“8254“,*p2; inti,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i2;i+) for(j=0;pij,/0,;j+=2) s=10*s+pij-0; coutS; 该程序的输出结果是( )。 (分数:70.00)A.69825B.63825C.63
23、85 D.693825解析:该题主要要搞清楚以下几点: 定义了一个指针数组 char * P2后,程序中第一个循环 for(i=0;i/0是指 Pij中的字符只要不是字符串结束标 志/0,就继续循环,语句 j+ =2;是使下标 j 每次增加 2,也即一个隔一个地从 pi所指向 的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 P0所指向的字符串 “6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p1所指向的字符串 “8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果 s 中的值应该是 6385。 10.下面程序的运行结果是( )。 #
24、includeiostream.h void main( ) int i=1; while(i=8) if(+i3!=2)continue; else cout i; (分数:70.00)A.static X x1 B.public X x1=new X(int 123);C.Y x1;D.X x1;X( );解析:本题考查的是运算符的优先级,应该先计算 a+b 的值为 21,然后 与 c 比较大小的值为 0,根据“”的运算规则,整个表达式的值为 0。11.下面的哪个选项不能作为函数的返回类型?(分数:70.00)A.NameB.CaptionC.PasswordChar D.Text解析:在
25、 Visual Basic 中,控制控件有效性的属性是 Enabled,设置为 True,则处于有效状态,如果设置成 False,则处于无效状态,所以 D)是正确的;Visible 属性是控制 空间可见性的,有两种值:True和 False,默认情况下是 True;如果将对象的 Visible 值设为 False,窗体和控件在设计阶段仍可见,只有运行时才隐藏,所以 B)不正确;Default 是决定窗体的缺省命令的命令按钮的属性,另外,一个窗体只能有一个缺省命令按钮,所以选 项 C)也不正确;Value 属性在不同的控件中有不同的作用,也不是本题的答案。 12.下面的语句中错误的是( )。(分
26、数:70.00)A.ItemListener B.ActionListenerC.ContainerListenerD.WindowsListener解析:本题考查多态性的基本概念。多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。13.在 C+语言中,打开一个文件就是将这个文件与一个什么建立关联?(分数:70.00)A.被显示的字符串可以使用多种字体B.一行中最大的字符数是 40C.显示的宽度正好是 40 个字符宽D.用户可以编辑字符 解析:= = 操作符比较的是操作符两端的操作数是否是同一个对象,而 String 的 equals( )方法比较的是两个 String 对象的内容是
27、否一样。s.equals(t)方法比较字符串 s 与字符串 t 中的内容是否一致,两个字符串中的内容一致,所以返回 true。14.对类的构造函数和析构函数描述正确的是( )。(分数:70.00)A.Redim a As IntegerB.Static a As Integer C.Public a As IntegerD.Dim a As Integer解析:C+中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参数,重载二目运算符要有两个参数。15.下列程序的运行结果为( )。 # include iostreamh voidprint (double a) cout +a; v
28、oid print (int a,int b) cout b a; void main( ) print (1.2); cout “ “; print (3,4); (分数:70.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对 解析:一般情况下,垂直滚动条的值由上往下递增,最上端代表最小值,最下端代表最大值;水平滚动条的值从左到右递增,最 左端代表最小值,最右端代表最大值。因此当滚动条位于最左端或最下端时,Value 属性被设置为 Min。16.每个 C+程序中都必须有且仅有一个( )。(分数:70.00)A.类B.预处理命令C.主函数 D.语句解析
29、:每个 c+程序中都要有且仅有一个主函数,该函数是程序的入口,而语句、预处理命令和函数及类在程序中都可以有多个。17.如果表达式+x/y 中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为( )。(分数:70.00)A.(operator+(x) )operator/(y) B.(operator+(0) )operator/(y)C.operator/( (operator+(x,0) ),y)D.operator/( (operator+(0) ),y)解析:C+中用成员函数重载+x 为:xoperator+( ),用友元函数重载+x 为:operator+(x),用成员
30、函数重载 x/y 为:xoperator/(y),用友元函数重载 x/y 为:operator/(x,y)。18.通常拷贝构造函数的参数是( )。(分数:70.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:拷贝初始化构造函数的作用是用一个已知的对象来初始化一个被 创建的同类的对象,该函数只有一个参数,并且是对同类的某个对象的引用。19.下列关于运算符重载不正确的是( )。(分数:70.00)A.throwsB.throw C.ThrowableD.Exception解析:字符型数据在计算机内部是以 ASCII 码存储的,英文大写字母和小写字母在 ASC
31、II 码表中都是连续的。大写字母 AZ 是从 6590,小写字母 az 是从 97122。所以只要变量 c 大于等于 a 并且等于小于 2 就能保证其为小写字母。20.下面有关 for 循环的正确描述是( )。(分数:70.00)A.A:func2( )和 B:func1( )都是虚函数B.A:func2( )和 B:func1( )都不是虚函数C.B:func1( )是虚函数,而 A:func2( )不是虚函数 D.B:func1( )不是虚函数,而 A:func2( )是虚函数解析:查询输出到临时表中,产生的临时表文件的后缀名仍为dbf,且该临时表文件是当前文件,可以像一般的 dbf 文件
32、一样使用,但仅是只读文件,当关闭文件时,临时表文件将自动被删除。21.设以下变量均为 int 类型,则值不等于 7 的表达式是( )。(分数:70.00)A.(x=y=6,x+y,X+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x+y,x+1)解析:C+语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式 1,表达式 2,其求值过程是分别求两个表达式的值,并以表达式 2 的值作为整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式 1,表达式 2,表达式 3
33、,表达式 n,它的值为表达式 n 的值。22.有如下数组声明:int num10;,下标值引用错误的是( )。(分数:70.00)A.num 10 B.num5C.nam 3D.nam 0解析:数组定义中的数字指的是数组的大小,而下标是从 0 开始的,所以 题中数组的最后一个元素是num9。23.有如下程序: #include“iostreamh“ void main( ) int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout “a=“ a “,“ “b=“ b; 该程序的输出结果是( )。 (分数:70.00)
34、A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:本题考查关于 switch 语句。该题目的关键是要搞清楚该程序执行了哪几条语句。由于 x 的值等于 1,所以 switch 结构中,程序从 case 1 后面的语句开始执行,又因为 case 1 后面的语句没有以 break 结束,所以程序要继续往下执行 case 2 后面的语句。所以,该程序共执行了这三条语句:a+;a+;b+;,因此,变量 a 和 b 最后的值应该为 2 和 1。24.关于抽象类下面说法正确的是( )。(分数:70.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派
35、生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数 解析:C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。25.在位运算中,操作数每右移一位,其结果相当于( )。(分数:70.00)A.2 B.4C.6D.0解析:此题是有关 KeyDown 事件的题目,KeyDown 是当一个键被按下时所产生的事件,而 KeyUp 是松开被按的键时产生的事件,如果要判断是否按下了某个转换键,可以用逻辑运算符 And。例如:先定义了下面3 个符号常量:Const Shift=1ConstCtrl;2,Const Alt=4;然后用下面的语句
36、判断是否按下Shift,Ctrl,Alt 键。 如果 Shift And Shift0,则按下了 Shift 键; 如果 Shift And Ctrl0,则按下了 Ctrl 键; 如果 Shift And Alt0,则按下了 Alt 键; 这里的 Shift 时KeyDown 的第二个参数;此事件过程中的 If 后的条件语句如果为真,则是按下了 Alt+F2,而本题目中是按下了 Shift+F2,所以不执行 Then 语句,即在文本框中的内容不发生变化。 26.已知一棵二叉树前序遍历和中序遍历分别为 ABDEGCFH 和 DBGEACHF,则该二叉树的后序遍历为 ( )。(分数:-1.00)A
37、.GEDHFBCAB.DGEBHFCA C.ABCDEFGHD.ACBFEDHG解析:利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如 下:前序遍历的第一个结点 A为树的根结点;中序遍历中 A 的左边的结点为 A 的左子树,A 右边的结点为 A 的右子树;再分别对 A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。27.一个关系中属性个数为 1 时,称此关系为 ( )。(分数:-1.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有 N个属性的关系称为 N 元关系。28.在待排序的
38、元素序列基本有序的前提下,效率最高的排序方法是( )。(分数:-1.00)A.冒泡排序 B.选择排序C.快速排序D.归并排序解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项 A)。29.为用户与数据库系统提供接口的语言是( )。(分数:-1.00)A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML) D.汇编语言解析:DBMS 提供数据操纵语言(DML)实现对数据库中数据的操作,数据操纵语言(DML)是用户(包括应用程序)与
39、数据库系统的接口。数据操纵语言通常包括检索和更新功能。30.一个关系中属性个数为 1 时,称此关系为 ( )。(分数:-1.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有 N个属性的关系称为 N 元关系。31.下列叙述中正确的是( )。(分数:-1.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线
40、性结构;树是一种简单的非线性结构。32.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。(分数:-1.00)A.可重用性差B.安全性差C.非持久性D.冗余性 解析:文件系统所管理的数据文件基本上是分散的,相互独立的,因此相对于数据库系统,以此为基础的数据处理存在 3 个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。33.应用数据库的主要目的是( )。(分数:-1.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题 D.解决数据量大的问题解析:数据库中的数据具有“集成”与“共享”的特点,也就是数据库集中了各种应用的数据,进行统
41、一构造与存储,而使它们可以被不同应用程序所使用,故选项 C)正确。34.数据库系统的核心是( )。(分数:-1.00)A.数据库B.数据库管理系统 C.模拟模型D.软件工程解析:数据库管理系统(Database Management System,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。35.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:-1.00)A.控制流 B.加工C.数据存储D.源和潭解析:数
42、据流图包括 4 个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。三、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.类 test 的析构函数是 1。(分数:3.00)填空项 1:_ (正确答案:test-|_|-;)解析:C+语言中虚构函数在每个类中只有一个,其函数的写法是在构造函数的前面加一个“”字符。 37.operator 是运算符重载时必须使用的关键字,它和被重载的运
43、算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:3.00)填空项 1:_ (正确答案:public)解析:本题考查 c+中运算符重载的固定格式和要求。C+中不论用成员函数还是友元函数重载运算符都必须用关键字 operator,都必须将函数声明为公有的。38.重载的运算符保持其原有的 1、优先级和结合性不变。(分数:3.00)填空项 1:_ (正确答案:操作符个数)解析:本题考查的是运算符重载的概念,用户重新定义的运算符不改变原运算符的优 先性和结合性,也不改变运算符的语法结构,也就是说重载运算符不会产生新的运算符。 39.以下程序的输出结果是 1。 #includ
44、eiostreamh void main2 char s =“abcdef“;s3=/0; coutsendl; (分数:3.00)填空项 1:_ (正确答案:abc)解析:本题中,给数组 s 中的第 4 个元素 s3赋以/0,则 s 数组中只有前 3 个元素有效,输出结果为abc。 40.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 1 方式。(分数:3.00)填空项 1:_ (正确答案:传地址)解析:本题考查的是传值调用和传址调用的区别-传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传入,会改变原来的值。
45、 41.表达式 operator + (x,y)还可以表示为 1。(分数:3.00)填空项 1:_ (正确答案:x+y)解析:本题考查的是运算符函数的调用,可以像一般函数那样用函数名进行调用,也可通过运算符构成表达式的形式进行调用。42.C+语言程序的注释可以出现在程序中的任何地方,一个注释以 1 作为开始和结束的标记。(分数:3.00)填空项 1:_ (正确答案:/ * * /)解析:C+语言程序的注释可以出现在程序中的任何地方,一个注释以“/ *,”开始, 以“* /”为结束。43.执行下列语句后,c3 中的值为 1 int c1=1,c2=2,c3;c3=10/c2 * c1; (分数:
46、3.00)填空项 1:_ (正确答案:0)解析:在赋值运算中,如果表达式中变量和常量的数据类型不一致就会自动进行类型转换。系统会计算10/c2,由于 10 是实型,所以均先转化为双精度型 0500000,再与 c1 转化后的双精度数相乘得0500000。但其要赋值给整型变量 c3,故要进行强制转换,得 c3 的值为 0。 44. 1 是实现 C+语言编译时多态性的机制, 2 是实现 C+语言运行时多态性的机制。 (分数:3.00)填空项 1:_ (正确答案:静态联编或静态绑定)解析:C+语言编泽时多态性的机制是静态绑定,实现 C+语言运行时多态性的机制是动态绑定。45.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:3.00)填空项 1:_ (正确答案:成员选择运算符(或“))解析:本题考查的是使用