1、程序的功能是:在在学生表中查找并输出指定学生的所有信息。
填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。
SET TALK OFF
CLEAR
USE 学生
INDEX ON 学号 TO XH 或者 SET ORDER TO 学号---1----&&此处填空ACCEPT "请输入指定的学生学号:" TO XH
SEEK XH
IF !FOUND---2----&&此处填空
? "查无此人!"
ELSE
DISPLAY----3----&&此处填空
ENDIF
USE
SET TALK ON
2、给定程序的功能是:判断给定的正整数值表达式的值是否为素数。
填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。
SET TALK OFF
CLEAR
DO WHILE .T.
INPUT "请输入一个正整数:" TO X
FOR I=2 TO X-1----1----&&此处填空
IF INT(X/I)=X/I
EXIT
ENDIF
ENDFOR
IF X=I----2---- &&此处填空
? X,"是素数!"
ELSE
? X,"不是素数!"
ENDIF
WAIT "是否继续输入(Y/N)" TO YN
IF UPPER(YN)="Y" 或者IF LOWER(YN)----3-----&&此处填空
LOOP
ELSE
EXIT
ENDIF
ENDDO
SET TALK ON
3、给定程序的功能是:输入边长,如果能构成三角形,则计算三角形面积。
填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。
SET TALK OFF
DO WHILE .T.---1----&&此处填空
CLEAR
INPUT "输入第一边长:" TO X
INPUT "输入第二边长:" TO Y
INPUT "输入第三边长:" TO Z
IF X=0.OR.Y=0.OR.Z=0.OR. X+Y<=Z .OR. Y+Z<=X .OR. X+Z<=Y
? "尺寸有误,重新输入!"
LOOP---2----&&此处填空
ENDIF
EXIT
ENDDO
U=(X+Y+Z)/2
M=SORT(U*(U-X)*(U-Y)*(U-Z))--- 3-----&&此处填空
? "AREA="+ALLTRIM(STR(M,19,2))
SET TALK OFF
4、给定程序的功能是:在屏幕上显示输出一个乘法九九表。显示格式如下:
填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。
SET TALK OFF
CLEAR
X=1 或者 STORE 1 TO X ----1---&&此处填空
DO WHILE X<=9
Y=1
DO WHILE Y<=X
??STR(X,1)+"*"+STR(Y,1)+"="+STR(X*Y,2)+""或者??STR(X,1)+"*"+STR(Y,1)+"="+STR(X*Y,2)+SPACE(1)----2------&&此处填空
Y=Y+1
ENDDO
?----3----&&此处填空
X=X+1
ENDDO
SET TALK ON
5、给定程序的功能是: 根据输入的数据, 计算不大于该数的所有奇数累加和。填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。
SET TALK OFF
CLEAR
YN="Y"
DO WHILE UPPER(YN)="Y" 或者 LOWER(YN)="y"---1----&&此处填空
INPUT "请输入两位以内的正整数:" TO N
STORE 0 TO X,Y
DO WHILE X X=X+1 IF INT(X/2)<>X/2---2-----&&此处填空 Y=Y+X ENDIF ENDDO ? "不大于该数的奇数累加和="+STR(Y,4) WAIT 或者 INPUT 或者 ACCEPT---3---&&此处填空"继续计算否?(Y/N)" TO YN ENDDO ? "再见!" SET TALK ON 6、给定程序的功能是: 根据输入的数据,判断该数是否为偶数,可以循环输入。填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。 SET TALK OFF CLEAR YN="Y" DO WHILE UPPER(YN)="Y" 或者 DO WHILE LOWER(YN)="y"----1----&&此处填空 INPUT "请输入一个自然数:" TO N IF N/2!=INT(N/2) 或者 MOD(N,2)!=0 或者 N%2!=0---2-----&&此处填空 ? "不是偶数!" ELSE ? "是偶数!" ENDIF WAIT----3---- &&此处填空"继续否?(Y/N)" TO YN ENDDO ? "再见!" SET TALK ON 7、给定程序的功能是: 显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录。 填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。 SET TALK OFF DO WHILE .T. CLEAR ACCEPT "请输入表名(扩展名略):" TO TBN IF FILE("&TBN..DBF") USE(TBN) 或者 USE&TBN----1-----&&此处填空 ELSE WAIT "指定的表不存在!" LOOP ENDIF ?"表中的全部字段名列表:" FOR N=1 TO FCOUNT()---2----&&此处填空 ?FIELD(N) ENDFOR ACCEPT "请输入显示表信息的条件:" TO EXPR LIST &EXPR---3----- &&此处填空 WAIT "是否继续(Y/N)?: " TO YN IF UPPER(YN)!= "Y" EXIT ENDIF ENDDO USE SET TALK ON 8、给定程序的功能是:接收从键盘输入的任意10个数,输入的数字可以是负数,但包括符号位最多三位。程序的功能是,找出其中最大的数和最小的数字,最后显示出来。 填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。 SET TALK OFF CLEAR INPUT "请输入第一个数字:" TO X ZD=X ZX=X----1----&&此处填空 N=10 DO WHILE N>1----2----&&此处填空 INPUT "请输入下一个数字:" TO X IF ZD ZD=X ENDIF IF ZX>X----3----&&此处填空 ZX=X ENDIF N=N-1 ENDDO ?"最大数:"+STR(ZD,3,0),"最小数:"+STR(ZX,3,0) SET TALK ON 9、程序的功能是,显示输出学生表中每个班级的男女同学的奖学金总金额。 填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。 SET TALK OFF CLEAR USE 学生 INDEX ON 学号 TO INN0 ?"**********各班男女奖学金总额统计************" ?"班级男同学奖学金总额女同学奖学金总额" DO WHILE !EOF()----1----&&此处填空 CLASS=LEFT(学号,3) STORE 0 TO BOYS,GIRLS DO WHILE LEFT(学号,3)=CLASS 或者SUBSTR(学号,1,3)=CLASS----2-----&&此处填空 IF 性别 BOYS=BOYS+奖学金 ELSE GIRLS=GIRLS+奖学金 ENDIF SKIP----3----&&此处填空 ENDDO ?CLASS+STR(BOYS,19,2)+ STR(GIRLS,19,2) ENDDO USE SET TALK ON 10、给定程序的功能是:返回给定的字符串表达式的倒置字符串。如:输入字符串"ABCD",倒置后输出的字符串为"DCBA" 。 填空要求:程序中共有三个填空,请在“---n---”处填空(注意:不能删除“&&此处填空”,以便于检查),并调试运行。不得增加或删减程序行。 SET TALK OFF CLEAR ACCEPT "请输入一个字符串:" TO X C=" " 或者 C=SPACE(0)---1----&&此处填空 L=LEN(X) DO WHILE 0 Q=SUBSTR(X,L,1) C=C+Q----3----&&此处填空 L=L-1 ENDDO ? "倒置字符串是:"+C RETURN SET TALK ON 11、本程序实现:利用公式e x=1+X+X2/2!+X3/3!+…+X n/n!,输入X和N,计算 e x的近似值。 SET TALK OFF CLEAR INPUT 'X=' TO X INPUT 'N=' TO N A=1 B=1 S=1---1----&&此处填空 FOR I=1 TO N---2---&&此处填空 A=A*X B=B*I S=S+A/B---3---&&此处填空 ENDFOR ? 'S=',S SET TALK ON 12、本程序实现:输入一个正整数M,判断并显示1~M中有哪些数可以分为两个相等的素数。(如M=10,有3个数符合,即2+2=4,3+3=6和5+5=10) SET TALK OFF CLEAR INPUT 'M=' TO M IF INT(M)!=M OR ABS(M)!=M ? '输入数据不符合题目要求!' ELSE----1----&&此处填空 S=0 FOR I=2 TO M/2 FOR J=2 TO I-1----2-----&&此处填空 IF I%J=0 EXIT ENDIF ENDFOR IF J>I-1 或者 IF J=I-----3----&&此处填空 S=S+1 ?ALLTRIM(STR(J*2,19))+"="+ALLTRIM(STR(J,19))+"+"+ALLTRIM(STR(J,19 )) ENDIF ENDFOR ?ALLTRIM(STR(M,19))+"中共有:"+STR(S,3)+"个数满足条件" SET TALK ON 13、本程序实现口令验证。输入次数在3次以内,给予重输的提示,超过3次,则进入死循环。 SET TALK OFF CLEAR I=1 DO WHILE .T. ? "请输入口令=" SET CONSOLE OFF ACCEPT TO KL SET CONSOLE ON IF KL=="ABC" ? "欢迎使用本系统!" EXIT----1----&&此处填空 ENDIF IF I>3----2-----&&此处填空 ? "无权使用本系统!" DO WHILE .T. ENDDO ENDIF ?"口令第"+STR(I,1)+"次错,再试一次!" I=I+1----3----&&此处填空 ENDDO SET TALK ON 14、本程序显示学生表中的获得奖学金的学生姓名和奖学金数额 SET TALK OFF CLEAR USE 学生 DO WHILE !EOF() 或者 DO WHILE .NOT.EOF()------1------&&此处填空 IF 奖学金>0----2----&&此处填空 ? 姓名,奖学金 SKIP ELSE SKIP----3----&&此处填空 ENDIF ENDDO USE SET TALK ON 15、本程序显示学生表中1971年或以前出生的学生姓名和出生年月(日期型)。SET TALK OFF CLEAR USE 学生 LOCATE FOR YEAR(出生年月)<=1990 或者FOR 出生年月<={^1990-01-01}----1----&&此处填空 DO WHILE .NOT.EOF() 或者DO WHILE !EOF() 或者DO WHILE FOUND()----2----&&此处填空 ? 姓名,出生年月 CONTINUE----3----&&此处填空 ENDIF ENDDO USE SET TALK ON 16.本程序计算一个十进制正整数N的各位数字之和。 SET TALK OFF CLEAR INPUT "M=" TO M IF INT(M)!=M OR ABS(M)!=M ? "输入的数据不符合题目要求!" ELSE---1----&&此处填空 S=0 DO WHILE M>0---2----&&此处填空 T=MOD(M,10) S=S+T M=INT(M/10)---3----&&此处填空 ENDDO ?S ENDIF SET TALK ON 17.本程序实现从键盘中输入5个数,去掉一个最大数和一个最小数,然后求平均值。 SET TALK OFF CLEAR INPUT 'N=' TO N STORE N TO A,B,S---1----&&此处填空 FOR I=1 TO 4 INPUT 'N=' TO N IF A A=N ENDIF IF B>N B=N ENDIF S=S+N 或者 S=N+A---3----&&此处填空 ENDFOR ? '平均值=',(S-A-B)/3 SET TALK ON 18.程序1:求1!+3!+5!+…+N!,N由键盘输入。 SET TALK OFF CLEAR INPUT "N=" TO N---1----&&此处填空 STORE 0 TO S,T FOR I=1 TO N STEP 2 DO SUB S=S+T---2----&&此处填空 ENDFOR ?S SET TALK ON PROC SUB T=1 FOR J=1 TO I T=T*J---3----&&此处填空 ENDFOR 19.设变量N的输入值为5,字符A的ASCII码为65。程序的运行如下图所示: SET TALK OFF CLEAR INPUT "N=" TO N FOR I=1 TO N ? SPACE(N-I)---1----&&此处填空 FOR J=1 TO 2*I-1---2----&&此处填空 ?? CHR(65+I-1)---3----&&此处填空 ENDFOR ENDFOR 20.将表“学生.DBF”中指定学生(由键盘输入)的奖学金加60,并显示该学生的记录。 SET TALK OFF CLEAR USE 学生 ACCEPT “输入学号=” TO M LOCATE FOR 学号=M---1----&&此处填空 IF !EOF() REPLACE 奖学金 WITH 奖学金+60---2----&&此处填空 DISP ELSE ?”没有找到!” ENDIF---3----&&此处填空 USE SET TALK ON 21.下面程序统计指定学生的平均成绩及该成绩的档次。 SET TALK OFF CLEAR USE 成绩 ACCEPT "请输入学生的学号:" TO XH LOCATE FOR 学号=XH---1----&&此处填空 IF !FOUND() ?"查无此人!" ELSE AVERAGE 成绩 TO PJCJ FOR 学号=XH---2----&&此处填空 DO CASE CASE PJCJ>=90 DC="优" CASE PJCJ>=80 DC="良" CASE PJCJ>=70 DC="中" CASE PJCJ>=60 DC="及格" OTHERWHISE 或者 CASE PJCJ<60---3----&&此处填空 DC="不及格" ENDCASE ?"学号","平均成绩","档次" ?XH,STR(PJCJ,8,2),DC ENDIF USE 22.程序输出的结果如下图所示: SET TALK OFF CLEA A="*" H=5---1----&&此处填空 FOR K=1 TO H ? SPACE(H-K)---2----&&此处填空 FOR T=1 TO 2*K-1---3----&&此处填空 ??A ENDFOR ENDFOR SET TALK ON 23.编一将日期转换成中文星期的自定义函数。 N=DOW(D)---1----&&此处填空 DO CASE CASE N=1 C="星期日" CASE N=2 C="星期一" CASE N=3 C="星期二" CASE N=4 C="星期三" CASE N=5 C="星期四" CASE N=6 C="星期五" CASE N=7 C="星期六" OTHERWISE---2----&&此处填空 C="输入有错!" ENDCASE RETURN C---3----&&此处填空 24.本程序实现“百钱买百鸡”的计算(取自《算经》:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?) CLEAR FOR X=0 TO 20 FOR Y=0 TO 33---1----&&此处填空 Z=100-X-Y IF 5*X+3*Y+Z/3=100---2----&&此处填空 ?"X="+STR(X,2),"Y="+STR(Y,2),"Z="+STR(Z,2) ENDIF ENDFOR ENDFOR---3----&&此处填空 SET TALK ON 25.输入一个自然数,判断该数是否为完数。(完数的定义:若该数除本身之外的所有因子之和等于该数,则为完数。如:1+2+3=6,6为完数;1+2+4#8,8不是完数。) SET TALK OFF CLEAR INPUT "M=" TO M N=1 S=0 或者 STORE 0 TO S---1----&&此处填空 FOR N=1 TO M-1 IF MOD(M,N)=0 或者 INT(M/N)=M/N 或者 M%N=0---2----&&此处填空S=S+N ENDIF ENDFOR IF S=M 或者 M=S---3----&&此处填空 ?M,"是完数!" ELSE ?M,"不是完数!" ENDIF SET TALK ON