1、计算机二级(C+)24 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:25,分数:1750.00)1.下列不是描述类的成员函数的是( )。(分数:70.00)A.a02*1B.a13C.a4-20D.a042.下面关于类和对象的描述中,错误的是( )。(分数:70.00)A.类就是 C 语言中的结构体类型,对象就是 C 语言中的结构体变量B.类和对象之间的关系是抽象和具体的关系C.对象是类的实例,一个对象必须属于一个已知的类D.类是具有共同行为的若干对象的统一描述体3.不合法的 main 函数命令行参数表示形式是( )。(分
2、数:70.00)A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3)C.for(表达式 1;表达式 3;)D.for(;表达式 3)4.对于语句 cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:70.00)A.编译时将发生错误B.编译时正确但是运行时出错C.输出为 0D.输出为 null5.关于抽象类下面说法正确的是( )。(分数:70.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数6.一个函数功能
3、不太复杂但要求被频繁调用,应选用( )。(分数:70.00)A.内联函数B.重载函数C.递归函数D.嵌套函数7.下列描述中,抽象类的特性是( )。(分数:70.00)A.可以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象8.C+语言函数中不能由系统自动生成的是( )。(分数:70.00)A.结合型B.非结合型C.计算型D.非计算型9.C+语言中,表示一条语句结束的标号是( )。(分数:70.00)A.Caption 属性B.BackColor 属性C.ForeColor 属性D.Color 属性10.下列语句不能够用于打开 C 根目录下文件 testtxt 的语句是(
4、 )。(分数:70.00)A.3B.6C.10D.2011.下列定义中 p 指向的地址可更改,但* p 不能够更改的是( )。(分数:70.00)A.用于输入的友元函数B.用于输入的成员函数C.用于输出的友元函数D.用于输出的成员函数12.下列程序的输出结果是( )。 #includeiostreamh void main( ) int a3,i,j,k=2; 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.013.有如下程序 #includeiostreamh #def
5、ine N2 #define M N+1 #define NUM 2 * M+1 void main( ) int i; for(i=1;i =NUM;i+) cout i 该程序中的 for 循环执行的次数是( )。 (分数:70.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化14.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )。(分数:70.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.选项 B)和选项 C)都可能15.以下程序
6、的输出结果是( )。 #includeiostreamh void main( ) inti,j,x=0; for(i=0;i 2;i+) x+; for(j=0;j 3;j+) if (j% 2)continue; x+; x+; cout “x=“ x; (分数:70.00)A.x=4B.x=8C.x=6D.x=1216.下面程序的输出结果是( )。 #includeiostream.h #includestring.h voidmain( ) charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“; strcp
7、y(str+2,strcat(p1,p2); coutstr; (分数:70.00)A.start( )B.init( )C.paint( )D.draw( )17.对于语句 cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:70.00)A.* * * * * * * * * 1 * 2B.* * * * * * * * 12C.* * * * * * * 1 * 2D.12 * * * * * * * *18.下列关于构造函数说法不正确的是( )。(分数:70.00)A.4 个字节B.5 个字节C.6 个字节D.7
8、个字节19.对于下面的程序,说法正确的是( )。 #includeiostreamh void main( ) int x=3,y=4,z=2; if(X=y+z) cout “x=y+Z“; else cout“x!=y+Z“; (分数:70.00)A.“工程”菜单B.“文件”菜单C.“工具”菜单D.“编辑”菜单20.面向对象程序设计思想的主要特征中不包括( )。(分数:70.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性21.对于类定义 class A public: virtual void func1( ) void func2( ) ; class B:publ
9、ic A public: void func1( )cout“class B func 1“endl; virtual void func2( )cout“class B func2“endl; ; 下面正确的叙述是( )。 (分数:70.00)A.A:func2( )和 B:func1( )都是虚函数B.A:func2( )和 B:func1( )都不是虚函数C.B:func1( )是虚函数,而 A:func2( )不是虚函数D.B:func1( )不是虚函数,而 A:func2( )是虚函数22.下列程序的运行结果是( )。 # include iostreamh class A int
10、a; public: A( ) a=0; A(int aa) a=aa; cout a+; ; void main( ) A x,y (2),z(3); cout endl; (分数:70.00)A.TextB.LengthC.SeltextD.SelStart23.在位运算中,操作数每右移一位,其结果相当于( )。(分数:70.00)A.2B.4C.6D.024.已知有定义 constintD=5; inti=1; doublef=0.32; charc=15; 则下列选项错误的是( )。 (分数:70.00)A.Private Sub Form_MouseDown(Button As In
11、teger, Shift As Integer,_ X As Single, Y As Single) If Button=2 Then PopupMenu Bt, 2 End SubB.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) PopupMenu Bt End SuhC.Private Sub Form MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)
12、PopupMenu Bt,0 End SubD.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If (Button=vbLeftButton) Or ( Button=vbRightButton) Then PopupMenu Bt End Sub25.关于模板下列说法不正确的是( )。(分数:70.00)A.TB.PC.1D.-126.视图设计一般有 3 种设计次序,下列不属于视图设计的是( )。(分数:-1.00)A.自顶向下B.由外向内C.由内向外D.
13、自底向上27.一些重要的程序语言(如 C 语言和 Pascal 语言)允许过程的递归调用。而实现递归调用中的存储分配通常用( )。(分数:-1.00)A.栈B.堆C.数组D.链表28.下列有关数据库的描述,正确的是( )。(分数:-1.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件29.在深度为 5 的满二叉树中,叶结点的个数为( )。(分数:-1.00)A.32B.31C.16D.1530.在计算机中,算法是指( )。(分数:-1.00)A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法31.数据处理的最小单位是(
14、 )。(分数:-1.00)A.数据B.数据元素C.数据项D.数据结构32.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是( )。(分数:-1.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件33.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是( )。(分数:-1.00)A.acbedB.decabC.deabcD.cedba34.树是结点的集合,它的根结点数目是( )。(分数:-1.00)
15、A.有且只有 1 个B.1 或多于 1 个C.0 或 1 个D.至少 2 个35.关系模型允许定义 3 类数据约束,下列不属于数据约束的是( )。(分数:-1.00)A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束三、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:3.00)填空项 1:_37.类模板不同于函数模板,类模板只可用 1 型参数。(分数:3.00)填空项 1:_38.一个 C+语言程序的开发步骤通常包括编辑、 1、链接、运行和调试。(分数:3.00)填空项 1:
16、_39.在 c+语言的面向对象程序设计框架中, 1 是程序的基本组成单元。(分数:3.00)填空项 1:_40.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:3.00)填空项 1:_41.派生类构造函数的执行顺序是先执行 1 的构造函数,然后执行成员对象的构造 函数,最后执行 2 的构造函数。 (分数:3.00)填空项 1:_42. 以下程序的输出结果是 1。 #includeiostreamh class object private: int va1; public: object2; object(int i) object3; ; object:Ob
17、ject4 va1=0; cout “Default constructor for object“ end1; object:object(int i) va1=i cout “Constructor for object“ va1 end1; object:object5 cout “Destructor for object“ va1 end1; class container private: object one; object two; int data; public: container6; container(int i,int j,int k); container7; ;
18、 container:container8 data=0; cout “Default constructor for container“ end1; container:container(int i,int j,int k):two(i),one(j) data=k; cout “Constructor for container“ end1; container:container9 cout “Destructor for container“ end1; void main10 container anObj(5,6,10); (分数:3.00)填空项 1:_43.以下程序的输出结
19、果是 1。 #includeiostreamh void main2 char s =“abcdef“;s3=/0; coutsendl; (分数:3.00)填空项 1:_44.语句 int * i;i=new int 10;,释放指针 i 的语句是 1。(分数:3.00)填空项 1:_45.以下程序的输出结果是 1。 #includeiostreamh voidfun( ) staticinta=0; a+=2; couta“; voidmain( ) intcc; for(cc=1;cc4;cc+) fun( ); coutendl; (分数:3.00)填空项 1:_46.在最坏情况下,堆
20、排序需要比较的次数为 1。(分数:-1.00)填空项 1:_47. 1 是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。(分数:-1.00)填空项 1:_48.类是一个支持集成的抽象数据类型,而对象是类的 1。(分数:-1.00)填空项 1:_49.数据流图的类型有 1 和事务型。(分数:-1.00)填空项 1:_50.算法的基本特征是可行性、确定性、 1 和拥有足够的情报。(分数:-1.00)填空项 1:_计算机二级(C+)24 答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:25,分数:1750.00)1.下列
21、不是描述类的成员函数的是( )。(分数:70.00)A.a02*1B.a13C.a4-20D.a04 解析:do-while 语句的一般格式为 do 循环体语句 while(表达式);,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。2.下面关于类和对象的描述中,错误的是( )。(分数:70.00)A.类就是 C 语言中的结构体类型,对象就是 C 语言中的结构体变量 B.类和对象之间的关系是抽象和具体的关系C.对象是
22、类的实例,一个对象必须属于一个已知的类D.类是具有共同行为的若干对象的统一描述体解析:在 C+语言中,类和结构体有本质区别,类中包含数据及操作函 数,而结构体只包含有数据。3.不合法的 main 函数命令行参数表示形式是( )。(分数:70.00)A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3) C.for(表达式 1;表达式 3;)D.for(;表达式 3)解析:将报表与某一数据表或查询绑定起来即为它的数据记录来源。4.对于语句 cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:70.
23、00)A.编译时将发生错误B.编译时正确但是运行时出错C.输出为 0 D.输出为 null解析:在同一个类的不同构造方法中调用该类的其他构造方法需要使用 this()的形式,而且必须是在构造方法的第一行调用,这个和普通方法重载调用的方式 不同,普通方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此选项 A)是不行的,选 B)的语法就是错误的,选 D)的错误在于在父类型的构造方法被调用前不能引用类的成员。构造方法是一个类对象实例化的开始,因此在构造方法中不能将成员作为参数引用。5.关于抽象类下面说法正确的是( )。(分数:70.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象
24、类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数 解析:C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。6.一个函数功能不太复杂但要求被频繁调用,应选用( )。(分数:70.00)A.内联函数 B.重载函数C.递归函数D.嵌套函数解析:本题考查的是内联函数的使用,它的引入是为了解决程序中函数 调用的效率问题,在编译时,编译器将程序中出现的内联函数的调用表达式用内联函数 的函数体来替换。7.下列描述中,抽象类的特性是( )。(分数:70.00)A.可以说明虚函数B.可以定义友元函数C.可以进行构造函
25、数重载D.不能说明其对象 解析:带有纯虚函数的类称为抽象类,抽象类中的纯虚函数没有具体的定义,所以不能说明抽象类的对象。8.C+语言函数中不能由系统自动生成的是( )。(分数:70.00)A.结合型B.非结合型 C.计算型D.非计算型解析:无论是条形菜单还是弹出式菜单,都可以通过命令进行定义和设计,定义条形菜单完整的命令格式为:DEFINE MENUBARINWINDOW| IN SCREEN。9.C+语言中,表示一条语句结束的标号是( )。(分数:70.00)A.Caption 属性B.BackColor 属性 C.ForeColor 属性D.Color 属性解析:根据混合运算规则,如果有一
26、个数据是 double 型,则其他数据类型先转化为 double 型,运算的结果最终也是 double 型。为保证精度的不丢失,表达式的数据类型是变量和常量中精确度最高的变量类型。10.下列语句不能够用于打开 C 根目录下文件 testtxt 的语句是( )。(分数:70.00)A.3B.6C.10D.20 解析:由于大多数监听器接口都包含了我们可能不需要的方法。使用适配器类作为父类,可避免为实现接口而必须实现一些空方法的麻烦。11.下列定义中 p 指向的地址可更改,但* p 不能够更改的是( )。(分数:70.00)A.用于输入的友元函数 B.用于输入的成员函数C.用于输出的友元函数D.用于
27、输出的成员函数解析:C+语言中 setfil1 的意思是在空格的地方填上 setfil1 函数中的参数字符,setw 的意思是没置整个输出字符串的字符个数,本题中用:来代替空格。12.下列程序的输出结果是( )。 #includeiostreamh void main( ) int a3,i,j,k=2; for(i=0;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=
28、2;后面的两个 for 是嵌套循环,对数组元素的赋值,但由于 k=2,初值已定 for 里的条件是小于 k,所以不管怎么处理都影响不到 a 2,故答案为 2。13.有如下程序 #includeiostreamh #define N2 #define M N+1 #define NUM 2 * M+1 void main( ) int i; for(i=1;i =NUM;i+) cout i 该程序中的 for 循环执行的次数是( )。 (分数:70.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静
29、态数据成员必须进行初始化 解析:货币型数据是 Visual Basic 特有的一种数据结构,是专门用来表示货币数量的数据类型。货币型数据不能表示成整型数据 的形式,这是使用“货币”数据的实际需要决定的。货币型数据是数值的,经常要进行各种运算,不能是字符串。货币型数据与浮点型数据都 是带有小数点的数,但货币型数据小数点后的有效数位固定为 4 位。14.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )。(分数:70.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.选项 B)和选项 C)都可能 解析:C+语言中用成员函数重载时,重载一目运算符没有参数,重载二目运算
30、符要有一个参数。 15.以下程序的输出结果是( )。 #includeiostreamh void main( ) inti,j,x=0; for(i=0;i 2;i+) x+; for(j=0;j 3;j+) if (j% 2)continue; x+; x+; cout “x=“ x; (分数:70.00)A.x=4B.x=8 C.x=6D.x=12解析:该题是一个 for 循环嵌套语句,第一层 for 循环循环 2 次,第二层循环 3 次,但当 j 等于 O 和 1 时,将执行 continue 语句,不执行 x+运算,所以每次执行完内循环后,x 的增量为 1。最后一个 x+运算将每次累
31、加起来就是 x 的值。16.下面程序的输出结果是( )。 #includeiostream.h #includestring.h voidmain( ) charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:70.00)A.start( )B.init( )C.paint( ) D.draw( )解析: 在被调用过程中,有这样的语句“StaticSum”,因为变量 Sum 是局部变量,局部变量除了可以用Dim 语句声明外,还可用 S
32、tatic 语句将变量声明为静态变量,它在程序运行过程中可保留变量的值。具体过程分析如下: 调用 Sat(1),在被调过程中 N=1,执行 For Next 循环,Sat(1)=Sum=1; 调用 sat(2),在被调过程中 N=2,执行 For Next 循环,Sat(2)=Sum=4; 调用 Sat(3),在被调过程中N=3,执行 For Next 循环,Sat(3)=Sum=10; 调用 Sat(4),在被调过程中 N=4,执行 For Next 循环,Sat(4)=Sum=20; 不难看出,最后输出的结果 S 值应为 1+4+10+20=35,所以选项 C)是正确的。 17.对于语句
33、cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:70.00)A.* * * * * * * * * 1 * 2 B.* * * * * * * * 12C.* * * * * * * 1 * 2D.12 * * * * * * * *解析:C+语言中 setfil1 的意思是在空格的地方填上 setfil1 函数中的参数字符,setw 的意思是没置整个输出字符串的字符个数,本题中用:来代替空格。18.下列关于构造函数说法不正确的是( )。(分数:70.00)A.4 个字节B.5 个字节C.6 个字节 D.7 个字节解
34、析:在本题中,Dim b(-1 To 10,2 To 9,20)As Integer 定义了一个三维数组,如果没有指定下界,缺省值是 0,所以计算数组中的个数就容易了,表达式为:(10 -(-1)+1)(9-2+1)(20-0+1)=2016,所以选项 B)是正确答案。19.对于下面的程序,说法正确的是( )。 #includeiostreamh void main( ) int x=3,y=4,z=2; if(X=y+z) cout “x=y+Z“; else cout“x!=y+Z“; (分数:70.00)A.“工程”菜单 B.“文件”菜单C.“工具”菜单D.“编辑”菜单解析:在 Visu
35、al FoxPro 数据表中,日期型字段占 8 个字节,逻辑型字段占 1 个字节,且每条记录之前都带有一个删除标记,占一个字节, 故每条记录所占的字节数为 16。20.面向对象程序设计思想的主要特征中不包括( )。(分数:70.00)A.继承性B.功能分解,逐步求精 C.封装性和信息隐藏D.多态性解析:面向对象程序设计的主要特征是继承性,封装性和信息隐藏,多态性。21.对于类定义 class A public: virtual void func1( ) void func2( ) ; class B:public A public: void func1( )cout“class B fun
36、c 1“endl; virtual void func2( )cout“class B func2“endl; ; 下面正确的叙述是( )。 (分数:70.00)A.A:func2( )和 B:func1( )都是虚函数B.A:func2( )和 B:func1( )都不是虚函数C.B:func1( )是虚函数,而 A:func2( )不是虚函数 D.B:func1( )不是虚函数,而 A:func2( )是虚函数解析:基类中说明的虚函数,在派生类中自然就是虚函数,所以类 B 中 funcl( )是虚函数;而类 A 中的func 2 没有被关键字 virtual 修饰,所以不是虚函数。22.下
37、列程序的运行结果是( )。 # include iostreamh class A int a; public: A( ) a=0; A(int aa) a=aa; cout a+; ; void main( ) A x,y (2),z(3); cout endl; (分数:70.00)A.TextB.LengthC.Seltext D.SelStart解析:宏设计器用来创建宏。23.在位运算中,操作数每右移一位,其结果相当于( )。(分数:70.00)A.2 B.4C.6D.0解析:此题是有关 KeyDown 事件的题目,KeyDown 是当一个键被按下时所产生的事件,而 KeyUp 是松开
38、被按的键时产生的事件,如果要判断是否按下了某个转换键,可以用逻辑运算符 And。例如:先定义了下面3 个符号常量:Const Shift=1ConstCtrl;2,Const Alt=4;然后用下面的语句判断是否按下Shift,Ctrl,Alt 键。 如果 Shift And Shift0,则按下了 Shift 键; 如果 Shift And Ctrl0,则按下了 Ctrl 键; 如果 Shift And Alt0,则按下了 Alt 键; 这里的 Shift 时KeyDown 的第二个参数;此事件过程中的 If 后的条件语句如果为真,则是按下了 Alt+F2,而本题目中是按下了 Shift+F
39、2,所以不执行 Then 语句,即在文本框中的内容不发生变化。 24.已知有定义 constintD=5; inti=1; doublef=0.32; charc=15; 则下列选项错误的是( )。 (分数:70.00)A.Private Sub Form_MouseDown(Button As Integer, Shift As Integer,_ X As Single, Y As Single) If Button=2 Then PopupMenu Bt, 2 End Sub B.Private Sub Form_MouseDown(Button As Integer, Shift As
40、 Integer, _ X As Single, Y As Single) PopupMenu Bt End SuhC.Private Sub Form MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) PopupMenu Bt,0 End SubD.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If (Button=vbLeftButton) Or ( Bu
41、tton=vbRightButton) Then PopupMenu Bt End Sub解析:在 Visual Basic 中,允许出现快捷菜单,对用户来说,提供了很大的方便,一般来说,菜单都在窗口的顶部,有时,用户需要执行菜单中的某一命令,就得把鼠标移动到窗口顶部,然后打开菜单选择命令,这对用户来说,会觉得麻烦。而快捷菜单并不需要到窗口的顶部来打开,只要单击鼠标右键,就会弹出菜单。设计快捷菜单仍然可以用 Visual Basic 中提供的菜单编辑器,只要把某个菜单设置成隐藏就可以了,实际上,不管是在窗口顶部菜单条上显示的菜单还是隐藏的菜单,都可以用 PopupMenu 方法把它们作为快捷菜
42、单在运行时显示出来。PopupMenu 方法的使用形式如下: 对象PopupMenu 菜单名,标志,x,y 其中,x,y 是提供菜单显示的位置;标志:指定快捷菜单的行为。 25.关于模板下列说法不正确的是( )。(分数:70.00)A.T B.PC.1D.-1解析:析构函数可以被函数调用,也可以系统调用:函数体内的对象在函 数结束时调用析构函数和使用delete 释放对象所占有用的资源。26.视图设计一般有 3 种设计次序,下列不属于视图设计的是( )。(分数:-1.00)A.自顶向下B.由外向内 C.由内向外D.自底向上解析:视图设计一般有 3 种设计次序,它们分别是自顶向下、自底向上和由内
43、向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后对局部视图进行集成得到概念模式。 27.一些重要的程序语言(如 C 语言和 Pascal 语言)允许过程的递归调用。而实现递归调用中的存储分配通常用( )。(分数:-1.00)A.栈 B.堆C.数组D.链表解析:一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每 一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些 调用点。28.下列
44、有关数据库的描述,正确的是( )。(分数:-1.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:数据库(Database,简称 DB)是数据的集合,它具有统一的结构形式并存放 于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据 具有“集成”、“共享”之特点。29.在深度为 5 的满二叉树中,叶结点的个数为( )。(分数:-1.00)A.32B.31 C.16D.15解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个叶子结点。这就是 说,在满二叉树中,层上的结点数都达
45、到最大值,即在满二叉树的第 k 层上有 2k-1 个结点,且深度为 m 的满二叉树有 2m-1 个结点。30.在计算机中,算法是指( )。(分数:-1.00)A.加工方法B.解题方案的准确而完整的描述 C.排序方法D.查询方法解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。31.数据处理的最小单位是( )。(分数:-1.00)A.数据B.数据元素C.数据项 D.数据结构解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项 C)。 32.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是( )。(分数:-1.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有