【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc

上传人:inwarn120 文档编号:1339344 上传时间:2019-10-17 格式:DOC 页数:7 大小:65.50KB
下载 相关 举报
【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】计算机水平考试初级程序员2008年上半年下午真题及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、计算机水平考试初级程序员 2008 年上半年下午真题及答案解析(总分:105.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 假设数组 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:则数组 C 中将有元素:2,2,3,4

2、,5,6,7, 7, 9。 【流程图】 (分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.【说明】 下面的程序按照以下规则输出给定名词的复数形式。 a若名词以“y”结尾,则删除 y 并添加“ies”; b若名词以“s”、“ch”或“sh”结尾,则添加“es”; c其他所有情况,直接添加“s”。 【C 程序】 #include stdioh #include stringh char*plural(char *word) int n; char *pstr; nstrlen(word); /*求给定单词的长度*/ pstr(char*)malloc(n+3);/*申请给定

3、单词的复数形式存储空间*/ if (!pstr|n2) return NULL; strcpy(pstr,word); /*复制给定单词*/ if (U (1) /U) pstrn-1i;pstrn e;pstrn+1s;U (2) /U; else if(pstrn-1s| |pstrn-1h&(U (3) /U) pstrne;pstrn+1s;pstrn+2/0; else pstrns;pstrn+1/0;) U (4) /U; main() int i; char *ps; char wc910 “chair“,“dairy“,“boss“,“circus“,“fly“,“dog“,

4、“church“,“clue“,“dish“); for(i 0;i9; i+) psU (5) /U; printf(“%s: %s/n“,wci,ps); /*输出单词及其复数形式*/ free(ps); /*释放空间*/ system(“pause“); (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.【说明】 下面的程序用 DoleRob 算法生成 N 阶(N 为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从 1 开始,按如下方法依次插入各自然数,直到 N2 为止。 a在第一行的正中插入1。 b新位置应当处于最近插入位置的右上方,若该位置已超

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

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

7、f(“%5d“,arowcol); printf(“/n“); (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.【说明】 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46 512037-*+”。 计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇,到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5120 37-*+”的计算过程如下。 a依次将46、5、120、37 压入栈中; b遇到“-”,取出 3

8、7、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 (char expr,int *result) STACK s; int tnum,a,b; char *p

10、tr; InitStack(&s); ptrexpr;pstr /*字符指针指向后缀表达式串的第一个字符*/ while(*ptr!/0) if(*ptr= ) /*当前字符是空格*/ U (1) /U; /*字符指针指向下一字符*/ continue; else if(isdigit (*ptr) /*当前字符是数字,则将该数字开始的数字串转换为数值*/ tnumU (2) /U; while (*ptr0 & *ptr 9) tnumtnum * 10 + U(3) /U; ptr+; Push(U (4) /U); else /*当前字符是运算符或其他符号*/ if (*ptr+|*pt

11、r-|*ptr*|*ptr/) if(!IsEmpty(s) aTop(s);Pop(&s); /*取运算符的第二个运算数*/ if(!IsEmpty(s) bTop(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; case /:Push(&s,b/a); break; else return -1; ptr+; /*字符指针指向下

12、一字符*/ /*while*/ if(IsEmpty(s) return -1; else U(5) /UTop(s); Pop(&s); /*取运算结果*/ if(!IsEmpty(s) return -1; return 0; (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)5.【说明】 已知对某载客车辆(Car)进行类建模,如图 5-1 所示,其中类 Engine 表示发动机引擎,类Wheel 表示车轮,类 Body 表示车身,类 Driver 表示司机,类 Passenger 表示乘客。 (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.【

13、应用说明】 某应用程序可选择打开用户指定的文本文件,将其内容显示在指定的文本框内供用户编辑,并将编辑后的结果保存在用户指定的文件中。运行时的窗口如图 6-1 所示,其中有 6 个标签、一个驱动器列表框、一个目录列表框、一个文件列表框、一个文件类型组合框、一个文件编辑文本框、一个文件名文本框以及两个命令按钮。 (分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)7.【说明】 已知对某载客车辆(Car)进行类建模,如图 7-1 所示,其中类 Engine 表示发动机引擎,类Wheel 表示车轮,类 Body 表示车身,类 Driver 表示司机,类 Passenger 表示乘客。

14、 (分数:15.00)_计算机水平考试初级程序员 2008 年上半年下午真题答案解析(总分:105.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 假设数组 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:则数组 C 中将

15、有元素:2,2,3,4,5,6,7, 7, 9。 【流程图】 (分数:15.00)_正确答案:()解析:(1)1 (2)A(i) (3)B(j) (4)i (5)j (6)B(j) (7)A(i) (8)j (9)i 分析 这是最常见的一种合并排序方法。为对较大的序列进行排序,先将其分割成容量相当的几个部分,分别进行排序,最后再合并在一起。当然,这些排序要么都是升序,要么都是降序。本题全部是按升序排序的。 例如,为了将整副扑克牌按升序进行排序,先将其分割成两个部分(数量大致相当),对每个部分完成升序排序后,就形成了两叠已排序的牌。如何将其合并呢?办法如下。 每次都比较各叠最上面的两张牌,取出比

16、较小的,放入新堆,再继续比较。直到其中一堆空了,就将另一堆剩余的牌逐张放入新堆。新堆就是合并后的已完成排序的序列。 在数据排序时,遇到相同的数比较时,任取一个就可以了。 对本题来说,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,为下次存入

17、C(k)做准备)。这时,需要比较数组 A 是否已经取完,即判断 iM 是否成立。如果iM,则表示数组 A 中的元素已经全部取出,需要将数组 B 中剩余的元素逐个移入 C(k)。因此,空(4)处应填 i,空(6)处应填 B(j)。数组 B 处的元素何时移完呢?这就需要判断 iN 是否成立。因此,空(8)处应填 j。 同样,空(3)处将 B(j)存入 C(k),直到,jN 时数组 B 中的元素取完。此时,需要将数组 A 中剩余的元素逐个移入 C(k),直到 iM 时全部完成。因此,空(5)处应填 j,空(7)处应填 A(i),空(9)处应填 i。二、B试题二/B(总题数:1,分数:15.00)2.

18、【说明】 下面的程序按照以下规则输出给定名词的复数形式。 a若名词以“y”结尾,则删除 y 并添加“ies”; b若名词以“s”、“ch”或“sh”结尾,则添加“es”; c其他所有情况,直接添加“s”。 【C 程序】 #include stdioh #include stringh char*plural(char *word) int n; char *pstr; nstrlen(word); /*求给定单词的长度*/ pstr(char*)malloc(n+3);/*申请给定单词的复数形式存储空间*/ if (!pstr|n2) return NULL; strcpy(pstr,word

19、); /*复制给定单词*/ if (U (1) /U) pstrn-1i;pstrn e;pstrn+1s;U (2) /U; else if(pstrn-1s| |pstrn-1h&(U (3) /U) pstrne;pstrn+1s;pstrn+2/0; else pstrns;pstrn+1/0;) U (4) /U; main() int i; char *ps; char wc910 “chair“,“dairy“,“boss“,“circus“,“fly“,“dog“,“church“,“clue“,“dish“); for(i 0;i9; i+) psU (5) /U; prin

20、tf(“%s: %s/n“,wci,ps); /*输出单词及其复数形式*/ free(ps); /*释放空间*/ system(“pause“); (分数:15.00)_正确答案:()解析:(1)pstrn-1y,或*(pstr+n-1)=y,或其等价表示 (2)pstrn+2=/0,或*(pstr+n+2)=/0,或其等价表示 (3)pstrn-2c|pstrn-2s,或其等价表示 (4)return pstr (5)plural(wci),或其等价表示 分析 本题考查 C 程序设计基本能力和字符串处理基本操作。 C 程序中字符串存储在字符数组中,串的结尾需要设置结束标志符号/0。若已知串

21、pstr 的长度为 n(不包括结束标志),则串中的字符依次存储在 pstr0,pstr1,pstrn-1中。因此,名词的最后一个字符 pstrn-1若等于字符“y”,则按照规则 a 求其复数形式。下面的 if 语句处理的是以“y”结尾的名词,因此,空(1)处应填入“pstrn-1y”或其等价形式。由于串 pstr 的长度发生了变化,所以需要设置新的结束标志,空(2)处应填入“pstrn+2/0”或其等价形式。 if(U (1) /U) pstrn-1 I; pstrn e; pstrn+1 s;U (2) /U; 显然,下面的 if 语句处理规则 b 所示的情况,即串的末尾为“s”、“ch”或

22、“sh”的情形,空(3)处应填入“pstrn-2c|pstrn-2s”或其等价形式。 if(pstrn-1=s|pstrn-1=h & (U (3) /U) pstrn = e; pstrn+1 =s; pstrn+2=/0; 根据函数“char *plural(char *word)”的定义,最后应将求得的给定名词的复数形式返回给主调函数 mae,对于串,应返回串空间的首地址,即返回指针 pstr,因此空(4)处应填入“return pstr”。 根据以下代码,空(5)处应调用函数plural(char*word)对指定名词求复数,数组 WC 初始化时已设置了名词序列,因此,空(5)处应填入

23、“plural(wci)”。 for(i = 0; i 9; i+) psU (5) /U; printf(“%s: %s/n“,wci,ps); /*输出单词及其复数形式*/ free(ps); /*释放空间*/ 三、B试题三/B(总题数:1,分数:15.00)3.【说明】 下面的程序用 DoleRob 算法生成 N 阶(N 为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从 1 开始,按如下方法依次插入各自然数,直到 N2 为止。 a在第一行的正中插入1。 b新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位

24、置取应选行的最左一个位置。 c若最近插入的元素是 N 的整数倍,则选同列的下一行位置为新位置。 例如,3 阶魔方阵如下所示: 8 1 6 3 5 7 4 9 2 【C 程序】 #includestdio.h #includestdlib.h #define SIZE 50 main( ) int row, col, n,value; int aSIZE+1SIZE+1; /*不使用下标为 0 的元素*/ printf(“请输入要输出魔方阵的阶数n(奇数,%d):n“,SIZE); scanf(“%d“,&n); if (!(n % 2)|n 1 |U (1) /U) printf(“输入数据有

25、误!/n“); exit(0); row1; col (n+1)/2; value1; while(value U (2) /U) arowcol value; /*计算下一位置*/ if(value%n !0) row-; U (3) /U; if(row1) rown; if(coln)U (4) /U; else row+; value U(5) /U; printf(“/n%d 阶魔方阵如下所示:/n/n“,n); for(row 1;row n; row+) for(col 1; col n; col+) printf(“%5d“,arowcol); printf(“/n“); (分

26、数:15.00)_正确答案:()解析:nSIZE,或其等价表示(2)n*n(3)col+,或+col,或 col=col+1,或其等价表示(4)col-n,或 col1,或其等价表示(5)value+l,或其等价表示分析本题考查根据算法编写程序的基本能力。N 阶魔方阵定义为各行、列、对角线的数字之和相等。DoleRob 给出了奇数阶魔方阵的算法,算法中方阵的行号和列号从 1 至 N 取值。程序中空(1)处判断 n 的合法性, n 需为奇数,矩阵规模应不超过 SIZE2。根据题中的算法描述,由于要按次序将数值 1n 2放入方阵中(在程序中以 value 表示每次要存入的数值),因此从 1 开始填

27、入。将数值填入方阵的语句为“arowcol value;”,该语句在循环中,因此循环条件为“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

28、 行第 3 列,3 填入第 2 行第 1 列,其余位置按照算法步骤 b 类推。因此,空(3)处填入“col+”或其等价形式,空(4)处填入“col1 或“col-n”。需要考虑的特殊情况是本次填入的 value 值为 N 的倍数时,下一个插入位置为本次插入位置的正下方,即对于 3 阶矩阵,4 填入 3 的正下方,7 填入 6 的正下方等。四、B试题四/B(总题数:1,分数:15.00)4.【说明】 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46 512037-*+”。 计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对

29、象,则压入栈中;遇,到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5120 37-*+”的计算过程如下。 a依次将46、5、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)的功能是基于栈计算后缀形式的表达式(以串形式存

30、入字符数组 expr)的值,并通过参数 result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“/”)。 函数 computing 中所用栈的基本操作的函数原型说明如下。 void InitStack(STACK *s):初始化栈。 void Push(STACK,s,int e):将一个整数压栈,栈中元素数目增 1。 void Pop(STACK *s):栈顶元素出栈,栈中元素数目减 1。 int Top(STACK s):返回非空栈的栈顶元素值,

31、栈中元素数目不变。 int IsEmpty(STACKs):若 s 是空栈,则返回 1;否则返回 0。 【C 函数】 int computing (char expr,int *result) STACK s; int tnum,a,b; char *ptr; InitStack(&s); ptrexpr;pstr /*字符指针指向后缀表达式串的第一个字符*/ while(*ptr!/0) if(*ptr= ) /*当前字符是空格*/ U (1) /U; /*字符指针指向下一字符*/ continue; else if(isdigit (*ptr) /*当前字符是数字,则将该数字开始的数字串转

32、换为数值*/ tnumU (2) /U; while (*ptr0 & *ptr 9) tnumtnum * 10 + U(3) /U; ptr+; Push(U (4) /U); else /*当前字符是运算符或其他符号*/ if (*ptr+|*ptr-|*ptr*|*ptr/) if(!IsEmpty(s) aTop(s);Pop(&s); /*取运算符的第二个运算数*/ if(!IsEmpty(s) bTop(s);Pop(&s);/*取运算符的第一个运算数*/ else return -1; else return -1; switch (*ptr) case +: Push(&s,

33、b+a); break; case -:Push(&s,b-a);break; case *:Push(&s,b*a); break; case /:Push(&s,b/a); break; else return -1; ptr+; /*字符指针指向下一字符*/ /*while*/ if(IsEmpty(s) return -1; else U(5) /UTop(s); Pop(&s); /*取运算结果*/ if(!IsEmpty(s) return -1; return 0; (分数:15.00)_正确答案:()解析:(1)ptr+,或+ptr,或 ptrptr+1,或其等价表示 (2)0

34、,或 tnum0 (3)*ptr-0,或*ptr-48,或其等价表示 (4)&s,tnum (5)*result 分析 本题考查栈结构在后缀表达式求值过程中的应用。 利用栈计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出对应数目的运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束,最后栈顶就是表达式的计算结果。 根据题目的说明,由于后缀表达式以字符串方式存储且以空格分隔符号(数值、算符),因此遇到空格字符时,指向表达式中字符的指针 ptr 应增加 1 指向后续字符,因此,空(1)处应填入“ptr+”或其等价形式。 下面以字

35、符串“375”为例说明将一个数字串转换为数值的过程。数值 375(010+3)10+7)10+5 (1)取得数字字符“3”(ASCII 码值为 51,字符 0 的 ASCII 码值为48)。 mum0*10+51-483; (2)取得数字字符“7” (ASCII 码值为 55)。 tnum3*10+55-4837; (3)取得数字字符“5” (ASCII 码值为 53)。 tnum37*10+53-48375; 以下代码用于将一个数字字符串转换为对应的整数存入 tnum,显然,tnum 的初始值应为 0。 tnumU (2) /U; while (*ptr0 & *ptr 9) tnumtnu

36、m*10+U (3) /U; ptr+; 因此,空(2)处应填入“0”,空(3)所在表达式将数字字符转换为数值,即空(3)处填入“*ptr-48”。 空(4)处用于将转换所得的数值 tnum 压入栈顶,根据题目中 Push 的原型“void Push(STACK *s,int e)”,调用时第一个实际参数是 STACK 类型变量的地址,第二个实际参数是一个整数,因此,空(4)处填入“&s,tnum”。 由于函数 computing(ckar expr,int *result)通过参数 result 返回该表达式的值,因此需要将存在栈顶的运算结果赋值给 result 指向的整型变量,即空(5)处

37、填入“*result”。 该题目还考查了参数传递知识,因此考生应通过上机实践加强基本概念的理解和程序设计能力的培养。五、B试题五/B(总题数:1,分数:15.00)5.【说明】 已知对某载客车辆(Car)进行类建模,如图 5-1 所示,其中类 Engine 表示发动机引擎,类Wheel 表示车轮,类 Body 表示车身,类 Driver 表示司机,类 Passenger 表示乘客。 (分数:15.00)_正确答案:()解析:(1)MAX_PASSENGERS (2)driverName (3)this (4)engine (5)&driver 分析 根据类图描述,分析可得:一辆汽车可以载 07

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

39、senger 要求传递的是乘客对象,因此空缺处应为构造乘客对象的代码。六、B试题六/B(总题数:1,分数:15.00)6.【应用说明】 某应用程序可选择打开用户指定的文本文件,将其内容显示在指定的文本框内供用户编辑,并将编辑后的结果保存在用户指定的文件中。运行时的窗口如图 6-1 所示,其中有 6 个标签、一个驱动器列表框、一个目录列表框、一个文件列表框、一个文件类型组合框、一个文件编辑文本框、一个文件名文本框以及两个命令按钮。 (分数:15.00)_正确答案:()解析:(1)Dir1Path (2)ListIndex (3)“txt“ (4)Not (5)fContext 分析 驱动器列表框

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

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

42、的编号。显然,对于文件类型组合框Cmb_type 的单击事件,空(2)处应填入“ListIndex”。 空(3)所在的 if 语句通过后缀判断文件的类型,显然对于文本文件,空(3)处应填入“txt”。由于文件的大小是变化的,因此对文件进行读取操作时,条件是文件未到达结尾,一般程序语言都会提供对文件操作的命令或函数,因此,空(3)处应填入“Not”。若要将文本文件的内容显示在文本框 Txt_file 中,则需把从 1 号文件读入的各行文本连接起来,语句“LineInput#1,fContext”用于从 1 号文件读入一行文本并存入变量 fContext。因此,空(5)处应填入“fContext”。七、B试题七/B(总题数:1,分数:15.00)7.【说明】 已知对某载客车辆(Car)进行类建模,如图 7-1 所示,其中类 Engin

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

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

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