VFP期末考试测试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1.下列选项中能够直接实现对数据库中数据操作的软件是()。
A、字处理软件
B、操作系统
C、数据库管理系统
D、翻译系统
2.下列关于数据库系统的正确叙述是()。
A、数据库系统减少了数据冗余
B、数据库系统避免了一切数据冗余
C、数据库系统中数据的一致性是指数据类型的一致
D、数据库系统比文件系统能管理更多的数据
3.数据库DB、数据库系统DBS、数据库管理系统DBMS这三者之间的关系是()。
A、DBS包括DB和DBMS
B、DBMS包括DB和DBS
C、DB包括DBS和DBMS
D、DBS就是DB,也就是DBMS
4.按照数据模型分类,Visual FoxPro属于()。
A、层次型
B、网状型
C、关系型
D、混合型
5.关系数据库管理系统存储与管理数据的基本形式是()。
A、关系树
B、二维表
C、结点路径
D、文本文件
6.下列数据为常量的是()。
A、02/18/99
B、F
C、.N.
D、TOP
7.下述字符串表示方法正确的是()。
A、""等级考试""
B、['等级考试']
C、{"等级考试"}
D、[[等级考试]]
8.执行命令STORE CTOD([08/11/99]) TO AA后,变量AA的数据类型是()。
A、日期型
B、数值型
C、字符型
D、浮点型
9.设L=668,M=537,N="L+M",表达式5+&N的值是()。
A、类型不匹配
B、5+L+M
C、1210
D、5+&N
10.某数据表中包含如下的两个字段:性别(C,2)、奖金(N,6,2),如果需要查询奖金在 100元以下或400元以上的男职工和奖金在200元以上的女职工,应该使用的条件是()。
A、性别="男".AND.奖金<=100.OR.奖金>=400.AND.性别="女".AND.奖金>=200
B、性别="男".AND.奖金<=100.OR.奖金>=400.OR.性别="女".AND.奖金>=200
C、性别="男".AND.(奖金<=100.OR.奖金>=400).AND.性别="女".AND.奖金>=200
D、性别="男".AND.(奖金<=100.OR.奖金>=400).OR.性别="女".AND.奖金>=200
11.在下列表达式中,运算结果为数值的是()。
A、"1234"+"3579"
B、CTOD("05/08/93")-11
C、130+350=480
D、LEN("SFDE")-1
12.下列表达式的运算结果为日期型数据的是()。
A、08/15/97-12
B、DATE()-CTOD("05/13/98")
C、DATE()-30
D、DATE()-TIME()
13.下列函数中,函数值为数值型数据的是()。
A、CTOD(01/11/99)
B、SUBSTR(DTOC(DATE()),7)
C、SPACE(3)
D、YEAR(DATE())
14.顺序执行下列命令之后,屏幕显示的结果是()。
STORE "Visual FoxPro" TO TT
?UPPER(RIGHT(TT,3))
A、VISUAL FOXPRO
B、PRO
C、Pro
D、VIS
15.执行以下命令()。
M="THIS IS AN APPLE"
?SUBSTR(M,INT(LEN(M)/2+1),2)
A、TH
B、IS
C、AN
D、AP
16.函数DAY(07/29/97)的返回值是()。
A、7
B、0
C、计算机日期
D、出错信息
17.条件函数IIF(MOD(15,-8)>3,10,-10)的结果为()。
A、10
B、-10
C、-1
D、7
18.如果变量D="08/13/98",命令?TYPE("&D")的结果为()。
A、D
B、N
C、C
D、出错信息
19.下列属于内存变量文件的扩展名是()。
A、.TXT
B、.FPT
C、.DBF
D、.MEM
20.数据表文件中的字段是一种()。
A、常量
B、变量
C、函数
D、运算符
21.一个数据表文件的数值型字段要求保留5位小数,那么它的宽度最少应当定义成 ( )。
A、5位
B、6位
C、7位
D、8位
22.在Visual FoxPro的数据表文件中,每条记录的总长度比用户定义的各个字段宽度之和多一个字节,该字节用于()。
A、存放删除标记
B、存放记录号
C、存放索引关键字
D、存放记录宽度
23.数据表文件"学生表.DBF"中有性别(字符型)和平均分(数值型)字段,如果显示平均分超过90分和不及格的全部女生的记录,应该使用的命令是()。
A、LIST FOR 性别="女".OR.平均分>90.OR.平均分<60
B、LIST FOR 性别="女",平均分>90,平均分<60
C、LIST FOR 性别="女".AND.平均分>90.AND.平均分<60
D、LIST FOR 性别="女".AND.(平均分>90.OR.平均分<60)
24.假设数据表中共有10条记录,当执行命令GO BOTTOM后,命令?RECNO()的结果是()。
A、9
B、10
C、11
D、1
25.假设数据表中共有50条记录,当执行命令DISPLAY ALL之后,命令?RECNO()的结果是()。
A、1
B、50
C、51
D、0
26.假如数据表中有"数学"、"语文"、"物理"、"化学"、"英语"、以及"总分"等字段,它们都为数值型数据,如果要求出所有学生的总分并添入总分字段中,应使用的命令是()。
A、REPLACE 总分 WITH 数学+语文+物理+化学+英语
B、REPLACE 总分 WITH 数学,语文,物理,化学,英语
C、REPLACE ALL 总分 WITH 数学+语文+物理+化学+英语
D、REPLACE 总分 WITH 数学+语文+物理+化学+英语 FOR ALL
27.ZAP命令可以删除当前数据表文件的( )
A、全部记录
B、满足条件的记录
C、本身
D、全部有删除标记的记录(pack) 28.某数据表中共有10条记录,当前记录为6,先执行命令SKIP 10,再执行命令?EOF(),执行最后一条命令后,显示的结果是()。
A、错误信息
B、11
C、.T.
D、.F.
29.对职称是副教授的职工,按工资从多到少进行排序,工资相同者,按年龄从大到小排列,排序后生成的表文件名是FGZ.DBF,应该使用的命令是()。
A、SORT TO FGZ ON 工资/A,出生日期/D FOR 职称="副教授"
B、SORT TO FGZ ON 工资/D,出生日期/A FOR 职称="副教授"
C、SORT TO FGZ ON 工资/A,出生日期/A FOR 职称="副教授"
D、SORT TO FGZ ON 工资/D,出生日期/D FOR 职称="副教授"
30.数据表中有工资字段,现要求按工资字段的降序建立索引文件GZJX.IDX,应该使用的命令是()。
A、INDEX ON 工资/D TO GZJX
B、SET INDEX ON -工资 TO GZJX
C、INDEX ON -工资 TO GZJX
D、REINDEX ON 工资 TO GZJX
31.TOTAL命令的功能是()。
A、对数值型字段按关键字分类求和
B、分别计算所有数值型字段的和
C、计算每个记录中数值型字段的和
D、求满足条件的记录个数
32.一个数据表中共有10条记录,当函数EOF()为.T.时,当前记录号应为()。
A、10
B、11
C、0
D、1
33.下列说法中正确的是()。
A、当项目管理器处于打开状态时,使用CREATE DATABASE命令创建的数据库将会自动添加到
项目中
B、当数据库处于打开状态时,用CREATE命令创建的表文件将会自动添加到该数据库中
C、CLOSE DATABASE在关闭数据库的同时,不会将数据库中的表同时关闭
D、自由表不能被添加到数据库中
34.下列命令中不能关闭数据库的是()。
A、CLOSE DATABASE
B、CLOSE ALL
C、CLOSE
D、CLOSE DATABASE ALL
35.下列有关索引的说法,正确的是()。
A、可以在自由表中创建主索引
B、建立主索引的主关键字值不能为空,但可以有重复数值
C、可以在自由表中建立候选索引
D、唯一索引中只保留关键字段值相同的第一条记录(只显示)
36.Visual FoxPro中的参照完整性规则不包括( c )。
A、更新规则
B、删除规则
C、查询规则
D、插入规则
37.以下关于查询的描述正确的是()。
A、不能根据自由表建立查询
B、只能根据自由表建立查询
C、只能根据数据库表建立查询
D、可以根据数据库表和自由表建立查询
38以下关于多表查询说法不正确的是( d )。
A、多表查询可以在多个表中进行查询
B、多表查询可以对视图进行查询
C、多表查询只能使用查询向导获得
D、多表查询只能对一个表进行查询
39.下列不属于查询结果输出格式的是()。
A、浏览
B、图形
C、屏幕
D、视图
40.SQL SELECT语句为了将查询结果存放到临时表中应该使用的短语是()。
A、WHERE
B、INTO
C、GROUP BY
D、OREDER BY
41.将逻辑值赋给内存变量LZ的正确方法是()。
A、LZ=".T."
B、STORE "T" TO LZ
C、LZ=TRUE
D、STORE .T. TO LZ 42.执行命令INPUT "请输入出生日期:" TO MDATE时,如果通过键盘输入CTOD("01/01/88")则内存变量MDATE的值应当是()。
A、CTOD("01/01/88")
B、"01/01/88"
C、日期值01/01/88
D、拒绝接收,MDATE不赋值
43.下列程序的运行结果是()。
A=10
IF A=10
S=0
ENDIF
S=1
?S
A、0
B、1
C、程序出错
D、结果无法确定
44.有如下程序()。
SET TALK OFF
STORE 2 TO S,K
DO WHILE S<14
S=S+K
K=K+2
ENDDO
?S,K
SET TALK ON
RETURN
此程序运行后的输出结果是()。
A、22 10
B、22 8
C、14 8
D、14 10
45.有如下的程序
SET TALK OFF
M=0
N=100
DO WHILE N>M
M=M+N
N=N-10
ENDDO
?M,N
RETURN
运行此程序的显示结果为()。
A、0 10
B、10 90
C、90 100
D、100 90
46.执行语句DIMENSION M(3),N(2,3)后,数组M和N的元素个数分别为()。
A、1个,2个
B、3个,6个
C、3个,5个
D、4个,12个
47.有如下程序
SET TALK OFF
DIMENSION K(2,3)
I=1
DO WHILE I<=2
J=1
DO WHILE J<=3
K(I,J)=I*J
??K(I,J)
??" "
J=J+1
ENDDO
?
I=I+1
ENDDO
RETURN
运行此程序的结果是()。
A、1 2 3
B、1 2
C、1 2 3
D、1 2 3
2 4 6
3 2 1 2 3 2
4 9
48.能够把数组的值存入数据表当前记录的命令是()。
A、STORE
B、REPLACE
C、SCATTER
D、GATHER
49.有如下程序()。
主程序SS.PRG 子程序SUB1.PRG
SET TALK OFF PARAMETER A,B
X=10 X=A+10
A=2 A=A+B
B=3 ?X,A,B
DO SUB1 WITH A,B RETURN
DO SUB1 WITH A,B
?X,A,B
SET TALK ON
RETURN
执行命令DO SS之后,第1行输出的结果是()。
A、10 5 3
B、12 5 3
C、12 8 5
D、都不对
50.下列关于属性、方法和事件的叙述中,哪个是错误的?( )
A、属性用于描述对象的状态,方法用于表示对象的行为
B、基于同一个类产生的两个对象可以分别设置自己的属性值
C、事件代码也可以像方法一样被显示调用
D、在新建一个表单时,可以添加新的属性、方法和事件
51. 下面关于数据环境中两个表之间关系的说法中,正确的是()。
A、数据环境是对象,关系不是对象
B、数据环境不是对象,关系是对象
C、数据环境是对象,关系是数据环境中的对象
D、数据环境和关系都不是对象
52.要选定表单中某选项组里的某个选项按钮,可以()
A、单击选项按钮
B、双击选项按钮
C、先用鼠标右键单击选项组,并选择快捷菜单中的“编辑”命令,然后再单击选项按钮
D、以上B、和C、都可以
二、填空题
1.典型的菜单系统一般是一个下拉式菜单,下拉式菜单通常由一个菜单项和一组子菜单项组成。
2.要将VFP系统菜单恢复成标准配置,可先执行 modify window screen 命令,然后再执行 set sysmenu to default 命令。
3.快捷菜单实质上是一个弹出式菜单。
要将某个弹出式菜单作为一个对象的快捷菜单,通常是
在该对象的 rightclick 事件代码中添加调用该弹出式菜单程序的命令。
4.在Visual FoxPro的命令中,<范围>选项可以使用的四种参数形式是 for、 while、where 、having。
5.有计算机等级考试考生数据表文件STD.DBF和合格考生数据表HG.DBF。
两个表的结构相同。
为了颁发合格证书并备案,把STD数据表中的"笔试成绩"和"上机成绩"均及格(大于等于60分)记录的"合格否"字段修改为逻辑真,然后将合格的记录追加到合格考生数据表HG.DBF中。
请对以下操作命令填空。
USE STD
LIST
记录号准考证号姓名性别笔试成绩上机成绩合格否
1 11001 梁小冬女70 80 .F.
2 11005 林旭男95 78 .F.
3 11017 王一平男60 40 .F.
4 11083 吴大鹏男90 60 .F.
5 11080 杨纪红女58 67 .F.
REPLACE all 合格否 with .t. FOR 笔试成绩>=60.AND.上机成绩>=60
USE HG
APPEND FORM STD FOR 合格否=.t.
LIST
USE
6.执行如下命令序列
USE STUDENT
LIST
记录号姓名学号年龄性别
1 王亮098725 20 男
2 刘云力099321 19 男
3 周云飞097310 21 女
4 于丽丽099512 18 女
5 李红云098320 20 女
6 钱博声099132 18 男
INDEX ON 年龄TO NL
FIND 20
SKIP
DISP 姓名
最后一条命令显示的学生姓名是周云飞。
7.设数据表文件SC.DBF中有如下记录,其中学号、姓名为字符型字段,其余均为数值型字段,并且假定该表已打开。
记录号学号姓名出生日期性别籍贯贷款
1 913101 王刚03/11/73 男广西350
2 913102 李力03/21/72 女江西200
3 913103 赵冲04/23/73 女安徽150
4 913104 李心04/28/74 女辽宁100
5 924104 章文05/06/75 男云南230
6 924105 曾红05/03/75 男河北50
7 924106 寒雪01/18/73 男山西50
8 924107 陈冬09/16/75 男贵州100
1)按"贷款"建立索引文件SCDK,应该使用命令 index on 贷款 to scdk 。
2)求出贷款的总和并存入变量DKH中,应该使用命令 sum 贷款 to dkh 。
3)求出贷款的平均值并存入变量PJDK中,应该使用命令 average 贷款 to pjdk 。
4)统计女学生的人数并存入变量NXRS中,应该使用命令 count for 性别=”女”to nxrs。
8.在学生数据表中,年龄字段为数值型,标志字段为逻辑型,请填空。
USE 学生
INDEX ON 年龄 TO NL
将记录指针定位在第一个年龄是20的记录上,应该使用的命令是 locate for 年龄=20。
显示所有年龄为20的学生记录,应该使用命令DISP ALL for for 年龄=20 。
执行下列命令
SET INDEX TO
GO 11
之后,把从记录号11到最后一条记录的标志字段设置为逻辑真,应使用命令
REPLACE 标志 WITH .T. while recno()>=11
9.有3个数A,B,C,其中两个数相等,而另一个数比其他两个数都大,下列程序段的功能是找出其中最大的那个数,请填空。
DO CASE
CASE C>A AND C>B
?"C=",C
CASE B>A AND B>C
?"B=",B
CASE A>B AND A>C
?"A=",A
ENDCASE
10.阅读下列程序,并给出运行结果。
SET TALK OFF
CLEAR
STORE 1 TO X
STORE 20 TO Y
DO WHILE X<=Y
IF INT(X/2)<>X/2
X=1+X^2
Y=Y+1
LOOP
ELSE
X=X+1
ENDIF
ENDDO
?X
?Y
SET TALK ON
RETURN
运行结果X的值为 122.00 ,Y的值为 23 。
11.下列程序的功能是删除输入字符串中所含的空格,请填空。
SET TALK OFF
ACCEPT "请输入字符串:" TO X
i=2
DO WHILE " "$X &&判断x中是否包含空格
i=AT(" ",X)
x=substr(x,1,i-1)+substr(x,i+1,len(x)-i)
i=i+1
ENDDO
?X
RETURN
12.下列程序的功能是对ABC.DBF中的字段"数量"里的数,求其偶数之和,并显示所有偶数,请填空。
SET TALK OFF
USE ABC
S=0
DO WHILE .T.
IF mod(数量,2)=0
?数量
S=S+数量
ENDIF
skip
IF EOF()
exit
ENDIF
ENDDO
?S
RETURN
13.共有5个数据表文件STD1.DBF~STD5.DBF,下列程序的功能是删除每个表文件的最后一条记
录,请填空。
N=1
DO WHILE N<=5
DB= “std”+str(N)+”.dbf”
USE &DB
GOTO BOTTOM
DELETE
PACK
N=N+1
ENDDO
USE
14.填空完成下列程序()。
SET TALK OFF
USE STD
ACCEPT "请输入待查学生姓名:" TO XM
DO WHILE .NOT.EOF()
IF 姓名=XM
?"姓名()。
"+姓名,"成绩()。
"+STR(成绩,3,0)
ENDIF
SKIP
ENDDO
SET TALK ON
RETURN
15.下列程序的功能是从键盘接受到Y或N才退出循环,请填空
DO WHILE .T.
WAIT "请输入Y/N:" TO YN
IF ((UPPER(YN)<>"Y").AND.(UPPER(YN)<>"N"))
loop
ELSE
EXIT
ENDIF
ENDDO
16.计算机等级考试的查分程序如下,请填空
SET TALK OFF
USE STUDENT
ACCEPT "请输入准考证号:" TO NUM
LOCATE FOR 准考证号=NUM
IF found()
?姓名+"的成绩是:"+STR(成绩,3,0)
ELSE
?"没有此考生!"
ENDIF
USE
SET TALK ON
17.假设有商品数据表文件SP1.DBF,其中商店名、商品名和品牌为字符型字段,单价和库存量为数值型字段,是否进货为逻辑型字段。
该数据表记录如下:
记录号商店名商品名品牌单价库存量是否进货
1 光明商店电冰箱海尔3700 60 .F.
2 长安商店空调科龙3600 27 .T.
3 百货大楼彩电长虹2450 60 .F.
4 塞特购物中心洗衣机小鸭1600 90 .F.
5 蓝岛东区空调美的2800 2
6 .T.
6 长安商场电冰箱海尔3700 20 .T.
7 塞特购物中心彩电康佳2980 32 .F.
8 百货大楼洗衣机松下1780 12 .T.
请阅读下列程序,并将程序填写完整。
SET TALK OFF
STOR "Y" TO YN
INDEX ON 品牌TO PP
DO WHILE
ACCEPT "请输入查询的品牌:" TO CHX
SEEK CHX
IF found( )
DISPLAY
ELSE
?"无此品牌商品!"
ENDIF
W AIT "继续查找吗?(Y/N)" TO YN
ENDDO
?"再见!"
SET TALK ON
RETURN
18.下列程序用于在屏幕上显示一个由"*"组成的三角形(如下图),请填空。
*
***
*****
*******
SET TALK OFF
CLEAR
R=1
CC=10
DO WHILE R<=4
S=1
DO WHILE S<=2*R-1
@R,CC SAY "*"
CC=CC+1
S=S+1
ENDDO
CC=10-R
R=R+1
ENDDO
19.阅读下列程序,并写出执行A.PRG的显示结果。
*A.PRG *B.PRG
M=1 PRIV ATE M
N=2 M=3
DO B.PRG N=4
?"M=",M,"N=",N RETURN
RETURN
在命令窗口中执行DO A命令后,屏幕上显示的结果是M=1 N=4 。
20.设ABC.DBF为职工数据表文件,”姓名”为该表中一字段名.
SET TALK OFF
ACCE “请输入数据库表名:”TO AAA
USE &AAA
DO WHILE .NOT.EOF( )
IF .NOT. “王”$ 姓名
SKIP
LOOP
ENDIF
DISPLAY
SKIP
ENDDO
USE
本程序的功能是:
三、程序设计
1.设已建立了一个日销售库文件RXS.DBF(其中营业员代号(字符型),品名(字符型),数量
(数值型),单价(数值型),营业额(数值型)),每一营业额构成一个记录,但其中营业额字段的值都不填写,而为0.00,为查询某个营业员全天的营业额,试编制程序。
Set talk off
Close all
Clear
Use rxs
Accept "请输入营业员代号:" TO dh
sum 数量*单价to yye for 代号=dh
?mz+”当日的营业额为:”+str(yye)
use
set talk on
return
2、设班级表(banji.dbf)有字段:class(字符型)
成绩表(chengji.dbf)中有字段:
class(字符型),number(字符型),)name(字符型),score(数字型)
统计表(tongji.dbf)中字段:
class(字符型),pingjun(数字型), zuigao(数字型), zuidi(数字型)
请编写程序(tongji.prg)实现成绩的统计计算并把结果写入统计表(tongji.dbf)中*tongji.prg
sele 0
use banji
sele 0
use chenji
sele 0
use tongji
sele banji
do while not EOF()
bjh=class
high=0
low=100
count for chengji.class=bjh to rs
sum score to zf
pj=zf/rs
sele chengji
do while not EOF()
if score>high
high=score
else if score<low
low=score
endif
skip
enddo
insert into tongji(class,pingjun,zuigao,zuidi) values(bjh,pj,high,low)
sele banji
skip
enddo
3、以下表单是实现解方程02
=++c bx ax 。
编写“求解”命令按钮的代码(6分)
a=thisform.text1.value
b=thisform.text2.value
c=thisform.text3.value
if a=0
if b=0
if c=0
thisform.text4.value=”方程有无限多个解”
else
thisform.text4.value=”方程无解”
endif
else
thisform.text4.value=”方程有一个解x=”+str(-val(c)/val(b))
endif
else
p=val(b)**2-4*val(a)*val(c)
do case
case p=0
thisform.text4.value=”方程有两个同解x1=x2=”+str(-val(b)/(2*val(a))) case p>0
thisform.text4.value=”x1=”+str((-val(b)+sqrt(p))/(2*val(a)))+”,”+”x2=”+
str((-val(b)-sqrt(p))/(2*val(a)))
endcase
4、有如下的表单,对键盘输入的两个数进行加,减,乘和除四种基本运算.请编写表单的”
计算”和”退出”命令按钮的程序代码.说明:
第一操作数文本框text1;第二操作数文本框text2;计算结果文本框为text3
操作符为组合框combo1,可选择的值为“+,-,*,/”
“计算”命令按钮代码,“退出”命令按钮代码
“计算”命令按钮代码
do case
case bo1.value=”*”
thisform.text3.value=str(val(thisform.text1.value)*val(thisform.text2.value)) case bo1.value=”/”
thisform.text3.value=str(val(thisform.text1.value)/al(thisform.text2.value)) case bo1.value=”+”
thisform.text3.value=str(val(thisform.text1.value)+val(thisform.text2.value)) case bo1.value=”-”
thisform.text3.value=str(val(thisform.text1.value)-val(thisform.text2.value)) endcase
“退出”命令按钮代码
thisform.release
5、编写如下表单的加密和解密程序,即把原文的字符的ASCII值转换成ASCII小于等于32
的不可见字符
6.设计一个学生成绩管理系统,管理一门课程的成绩.要求:
(1)自己规划数据库结构,至少有姓名,平时出勤成绩,平时作业成绩,平时实习成绩, 期中考试成绩,期末考试成绩和最终存档成绩.
(2)编程序计算最终存档成绩并填入数据库中其中:
①最终存档成绩=期中考试成绩*60%+期末考试成绩*40%+三种平时成绩
②三种平时成绩总分共20分
③期中考试成绩和期末考试成绩总分都是80分。