Visual Foxpro练习6
一、单项选择题
1.在程序中定义局部变量的命令动词是()。
A.PUBLIC B.PRIVATE C.LOCAL D.DECLARE
2.VFP 6.0程序设计的三种基本结构是()。
A.顺序,选择,循环B.顺序,选择,逻辑C.模块,转
移,循环D.网状,选择,逻辑
3.在DO WHILE / ENDDO循环中,若循环条件设置为.T.,则下列说法中正确的
是()。
A.程序无法跳出循环B.程序不会出现死循环C.用LOOP
可跳出循环D.用EXIT可跳出循环
4.SCAN循环语句是( )扫描式循环。
A.数组B.数据表C.内存变量D.程序
5.在DO WHILE … ENDDO循环结构中,LOOP命令的作用是()。
A.退出过程,返回程序开始处
B.转移到DO WHILE语句行,开始下一个判断和循环
C.终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行
D.终止程序执行
6.下列程序段执行时在屏幕上显示的结果是()。
DIME A(6)
A(1)=1
A(2)=1
FOR J=3 TO 6
A(J)=A(J-1)+A(J-2)
NEXT
?A(6)
A.5 B.6 C.8 D.7
7.执行如下程序
SET TALK OFF
S=0
I=1
INPUT "N=" TO N
DO WHILE S<=N
S=S+I
I=I+1
ENDDO
?S
SET TALK ON
如果输入N值为5,则最后S的显示值是()。
A.1 B.3 C.5 D.6
8.下列程序段执行时在屏幕上显示的结果是()。
X1=20
X2=30
DO test With X1,X2
?X1,X2
PROCEDURE test
PARAMETERS a,b
x=a
a=b
b=x
ENDPRO
A. 30 30 B.30 20 C.20 20 D.20 30 9.有程序如下
USE CJ
M.ZF=0
SCAN
M.ZF=M.ZF+ZF
ENDSCAN
?M.ZF
RETURN
其中数据库文件CJ.DBF中有2条记录,内容如下
XM ZF
1 李四500.00
2 张三600.00
运行该程序的结果应当是()。
A.1100.00 B.1000.00 C.1600.00 D.1200.00 10.如下程序段的输出结果是()。
DECLARE b(6)
FOR i=1 TO 6
b(i)=i*10
NEXT
FOR i=1 TO 6
NEXT
A.60 B.50 C.40 D.30
11.下列程序段的输出结果是()。
ACCEPT “请输入任意一个字符串:”TO A
IF A=[123]
S=0
ENDIF
S=1
?S
A.0B.1C.123D.由A的值决定
12-14题基于如下程序:
设ZGK.DBF为职工数据库文件,“职称”为该库中一字符型字段名。本程序的功能是显示库中职称为教授的所有记录。
SET TALK OFF
CLEAR ALL
( 12 )
DO WHILE NOT EOF()
IF ( 13 )
SKIP
LOOP
ENDIF
DISPLAY
( 14 )
ENDDO
USE
SET TALK ON
12.A.USE ZGK B.USE C.LOCATE FOR "教授
"$职称D.SET TALK OFF
13.A.职称= "教授" B.职称<> "教授" C.职称>< "教授"
D.!EOF()
14.A.EXIT B.LOOP C.SKIP
D.GO TOP
15.有以下程序,假设从键盘输入数字75,请选择最后在屏幕显示的结果:()。
CLEAR
INPUT "请输入你的成绩:" TO cj
IF cj >=80
?"优良!"
ELSE
?"及格!"
ENDIF
ELSE
?"不及格!"
ENDIF
RETURN
A .优良
B .及格
C .不及格
D .空白
16. 表示应用程序文件的扩展名为___________________。
二、 编程题
1. 求数N 的阶乘
2. 求两个数中较小值
3. 编程实现下列分段函数
4. 求前100个自然数的和:S=1+2+3+4+……+100
5. 计算1~100的奇数和
6. 计算自然对数e 的近似值(n 为20)
e=1+1/1!+1/2!+…+1/n! 7. 编程求自然数1——1000中所有能被7整除的数的累加和。
参考答案:
一、选择题
1-5 CADBB 6-10 CDBAA 11-15BABCB 16 .prg
二、编程题
1、方法1:CLEAR
1 (X>0)
0 (X=0) -1 (X<0)
Y= Y=
SET TALK OFF
INPUT "请输入数N:" TO N
IF N < 1
? "输入的数:", N, '太小!'
CANCEL
ENDIF
STORE 1 TO I,S
DO WHILE I <= N
S=S*I
I=I+1
ENDDO
? N,"的阶乘是:", S
SET TALK ON
RETURN
方法2:CLEAR
SET TALK OFF
INPUT “请输入N的值:” TO n T=1
FOR I=1 TO n
t=t*I
NEXT
? N, ??"的阶乘=“,t
SET TALK ON
RETURN
2、CLEAR
SET TALK OFF
Input "X=" To X
Input "Y=" To Y
If X Min=X Else Min=Y Endif ? " X与Y中的较小者是:", Min SET TALK ON RETURN 3、方法1:CLEAR SET TALK OFF Input "请输入一个数:" To X If X>0 Y=1 Else If X=0 Y=0 Else Y=-1 Endif Endif ? Y SET TALK ON RETURN 方法2:CLEAR Input "请输入一个数:" To X Do Case Case X>0 Y=1 Case X=0 Y=0 Otherwise Y=-1 Endcase ? Y SET TALK ON RETURN 4、方法1:CLEAR SET TALK OFF S=0 N=1 Do While N<=100 S=S+N N=N+1 Enddo ? "1+2+3+……+100=", S SET TALK ON RETURN 方法2:CLEAR S=0 For N=1 To 100 S=S+N Endfor ? "1+2+3+…+98+99+100=",S SET TALK ON RETURN 5、方法1:CLEAR SET TALK OFF store 0 to i, t do while i<100 i=i+1 if int(i/2)=i/2 loop endif t=t+i enddo ? ’1~100奇数和为:’ , t SET TALK ON RETURN 方法2:CLEAR SET TALK OFF store 0 to i, t do while i<100 i=i+1 if mod(i,2)=0 loop endif t=t+i enddo ? ’1~100奇数和为:’ , t SET TALK ON RETURN 6、方法1:CLEAR SET TALK OFF E=0 STORE 1 TO T,N (或T=1 FOR N=1 TO 10 [STEP 1] T=T*N E=E+1/T ENDFOR|NEXT ?”所求的E值为:”,E SET TALK ON RETURN 方法2:CLEAR SET TALK OFF E=0 STORE 1 TO T,N DO WHILE T<=10 T=T*N E=E+1/T N=N+1 ENDDO ?”所求的E值为:”,E SET TALK ON RETURN 7、方法1:CLEAR SET TALK OFF N=1 SUM=0 DO WHILE N<=1000 IF MOD(N,7)==0 SUM=SUM+N ENDIF N=N+1 ENDDO ?”1到1000中能被7整除的数的累加和是:”,SUM SET TALK ON RETURN 方法2: CLEAR SET TALK OFF SUM=0 FOR N=1 TO 1000 [STEP 1] IF MOD(N,7)==0 SUM=SUM+N ENDIF ENDFOR|NEXT ?”1到1000中能被7整除的数的累加和是:”,SUM SET TALK ON RETURN