X=10
M=2 N=3
DO SUB1 WITH M,N DO SUB1 WITH M,N PROCEDURE SUB1 PARAMETERS M,N X=M+10 M=M+N ?X,M,N
ENDPROC
执行程序后,屏幕中的输出结果为 ( )
A)1253 B)1283 C)1253 D)1223
1283 1583 1583 1283
19.下列程序实现的功能是 ( )
USE 学生表
DO WHILE NOT EOF()
IF 计算机>=60
SKIP LOOP ENDIF
DISPLAY SKIP ENDDO USE
A)显示所有计算机成绩大于等于60的学生记录 B)显示所有计算机成绩小于60的学生记录
C)显示第一条计算机成绩大于等于60的学生记录 D)显示第一条计算机成绩小于60的学生记录
20.若将过程或函数放在单独的程序文件中,可以在应用程序中使用 ( )A)SET PROGRAM TO B)SET FUNCTION TO C)SET ROUTINE TO D)SET PROCEDURE TO 21.在运行下列程序后,屏幕上显示的结果是 ( )
STORE 10 TO X,Y,Z
DO PROC1 WITH (X),Y ?X,Y,Z PROCEDURE PROC1 PARAMETER M,N M=M+10 N=N+10
RETURN
A)10 10 10 B)10 20 10 C)10 20 20 D)10 10 20 22.下列程序段的输出结果是( )
36
CLEAR
STORE 10 TO A STORE 20 TO B
SET UDFPARMS TO REFERENCE DO SWAP WITH A,(B) ?A,B
PROCEDURE SWAP PARAMETERS X1,X2 TEMP=X1 X1=X2
X2=TEMP ENDPROC
A)1020 B)2020 C)2010 D)1010
23.使用调试器调试上一小题的程序,如果想在过程SWAP执行时观察X1的值,可以在其 中安置一条命令,程序执行到该命令时,系统将计算X1的值,并将结果在调试输出窗口 中显示,这条命令的正确写法是( )
A)DEBUGOUT X1 B)DEBUG X1 C)OUT X1 D)TEST X1 24.假定用户名和口令存储在自由表\口令表\中,当用户输入用户名和口令并单击\登录\按钮时,若用户名输入错误,则提示\用户名错误\;若用户名输入正确,而口令输入错误,则提示\口令错误\。若命令按钮\登录\的CLICK事件中的代码如下:
USE口令表
GO TOP FLAG=0
DO WHILE.NOT.EOF()
IF ALLTRIM(用户名)= =ALLTRIM(THISFORM.TEXT1.VALUE)
IF ALLTRIM(口令)= =ALLTRIM(THISFORM.TEXT2.VALUE)
WAIT\欢迎使用\ELSE
WAIT\口令错误\ENDIF FLAG=1 EXIT ENDIF SKIP
ENDDO
IF ____________
WAIT\用户名错误\ENDIF
则在横线处应填写的代码是( )
A)FLAG=-1 B)FLAG=0 C)FLAG=1 D)FLAG=2 25.下列程序段的功能是( )
CLOSE DATA A=0
USE 医生信息
37
GO TOP
DO WHILE.NOT.EOF()
IF 职称=\主任医师\ .OR. 职称=\副主任医师\
A=A+1 ENDIF SKIP
ENDDO ?A
A)查找职称为“主任医师”的医生数 B)查找职称为“副主任医师”的医生数
C)查找职称为“主任医师”或“副主任医师”的医生数 D)查找职称不是“主任医师”或“副主任医师”的医生数
26.使用\调试器\调试程序时,用于显示正在调试的程序文件的窗口是 ( )
A)局部窗口 B)跟踪窗口 C)调用堆栈窗口 D)监视窗口 27.不能改变Visual FoxPro当前文件夹的是( )
A)CD B)CHDIR C)SET DEFAULT TO D)RD 28.函数FILE()的自变量类型为( )
A)字符型 B)数值型 C)逻辑性 D)任何类型 29.函数FILE()的结果数据类型为( )
A)字符型 B)数值型 C)逻辑性 D)任何类型 30.如下方法可以显示系统当前时间的是 ( )
A)? DATE() B)? DATETIME() C)? TIMEDATE() D)SET CLOCK ON 二、填空题
1.结构化程序设计包含3种基本控制结构,其中SCAN-ENDSCAN语句属于 结构。 2.在DO CASE-ENDCASE语句中,可使用 短语直接跳出该分支语句。 3. 使用 命令可以定义一个过程的开始。 4. 下列程序的运行结果是 。
X=\医学计算机技术\
Y=\
L=LEN(X)
DO WHILE L>=1
Y=Y+SUBSTR(X,L-1,2) L=L-2
ENDDO ?Y
5.下列程序的功能是计算S=1!+2!+?+10!的值,完成程序填空。
S=0
FOR N=1 TO 10 P=1
FOR I=1 TO N ENDFOR
38
ENDFOR
?\
6.学生表中有字段:姓名、计算机和班级号,下列程序是查询并显示所有班级号为\1002\
的学生记录,完成程序填空。 USE 学生表
DO WHILE IF 班级号=\DISPLAY ENDIF
ENDDO USE
7.如下程序段的输出结果是 。
i=1
DO WHILE i<10
i=i+2
ENDDO ? i
8.在Visual FoxPro中如下程序的运行结果(即执行命令DO main后)是 。
*程序文件名:main.prg SET TALK OFF CLOSE ALL CLEAR ALL
mX=\mY=\技术\DO s1 ?mY+mY
RETURU
*子程序文件名:s1.prg PROCEDURE s1
LOCAL mX
mX=\考试\
mY=\医学计算机\RETURN
9.如下程序显示的结果是________。
S=1
I=0
DO WHILE I<8 S=S+I I=I+2
ENDDO
? S
10. 如下程序的执行结果是________。
SET DATE TO YMD
39
SET CENTURY ON
SET CENTURY TO 19 ROLLOVER 10 SET MARK TO “.” ? CTOD(“49-10-01”)
答案及解析
一、选择题
1.D 【解析】顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的3种基本结构。
2.A 【解析】WAIT命令只能接收单个字符型数据,可以在用户输入一个字符后自动结束该命令。
3.C 【解析】 该循环语句中,变量S和I每次执行循环后值的变化如下:
S值 I值第一次循环 5 6,第二次循环 11 7,第三次循环 18 8,程序在第四次执行循环时,因条件(18<=11)为假而退出循环。 4.B
5.D 【解析】 本题中共调用了3次子程序,A的值每执行一次便乘以2,B的值每执行一次变加上一次A的值。
6.A 【解析】如果在返回语句中加入了选项TO MASTER,那么在执行程序嵌套时,它们的返回次序将被改变。子程序3中加入选项TO MASTER,则它们的返回次序将是由子程序2直接返回到主程序,并不是按子程序3,2,1的次序再返回到主程序。
7.C 【解析】LOOP语句用来结束循环体的本次执行,重新返回到DO WHILE处判断条件;EXIT则直接跳出循环体,执行ENDDO后面的语句,这两个语句在循环体中的位置并不是固定的。
8.C 【解析】建立和修改过程文件都可以使用MODIFY COMMAND命令,默认的扩展名为.PRG。PROCEDURE命令表示一个过程的开始,并命名过程,若过程文件只包含过程,调用过程文件中的过程之前必须打开过程文件,可使用SET PROCEDURE TO打开该过程文件。
9.A 【解析】该程序首先定义一个二维数组A(2,3),然后利用DO WHILE-ENDDO嵌套循环将每个数组元素赋值,即将该数组元素的行下标和列下标之和赋值给对应元素。
10.A 【解析】形参的数目不能少于实参的数目,否则系统会产生运行时错误;当形参的数量大于实参的数量时,多余的形参初值取逻辑假.F.。
11.D 【解析】变量的一个重要属性是作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在VISUAL FOXPRO中,可分为公共变量、私有变量和局部变量3类。 12.C 【解析】接收参数的语句PARAMTERS,应该是模块程序的第一条可执行命令,在调用模块程序时,必须和语句PARAMTERS语句搭配使用,发送参数和接收参数的名字可以不一样,但排列顺序和数据类型必须一一对应。
13.C 【解析】在命令窗口中,只有LOCAL说明的变量才是局部变量,且无论在哪一层程序中,只要PUBLC说明的变量均是全局变量。
14.C 【解析】主程序中有两个变量X,Y,未指定类型默认为PUBLIC,第一个?X,Y语句先显示X,Y的值为2,3,然后调用SUB1程序,在SUB1中,使用了两个与主程序同名的变量X,Y,变量Y被定义为私有变量,这样,Y值的变化不会被反映到主程序的Y中,而X的值默认为PUBLIC。
15.B 【解析】程序中INDEX短语已将记录按班级建立索引,这样,表中的所有记录已按班级顺序逻辑排序,执行SEEK \1002\后,记录指针定位到班级号为1002的第一条记录上,而循环结构中则是从当前记录一直处理即显示到表文件尾的所有记录。
40