1、浙江计算机二级 VF模拟试卷 4及答案与解析 一、程序阅读选择题 阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 0 【程序说明】 STD表中含有字段:姓名 (C, 8),课程名 (C, 16),成绩 (N, 3,0),下面一段程序用于显示所有成绩及格的学生信息。 【程序】 SET TALK OFF CLEAR USE STD DO WHIIE (1) IF (2) ?“姓名: ”+姓名, “课程: ”+课程名, “成绩: ”+STR(成绩, 3, 0) ENDIF (3) (4) USE SET TALK ON RETURN ( A) EOF() ( B) NO
2、T.EOF() ( C) BOF() ( D) NOT.BOF() ( A)成绩 60 ( B)成绩 60 ( C)成绩 60 ( D)成绩 60 ( A) EXIT ( B) SKIP-1 ( C) SKIP ( D) SKIP 2 ( A) ENDDO ( B) ENDWHILE ( C) ENDIF ( D) ENDCASE 4 【程序 说明】 设有表文件 “职工 .DBF”(有字段:职工编号、姓名、民族 )和 “工资 .DBF”(有字段:职工编号、工资 ),要在它们之间建立逻辑连接,然后为每个少数民族职工的工资增加 200元,最后显示全体职工的职工编号、姓名和工资。 【程序】 SET
3、TALK OFF SELECT 1 USE 职工 (5) TO ZGBH SELECT 2 USE 工资 SET RELATION TO (6) REPLACE 工资 WITH (7) FOR (8) LIST职工编号, (9) ,工资 SET RELATION TO CLOSE DATA SET TALK ON RETURN ( A) INDEX ON 姓名 ( B) INDEX TO 职工编号 ( C) INDEX ON 职工编号 ( D) INDEX ON 职工编号 OF ZGBH ( A)职工编号 INTO A ( B)职工编号 TO A ( C)工资 INTO A ( D)工资 TO
4、 A ( A)工资 * 200 ( B)工资 +200 ( C) 200 ( D)工资 -200 ( A)民族 “汉 ” ( B)民族 “汉 ” ( C)民族 =“汉 ” ( D)民族 “汉 ” ( A) A.工资 ( B) A.民族 ( C) A.职工编号 ( D) A.姓名 9 【程序说明】 统计 2 M中有多少个素数 (只能被 1或自身整除的整数称为素数 )。 【程序】 SET TALK OFF CLEAR INPUT “M=” TO M S=0 (10) IF SS(I) S=S+1 ? STR (1, 5) ENDIF ENDFOR ? STR(5, 5) SET TALK ON F
5、UNC SS (11) FOR J=2 TO X-1 (12) EXIT ENDIF ENDFOR IF J X RETU .T. ELSE (13) ENDIF ENDFUNC ( A) DO WHILE I M ( B) FOR I=2 TO M/2 ( C) FOR I=M TO 1 STEP -1 ( D) FOR M I TO 0 STEP-1 ( A) PUBLIC X ( B) PARAMETERS X ( C) PRIVATE X ( D) INT X ( A) IF X/J 0 ( B) IF X%J 0 ( C) IF INT(X/J) X/J ( D) IF INT(X/
6、J) X/J ( A) RETU X ( B) END ( C) QUIT ( D) RETU .F. 13 【程序】 SET TALK OFF INPUT “X ” TO X DO CASE CASE X 10 ?“OK1” CASE X 20 ?“OK2” OTHERWISE ?“OK3” ENDCASE SET TALK ON RETURN 14 程序运行时输入 X值为 9,则显示结果为 _。 ( A) “OK1” ( B) OK1 ( C) “OK2” ( D) “OK3” 15 程序运行时输入 X值为 15,则显示结果为 _。 ( A) “OK1” ( B) OK1 ( C) “OK
7、2” ( D) “OK3” 16 程序运行时输入 X值为 100,则显示结果为 _。 ( A) “OK1” ( B) OK1 ( C) “OK2” ( D) “OK3” 17 程序运行时输入 X值为 0,则显示结果为 _。 ( A) “OK1” ( B) OK1 ( C) “OK2” ( D) “OK3” 17 【程序】 SET TALK OFF STORE 0 TO X, Y DO WHILE X 20 X X+Y Y Y+2 & IF Y=4 & EXIT & ENDIF ENDDO ? X, Y SET TALK ON RETURN 18 X的输出结 果为 _。 ( A) 20 ( B)
8、 21 ( C) 22 ( D) 10 19 Y的输出结果为 _。 ( A) 20 ( B) 21 ( C) 22 ( D) 10 20 若将程序中的 & 删除,则 X, Y的输出结果为 _。 ( A) 0 2 ( B) 2 4 ( C) 6 6 ( D) 1 3 20 【程序】 * 主程序: Z.PRG SET TALK OFF STORE 10 TO X1, X2, X3 X1=X1+1 DO Z1 ? X1+X2+X3 RETURN SET TALK ON RETURN * 子程序: Z1. PRG X2=X2+1 DO Z2 X1 X1+1 RETURN * 子程序: Z2. PRG
9、X3=X3+1 RETURN TO MASTER 21 屏幕上的显示结果为 _。 ( A) 33 ( B) 32 ( C) 31 ( D) 32 22 若将输出语句 ? X1+X2+X3改为 ?X1, X2, X3,且将子程序最后一行的 TO MASTER 删除,则 X1的输出结果为 _。 ( A) 10 ( B) 11 ( C) 12 ( D) 13 23 若将输出语句 ? X1+X2+X3改为 ?X1, X2, X3,且将子程序最后一行的 TO MASTER 删除,则 X2的输出结果为 _。 ( A) 10 ( B) 11 ( C) 12 ( D) 13 24 若将输出语句 ?X1+X2+
10、X3改为 ? X1, X2, X3,且将子程序最后一行的 TO MASTER 删除,则 X3的输出结果为 _。 ( A) 10 ( B) 11 ( C) 12 ( D) 13 25 编写程序,一个数如果刚好与它所 有的因子之和相等,则称该数为 “完数 ”,如: 6 1+2+ 3,则 6就是一个完数。求 5 500之间的完数的个数。 26 编写程序,设计一个只含一个文本框的日期与时间表单 (如下图所示 ),逐次单击之,即可轮流显示日期或时间。 二、编写程序题 27 编写程序,判断一个大于等于 3的自然数是否为素数。 28 如下图所示,表单 Form1用来对学生成绩表 XSCJ. DBF进行处理,
11、在表单中有一个表格,一个选项按钮组、一个命令按钮组、三个文本框和一个命令按钮,在其数据环境中加入 XSCJ. DBF后运行此表单,就可 在其左侧的表格中显示出学生成绩表的内容。 (1)要求选中 Optiongroup1中的 “数学 ”后,单击 Commandgroup1中的 “总成绩 ”按钮即可在其右侧 Text1中显示所有学生数学课的总成绩,单击 “平均分 ”按钮即可在其右侧的 Text2显示所有学生的平均分,单击 “优等人数 ”按钮即可在其右侧的 Text3中显示数学成绩在 85分以上的学生人数。 (2)类似地,如选中 Optiongroup1中的 “外语 ”后,再单击 “总成绩 ”、 “
12、平均分 ”、 “优等人数 ”等按钮即可在其右侧文本框中显示外语成绩的对应统计数字。 浙江计算机二级 VF模拟试卷 4答案与解析 一、程序阅读选择题 阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 1 【正确答案】 B 【试题解析】 表头测试函数的格式: BOF(工作区号 /别名 ) 功能:当记录指针指向表文件的首记录之前 (表头 )时,该函数值为 .T.,否则返回 .F.。输出值类型为逻辑型。 工作区号 /别名 用于指定工作区,缺省为当前工作区。 本循环条件是设有到达尾部时,执行循环,否则退出循环。 2 【正确答案】 D 【试题解析】 由题 意程序功能 “用于显示
13、所有成绩及格的学生信息 ”可知, IF循环判断条件应是成绩大于等于 60。 3 【正确答案】 C 【试题解析】 执行完一条记录要向下执行另一条记录,所以 STEP的步长为 1或缺省。 4 【正确答案】 A 【试题解析】 正确的循环结构为 DO WHILE ENDDO 。 5 【正确答案】 C 【试题解析】 建立单项索引文件的格式: INDEX ON索引表达式 TO文件名 UNIQUE COMPACTADDITIVE 6 【正确答案】 A 【试题解 析】 建立表之间关联的格式; SET RELATIOJNTO关系表达式 1 INTO工作区 1 /表别名 1 ),关系表达式 2 INTO工作区 2
14、 /表别名 2 IN 工作区 /表别名 ADDITIVE 本题的公共字段是职工编号。 7 【正确答案】 B 8 【正确答案】 B 【试题解析】 表记录的修改格式: REPLACE字段名 1 WITH表达式 1 ADDITIVE ,字段名 2 WITH表达式 2 ADDITIVE 范围 FOR条件 WHILE条件 IN工作区号 /别名 INOOPTIMIZE 其中,字段名 1 WITH表达式 1:用表达式 1的值来代替字段名 1中的数据。本题是工资加 200,所以第 (7)题选 B。 FOR条件:是选择需修改的记录的条件语句。本题条件是每个少数民族,即不是汉族。 9 【正确答案】 D 【试题解析
15、】 题中要求显示全体职工的政工编号、姓名和工资三个字段。 10 【正确答案】 C 【试题解析】 主程序中的 FOR/ENDFOR 循环用 来判定 1 M之间有几个素数,并显示输出, IF语句调用 SS函数统计个数并输出每个素数。所以第 (10)空应填FOR I=M T0 1 STEP -1或 FOR I 1 TO M。 11 【正确答案】 B 【试题解析】 自定义函数变量传递格式: PARAMETERS变量列表。本程序是把主程序中的变量 I传递给了函数 SS中的变量 X。 12 【正确答案】 C 【试题解析】 用来判断传递来的值是否为素数,若除了 1和自身,还能被其他整数整除的数,则不是素数,
16、退出此 IF语句所以此 IF语句用来判断是否为素数。 13 【正确答案】 D 【试题解析】 从最后一个 IF ELSE ENDIF 语句中,可知此空返回一个假值。 14 【正确答案】 D 【试题解析】 当输入 9时,所有分支条件都不成立,则执行 OTHERWISE与ENDCASE之间的命令序列,即输出 “OK3”。 15 【正确答案】 A 16 【正确答案】 A 【试题解析】 在 DO CASE/ENDCASE中,不管有几个 CASE条件成立,只有最先成立的那个 CASE条件的对应命令序列被执行。所以第 (15)、 (16)题尽管满足CASE X 20分支的条件,但不会执行 ?“OK2”语句。
17、只要执行第一个满足 CASE条件的分支后就执行 ENDCASE来结束 DO CASE/ENDCASE。 17 【正确答案】 D 【试题解析】 当输入 0时,执行 OTHERWISE与 ENDCASE之间的命令序列。 18 【正确答案】 A 19 【正确答案】 D 【试题解析】 本程序共执行 5次 DO WHILE循环,第一次当 X 0时,执行循环体后 X 0, Y=2,第二次当 X 0时,执行循环体后 X=2, Y 4,第三次当X=2时,执行循环体后 X=6, Y=6,第四次当 X 6时,执行循环体后 X=12, Y8,第五次当 X 12时:执行循环体后 X=20, Y=10,当 X 20时,
18、不满足 DO WHILE循环条件 X 20,所以退出循环体。 20 【正确答案】 B 【试题解析】 &起解释说明语句作用,删除后则执行 IF语句,当第二次循环后 X 2、 Y 4时,结束循环。 21 【正确答案】 A 【试题解析】 先执行 X1=X1+1 10+1=11,接着执行 DO Z1,调用子程序 Z1,执行 X2=X2+1=10+1=11,执行 DO Z2,调用子程序 Z2, 执行 X3=X3+1=11,“TO MASTER”选项表示返回到最高级调用者,所以返回主程序执行 ? X1+X2+X3=11+11+11=33。 22 【正确答案】 C 23 【正确答案】 B 24 【正确答案】
19、 B 【试题解析】 当将 “TO MASTER”选项删除时,程序执行完子程序 Z2后,返回子程序 Z1,执行 X1=X1 +1=11+1 12,再返回主程序,执行 “ ? X1, X2, X3”,所以最后 X1为 12, X2和 X3均为 11。 25 【正确答案】 程序代码如下: CLEAR SET TALK OFF gs=0 FOR i=5 to 500 yzh=0 FOR j=1 to INT (i/2) IF i&j=0 yzh= yzh+j ENDIF ENDFOR IF yzh=i gs gs+1 ENDIF ENDPOR ? Gs 26 【正确答案】 表单的 Load事件代码如下
20、: PUBLIC i i=.T. 文本框 Text1的 Click事件代码如下: IF i=.T. ThisForm. Text1. Value DATE() ThisForm. Text1. DateFormat=12 ThisForm. Text1. DateMark “.” i .F. ELSE ThisForm. Text1. Value TIME() i=.T. ENDIF 二、编写程序题 27 【正确答案】 程序代码如下: CLEAR INPUT“请输入自然数 ( =3): ” TO n f=0 i 2 DO WHILE i =INT(SQRT(n) IF MOD(n, i) 0
21、i=i+1 LOOP ELSE f 1 EXIT ENDIF ENDDO IF f 0 ? STR(n, 3)+“是素数 ” ELSE ? STR(n, 3)+“不是素数 ” ENDIF RETURN 28 【正确答案】 编写 Optiongroup1的 Click事件代码如下: DO CASE CASE This, Value 1 xx “数学 ” CASE This. Value=2 xx=“外语 ” ENDCASE 编写 Commandgroup1的 Click事件代码如下: DO CASE CASE This Value=1 SUM &XX TO xxzf ThisForm.Text1. Value xxzf CASE This Value=2