国家二级(C++)机试模拟试卷15(题后含答案及解析)_0

国家二级(C++)机试模拟试卷15 (题后含答案及解析)

题型有:1. 程序改错题 2. 简单应用题 3. 综合应用题

程序改错题(30分)

1. 使用VC6打开考生文件夹下的工程test16_1,此工程包含一个源程序文件test16_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为: Which act(a or b)?b act1 act2 Bact3 Bact4 Bend 源程序文件test16_1.cpp清单如下: #include<iostream.h> class A

{ public: virtual void act1( ){cout<<”actl\n”;act2( );} void

act2( ){cout<<”act2\n”;act3( );} /**********+****** found

*****************/ void act3( ){cout<<”Aact3\n”;act4( );}

/***************** found *****************/ virtual void act4{cout<<”Aact4\n”;act5( );} void act5( ){cout<<”Aend\n”;} };

class B:public A { void act3( ){cout<<”Bact3\n”;act4( );}

void act4( ) {cout<<”Bact4\n”;act5( ) ;} void act5( ) {cout<<”Bend\n”;} }; void main (void) { char c; A *a; cout<<”Which act (a or b) ?”; /***************** found *****************/

cin<<c; if(c==‘a’) a = new A; else a = new B; a->act1

( ); delete a; }

正确答案:(1)错误:voidact3( ){cout<<”Aact3\n”;act4( );} 正确:virtual void act3( ){cout<<”Aact3\n”;act4( );}(2)错误:virtual void

act4{cout<<”Aact4\n”;act5( );} 正确:virtual void act4( ){cout<<”Aact4\n”;act5( );}(3)错误:cin<<c; 正确:cin>>c;

解析:(1)主要考查考生对于虚函数使用规则的理解,要实现对函数act3的动态联编应该使用虚函数,这样在本题中对于函数的调用才能实现根据不同对象调用不同函数;(2)主要考查考生对于函数定义的掌握,虽然参数表为空,但括号是不能省略的:(3)主要考查考生是否会使用流输入操作,本题中使用的是流输出符。

简单应用题(40分)

2. 编写类AA的成员函数int Compare(AAb), 该函数用于比较*this与b的大小,若两者含有元素的个数n相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。注意:用数组方式及for循环来实现该函数。输出结果如下: a=b a<>C 注意:部分源程序已存在文件testl7_2.cpp中。 请勿修改主函数main和其他函数中的任何内容,仅在函数Compare的花括号中填写若干语句。 文件testl7_2.cpp的内容如下:

#include<iostream.h> #include<stdlib.h> class AA { int *a;

int n; int MS; public: void InitAA(int aa[], int nn, int ms)

{ if(nn>ms) { cout<<”Error!”<<end1; exit(1); }

MS=ms; n=nn; a=new int[MS]; for(int i=0; i<n; i++)

a[i]=aa[i]; } int Compare(AA b); }; int AA::Compare(AA b)

{ } void main( ) { AA a,b,c; int x[]={1,2,3,4,5};

int y[]={1,2,3,6,7}; int z[]={1,2,5,7,9}; a. InitAA(x,3,5); b.

InitAA(y,3,5); c. InitAA(z,3,5); if (pare(b)) cout<<”a=b”<<end1; else cout<<”a<>b”<<end1; if (pare(c))

cout<<”a=c”<<end1; else cout<<”a<>c”<<end1; }

正确答案:int AA::Compare(AA b) { if(n!=b.n) return 0;

for(int i=0; i<n; i++) if(a[i]!=b.a[i]) return 0; return

1; }

解析:本题考查的是考生应用for循环、if条件控制语句等基本控制结构解决实际问题的能力。注意有多种返回0的情况:个数不等或者前n个数不等都要返回0。

综合应用题(30分)

3. 使用VC6打开考生文件夹下的工程test15_3。此工程包含一个test15_3.cpp,其中定义了类Time和Timex,Timex公有继承Time,但定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)完成类Time构造函数的定义,将数据成员hours和minutes分别初始化为参数new_hours和new_minutes的值。请在注释“//**1**”之后添加适当的语句。 (2)完成类Timex的构造函数的定义,注意参数的传递。请在注释“//**2**”之后添加适当的语句。 (3)请按时间格式“hour:minute”和“hour:minute:second”分别输出对象time1和time2所表示的时间,注意必须使用已经定义的成员函数。请在注释“//**3**”之后添加适当的语句。 输出结果如下: 20:30 10:45:34 注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。 源程序文件test15_3.cpp清单如下: #include<iostream.h> class Time { public:

Time(int new hours,int new_minutes) { // ** 1 ** } int

get_hours( ); int get_minutes( ); protected: int hours,minutes; }; int Time::get_hours( ) { return hours; } int

Time::get_minutes( ) { return minutes; } class Timex:public Time

{ public: Timex(int new hours,int new_minutes,int new_seconds); int

get_seconds( ); protected: int seconds; }; // ** 2 **

{ seconds=new_seconds; } int Timex::get_seconds( )

{ return seconds; } void main( ) { Time time1(20,30);

Timex time2(10,45,34); // ** 3 ** }

正确答案:(1) hours=new_hours; minutes=new_minutes;(2) Timex::Timex(int new_hours,int new_minutes, int new_seconds):Time(new_hours,new_minutes)(3) cout<<time1.get_hours( )<<”:”<<time1.get_minutes( )<<end1; cout<<time2.get_hours( )<<”:”<<time2.get_minutes( )<<”:”<<time2.get_seconds( )<endl;

解析:本题主要考查考生对于类和派生类构造函数的定义以及成员函数的使

用,注意(2)中派生类构造函数中必须包括向基类传递参数的调用,应该使用参数列表完成这一操作。

合集下载

国家二级MS Office高级应用机试(选择题)模拟试卷162(题后含答案及解析)

国家二级MS Office高级应用机试(选择题)模拟试卷162(题后含答案及解析)

国家二级MS Office高级应用机试(选择题)模拟试卷162 (题后含答案及解析)

题型有:1.

1. 有三个关系R,S和T如下图所示:则由关系R和S得到关系T的运算是( )。

A.交

B.并

C.投影

D.自然连接

正确答案:D

解析:自然连接要求两个关系中进行比较的是相同的属性,并且进行等值连接,在结果中还要把重复的属性列去掉。本题属于自然连接,隐含条件是R.A=S.A。 知识模块:数据库设计基础

2. 某Word文档中有一个5行×4列的表格,如果要将另外一个文本文件中的5行文字拷贝到该表格中,并且使其正好成为该表格一列的内容,最优的操作方法是( )。

A.在文本文件中选中这5行文字,复制到剪贴板;然后回到Word文档中,将光标置于指定列的第一个单元格,将剪贴板内容粘贴过来

B.将文本文件中的5行文字,一行一行地复制、粘贴到Word文档表格对应列的5个单元格中

C.在文本文件中选中这5行文字,复制到剪贴板,然后回到Word文档中,选中对应列的5个单元格,将剪贴板内容粘贴过来

D.在文本文件中选中这5行文字,复制到剪贴板,然后回到Word文档中,选中该表格,将剪贴板内容粘贴过来

正确答案:C

解析:A选项,执行该操作后,5行文字都复制到了指定列的第一个单元格中;B选项,一行一行复制操作比较繁琐;D选项,执行该操作,表格中的5列均出现该5行文字。故正确答案为c选项。 知识模块:Word的功能和使用

3. 某系统总体结构如下图所示,该系统结构图的深度是

A.1

B.2

C.3

D.4

正确答案:D

解析:树中结点的层次从根开始定义起,根为第一层,根的孩子为第二层,依次累计。树中结点的最大层次称为树的深度。所以由题目中系统结构图,得到该树的深度为4,因此选项D正确。 知识模块:程序设计基础和软件工程基础

4. 将数据库的结构划分成多个层次,是为了提高数据库的逻辑独立性和

A.安全性

国家二级ACCESS机试(选择题)模拟试卷327(题后含答案及解析)

国家二级ACCESS机试(选择题)模拟试卷327(题后含答案及解析)

国家二级ACCESS机试(选择题)模拟试卷327 (题后含答案及解析)

题型有:1. 选择题

选择题

1. 下列叙述中错误的是( )。

A.循环链表中有一个表头节点

B.循环链表是循环队列的存储结构

C.循环链表的表头指针与循环链表中最后一个节点的指针均指向表头节点

D.循环链表实现了空表与非空表运算的统一

正确答案:B

解析:循环链表是指在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,最后一个节点的指针域的值由NULL改为指向表头节点。循环链表是线性表的一种链式存储结构,循环队列是队列的一种顺序存储结构。

2. 某棵树中共有25个节点,且只有度为3的节点和叶子节点,其中叶子节点有7个,则该树中度为3的节点数为( )。

A.6

B.7

C.8

D.不存在这样的树

正确答案:D

解析:根据题意,树中只有度为3的节点和叶子节点(7个),则度为3的节点有25—7=18个;又根据树中的节点数:树中所有节点的度之和+1,设度为3的节点数为n,则3n+1=25,得n=8。两种方式得到的度为3的节点数不同,故不存在这样的树。

3. 度为3的一棵树共有30个节点,其中度为3,l的节点个数分别为3.4。则该树中的叶子节点数为( )。

A.14

B.15

C.16

D.不可能有这样的树

正确答案:B

解析:设叶子节点数为n,则度为2的节点数为30-3-4-n=23-n,根据树中的节点数=树中所有节点的度之和+l,得3×3+2×(23一n)+l×4+0×n+1=30,则n=15。

4. 深度为7的二叉树共有127个节点,则下列说法中错误的是( )。

A.该二叉树是满二叉树

B.该二叉树有一个度为1的节点

C.该二叉树是完全二叉树

D.该二叉树有64个叶子节点

正确答案:B

解析:满二叉树满足深度为m的二叉树最多有2m-1个节点,本题中二叉树深度为7且有127个l忡点,满足27一l=127,达到最大值,故此二叉树为满二叉树,也是完全二叉树。满二叉树第k层上有2k-1节点,则该二叉树的叶子节点数为27-1=64个。满二叉树不存在度为l的节点。

国家二级C++机试(类和对象)模拟试卷14

国家二级C++机试(类和对象)模拟试卷14

国家二级C++机试(类和对象)模拟试卷14

(总分:54.00,做题时间:90分钟)

一、 选择题(总题数:27,分数:54.00)

1.下列关于this指针的描述中,正确的是( )。

(分数:2.00)

A.类的成员函数都有this指针

B.类的友元函数都有this指针

C.任何与类相关的函数都有this指针

D.类的非静态成员函数都有this指针 √

解析:解析:this是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针可以知道自己属于哪一个对象,它隐藏于每个类的非静态成员函数中。

2.有如下程序: #include<iostream> using namespace std; class Test { public: Test() {n+=2;} ~Test(){n-=3;} static int getNum0{return n;} private: static int n; }; int Test::n=1; int

main() { Test*p=new"rest; delete p; tout<<''n=''<<Test::getNum()<<end1; return 0; }

执行后的输出结果是( )。

(分数:2.00)

A.n=0 √

B.n=1

C.n=2

D.n=3

解析:解析:此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员n的运算具有叠加性,执行“n+=2”和“n-=3”后n的值为0。

3.有如下程序: #include<iostream> using namespace std; class Obj{ static int i; public:

Obj(){i++;} ~Obj(){i--;} static hat getVal(){return i;} }; int Obj::i=0; void f(){Obj

国家二级C语言(数组)机试模拟试卷4(题后含答案及解析)

国家二级C语言(数组)机试模拟试卷4(题后含答案及解析)

国家二级C语言(数组)机试模拟试卷4 (题后含答案及解析)

题型有:1. 选择题

选择题

1. 若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )。

A.pt+3

B.*&x[10]

C.*(pt+10)

D.*(x+3)

正确答案:D

解析:没有A选项的引用形式。*与&放在一起作用抵消,但x[10]下标10超出了数组下标范围,所以B选项错误。最大只能引用到x[9],而*(pt+i)表示引用指针pt所指元素后的第i个元素,所以C选项错误,最大只能为*(pt+9)。D选项正确。 知识模块:数组

2. 有以下程序:#include<stdio.h>main( ){int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是( )。

A.20

B.25

C.45

D.36

正确答案:B

解析:统计1~9这9个数中的奇数和,此题考查指向数组的指针。C语言规定数组名代表数组的首地址,也就是第一个元素的地址,因此*(t+i)代表数组的第i+1个元素。程序的运行结果是1+3+5+7+9=25。 知识模块:数组

3. 有以下程序:#include<stdio.h>main( ){int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)e[s[i]]++;for(i=1;i<5;i++)printf(“%d”,c[i]);printf(“\n”);}程序的运行结果是( )。

A.2 3 4 4

B.4 3 3 2

C.1 2 3 4

D.1 1 2 3

正确答案:B

解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2,因此B选项正确。 知识模块:数组

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14

(总分:56.00,做题时间:90分钟)

一、 选择题(总题数:28,分数:56.00)

1.有以下程序 #include main() { int a=5,b=1,t; t=(a<

(分数:2.00)

A.11

B.6

C.21 √

D.1

解析:解析:本题考查位操作运算符。 “<<”是左移运算符,左移一位相当于乘2,“|”是按位或运算符。5序移两位相当于乘4,得到20,20的二进制数是00010100,和00000001进行按位或操作得到00010101,即十进制的21。

2.若变量已正确定义,则以下语句的输出结果是 s=32; s^=32; printf("%d",s);

(分数:2.00)

A.-1

B.1

C.32

D.0 √

解析:解析:“按位异或”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为0;若数不同,则该位的结果为1。因为语句“s=32;s^=32;”相当于s与自身做按位异或运算,所以其结果等于0。

3.若有以下程序 main(){int c; c=10^5; printf("%d\n",c); } 则程序的输出结果是

(分数:2.00)

A.15 √

B.10000

C.5

D.105

解析:解析:按位异或(^)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,该位的结果为1。整数10和5的二进制编码分别为1010和0101,异或结果为1111,其十进制数据位15。

4.若有以下程序 main(){int c; C=1315; printf("%d\n",c); } 则程序的输出结果是

(分数:2.00)

A.15

B.18

C.13 √

D.5

解析:解析:按位或(|)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为1,则该位的运算结果即为1:只有当两个相应位的数都为0时,该位的运算结果才为0。13的二进制位1101,5的二进制位0101,或运算的结果为1101,因此值为13。

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言(选择结构、循环结构)机试模拟试卷1

(总分66, 做题时间90分钟)

1. 选择题

1.

下列选项中,当x为大于1的奇数时,值为0的表达式是( )。

SSS_SINGLE_SEL

A x%2==0

B x/2

C x%2!=0

D x%2==1

分值: 2

答案:A

解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是O。C选项的值为真,即1。D选项的值为真,即1。

2.

若a是数值类型,则逻辑表达式(a==1)‖(a!=1)的值是( )。

SSS_SINGLE_SEL

A 1

B 0

C 2

D 不知道a的值,不能确定

分值: 2

答案:A

解析:逻辑或“‖”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零。

3.

当变量e的值不为2、4、6时,值为“真”的表达式是( )。

SSS_SINGLE_SEL

A (c>=2&&e<=6)&&(c%2 1=1)

B (c==2)‖(c==4)‖(c==6)

C (c>=2&&c<=6)&&!(c%2)

D (c>=2&&c←6)‖(c!=3)lI(c!=5)

分值: 2

答案:D

解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!:3与c!:5均成立,所以D选项的结果一定为真。

4.

有以下程序: #include main() { int a=1,b=2,c=3,d=0;

if(a==1&&b++==2) if(b!=2‖c一!=3) prinff(“%d,%d,%d\n”,a,

b,c); else prinff(“%d,%d,%d\n”,a,b,c); else prinff(“%d,%d,%d\n”,a,b,c); } 程序的运行结果是( )。

国家二级ACCESS机试(选择题)模拟试卷190(题后含答案及解析)

国家二级ACCESS机试(选择题)模拟试卷190 (题后含答案及解析)

题型有:1.

1. 在超市营业过程中,每个时段要安排一个班组上岗值班,每个收款口要配备两名收款员配合工作,共同使用一套收款设备为顾客服务。在数据库中,实体之间属于一对一关系的是

A.“顾客”与“收款口”的关系

B.“收款口”与“收款员”的关系

C.“班组”与“收款员”的关系

D.“收款口”与“设备”的关系

正确答案:D

解析:本题考查表与表之间的关系的知识。在关系数据库中,表与表的关系有三种:一对一关系、一对多关系、多对多关系。若表A和表B之间存在一对一的关系,那么表A中的一条记录只能与表B中的一条记录匹配,反过来表B中的一条记录只能与表A中的一条记录匹配;若表A和表B之间存在一对多的关系,且表B为多的一方,那么表A中的一条记录与表B中的多条记录匹配,反过来表B中的一条记录只能与表A中的一条记录匹配;若表A和表B之间存在多对多的关系,那么表A中的一条记录能与表B中的多条记求匹配,反过米表B中的一条记录也能与表A中的多条记录匹配。就本题来说,一个收款口可以有多个顾客,一个顾客只能在一个收款口,属于一对多关系;一个收款口可以有两个收款员,一个收款员只能在一个收款口,属于一对多关系:一个班组可以有多个收款员,一个收款员只能在一个班组,属于一对多关系:只有一个收款口只能由一套设备,一套设备只能在一个收款口,属于一对一关系。

2. 在课程表中要查找课程名称中包含”数据库”的课程,对应”课程名称”字段的正确条件表达式是( )。

A.数据库

B.*数据库*

C.Like “*数据库*”

D.Like “数据库”

正确答案:C

解析:用”*”表示该位置可匹配零或多个字符。在课程表中要查找课程名称中包含”数据库”的课程,对应”课程名称”字段的正确条件表达式是Like “*数据库*”。所以本题答案为C。

3. 下面对对象概念描述正确的是

国家二级C++机试(运算符重载、C++流)模拟试卷2(题后含答案及解析)

国家二级C++机试(运算符重载、C++流)模拟试卷2 (题后含答案及解析)

题型有:1. 选择题

选择题

1. 关于运算符重载,下列表述中正确的是( )。

A.C++已有的任何运算符都可以重载

B.运算符函数的返回类型不能声明为基本数据类型

C.在类型转换符函数的定义中不需要声明返回类型

D.可以通过运算符重载来创建C++中原来没有的运算符

正确答案:C

解析:此题考查的是运算符重载的概念。C++语言规定,“.”、“.*”、“->*”、“::”和“?:”这五个运算符不能被重载,故选项A错误:运算符函数的返回类型由该运算符所组成的表达式的值的类型来决定,故选项B说法是错误的;运算符重载是针对原有运算符,并不能通过重载创造出新的运算符,故选项D错误。 知识模块:运算符重载

2. 下列关于运算符重载的描述中,正确的是( )。

A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符

B.一元运算符只能作为成员函数重载

C.二元运算符重载为非成员函数时,参数表中有一个参数

D.C++中可以重载所有的运算符

正确答案:A

解析:此题考查的是运算符的重载。运算符重载为成员函数时,形参个数一般为运算符元数减1:重载为非成员函数时,形参个数一般和运算符元数相等。所以二元运算符重载为非成员函数时,参数表中应有两个参数,C选项错误;运算符重载为成员函数,若参数表中无参数,重载的是一元运算符,选项A正确:一元运算符中,“-”(取负)、“++”、“--”等均可重载为成员函数;C++语言中,“.”、“.*”、“->*”、“::”、“?:”五个运算符不能重载。 知识模块:运算符重载

3. 运算符重载时不需要保持的性质是( )。

A.操作数个数

B.操作数类型

C.优先级

D.结合性

正确答案:B

解析:运算符重载应该体现为原有运算符的功能在新的数据类型上的延伸。重载的运算符保持原有运算符的操作个数、优先级和结合性三个最基本的特征。

国家电网招聘考试电气工程专业知识(单项选择题)模拟试卷15(题后

国家电网招聘考试电气工程专业知识(单项选择题)模拟试卷15 (题后含答案及解析)

题型有:1. 单项选择题

单项选择题

1. 对于两相短路,其序网络的连接是( )。

A.正序和负序并联

B.正序、负序、零序串联

C.正序、负序、零序并联

D.负序、正序并联,再和零序串联

正确答案:A。

2. 对于两相短路接地,其序网络的连接是( )。

A.正序和负序并联

B.正序、负序、零序串联

C.正序、负序、零序并联

D.负序、正序并联,再和零序串联

正确答案:C。

3. 对于两相短路接地的不对称短路,短路电流是正序电流的( )。

A.1.732倍

B.3倍

C.2倍

D.倍

正确答案:D。

4. 计算不对称短路的方法仅适用于计算( )不对称短路电流交流分量的起始值。

A.1 s

B.2 s

C.3 s

D.0

正确答案:D。

5. 架空输电线路导线之间的几何平均距离越大,其正序电抗(负序电抗)越大,零序电抗( )。

A.越大

B.越小

C.不变

D.不确定

正确答案:B。

解析:零序电流同相,相间的零序电流起助磁作用,零序电抗表征了相间零序电流的耦合作用。几何平均距离越大,助磁作用越小,零序电抗越小。

6. 在电力系统分析和计算中,功率和阻抗一般分别是指( )。

A.一相功率,一相阻抗

B.三相功率,一相阻抗

C.三相功率,三相阻抗

D.三相功率,一相等值阻抗

正确答案:D。

7. 某网络中的参数如图所示。 用近似计算法计算的发电机标幺值为( )。(取SB=100M VA)

A.x"d=0.5

B.x"d=0.15

C.x"d=0.25

D.x"d=0.6

正确答案:A。

解析:根据电压10.5 kV和容量30 MVA,计算出基准值为0.3,而有名值已知条件已经给出为0.15,因此其标幺值为0.5。

8. 对于两相短路附加阻抗M为( )。

国家二级(ACCESS)机试模拟试卷53(题后含答案及解析)

国家二级(ACCESS)机试模拟试卷53 (题后含答案及解析)

题型有:1. 选择题 2. 基本操作题 3. 简单应用题 4. 综合应用题

选择题

1. 下列数据结构中,能用二分法进行查找的是( )。

A.无序线性表

B.线性链表

C.二叉链表,

D.顺序存储的有序表

正确答案:D

解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

2. 下列叙述中,不属于设计准则的是( )。

A.提高模块独立性

B.使模块的作用域在该模块的控制域中

C.设计成多入口、多出口模块

D.设计功能可预测的模块

正确答案:C

解析:大量软件设计表明,以下的设计准则是可以借鉴为设计的指导和对软件结构图进行优化,这些准则是:提高模块独立性:模块规模适中:深度、宽度、扇出和扇入适当;使模块的作用域在该模块的控制域中;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块。

3. 下列队列的描述中,正确的是( )。

A.队列属于非线性表

B.队列在队尾删除数据

C.队列按“先进后出”进行数据操作

D.队列按“先进先出”进行数据操作

正确答案:D

解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。

4. 对下列二叉树进行前序遍历的结果为( )。

A.ABCDEFGH

B.ABDGEHCF

C.GDBEHACF

D.GDHEBFCA

正确答案:B

解析:遍历就是不重复地访问二叉树的所有结点。二叉树遍历的方法有3种:前序遍历、中序遍历和后序遍历。记住3种遍历的顺序: ①前序,访问根→按前序遍历左子树→按前序遍历右子树。 ②中序,按中序遍历左子树→访问根→按中序遍历右子树。 ③后序,按后序遍历左子树→按后序遍历右子树→访问根。 所以对该二叉树的中序遍历结果为ABDGEHCF。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档