1、浙江二级 VISUAL+FOXPRO-8 及答案解析(总分:100.00,做题时间:90 分钟)一、B试题 1/B(总题数:1,分数:12.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 STD 表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩及格的学生信息。【程序】SET TALK OFFCLEARUSE STDDO WHIIE U(1) /UIFU (2) /U?“姓名:”+姓名,“课程:”+课程名,“成绩:”+STR(成绩,3,0)ENDIFU(3) /UU(4) /UUSESET TALK O
2、NRETURN(分数:12.00)A.EOF()B.NOEOF()C.BOF()D.NOBOF()A.成绩60B.成绩60C.成绩60D.成绩60A.EXITB.SKIP-1C.SKIPD.SKIP 2A.ENDDOB.ENDWHILEC.ENDIFD.ENDCASE二、B试题 2/B(总题数:1,分数:15.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 设有表文件“职工.DBF”(有字段:职工编号、姓名、民族)和“工资.DBF”(有字段:职工编号、工资),要在它们之间建立逻辑连接,然后为每个少数民族职工的工资增加 200 元,最后显示全体职工的职
3、工编号、姓名和工资。【程序】SET TALK OFFSELECT 1USE 职工 U(5) /UTO ZGBHSELECT 2USE 工资SET RELATION TOU (6) /UREPLACE 工资 WITHU (7) /UFORU (8) /ULIST 职工编号,U (9) /U,工资SET RELATION TOCLOSE DATASET TALK ONRETURN(分数:15.00)A.INDEX ON 姓名B.INDEX TO 职工编号C.INDEX ON 职工编号D.INDEX ON 职工编号 OF ZGBHA.职工编号 INTO AB.职工编号 TO AC.工资 INTO A
4、D.工资 TO AA.工资* 200B.工资 +200C.200D.工资 -200A.民族“汉”B.民族“汉”C.民族=“汉”D.民族“汉”A.工资B.民族C.职工编号D.姓名三、B试题 3/B(总题数:1,分数:12.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 统计 2M 中有多少个素数(只能被 1 或自身整除的整数称为素数)。【程序】SET TALK OFFCLEARINPUT “M=” TO MS=0U(10) /UIF SS(I)S=S+1? STR (1,5)ENDIFENDFOR? STR(5,5)SET TALK ONFUNC SS
5、U(11) /UFOR J=2 TO X-1U(12) /UEXITENDIFENDFORIF JXRETU .T.ELSEU(13) /UENDIFENDFUNC(分数:12.00)A.DO WHILE IMB.FOR I=2 TO M/2C.FOR I=M TO 1 STEP -1D.FOR MI TO 0 STEP-1A.PUBLIC XB.PARAMETERS XC.PRIVATE XD.INT XA.IF X/J0B.IF X%J0C.IF INT(X/X/JD.IF INT(X/X/JA.RETU XB.ENDC.QUITD.RETU .四、B试题 4/B(总题数:1,分数:12.
6、00)【程序】SET TALK OFFINPUT “X” TO XDO CASECASE X10?“OK1”CASE X20?“OK2”OTHERWISE?“OK3”ENDCASESET TALK ONRETURN(分数:12.00)(1).程序运行时输入 X 值为 9,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK2”D.“OK3”(2).程序运行时输入 X 值为 15,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK2”D.“OK3”(3).程序运行时输入 X 值为 100,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK
7、2”D.“OK3”(4).程序运行时输入 X 值为 0,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK2”D.“OK3”五、B试题 5/B(总题数:1,分数:9.00)说明:阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】SET TALK OFFSTORE 0 TO X,YDO WHILE X20XX+YYY+2& IF Y=4& EXIT& ENDIFENDDO? X,YSET TALK ONRETURN(分数:9.00)(1).X 的输出结果为 _。(分数:3.00)A.20B.21C.22D.10(2).Y 的输出结果为 _。
8、(分数:3.00)A.20B.21C.22D.10(3).若将程序中的& 删除,则 X,Y 的输出结果为 _。(分数:3.00)A.0 2B.2 4C.6 6D.1 3六、B试题 6/B(总题数:1,分数:12.00)说明:阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】* 主程序:Z.PRGSET TALK OFFSTORE 10 TO X1,X2,X3X1=X1+1DO Z1? X1+X2+X3RETURNSET TALK ONRETURN* 子程序:Z1. PRGX2=X2+1DO Z2X1X1+1RETURN* 子程序:Z2. PRGX3=X3+1
9、RETURN TO MASTER(分数:12.00)(1).屏幕上的显示结果为 _。(分数:3.00)A.33B.32C.31D.32(2).若将输出语句? X1+X2+X3 改为?X1,X2,X3,且将子程序最后一行的 TO MASTER 删除,则 X1 的输出结果为 _。(分数:3.00)A.10B.11C.12D.13(3).若将输出语句? X1+X2+X3 改为?X1,X2,X3,且将子程序最后一行的 TO MASTER 删除,则 X2 的输出结果为 _。(分数:3.00)A.10B.11C.12D.13(4).若将输出语句?X1+X2+X3 改为? X1,X2,X3,且将子程序最后一
10、行的 TO MASTER 删除,则 X3 的输出结果为 _。(分数:3.00)A.10B.11C.12D.13七、B试题 7/B(总题数:1,分数:14.00)1.编写程序,一个数如果刚好与它所有的因子之和相等,则称该数为“完数”,如:61+2+ 3,则 6 就是一个完数。求 5500 之间的完数的个数。(分数:14.00)_八、B试题 8/B(总题数:1,分数:14.00)2.编写程序,设计一个只含一个文本框的日期与时间表单(如下图所示),逐次单击之,即可轮流显示日期或时间。 (分数:14.00)_浙江二级 VISUAL+FOXPRO-8 答案解析(总分:100.00,做题时间:90 分钟)
11、一、B试题 1/B(总题数:1,分数:12.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 STD 表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩及格的学生信息。【程序】SET TALK OFFCLEARUSE STDDO WHIIE U(1) /UIFU (2) /U?“姓名:”+姓名,“课程:”+课程名,“成绩:”+STR(成绩,3,0)ENDIFU(3) /UU(4) /UUSESET TALK ONRETURN(分数:12.00)A.EOF()B.NOEOF() C.BOF()D.NOBOF
12、()解析:解析 表头测试函数的格式:BOF(工作区号/别名) 功能:当记录指针指向表文件的首记录之前(表头)时,该函数值为.T.,否则返回.F.。输出值类型为逻辑型。工作区号/别名用于指定工作区,缺省为当前工作区。 本循环条件是设有到达尾部时,执行循环,否则退出循环。A.成绩60B.成绩60C.成绩60D.成绩60 解析:解析 由题意程序功能“用于显示所有成绩及格的学生信息”可知,IF 循环判断条件应是成绩大于等于 60。A.EXITB.SKIP-1C.SKIP D.SKIP 2解析:解析 执行完一条记录要向下执行另一条记录,所以 STEP 的步长为 1 或缺省。A.ENDDO B.ENDWH
13、ILEC.ENDIFD.ENDCASE解析:解析 正确的循环结构为 DO WHILE ENDDO。二、B试题 2/B(总题数:1,分数:15.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 设有表文件“职工.DBF”(有字段:职工编号、姓名、民族)和“工资.DBF”(有字段:职工编号、工资),要在它们之间建立逻辑连接,然后为每个少数民族职工的工资增加 200 元,最后显示全体职工的职工编号、姓名和工资。【程序】SET TALK OFFSELECT 1USE 职工 U(5) /UTO ZGBHSELECT 2USE 工资SET RELATION TOU
14、 (6) /UREPLACE 工资 WITHU (7) /UFORU (8) /ULIST 职工编号,U (9) /U,工资SET RELATION TOCLOSE DATASET TALK ONRETURN(分数:15.00)A.INDEX ON 姓名B.INDEX TO 职工编号C.INDEX ON 职工编号 D.INDEX ON 职工编号 OF ZGBH解析:解析 建立单项索引文件的格式:INDEX ON索引表达式TO文件名UNIQUE COMPACTADDITIVEA.职工编号 INTO A B.职工编号 TO AC.工资 INTO AD.工资 TO A解析:解析 建立表之间关联的格式
15、; SET RELATIOJNTO关系表达式 1INTO工作区 1/表别名1),关系表达式 2 INTO工作区 2/表别名 2IN工作区/表别名ADDITIVE 本题的公共字段是职工编号。A.工资* 200B.工资 +200 C.200D.工资 -200解析:A.民族“汉”B.民族“汉” C.民族=“汉”D.民族“汉”解析:解析 表记录的修改格式: REPLACE字段名 1WITH表达式 1ADDITIVE ,字段名2WITH表达式 2ADDITIVE 范围FOR条件WHILE条件 IN工作区号/别名INOOPTIMIZE 其中,字段名 1WITH表达式 1:用表达式 1的值来代替字段名 1中
16、的数据。本题是工资加 200,所以第(7)题选 B。 FOR条件:是选择需修改的记录的条件语句。本题条件是每个少数民族,即不是汉族。A.工资B.民族C.职工编号D.姓名 解析:解析 题中要求显示全体职工的政工编号、姓名和工资三个字段。三、B试题 3/B(总题数:1,分数:12.00)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】 统计 2M 中有多少个素数(只能被 1 或自身整除的整数称为素数)。【程序】SET TALK OFFCLEARINPUT “M=” TO MS=0U(10) /UIF SS(I)S=S+1? STR (1,5)ENDIFENDFO
17、R? STR(5,5)SET TALK ONFUNC SSU(11) /UFOR J=2 TO X-1U(12) /UEXITENDIFENDFORIF JXRETU .T.ELSEU(13) /UENDIFENDFUNC(分数:12.00)A.DO WHILE IMB.FOR I=2 TO M/2C.FOR I=M TO 1 STEP -1 D.FOR MI TO 0 STEP-1解析:解析 主程序中的 FOR/ENDFOR 循环用来判定 1M 之间有几个素数,并显示输出,IF 语句调用SS 函数统计个数并输出每个素数。所以第(10)空应填 FOR I=M T0 1 STEP -1 或 FO
18、R I1 TO M。A.PUBLIC XB.PARAMETERS X C.PRIVATE XD.INT X解析:解析 自定义函数变量传递格式:PARAMETERS变量列表。本程序是把主程序中的变量 I 传递给了函数 SS 中的变量 X。A.IF X/J0B.IF X%J0C.IF INT(X/X/J D.IF INT(X/X/J解析:解析 用来判断传递来的值是否为素数,若除了 1 和自身,还能被其他整数整除的数,则不是素数,退出此 IF 语句所以此 IF 语句用来判断是否为素数。A.RETU XB.ENDC.QUITD.RETU . 解析:解析 从最后一个 IF ELSE ENDIF 语句中,
19、可知此空返回一个假值。四、B试题 4/B(总题数:1,分数:12.00)【程序】SET TALK OFFINPUT “X” TO XDO CASECASE X10?“OK1”CASE X20?“OK2”OTHERWISE?“OK3”ENDCASESET TALK ONRETURN(分数:12.00)(1).程序运行时输入 X 值为 9,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK2”D.“OK3” 解析:解析 当输入 9 时,所有分支条件都不成立,则执行 OTHERWISE 与 ENDCASE 之间的命令序列,即输出“OK3”。(2).程序运行时输入 X 值为 15,
20、则显示结果为 _。(分数:3.00)A.“OK1” B.OK1C.“OK2”D.“OK3”解析:(3).程序运行时输入 X 值为 100,则显示结果为 _。(分数:3.00)A.“OK1” B.OK1C.“OK2”D.“OK3”解析:解析 在 DO CASE/ENDCASE 中,不管有几个 CASE 条件成立,只有最先成立的那个 CASE 条件的对应命令序列被执行。所以第(15)、(16)题尽管满足 CASE X20 分支的条件,但不会执行?“OK2”语句。只要执行第一个满足 CASE 条件的分支后就执行 ENDCASE 来结束 DO CASE/ENDCASE。(4).程序运行时输入 X 值为
21、 0,则显示结果为 _。(分数:3.00)A.“OK1”B.OK1C.“OK2”D.“OK3” 解析:解析 当输入 0 时,执行 OTHERWISE 与 ENDCASE 之间的命令序列。五、B试题 5/B(总题数:1,分数:9.00)说明:阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】SET TALK OFFSTORE 0 TO X,YDO WHILE X20XX+YYY+2& IF Y=4& EXIT& ENDIFENDDO? X,YSET TALK ONRETURN(分数:9.00)(1).X 的输出结果为 _。(分数:3.00)A.20 B.21C
22、.22D.10解析:(2).Y 的输出结果为 _。(分数:3.00)A.20B.21C.22D.10 解析:解析 本程序共执行 5 次 DO WHILE 循环,第一次当 X0 时,执行循环体后 X0,Y=2,第二次当 X0 时,执行循环体后 X=2,Y4,第三次当 X=2 时,执行循环体后 X=6,Y=6,第四次当 X6 时,执行循环体后 X=12,Y8,第五次当 X12 时:执行循环体后 X=20,Y=10,当 X20 时,不满足 DO WHILE 循环条件 X20,所以退出循环体。(3).若将程序中的& 删除,则 X,Y 的输出结果为 _。(分数:3.00)A.0 2B.2 4 C.6 6
23、D.1 3解析:解析 &起解释说明语句作用,删除后则执行 IF 语句,当第二次循环后 X2、Y4 时,结束循环。六、B试题 6/B(总题数:1,分数:12.00)说明:阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】* 主程序:Z.PRGSET TALK OFFSTORE 10 TO X1,X2,X3X1=X1+1DO Z1? X1+X2+X3RETURNSET TALK ONRETURN* 子程序:Z1. PRGX2=X2+1DO Z2X1X1+1RETURN* 子程序:Z2. PRGX3=X3+1RETURN TO MASTER(分数:12.00)(1
24、).屏幕上的显示结果为 _。(分数:3.00)A.33 B.32C.31D.32解析:解析先执行 X1=X1+110+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。(2).若将输出语句? X1+X2+X3 改为?X1,X2,X3,且将子程序最后一行的 TO MASTER 删除,则 X1 的输出结果为 _。(分数:3.00)A.10B.11C.12 D.13解析:(3).若将输出语
25、句? X1+X2+X3 改为?X1,X2,X3,且将子程序最后一行的 TO MASTER 删除,则 X2 的输出结果为 _。(分数:3.00)A.10B.11 C.12D.13解析:(4).若将输出语句?X1+X2+X3 改为? X1,X2,X3,且将子程序最后一行的 TO MASTER 删除,则 X3 的输出结果为 _。(分数:3.00)A.10B.11 C.12D.13解析:解析 当将“TO MASTER”选项删除时,程序执行完子程序 Z2 后,返回子程序 Z1,执行 X1=X1 +1=11+112,再返回主程序,执行“ ? X1,X2,X3”,所以最后 X1 为 12,X2 和 X3 均
26、为 11。七、B试题 7/B(总题数:1,分数:14.00)1.编写程序,一个数如果刚好与它所有的因子之和相等,则称该数为“完数”,如:61+2+ 3,则 6 就是一个完数。求 5500 之间的完数的个数。(分数:14.00)_正确答案:()解析:程序代码如下: 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 gsgs+1 ENDIF ENDPOR ? gs八、B试题 8/B(总题数:1,分数:14.00)2.编写程序,设计一个只含一个文本框的日期与时间表单(如下图所示),逐次单击之,即可轮流显示日期或时间。 (分数:14.00)_正确答案:()解析:表单的 Load 事件代码如下: PUBLIC i i=.T. 文本框 Text1 的 Click 事件代码如下: IF i=.T. ThisForm. Text1. ValueDATE() ThisForm. Text1. DateFormat=12 ThisForm. Text1. DateMark“.” i.F. ELSE ThisForm. Text1. ValueTIME() i=.T. ENDIF