答案: DO〈命令文件名〉
[例14]有下列程序:
PARAMETER A,B,C,D
D=B* B-4*A*C
DO CASE
CASE D=O
CASE D〈O
D=O
CASE D〉O
D=2
CASE D=O
D=1
ENDCASE
在主程序中执行如下命令:
STORE 2 TO A,C
DO SUB WITH A,B,C,D
?D
D的值为—————
分析:执行主程序DO SUB WITH A,B,C,D时,把实参1,2,1,2传递给形参A,B,C,D。在执行过程
SUB中语句D=B*B-4*A*C后的D值为O,然后执行DO CASE/ENDCASE语句,条件CASE D=O成立,重新赋值D=1,
最后返回主程序时,把形参A,B,C,D的值1,2,1,1传给对应实参A,B,C,D此时D的值为1。
答案: 1
[例15]有如下程序:
STORE O TO N,S
DO WHILE.T.
N=N+1
S=S+N
IF N>=1O
EXIT
ENDIF
ENDDO
?”S=“+STR(S,2)
本程序的运行结果是—————
分析:本程序是无限次循环程序,有N的值来决定何时停止循环。程序的功能是求1到1O之间的所有整数之
和。可得程序运行的结果为S=55
答案:S=55
[例16]有如下程序:
*主程序:MAIN。PRG
SET TALK OFF
CLEAR
S=0
DO SUB WITH 10,S
?S
RETU
*子程序SUB。PRG
PARAMETERS D1,D2
D1=D1+D1
D2=D1*2
RETURN
执行主程序后S的值是__________。
分析:DO...WITH语句中的实在参数除了可以是变量外,还可以是任意有数或表达式。当为常数时,
直接把值传给对应的形参;当为表达式时,先求其值后把其值传给形参。主程序中变量S的初值为0,
S调用子程序SUB,将数值10和0对应传给子程序中的参数D1和D2,执行D1=D1+D1后,D1=20,再执行D2
=D1*2,D2=40,返回到主程序时D2将值回传给S。因此,在主程序执行?S时,屏幕显示40。
答案:40
[例17]设成绩库CJK.DBF中“数学”(数值型字段)这门课程的学分为4,其学分计算的方法如下:
数学>=90,学分值为4
80<=数学<90,学分值为3
70<=数学<80,学分值为2
60<=数学<70,学分值为1
数学<60,学分值为0
计算任一学生数学这门课程的学分值的程序如下:
SET TALK OFF
USE CJK
ACCEPT "输入学号:" TO XH
XF=0
LOCATE FOR学号=XH
DO CASE
CASE______
XH=40
CASE______
XH=3
CASE__________
XF=2
CASE__________
XF=1
OTHERWISE
XF=0
ENDCASE
?"学号:",XH
?"数学的学分值:",XF
USE
RETURN
分析:本程序的考核要点是DO CASE分支语句
答案:数学>=90 数学>=80 数学>=70 数学>=60
【例18】参数的两种传递方法是_______和_______。
分析:调用程序模块时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋值
给相应的形参变量。这种情形称为按值传递。如果实参是变量,那么传递的将不是变量的值,而是变量
的地址。这时形参和实参实际上是同一个变量,在模块程序中对形参变量值的改变,同样是对实参变量
值的改变,这种情形称为引用传递。
答案:TO VALUE(按值传递),REFERENCE(按引用传递)
【例19】填空完成下列程序,要求该程序能够三次从右向左显示变量S内容的字幕程序。
CLEAR
S=SPACE(80)+"关系数据库语言VFP计算机2级教程。关系数据库."
+SPACE(60)
N=0
______
I=1
DO WHILE I<160
@20,0SAY SUBSTR(S,I,80)
H=INKEY(0.1,"h")
I=I+2
_____
_____
ENDDO
分析:表达式(1)是给出循环的条件,表达试(3)给出循环体的递增形式。
阅读(8010)
(责任编辑:城市网)