内容发布更新时间 : 2024/12/27 0:01:04星期一 下面是文章的全部内容请认真阅读。
3、计算分段函数的值:当x>0时,y=15;当x<=0时,y= -5;当x=0时,y=0 SET TALK OFF
INPUT “请输入X的值:” TO X DO CASE
CASE X>0
Y= (1)
CASE X<0 Y= -5 OTHERWISE Y=0 ENDCASE
? ”Y=”, y RETURN
答案: (1) 15 (2) Y 知识点:多分支结构
4、设eee.dbf为职工数据表,姓名为一个字段名,查找名为“王林”的职工,若找到显示该员工信息,否则显示“查无此人”信息。 SET TALK OFF (1)
LOCATE FOR 姓名=”王林” IF (2) DISP ELSE
?” 查无此人” ENDIF USE
SET TALK ON
答案: (1) USE EEE (2) FOUND() 知识点:记录查找,双分支
5、下面程序将“春光明媚”先纵向显示出来然后再横向显示“明媚春光” 请填空完成该程序:
Set talk off Clear
STORE “春光明媚” TO XY N=1
DO WHILE N<8 ?SUBSTR( 1 ) N=N+2 ENDDO
? SUBSTR( 2 ) ??SUBSTR(XY,1,4) Return 答案:(1) XY,N,2 (2) XY,5,4 知识点:单循环结构
答案:(1) X-5 (2) ENDIF 知识点:双分支结构
6、输入一个三位整数,将其反向输出。如输入123,输出321。 set talk off
input \请输入一个三位数\(1)
(2)=100*mod(a,10)+10*mod(int(a/10),10)+ int(a/100) ?b return 答案:(1) a
(2) b
知识点:顺序结构
7、 子程序调用 主程序:t1.prg SET TALK OFF
STORE ′NH′ TO k1,k2 DO t2
?k1+k2 屏幕上显示的结果是 (1) RETURN
子程序:t2.prg PRIVATE k1
k1=k2+″100″
?k1 屏幕上显示的结果是 (2) RETURN
答案:(1) NHNH
(2) NH100 知识点:子程序调用
7、子程序调用 主程序:z.prg SET TALK OFF
STORE 4 TO y1, y2, y3 y1=y1+1
? y1+y2+y3 &&屏幕上显示的结果是 (1) DO z1
? y1+y2+y3 &&屏幕上显示的结果是 (2) RETURN
子程序:z1.prg y2=y2+1 DO z2 y1=y1+1 RETURN
子程序:z2.prg y3=y3+1
RETURN TO MASTER
答案:(1) 13
(2) 15
知识点:子程序调用
8、下面的程序实现了多次在“aaa.dbf”表中查找记录的操作。请在建立了aaa.dbf表的基础上,任意输入一位员工的“编号”,若查找到相应的记录则显示,否则给出提示“无此人!”;根据提示输入“N”或“n”则结束程序的运行。
SET TALK OFF CLEAR
USE aaa.dbf DO WHILE .T. CLEAR
ACCEPT \请输入员工编号:\ LOCATE FOR 编号= ZHGNO IF (1) DISPLAY 编号,姓名,部门代号,职称,基本工资 ELSE
?\无此人!\ ENDIF
WAIT \继续查询?(Y/N):\ IF UPPER(P)<>\ USE EXIT ENDIF ENDDO
SET TALK ON RETURN
答案:(1) NOT EOF()
(2) Y
知识点:表的操作
9、下面程序输出如图所示的图形,请将程序补充完整。
******* ***** ***
*
Set talk off clear
FOR N=4 TO 1 STEP -1 ? (1) (3-N) FOR M=1 TO 2*N-1 ?? (2)
ENDFOR ENDFOR
Set talk on return
答案:(1) SPACE
(2) \
知识点:双循环结构 三、编程题(要求从三大类型的程序中各选其一,即不能选两个同类型的程序题) (一)求和类型的程序
1、编程计算s=1+1/3+1/5+?+1/49。 参考答案: clear s=0
for i=1 to 49 step 2 s=s+1/i endfor ?s Retu
答案:2.5912
2、编程计算100到1000之间能被4除余1的所有数之和。 参考答案: clear s=0
for i=100 to 1000 if i%4=1 s=s+i endi endf ?s Retu
答案:123525
3、计算100到500中所有素数的和。(所谓素数是指除了1和它本身外,没有任何因子被该数整除) 参考答案: clea s=0
for i=100 to 500 for j=2 to i-1 if i%j=0
exit endif endf if j>=i s=s+i endi endf ?s Retu
答案:20476
编程计算1/4!+1/8!+1/10! clea &&主程序
?1/fac(4)+1/fac(8)+1/fac(10) retu
func fac &&fac创建一个求阶乘的函数 para i s=1
for J=1 to i s=s*J endfor return
答案:0.0014
4、求所有五位数中,千位数字等于个位数字的数之和。 clear s=0
for i=10000 to 99999 if i=int(i/1000) s=s+I endif endf ?s retu
答案:494995500
(二)统计个数的类型
1、统计100到1000中能被5或9整除的所有数的个数。 clea s=0 I=100
DO WHILE I<=1000 if i%5=0 or i%9=0 s=s+1 endif I=I+1 endDO ?s Retu
答案:261
2、求四位数中所有“回文数”的个数。(所谓“回文数”,是指该数从左往右念与从右往左念相同,例如:1221,3223等) clea s=0
for i=1000 to 9999 STEP 1 a=int(i/1000)
b=int((i00)/100)