计算机专业模拟试卷(程序填空和程序改错)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、程序填空
1、有学生表ST,其中“编号”(N,2,0)
字段值从1开始连续排列。
以下程序欲
按编号1,9,17,25……的规律抽取学
生参加比赛,并在屏幕上显示参赛学生
的编号,请填空。
USE ST
DO WHILE NOT EOF()
IF MOD__________
??编号
ENDIF
SKIP
ENDDO
2、通过键盘输入读者的借书证号,在“读
者”表和“借阅”表中查找该读者及借
书的有关信息。
OPEN DATABASE BOOKS
DO WHILE ___________
ACCEPT”请输入借书证号:” TO ZH
SELECT * FROM 读者,借阅WHERE
读者.借书证号=借阅.借书证号AND ;
读者.借书证号=ZH
WAIT“继续查询(Y/N)?”TO YN
IF UPPER(Y/N)<>“Y”
_______________________
ENDIF
ENDDO
_______________________
3、将“借阅”表中借书日期超过一年且还
没有归还的记录的“标记”字段填充“*”。
USE 借阅
DO WHILE _________
IF 还书日期={/} AND DA TE()—借书日期>365
REPLACE ___________
ENDIF
SKIP
ENDDO
USE
RETURN
4、一个自定义函数FX,计算F(X)
=EX+3X+10的值,并编写一个主程序调
用FX函数,分别计算变量X由5到10
(步长为1)的函数值
*FX.PRG
FOR I=5 TO 10
?“X=”,I,“F(X)=”,_________
NEXT
RETURN
FUNCTION FX(X)
________________
RETURN F
5、下列程序根据输入的学生成绩,来判断
学生成绩等级,其中成绩大于或等于90分
的为优秀,75-90的为良好,60-74为及格,
小于60分的为不及格,请正确补充程序运
行。
Clear
Set talk off
____________(“请输入成绩:”) to cj
Do case
Case cj<60
Dj=”不及格”
Case cj<75
Dj=”及格”
Case cj<90
Dj=”良好”
____________
Dj=”优秀”
Endcase
? Dj
Set talk on
6、设表STU.DBF中有“学号、姓名、性别、
出生日期、班级”等字段,程序完成根据姓
名进行的查询:
Set talk off
Use stu
Store space(6) to xm
Index on 学号to xh
accept “输入姓名:” to xm
locate for 姓名=xm
display
else
?“查无此人”
Endif
Wait “继续吗?”to yn
If upper(yn)=”N”
Exit
Else
Loop
Endif
Enddo
Use
Set talk off
7、请阅读下列判断一个自然数是否为质数
的程序,并将程序填空完整.
Set talk off
Input”请输入一个大于1的自然数:” to n
K=0 &&K的值为0表示所输入的自然数是
质数, 为1表示不是质数
j=2
Do while j<n
If mod
(n,j)_____________________________
Loop
Else
K=1
Exit
Endif
If k=0
?__________________+”是质数”
Endif
?”再见!!”
Set talk on
Return
8、定义一个二维数组X(8,9),给数组元
素为该元素下标组成的数值。
SET TALK OFF
DIMENSION X(8,9)
FOR N=1 TO 8
FOR M=1 TO 9
________________
END FOR
END FOR
RETURN
9、在ZGDA.DBF表中查找用户指定的编号。
如果查找成功,则显示找到的记录,否则显
示一条说明信息。
试完成下面的程序。
SET TALK OFF
USE D:\ZG\ZGDA
DO WHILE .T.
CLEAR
ACCEPT”请输入编号:” TO BH
LOCATE FOR ________________
IF FOUND()
DISPLAY
ELSE
WAIT“不存在该编号”WINDOW TIMEOUT 1
ENDIF
WAIT”是否继续查找?(Y/N)”TO ANSWER WINDOW
IF UPPER(ANSWER)<>”Y”
___________________________
ENDIF
ENDDO
USE
SET TALK ON
RETURN
10、按每次显示一条记录的方式显示JSDA.DBF的所有记录。
SET TALK OFF
USE D:\ JSGL\JSDA
CLEAR
FOR N=1 TO _______
DISPLAY
SKIP
W AIT”按任意键继续” WINDOW
ENDFOR
USE
SET TALK ON
RETURN
11、输入一个正数,使用过程计算以该数为半径的圆的面积。
试完成下面的程序。
CLEAR
AM=0
INPUT“请输入一个正数:” TO X
DO AREA WITH AM,(X)
?”半径为”+ALLTRIM(STR(X,20,2))+”的
圆面积为:”+ALLTRIM(STR(AM,20,2))
RETURN
_________________ &&定义过程
PARAMETERS AR,R
AR=3.14*R*R
ENDPROC
12、计算分段函数的值:{012012
)
(≥
+
<
-
=x
x
x
x
x
f
SET TALK OFF
CLEAR
INPUT“请输入X的值:“TO X
IF_______________________
Y=2*X+1
ELSE
Y=2*X-1
ENDIF
?”f(“+ALLTRIM(STR(X))+”ALLTRIM(STR(
Y))
_________________
RETURN
二、程序改错
1、下面程序的功能是完成图书查询,用户
输入书名后,从图书表(图书.dbf)中查询
给定书目的信息。
若用户没输入书名,则要
求用户重新输入,若用户输入字符串“000
“,则结束查询。
程序中有两行错误,请将
错误语句改正后写在右边相应的横线上。
Use 图书
Do while .T. _________________
Accept”请输入书名:” to sm ________
If LEN(ALLTRIM(SM))=0 _________
EXIT ______________
ENDIF _______________
IF ALLTRIM(SM)=”000”_____________
LOOP ____________
ENDIF ____________
LOCATE ALL FOR 书名=ALLTRIM(SM)
______________________________
IF FOUND() _____________
DO WHILE .NOT. EOF( ) _____________
DISPLAY _____________
CONTINUE _____________
ENDDO _____________
ELSE _____________
?”查无此书”______________
ENDIF ______________
ENDDO _____________
RETURN
2、下面程序的功能是:输入8个字符,如
果第三到第六个字符为“OKOK”,则执行命
令文件Pass,否则重新输入,若输入超过三
次则退出程序运行。
程序中有两行错误,请
将错误语句改正后写在右边相应的横线上。
Clear
Password =SPACE(8)
I=3
Do while .T.
@10,10 SAY “输入口令:” GET PASSWORD
Read
If str(password,3,4)=”OKOK”_______
Quit &&退出循环
Else
I=I-1
If I=0
Return
Endif
Endif
Enddo
Do pass。