[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc

上传人:fuellot230 文档编号:492733 上传时间:2018-11-30 格式:DOC 页数:15 大小:169.50KB
下载 相关 举报
[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc_第1页
第1页 / 共15页
[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc_第2页
第2页 / 共15页
[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc_第3页
第3页 / 共15页
[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc_第4页
第4页 / 共15页
[计算机类试卷]2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析 1 阅读以下说明和流程图,填补流程图中的空缺 (1) (9),将解答填入对应栏内。【说明】 假设数组 A中的各元素 A(1), A(2), , A(M)已经按从小到大排序(M1);数组 B中的各元素 B(1), B(2), , B(N)也已经按从小到大排序 (N1)。执行下面的流程图后,可以将数组 A与数组 B中所有的元素全都存入数组 C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序 )。例如,设数组 A中有元素: 2, 5, 6, 7, 9;数组 B中有元素 2, 3, 4, 7:则数组

2、C中将有元素: 2, 2, 3, 4, 5, 6, 7, 7, 9。【流程图】 2 阅读以下说明和 C程序,将应填入 (n)处的字句写在对应栏内。 【说明】 下面的程序按照以下规则输出给定名词的复数形式。 a若名词以 “y”结尾,则删除 y并添加 “ies”; b若名词以 “s”、 “ch”或 “sh”结尾,则添加 “es”; c其他所有情况,直接添加 “s”。 【 C程序】 #include stdio h #include string h char*plural(char *word) int n; char *pstr; n strlen(word); /*求给定单词的长度 */ ps

3、tr (char*)malloc(n+3); /*申请给定单词的复数形式存储空间 */ if (!pstr|n 2) return NULL; strcpy(pstr, word); /*复制给定单词 */ if (1) pstrn-1 i; pstrn e; pstrn+1 s; (2); else if(pstrn-1 s| |pstrn-1 h&(3) pstrn e; pstrn+1 s; pstrn+2 0; else pstrn s; pstrn+1 0; ) (4); main() int i; char *ps; char wc910 “chair“, “dairy“, “bo

4、ss“, “circus“, “fly“, “dog“, “church“, “clue“,“dish“); for(i 0; i 9; i+) ps (5) ; printf(“%s: %sn“, wci, ps); /*输出单词及其复数形式 */ free(ps); /*释放空间 */ system(“pause“); 3 阅读以下说明和 C程序,将应填入 (n)处的字句写在对应栏内。 【说明】 下面的程序用 DoleRob算法生成 N阶 (N为奇数 )魔方阵 (各行、列、对角线数字之和相等 )。该算法的过程为:从 1开始,按如下方法依次插入各自然数,直到 N2为止。 a在第一 行的正中插

5、入 1。 b新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。 c若最近插入的元素是 N的整数倍,则选同列的下一行位置为新位置。 例如, 3阶魔方阵如下所示: 8 1 6 3 5 7 4 9 2 【 C程序】 #include stdio.h #include stdlib.h #define SIZE 50 main( ) int row, col, n, value; int aSIZE+1SIZE+1; /*不使用下标为 0的元素 */ printf(“请输入要输出魔方阵的阶数 n(奇数, %d)

6、: n “, SIZE); scanf(“%d“, &n); if (!(n % 2)|n 1 |(1) printf(“输入数据有误 !n“); exit(0); row 1; col (n+1)/2; value 1; while(value (2) arowcol value; /*计算下一位置 */ if(value%n ! 0) row-; (3); if(row 1) row n; if(col n)(4); else row+; value (5); printf(“n%d阶魔方阵如下所示 :nn“, n); for(row 1; row n; row+) for(col 1;

7、col n; col+) printf(“%5d“, arowcol); printf(“n“); 4 阅读以下说明和 C函数,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为 “46 512037-*+”。 计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇,到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中 。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式 “46 5120 37-*+”的计算过程如下。 a依次将 46、 5、

8、 120、 37压入栈中; b遇到 “-”,取出 37、 120,计算 120-37=83,将其压入栈中: c遇到 “*”,取出 83、 5,计算 583=415,将其压入栈中; d遇到 “+”,取出 415、 46,计算 46+415=461,将其压入栈中; e表达式结束,则计算过程完成。 函数 computing(char expr, int *result)的功 能是基于栈计算后缀形式的表达式 (以串形式存入字符数组 expr)的值,并通过参数 result返回该值。函数的返回值为 -1/0,分别表示表达式有 /无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,

9、且运算符仅包含加 (“+”)、减 (“-”)、乘 (“*”)、除(“”)。 函数 computing中所用栈的基本操作的函数原型说明如下。 . void InitStack(STACK *s):初始化栈。 . void Push(STACK, s, int e):将一个整数压栈,栈中元 素数目增 1。 . void Pop(STACK *s):栈顶元素出栈,栈中元素数目减 1。 . int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。 . int IsEmpty(STACKs):若 s是空栈,则返回 1;否则返回 0。 【 C函数】 int computing (cha

10、r expr, int *result) STACK s; int tnum, a, b; char *ptr; InitStack(&s); ptr expr; pstr /*字符指针指向后缀表达式串的第一个字符 */ while(*ptr! 0) if(*ptr= ) /*当前字符是空格 */ (1); /*字符指针指向下一字符 */ continue; else if(isdigit (*ptr) /*当前字符是数字,则将该数字开始的数字串转换为数值 */ tnum (2); while (*ptr 0 & *ptr 9) tnum tnum * 10 +(3); ptr+; Push(

11、4); else /*当前字符是运算符或其他符号 */ if (*ptr +|*ptr -|*ptr *|*ptr /) if(!IsEmpty(s) a Top(s); Pop(&s); /*取运算符的第二个运算数 */ if(!IsEmpty(s) b Top(s); Pop(&s); /*取运算符的第一个运算数 */ else return -1; else return -1; switch (*ptr) case +: Push(&s, b+a); break; case -: Push(&s, b-a); break; case *: Push(&s, b*a); break; c

12、ase /: Push(&s, b/a); break; else return -1; ptr+; /*字符指针指向下一字符 */ /*while*/ if(IsEmpty(s) return -1; else (5) Top(s); Pop(&s); /*取运算结果 */ if(!IsEmpty(s) return -1; return 0; 5 阅读以下应用说明及 Visual Basic程序代码,将应填入 (n)处的字句写在对应栏内。【应用说明】 某应用程序可选择打开用户指定的文本文件,将其内容显示在指定的文本框内供用户编辑,并将编辑后的结果保存在用户指定的文件中。运行 时的窗口如图

13、6-1所示,其中有 6个标签、一个驱动器列表框、一个目录列表框、一个文件列表框、一个文件类型组合框、一个文件编辑文本框、一个文件名文本框以及两个命令按钮。 该程序的开发要求如下。 (1)通过驱动器列表框 (Drivel)、目录列表框 (Dirl)和文件列表框(Filel),选择文件。 (2)文件类型组合框 (Cmb_type)设置为下拉式列表框,其中有三个供选项,分别为 “所有文件 (* *)”、 “文本文件 (*.txt)”和 “可执行文件 (* exe)”。在文件列表框中列出的文件类型会自动与文件类型组合框中 选择的文件类型相匹配。 (3)在文件列表框中单击一个文件名时,该文件名会显示在文

14、件名文本框 (Txt filename)中。 (4)在文件列表框中双击一个文件名时,若是文本文件,则在文件编辑文本框 (Txt file)中显示该文件的内容并可进行编辑;若不是文本文件,则弹出一个对话框,提示 “请选择文本文件 !”。 (5)对于编辑后的文本文件,可在文件名文本框中输入新的文件名,并单击命令按钮 (Cmd save)进行保存。【 Visual Basic程序代码】 Private Sub Form_Load() Cmb_type Addltem “所有文件 (*.*)“ Cmb_type Addltem “文本文件 (*.txt)“ Cmb_type Addltem “可执行文

15、件 (*.exe)“ Cmb_type ListIndex 0 Filel.Pattern “* *“: Txt_filename.Text “ “ Txt_file.Text “ “ End Sub Private Sub Dirl Change() Filel Path (1) End Sub Private Sub Drivel Change() Dirl Path Drivel Drive End Sub Private Sub Cmb_type_click() Select Case Cmb_type.(2) Case 0 Filel Pattern “*.*“ Case 1 Fil

16、el.Pattern “*.txt“ Case 2 Filel.Pattern “*.exe“ End Select End Sub Private Sub Cmd_save_Click() usrFileGetFileName() 函数 GetFileName获得 要保存的文件名 Open usrFile For Output As #1 定义 usrFile为 1号输出文件 Print #1, Txt file Text 输出到 1号文件 Close #1 End Sub Private Sub Filel_DblClick() If right(Filel.FileName, 3) (3

17、)Then MsgBox “请选择文本文件 !“ Exit Sub End If usrFile GetFileName() 函数 GetFileName获得要打开的文件名 Open usrFile For Input As #1 定义 usrFile为 1号输入文件 Txt_file Text “ “ DO While (4) EOF(1) Line Input #l, fContext 从 1号文件读入一行 Txt_file Text; Txt file Text +(5)+vbCrLf Loop Close #1 End Sub 其他代码略 6 阅读下列说明、图和 C抖代码,将应填入 (

18、n)处的字句写在答题纸的对应栏内。 【说明】 已知对某载客车辆 (Car)进行类建模,如图 5-1所示,其 中类 Engine表示发动机引擎,类 Wheel表示车轮,类 Body表示车身,类 Driver表示司机,类Passenger表示乘客。 【 C+代码】 const int(1) 7; /定义最多载客数 const int MAX WHEELS 5; /定义最多轮胎数 class Body /此处代码省略 ; /车身类 class Passenger /此处代码省略 ; /乘客类 class Wheel /此处代码省略 ; /车轮类 class Driver /司机类 public: s

19、tring name; /表示第几路公交车司机 Driver(string driverName): name(2)/构造函数 ; class Engine/引擎类 public: string engineNo; /引擎编号 Engine(string engineNo)(3)- engineNo engineNo; /构造函数 ; class Car/汽车类 protected: Engine * engine; Driver * driver; Body body; Wheel * wheels MAX_WHEELS; Passenger * passengers MAX_PASSENG

20、ERS; public: Car(Driver *driver) /构造函数 this- driver driver; engine new Engine(“TX6536型号引擎 “); for (int index 0; index MAX WHEELS; index+) wheelsindexnew Wheel(); for(int index 0; index MAX_PASSENGERS;index+) passengersindex NULL; virtual Car()/析构函数 for( int index0; index MAX_WHEELS; index+) delete w

21、heelsindex; delete(4); int getPassengerNumber()/获取车上乘客数量 /此处代码省略 void getOnPassenger(Passenger * aPassenger)/乘客上车 /此处代码省略 void run() /开车 if(driver NULL)cout “司机尚未上车 !“; return; /此处代码省略 ; void main() Driver driver(“第五路公交车司机 “); Car car(5); Passenger passengersMAX_PASSENGERS; for(int index 0; index MA

22、X PASSENGERS;index +) /乘客上车处理 car getOnPassenger(&passengers index); car run(); 7 阅读下列说明、图和 Java代 码,将应填入 (n)处的字句写在对应栏内。【说明】 已知对某载客车辆 (Car)进行类建模,如图 7-1所示,其中类 Engine表示发动机引擎,类 Wheel表示车轮,类 Body表示车身,类 Driver表示司机,类 Passenger表示乘客。 【 Java代码】 class Body /此处代码省略 ); /车身类 class Passenger /此处代码省略 )/ /乘客类 class W

23、heel /此处代码省略 ); /车轮类 class Driver /司机类 public String name; /表示第几路公交车司机 public Driver(String driverName)name driverName/) /构造函数 ; class Engine/引擎类 public String engineNo; /引擎编号 public Engine(String engineNo)this engineNo engineNo; )/构造函数 ; public class Car/汽车类 static final int(1) 7; /定义最多载客数 static f

24、inal int MAX WHEELS 5; /定义最多轮胎数 protected Engine engine; protected Driver driver; protected Body body new Body(); protected Wheel wheels; protected Passengerpassengers; public Car(Driver driver) /构造函数 (2).driver driver; engine new Engine(“TX6536型号引擎 “); wheels new WheelMAX WHEELS; passengers new Pas

25、sengerMAX_PASSENGERS; for(int index 0; indexMAX_WHEELS; index+) wheelsindex new Wheel(); for(int index 0; index MAX_PASSENGERS; index+) passengersindex null; int getPassengerNumber()/获取车上乘客数量 /此处代码省略 void getOnPassenger(Passenger aPassenger)/乘客上车 /此处代码省略 void run() /开车 if(3)System.out.println(“司机尚未上

26、车 !“); return; /此处代码省略 public static void main(String args) Driver driver new Driver(“第五路公交车司机 “); Car carnew Car(4); for (int index 0 ; index MAX_PASSENGERS; index +) car getOnPassenger(5) Passenger(); car run(); 2008年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷答案与解析 1 【正确答案】 (1)1 (2)A(i) (3)B(j) (4)i (5)j (6)B(

27、j) (7)A(i) (8)j (9)i 【试题解析】 这是最常见的一种合并排序方法。为对较大的序列进行排序,先 将其分割成容量相当的几个部分,分别进行排序,最后再合并在一起。当然,这些排序要么都是升序,要么都是降序。本题全部是按升序排序的。 例如,为了将整副扑克牌按升序进行排序,先将其分割成两个部分 (数量大致相当 ),对每个部分完成升序排序后,就形成了两叠已排序的牌。如何将其合并呢 ?办法如下。 每次都比较各叠最上面的两张牌,取出比较小的,放入新堆,再继续比较。直到其中一堆空了,就将另一堆剩余的牌逐张放入新堆。新堆就是合并后的已完成排序的序列。 在数据排序时,遇到相同的数比较时,任取一个就

28、可以了。 对本题来说, i、 j、 k是数组 A、 B、 C的下标,初始时,都应该是 1。因此,空(1)处应填写 1。 将 A(i)与 B(j)进行比较后,如果 A(i)B(j),那么应该将 A(i)C(k) 。这是升序的要求。因此,空 (2)处应填 A(i)。如果 A(i) B(j),则应将 B(j)C (k) 。因此,空 (3)处应填 B(j)。 在 A(i)C(k) 后, i应增加 1,为下次取 A(i)再比较做准备 (k 也需要增加 1,为下次存入 C(k)做准备 )。这时,需要比较数组 A是否已经取完,即判断 i M是否成立。如果 i M,则表示数组 A中的元素已经全部取出,需要将数

29、组 B 中剩余的元素逐个移入 C(k)。因此,空 (4)处应填 i,空 (6)处应填 B(j)。数组 B 处的元素何时移完呢 ?这就需要判断 i N是否成立。因此,空 (8)处应填 j。 同样,空 (3)处将 B(j)存入 C(k),直到, j N时数组 B中的元素取完。此时,需要将数组 A中剩余的元素逐个移入 C(k),直到 i M时全部完成。因此,空 (5)处应填 j,空 (7)处应填 A(i),空 (9)处应填 i。 2 【正确答案】 (1)pstrn-1 y,或 *(pstr+n-1)=y,或其等价 表示 (2)pstrn+2=0,或 *(pstr+n+2)=0,或其等价表示 (3)p

30、strn-2 c|pstrn-2 s,或其等价表示 (4)return pstr (5)plural(wci),或其等价表示 【试题解析】 本题考查 C程序设计基本能力和字符串处理基本操作。 C程序中字符串存储在字符数组中,串的结尾需要设置结束标志符号 0。若已知串 pstr的长度为 n(不包括结束标志 ),则串中的字符依次存储在 pstr0,pstr1, pstrn-1中。因此,名词的最后一个字符 pstrn-1若等于字符“y”,则按照规则 a求其复数形式。下面的 if语句处理的是以 “y”结尾的名词,因此,空 (1)处应填入 “pstrn-1 y”或其等价形式。由于串 pstr的长度发生了

31、变化,所以需要设置新的结束标志,空 (2)处应填入 “pstrn+2 0”或其等价形式。 if( (1) ) pstrn-1 I; pstrn e; pstrn+1 s; (2) ; 显然,下面的 if语句处理规则 b所示的情况,即串的末尾为 “s”、 “ch”或 “sh”的情形,空 (3)处应填入 “pstrn-2 c|pstrn-2 s”或其等价形式。 if(pstrn-1=s|pstrn-1=h & ( (3) ) pstrn = e; pstrn+1 =s; pstrn+2=0; 根据函数 “char *plural(char *word)”的定义,最后应将求得的给定名词的复数形式返回

32、给主调函数 mae,对于串,应返回串空间的首地址,即返回指针 pstr,因此空 (4)处应填入 “return pstr”。 根据以下代码,空 (5)处应调用函数 plural(char*word)对指定名词求复数,数组 WC初始化时已设置了名词序列,因此,空 (5)处应填入 “plural(wci)”。 for(i = 0; i 9; i+) ps (5) ; printf(“%s: %sn“, wci, ps); /*输出单词及其复数形式 */ free(ps); /*释放空间 */ 3 【正确答案】 (1)n SIZE,或其等价表示 (2)n*n (3)col+,或 +col,或 col

33、=col+1,或其等价表示 (4)col- n,或 col 1,或其等价表示 (5)value+l,或其等价表示 【试题解析】 本题考查根据算法编写程序的基本能力。 N阶魔方阵定义为各行、列、对角线的数字之和相等。 DoleRob 给出了奇数阶魔方阵的算法,算法中方阵的行号和列号从 1至 N取值。程序中空 (1)处判断 n的合法性, n 需为奇数,矩阵规模应不超过 SIZE2。 根据题中的算法描述,由于要按次序将数值 1 n2放入方阵中 (在程序中以 value表示每次要存入的数值 ),因此从 1开始填入。将数值填入方阵的语句为“arowcol value; ”,该语句在循环中,因此循环条件为

34、 “value =n*n”,因此,空 (2)处填入 “n*n”。 程序中,本次填入的数值为 value的值,下一次要填入的数值为 value加 1,因此 ,空 (5)处应填入 “value+l”。 数值 1的位置在第一行的正中间,即行号为 1、列号为 (n+1)/2,下一个位置即 2的位置在 1的右上方,即 1所在位置的行号减 1、列号加 1。当新位置超出方阵的上边界,则新位置取应选列的最下一个位置:若超出右边界,则新位置取应选行的最左一个位置,因此对于 3阶魔方阵, 1填入第 1行第 2列, 2填入第 3行第 3列, 3填入第 2行第 1列,其余位置按照算法步骤 b类推。因此,空 (3)处填

35、入“col+”或其等价形式,空 (4)处填入 “col 1或 “col- n”。需要考虑的特殊情况是本次填入 的 value值为 N的倍数时,下一个插入位置为本次插入位置的正下方,即对于 3阶矩阵, 4填入 3的正下方, 7填入 6的正下方等。 4 【正确答案】 (1)ptr+,或 +ptr,或 ptr ptr+1,或其等价表示 (2)0,或 tnum 0 (3)*ptr-0,或 *ptr-48,或其等价表示 (4)&s,tnum (5)*result 【试题解析】 本题考查栈结构在后缀表达式求值过程中的应用。 利用栈计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运

36、算符,则从栈中弹出对 应数目的运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束,最后栈顶就是表达式的计算结果。 根据题目的说明,由于后缀表达式以字符串方式存储且以空格分隔符号 (数值、算符 ),因此遇到空格字符时,指向表达式中字符的指针 ptr应增加 1指向后续字符,因此,空 (1)处应填入 “ptr+”或其等价形式。 下面以字符串 “375”为例说明将一个数字串转换为数值的过程。 数值 375 (010+3)10+7)10+5 (1)取得数字字符 “3”(ASCII码值为 51,字符 0的 ASCII码值为 48)。 mum 0*10+51-48 3; (2)取得

37、数字字符 “7” (ASCII码值为 55)。 tnum 3*10+55-48 37; (3)取得数字字符 “5” (ASCII码值为 53)。 tnum 37*10+53-48 375; 以下代码用于将一个数字字符串转换为对应的整数存入 tnum,显然, tnum的初始值应为 0。 tnum (2) ; while (*ptr 0 & *ptr 9) tnum tnum*10+ (3) ; ptr+; 因此,空 (2)处应填入 “0”,空 (3)所在表达式将数字字符转换为数值,即空 (3)处填入 “*ptr-48”。 空 (4)处用于将转换所得的数值 tnum压入栈顶,根据题目中 Push的

38、原型 “void Push(STACK *s, int e)”,调用时第一个实际参数是 STACK类型变量的地址,第二个实际参数是一个整数,因此,空 (4)处填入 “&s,tnum”。 由于函数 computing(ckar expr, int *result)通过参数 result返回该表达式的值,因此需要将存在栈顶的运算结果赋值给 result指向的整型变量,即空 (5)处填入 “*result”。 该题目还考查了参数传递知识,因此考生应通过上机实践加强基本概念的理解和程序设计能力的培养。 5 【正确答案】 (1)Dir1 Path (2)ListIndex (3)“txt“ (4)Not

39、 (5)fContext 【试题解析】 驱动器列表框 (DriveListBox)、目录列表框 (DirListBox)和文件列表框 (FileListBox)是 Visual Basic提供的内部控件,驱动器列表框可自动填写驱动器的名字和卷标,目录列表框可显示指定驱动器的目录树,而文件列表框则是一个特殊的 ListBox控件,它显示指定目录下的所有文件,并可选择按文件的名字、扩展名或属性排列内容。 这些控件常常在一个窗体中工作,当用户在 DriveListBox中选择一个驱动器时, DirListBox控件就更新显示该驱动器上的目录树,当用户在 DirListBox中选择一条路径时, Fil

40、eListBox 控件中的内容为该目录下的文件列表,这些活动自动地触发 Change事件。但是,这些活动不能自动完成,需要为 Change事件编写代码,通过代码将驱动器列表框的 Drive属性 (指明当前驱动器 )赋值给目录列表框的Path 属性,将目录列表框的 Path 属性 (指明当前路径 )赋值给文件列表框的 Path 属性,即 Dirl.Path Drivel Drive, Filel.Path Dirl.Path,因此,空 (1)处应填入“Dirl.Path”。 下拉式列表框 (Combo Box)是组合列表框和文本框的特性而成的控件。它的 Text属性值是用户所选择的项目的文本或直

41、接从编辑区 输入的文本。它的 ListIndex属性值为选中条目的编号。显然,对于文件类型组合框 Cmb_type 的单击事件,空 (2)处应填入 “ListIndex”。 空 (3)所在的 if语句通过后缀判断文件的类型,显然对于文本文件,空 (3)处应填入 “txt”。由于文件的大小是变化的,因此对文件进行读取操作时,条件是文件未到达结尾,一般程序语言都会提供对文件操作的命令或函数,因此,空 (3)处应填入 “Not”。若要将文本文件的内容显示在文本框 Txt_file中,则需把从 1号文件读入的各行文本连接起来,语句 “LineInput#1, fContext”用于从 1号文件读入一行

42、文本并存入变量 fContext。因此,空 (5)处应填入 “fContext”。 6 【正确答案】 (1)MAX_PASSENGERS (2)driverName (3)this (4)engine (5)&driver 【试题解析】 根据类图描述,分析可得:一辆汽车可以载 0 7名乘客,一辆汽车可以被一个或者多个司机驾驶,并且一辆汽车有 4 5个轮胎,一个引擎和一个车框架。程序代码中空 (1)处表示一辆汽车最多载客数目, 从后面的程序代码 分析 可得, 应该填写 MAX PASSENGERS。空 (2)处主要设置车的假设司机,由于参数的名称与成员变量的名称相同,因此需要加上 this以示区

43、别。空 (3)处主要用于判断司机是否上车,因此,代码应该对汽车所维持的司机对象的引用是否为空进行判断。空 (4)处用于产生一个汽车对象,所以,需要给汽车对象传递合适的参数,构造方法中需要传递一个司机对象,因此应该将 driver对象传递到汽车对象中。空 (5)处表示乘客上车, getOnPassenger要求传递的是乘客对象,因此空缺处应为构造乘客对象的代码。 7 【正确答案】 (1)MAX_PASSENGERS (2)this (3)driver null (4)driver (5)new 【试题解析】 根据类图描述 分析 可得:一辆汽车可以载 0 7名乘客,一辆汽车可以被一个或者多个司机驾

44、驶,并且一辆汽车有 4 5个轮胎,一个引擎和一个车框架。程序代码中空 (1)处表示一辆汽车最多载客数目,从后面的程序代码 分析 可得,应该填写 MAX PASSENGERS。空 (2)处主要设置车的假设司机,由于参数的名称与成员变量的名称相同,因此需要加上 this 以示区别。空 (3)处主要用于判断司机是否上车,因此,代码应该对汽车所维持的司机对象的引用是否为空进行判断。空 (4)处用于产生一个汽车对象,所以需要给汽车对象传递合适的参数,构造方法中需要传递一个司机对象,因此应该将 driver对象传递到汽车对象中。空(5)处表示乘客上车, getOnPassenger要求传递的是乘客对象,因此空缺处应为构造乘客对象的代码。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1