当前位置:首页 > 程序设计典型例题
为常数时,
直接把值传给对应的形参;当为表达式时,先求其值后把其值传给形参。主程序中变量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 \输入学号:\XF=0
LOCATE FOR学号=XH DO CASE CASE______ XH=40
CASE______ XH=3
CASE__________ XF=2
CASE__________ XF=1
OTHERWISE XF=0
ENDCASE ?\学号:\
?\数学的学分值:\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,\I=I+2 _____ _____ ENDDO
分析:表达式(1)是给出循环的条件,表达试(3)给出循环体的递增形式。 答案:(1)DO WHILE N<3,(2)ENDDO,(3)N=N+1
【例20】用两种循环步长值来求1+2+3+...50的值,请将程序填写完整。 程序一: S=0
FOR__(1)___ S=S+N ENDFOR ? S
RETURN 程序二: S=0
FOR__(2)___ S=S+N ENDFOR ?S
RETURN
分析:这是一个计数循环的例子,由以上两种方法可以看出,初值和终值的设定是随步长值不同而变化
的,在程序一中,由于步长为1,所以省略了。缺省时,步长值默认为1。 答案:(1)N=1 TO 50,(2)N=50 TO 1 STEP -1 [例21] 求30!,请将程序填写完整。 程序:N=1 I=I*N N=N+1
ENDDO ?I
分析:在进入循环前,必须组织好循环使累加器先赋初值勤,循环条件表达式中的控制变量也要根据
不同情况赋初值,因为循环的次数是和条件表达式中的控制变量所赋的初值密切相关的。循环体包括了
在循环体中的书写顺序也与循环的初始赋值有关。读者可以考虑一下,如果给N赋上班,那么DO WHILE
后面的条件表达式该怎么来写? 答案:N<=30
[例22] 为了解决在子程序和主程序之间可能会出现变量的重复使用命令_______,这样可以使主程序中
的变量暂时在子程序中无效,而不改变它的值。
分析;为了避免子程序和主程序之间变量带来的问题,可以使主程序中使用命令PRIVATE隐藏主程序
中可能存在的变量,使得在子程序中暂时无效。该命令的语法格式是: PRIVATE<内存变量表> 答案:private<内存变量表》
例23 统计银行客房关系表中,银行代码为001,并且存款金额大于1500元的客房人数,请将程序填写完整。 程序: clear
open银行客户关系表exclusive browse all for银行代码=“001” count all to kh goto top num=0 for(1) if(2)
num=num+1 endif skip endfor
@2,30 say\银行代码为001,存款金额大于1500元的人数有:“num+”” endif use
分析:在该例中,for语句使用了循环变量1控制操作,道德计算出了数据表中所含记录个数num,
然后把它人微言轻循环变量的终值,使循环变量从1开始,多次加入循环变量步长,直到循环变量1大于
num时才结束循环。 答案:(1)I=1 to kh step1,(2)金额>“1500”and,银行代码=“001” 例24 下例是关于参数传递的程序,求出正确结果。 程序:
clear
store 3 to a,b store 2 to c,d
do tub with a,b,c,d ?b
store 4 to t2,t1 store 1 to t4,t3
do tub with t1,t2,t3,t3 ?t4
do tub with 6,6,3,b ?b
procedure tub
PARAMETER A,B,C,D B=A* A-4 *C* D DO CASE CASE B<0 B=120 CASE B>0 B=210 CASE B=0 B=100 ENDCASE RETURN
分析: 在程序开始对A,B赋值为3,对C,D赋值为2。然后把实参A、B、C、D传递给予程序TUB,根据表达式B=A*A-4*c*D
计算出结果为-7,所以输出结果为120,同样,以下程序执行时,根据表达式的计算结果,输出依次为1和6。
答案:结果显示在3行上,依欠为120,1,6
[例25] 根据输入的半和径值,计算圆的面积,请将程序填写完整。 程序: CLEAR R=0 SM=0
@12,15 SAY “输入圆半径” CET R READ IF R=0 EXIT ENDIF ————
@16,16 SAY“圆的面积为:”+ ALLTRIM(STR(SM)) ENDDO RETURN
计算圆面积的函数: FUNCTION AREA
共分享92篇相关文档