VFP_2012复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习题
一、单选题
1.下列对象中,是容器对象的是。
A.命令按钮
B.表格
C.时钟
D.文本框
2.Load,Activate,Init事件的执行顺序为__________。
A.Load,Init,Activate
B.Init,Activate,Load
C.Activate,Load,Init
D.Init,Load,Activate
3.在参照完整性的设置中,如果当主表中删除记录后,要求删除子表中的相关记录,应将“删除”
规则设置为。
A.限制
B.级联
C.忽略
D.任意
4.下列有关数据库概念叙述正确的是。
A.概念模型就是关系模型
B.关系模型就是关系
C.关系模式就是关系
D.不同的关系可以具有相同的关系模式
5.用户创建一个包含备注型字段自由表时,除生成DBF文件外,还必定生成文件。
A.CDX B.PRG C.FPT D.QPR
6.在数据库JXSJ.DBC中,要为视图MYVIEW的字段GH设置标题,可先打开数据库JXSJ.DBC,再使用函数DBSETPROP(“MYVIEW.GH”,,“CAPTION”,“工号”)。
A.“FIELD” B.FIELD C.VIEW D.“VIEW”
7.下列对象中,是容器对象的是。
A.命令按钮
B.选项按钮组
C.标签
D.文本框
8.Visual FoxPro是一个________ __。
A.数据库系统
B.数据库管理系统
C.数据库
D.数据库管理员
9.库表字段的默认值保存在文件中。
A.表
B.数据库
C.项目
D.表的索引
10.函数AT(“人口”,"南京人口学院")的返回值是__________。
A.3
B.0
C.5
D.4
11.在参照完整性设置中,要实现删除主表记录时,若子表存在相关记录则禁止删除的规则,应设置
“删除”规则为________。
A.限制 B.级联 C.忽略 D.任意
12.如果要对自由表某一字段的数据值建立唯一性保护机制,以下表述中正确的是________。
A.对该字段创建主索引
B.对该字段创建唯一索引
C.对该字段创建候选索引
D.对该字段创建普通索引
13.如果不允许对一个数据库表进行插入操作,那么可以对该表__________。
A.设置INSERT触发器为.T.
B.设置INSERT触发器为.F.
C.设置UPDATE触发器为.T.
D.设置UPDATE触发器为.F.
E XS IN 0 命令的功能是__________。
A.选择第0个工作区打开表
B.选择未使用的最小工作区打开表
B.选择任意工作区打开表 D.选择当前工作区打开表
15. 参照完整性的作用是__________控制。
A. 字段数据的输入
B. 记录中相关字段之间的数据有效性
C. 表中数据的完整性
D. 相关表之间的数据一致性
16.已知M=“X”,M1=“Y”,X=123,Y=789,则?&M.1的输出为。
A.123 B.789 C.124 D.出错
17.在默认情况下,表达式“ABCD”=“AB”的值为。
18.如果要引用VFP屏幕对象,则可以直接使用下列关键词。
A.THIS
B.THISFORM
C.PARENT
D._SCREEN
19.表单的集合属性和计数属性分别是。
A.Forms和FormCount
B.Pages 和PageCount
C.Controls和ControlCount
D.Objects和ObjectCount
20.组合框(ComboBox)是_________控件。
A.数据绑定型
B.非数据绑定型
C.数值型
D.非数值型
21.在使用自定义类创建的对象中,不能查看或修改类中编写的事件代码,这是指类的:________。
A.继承性
B.多态性
C.封装性
D.抽象性
22.表单MF已隐藏(Hide),使用Show方法使其显示并激活的命令是。
A.DO Show
B.Show
C.MF.Show
D.MF::Show
23.在数据库JXSJ.DBC中,要获得表JS.DBF的字段GH的标题,先打开数据库JXSJ.DBC且为当前数
据库,再使用函数DBGETPROP(______,”FIELD”,”CAPTION”)。
A.JS.GH
B."JS.GH"
C.GH
D. "GH"
24.VFP系统中,当用户将某个表记录或整个表文件都锁定时,只读命令依然可以工作。
下列命令在此时依然可以工作。
A.INDEX
B.REPLACE
C.APPEND
D. SELECT-SQL
25.当某个控件绑定到一个字段时,移动记录指针后如果字段的值发生变化,则控件的属性的值
也随之变化。
A.VALUE C.CAPTION D.没有
26.关系模型的基本结构是________。
A.二维表
B.树型结构
C.无向图
D.有向图
27.数据库表移出数据库后,变成自由表,该表的________仍然有效。
A.字段的有效性规则
B.字段的默认值
C.表的长表名
D.结构复合索引文件中的候选索引
28.用户创建一个数据库并保存在磁盘上,则在磁盘上生成了________个相应文件。
A.1
B.2
C.3
D.4
29.数据库表触发器有三种,下列不是触发器的是________。
A.插入触发器
B.删除触发器
C.更新触发器
D.浏览触发器
30.SELECT 0 命令的功能是__________。
A.选择第0个工作区
B.选择没使用的最小编号的工作区
C.选择主表所在工作区
D.选择子表所在工作区
31.下列判断X数值变量是偶数的表达式中,错误的是_________。
A.MOD(X,2)=0 B.INT(X/2)*2=X C.X%2=0 D.X%2=1
32.表达式{^2007/04/01 00:00:00}+10的值为。
A.{^2007/04/01 00:00:10} B.{^2007/04/11 09:00:00}
C.{^2001/04/01 00:10:00} D.{^2001/04/01 10:00:00}
33.在数据库JXSJ.DBC中,要获得表JS.DBF的字段GH的标题,先打开数据库JXSJ.DBC且为当前数据库,再使用函数DBGETPROP("JS.GH",________,"CAPTION")。
A. "field"
B. field
C. view
D. "view"
34.下列对象中,是容器对象的是。
A. 命令按钮
B. 页框
C. 标签
D. 文本框
35.下列几组控件中,均具有ControlSource属性的是________。
A.EditBox、Gird、Combobox
B.Listbox、Label、OptionButton
boBox、Gird、Timer
D.CheckBox、EditBox、OptionButton
A.152
B.8
C.1+X
D.出错
37.表达式NOT " ABC">" ABD" OR 2<3的值为________。
A.Y
B.y
C..T.D..N.
38.当一个文本框对象失去焦点时,该对象会产生________事件。
A.Getfocus
B.When
C.Setfocus
D.Lostfocus
39.如果要引用一个控件所在的直接容器对象,则可以使用下列________关键词。
A.THIS
B.THISFORM
C.PARENT
D.都可以
40.文本框绑定到一个字段后,对文本框中的内容进行输入或修改时,文本框中的数据将同时保存到
________中。
A.VALUE和NAME
B.VALUE和该字段
C.VALUE和CAPTION
和该字段
41.不能作为索引关键字段的类型是________。
A.日期型
B.备注型
C.字符型
D.数值型
42.在VFP系统中,用户不能自定义对象的。
A.新属性
B.新方法
C.新事件
D.名称
43.当一张二维表(A)的主关键字被包含到另一张二维表(B)中时,它就称为B表的_________。
A.主关键字 B.候选关键字 C.外部关键字 D.超关键字
44.项目管理器的功能是组织和管理与项目有关的各种类型的。
A.文件 B.程序 C.字段 D.数据
45.列表框(ListBox)是__________控件。
A.数据绑定型 B.非数据绑定型 C.数值型 D.非数值型
46.利用索引进行快速查找记录的命令是___________。
A.LIST
B.LOCATE
C.SEEK
D.INDEX
47.若要在文本框失去焦点前检验文本框的值,应在___________事件中写入相应的代码。
A.InteractiveChang
B.Click
C.Valid
D.InputMask1
48.以下说法正确的是___________。
A.主索引和唯一索引的索引表达式不允许有重复值
B.在一个数据库表中可创建多个主索引
C.主索引和候选索引只能创建在结构复合索引文件中
D.候选索引既可以建立在数据库表中也可以建立在自由表中
49.在定义表结构时,以下___________数据类型的字段宽度都是固定的。
A.字符型、货币型、数值型 B. 字符型、备注型、二进制备注型
C.数值型、货币型、整型 D. 整型、日期型、日期时间型
50.将数据库表移出数据库成为自由表后,其___________仍然有效。
A.字段的默认值 B.表的验证规则 C.候选索引 D.记录的验证规则
51.在VFP系统中,可用EMPTY( )函数测试表达式的值是否为空,则EMPTY(0)和EMPTY(SPACE(0))的返回值分别为___________。
A. .T. 和 .T. B. .F. 和 .F. C. .T. 和 .F. D. .F. 和 .T.
52.表达式BETWEEN(“2”,”12”,”21”)的值为___________。
A.Y
B.y
C..T.
D..N.
53.所有基类都有的事件叫最小事件集,最小事件不包括___________事件。
A. Init
B. Destroy
C. Click
D. Error
54.在下列与项目设置、连编等操作相关的叙述中,错误的是。
A.一个项目中只能设置一个主程序
B.在连编项目之前,必须将所有的文件设置为包含
C.将项目连编为可执行程序后,该可执行程序可以在不启动VFP的情况下执行
55.在VFP系统中,运行表单文件frmxs.scx的命令是___________。
A.do frmxs
B.do frmxs.scx
C.do form frmxs
D.run form frmxs
56.在参照完整性设置中,要实现删除主表记录时,自动删除子表中相应记录的功能,应设置”删除”规则为___________。
A.限制
B.级联
C.忽略
D.任意
57.标签的___________属性可以设置控件是否自动换行。
A. Autosize
B. ControlSource
C. WordWrap
D. Caption
58.数据库表之间创建的永久关系保存在__________中。
A.数据库表
B.数据库
C.表设计器
D.数据环境设计器
59.下列关于表的索引描述中,错误的是__________。
A.复合索引文件的扩展名为.cdx
B.结构复合索引文件随表的打开而自动打开
C.当对表编辑修改时,其结构复合索引文件中的所有索引自动维护
D.每张表只能创建一个主索引和一个候选索引
60.创建数据库后,系统自动生成扩展名为__________的三个文件。
A..SCX、.SCT、.SPX
B..DBC、.DCT、.DCX
C..PJX、 .PJT、 .RPJ
D..DBF、.DBT、.FPT
61.在数据库JXSJ.DBC中,要为视图MYVIEW的字段GH设置标题,可先打开数据库JXSJ.DBC,再使用函数DBSETPROP("MYVIEW.GH","field",__________ ,"工号") 。
A.”CAPTION”
B.”Default”
C.”Rule”
D.”View”
62. 表(XS.DBF)中含有50条记录,执行下列命令后显示的记录序号是__________。
USE XS
GO 10
LIST NEXT 2
A.10,11
B.11,12
C.49,50
D.1,2
63.在命令窗口中执行了命令X=5后,则默认该变量的作用域是__________。
A.全局
B.局部
C.私有
D.不定
64.在命令窗口中执行了命令X=″ABC″后,则默认该变量的作用域是__________。
A.全局
B.局部
C.私有
D.不定
65.表(XS.DBF)中含有50条记录,执行下列命令后显示的记录序号是__________。
USE XS
GO 10
LIST NEXT 4
A.10,11,12,13
B.11,12,13,14
C.4,5,6,7
D.1,2,3,4
66.下列命令中__________可以在共享方式下运行。
A.APPEND
B.PACK
C.MODIFY STRUCTURE
D.ZAP
67.数据库之间的创建永久关系保存在中。
A.数据库表
B.数据库
C.表设计器
D.数据环境设计器
68.使用索引的主要目的是。
A.提高查询速度
B.节省存储空间
C.防止数据丢失
D.方便管理
69.在数据库与数据库表之间的双向链接中,前链保存在中。
A.数据库文件
B.其中一个数据库表
C.每一个数据库表
D.不确定
70.报表的数据源不包括。
A.视图
B.自由表
C.数据库
D.文本文件
71.下列命令可用来设置表的打开方式为独占。
72. 让隐藏的MeForm表单显示在屏幕上的命令是。
A. MeForm.Display
B. MeForm.SHOW
C. MeForm.list
D. MeForm.See
73. 在建立两表之间的一对多永久关系时,必须设置。
A. 主表的主索引和子表的普通索引
B. 主表的主索引和子表的主索引
C. 主表的的普通索引和子表的主索引
D. 主表的的普通索引和子表的普通索引
74. 目前数据库管理系统(DBMS)有许多不同的产品。
在下列DBMD产品中,不属于Microsoft公司开发的是。
A.Visual FoxPro
B.Access
C.SQL Server
D.Oracle
75. 对于自由表来说,不可以创建的索引类型是。
A.主索引
B. 候选索引
C. 唯一索引
D. 普通索引
二、填空题
1.数据库是一种容器。
从项目管理器窗口看,数据库可以包含的子项:表、本地视图、_______________、连接和存储过程。
2.已知x=3145.25,则表达式Round(x,-1)的值为。
3.ACTIVEFORM是对的引用,THISFORM是对的引用。
4.打开一个空表,函数EOF()的值为________,RECNO()的值为_______。
5.如果在连编应用系统时选择了”连编可执行程序”项,则项目将编译成一个扩展名为的文件。
6.将文本框对象的________属性设置为”真”,表单运行时,该文本框可以获得焦点,但文本框中显示的内容为只读。
7.要使文本框值不可更改且不可获得焦点,可设置 _______________ 属性为.F.。
8.要使文本框值不可更改但可获得焦点,可设置_________________属性为.T.。
9.执行下列命令后:
select 1
use xs
use js in 0
brow
屏幕浏览_______表的记录。
10.表达式val(″3a4bcd″)的值为 _____________。
11.为命令按钮(其CAPTION为EXIT)设置访问键[Alt]+X,则其Caption属性值应改为____________。
12.要彻底删除教师表中的一条记录,应先用delete命令设置删除标记,然后再用
命令进行物理删除。
13.关系模型是用____________的结构形式表示实体及其实体间的关系。
14.在VFP6.0中可以通过设置ShowWindow属性和Desktop属性创建以下三种表单:子表单、_ 和浮动表单。
15.表格(Grid)直接包含的对象是_____________。
16.一幅照片可以链接或嵌入到表的____________型字段中。
17.如果要引用一个控件所在的直接容器对象,则可以使用_______________关键词。
18.Visual Foxpro 6.0循环控制语句有:DO WHILE…ENDDO、FOR…ENDFOR 和。
19.英文缩写ODBC的中文含义是___ ______。
20.表达式LEN(TRIM(STR(24)))的值为 _____________。
21.计时器(Timer)控件中设置时间间隔的属性为_______,定时发生的事件为___________。
22.表单的________方法用来刷新表单,表单的_________方法用来从内存释放表单。
23.为使被逻辑删除的记录(未物理删除)不再显示、不再参加统计,可以使用_____________命令。
25.对于数据绑定型控件,通过对 ___________ 属性的设置来绑定控件和数据源。
26.表达式YEAR(DATE())的数据类型为_____________。
27. 表达式MONTHR(DATE())的数据类型为_______________。
28.查询文件以_______为扩展名保存,视图是一个_______表,不以文件形式保存。
29.属性Visible的意义是______________________________________。
30.数据库是一种容器。
从项目管理器窗口看,数据库可以包含的子项:表、本地视图、远程视图、连接和_________________。
31.使用LOCAL、PRIVATE、PUBLIC关键字可以指定变量的作用域。
在命令窗口中创建的变量与_______________关键字指定的变量作用域相同。
32.属性用于指定与表格控件相绑定的数据源,而属性用于指定与其它控件相绑定的数据源。
33.菜单文件的扩展名为_______________,而菜单可执行文件的扩展名为_____________。
34._VFP是对_____________________的引用。
35.对象可以增加属性和______________,但不能增加________________。
36.已知x=3145.25,则表达式mod(int(x/10),-7)的值为。
37.在表单运行时,要用setall()方法把表单中所有文本框对象的ReadOnly属性设置为”真”,其命令是:Thisform.setall(__________,_________,__________)。
38.执行下列命令后:
Set exclusive off
Use xs
Use js exclusive in 0
XS表的打开方式是_________,JS表的打开方式是___________。
39.表达式chr(asc(″abcd″)+2)的值为_____________。
40._Screen是对 ________________ 的引用。
41.一个OLE对象可以连接或嵌入到表的____________ 型字段中。
42.对表执行PACK命令时,表必须以___________方式打开。
43.假定系统日期为2005-5-1,则表达式DTOC(DATE(),1)的值为_____________。
44.打开一个有10条记录的数据库表,执行GO BOTTOM后,函数EOF()的值为,RECNO()的值为。
45.在数据库与数据库表之间的双向链接中,前链保存在中。
46.若要实现先按性别(XB,C,2)排序,性别相同时再按出生日期(CSRQ,D)排序,则其索引表达式为。
47.执行下列命令后:
var_name=“x1”
&var_name=100
? var_name,x1
屏幕上显示。
48.?Str(34567.3)的输出为。
49.在SELECT-SQL语句中,DISTINCT选项的功能是。
50.选项按钮组(Optiongroup)直接包含的对象是。
51.已知x=3145.65,则表达式ROUND(X,0)的值为__________。
52.已知x=3145.65,则表达式ROUND(X,1)的值为__________。
53.表达式type(STR(YEAR(DATE())+10))的数据类型为___________。
54.与Thisform.Release功能等价的命令为___________。
55.在表单的Load、Activate和Init这三个事件中,___________事件不能引用表单及表单中的对象。
57.如果学生表(xs.dbf)已在当前工作区中打开,要筛选出专业代号zydh为”102001”的记录的命令是___________。
58.表达式val(“3e4”)的值为__________。
59.通用型数据类型只能用于表中字段的定义,用于存储__________对象。
60.将控制绑定到一个字段,移动记录后字段的值发生变化,这时对象的__________属性的值也随之变化。
61.打开一张表时,__________索引文件将自动打开,表关闭时它将自动关闭。
62. 已知x=12345.678,则表达式Round(x,1)的值为。
63. 表达式CHR(ASC(″A″)+3)的值为_____________。
64. Thisform.Hide功能为。
65. VFP中的数据完整规则包括:字段有效性规则、、参照完整性规则和用户自定义规则。
66. 用于统计当前工作区中表的字段个数的函数是。
67. 在表中要存储照片,可设置字段的数据类型为。
68. 若教师表(JS.DBF)已打开,且具有索引JSGH,要设置其为主控索引的命令是:。
69. 建立多表查询时,多个表之间建立了联接,联接的类型有四种,分别为、左联接、右联接和完全联接。
70. 已知Y=1234.56,则表达式STR(Y,6,1)的值为。
71. 已知Y=123,表达式type(″Y″)的返回值为。
72. 一个远程数据源通常是一个远程数据库服务器或文件,并且已为它在本地安装了ODBC驱动程序并设置了ODBC数据源名称。
在VFP中,建立远程数据连接的主要目的是创建。
73. 与自由表相比,数据库表可以设置许多字段属性和表属性。
其中,表属性主要有表名(即长表名)、表注释、记录有效性和等。
74. 利用COPY TO 命令可以将当前工作区中表的全部或部分数据复制到其他类型的文件中,例如,使用COPY TO temp FOR RECNO()<=10 命令,可以将当前工作区中表的前10条记录数据复制到TEMP文件中,且TEMP文件为Microsoft Excel格式文件。
75.VFP支持空值(用NULL或.NULL.表示),从而简化了对未知数据的处理。
在表的浏览窗口中,若要以交互方式给某字段输入空值,可以按组合键。
三、根据要求编写SQL语句或写出给定SQL语句的意义
已知学生管理数据库中有二个表,学生表和成绩表是一对多的关系,表结构分别如下:
学生表xs.dbf
XH C,8 学号
XM C,8 姓名
XB C,2 性别
XIMING C,10 系名
CSRQ D 出生日期
NL N,2 年龄
成绩表cj.dbf
XH C,8 学号
KCH C,2 课程号
KCM C,20 课程名
CJ N,3 成绩
XF L 选修(值为.t.时,表示为选修成绩,否则为必修)
(1)查询所有系科各课程平均分,要求输出”系名”、”课程名”、”平均成绩”。
(2)查询所有系科男女生各课程平均分,要求输出”系名”、”性别”、”课程名”、”平均成绩”。
(3)查询成绩优秀者学生名单(至少一门成绩大于等于90分为优秀),要求输出”学号”、”姓名”并唯一。
(4)查询所有未选修”02”号课程的学生学号及姓名。
(5)查询不及格成绩超过3门的学生名单(几个线为60分),要求输出“学好”、“姓名”。
(6)查询年龄在17岁以下(包括17岁)的男同学的”学号”、”姓名”。
(7)查询各课程的最高分及其得主,并按学号升序排序。
要求输出学号、姓名、课程名、最高分。
(8)已知学号字段的第1,2位为系科代码,查询”01”系科所有学生的成绩,要求输出”学号”,”
姓名”,”课程名”,”成绩”。
(9)查询男,女生人数及其成绩平均分。
(10)查询所有不及格学生的各科成绩(60分为及格),要求输出”学号”、”性别”、”课程名”、”成绩”。
(11)查询所有学生获得优秀成绩的门数(成绩大于90分为优秀),输出”学号”、”姓名”、”优秀门数”。
(12)查询每位学生成绩平均分,要求输出“学号”、“姓名”、“必修平均成绩”。
(13)查询每位学生必修成绩平均分,要求输出“学号”、“姓名”、“必修平均成绩”。
(14)查询均分在80分及其以上的学生成绩,要求输出“学号”、“姓名”、“平均成绩”。
(15)查询不及格成绩超过3门的学生名单(及格线为60分),要求输出“学号”、“姓名”。
(16)查询成绩优秀者学生名单(各课程均分大于等于90分,且单科不得低于80分),要求输出”
学号”、”姓名”并唯一。
(17)查询成绩优秀者学生名单(各课程总分大于等于400分,且单科不得低于80分),要求输出”
学号”、”姓名”并唯一。
(18)利用SQL语句,为学生表插入一条记录,学号为”09010101”,姓名为”李四”,性别为”女”,出生日期为1999年04月02日。
(19)更新成绩表CJ.DBF的CJ字段的值为原来值的1.1倍,当超过100分时计作100分。
(20)更新成绩表CJ.DBF表,为CJ字段增加5分,当超过100分时计作100分。
(21)在学生表XS中增加一备注型字段BZ;
(22)将学生表XS.DBF的XIMING字段长度增加到12位。
(23)删除学生表XS.DBF的NL字段。
(24)更新学生表XS.DBF的NL字段的值(年龄=系统当前年度-出生年度)。
(25)更新学生表XS.DBF的NL字段的值,使得每位学生年龄增加1岁。
(26)为成绩表插入一条记录,内容为(”09010101”,”01”,”数据库”,95)
(27)利用SQL语句,为学生表插入一条记录,学号为”09010101”,姓名为”张三”,性别为”
男”,出生日期为1990年04月01日。
(28)删除成绩表中所有成绩小于60分的记录
(29)利用SQL语句,为成绩表插入一条记录,学号为”09010101”,课程为”05”,课程名为”数据库”,成绩为80。
(30) SELECT * FROM CJ WHERE XH NOT IN ( SELECT XH FROM XS )
(31) SELECT XH FROM CJ GROUP BY XH HAVING COUNT(*) > 2 ORDER BY XH
(32)SELECT Xs.xh,Xs.xm,SUM(CJ.CJ) AS zf;;
FROM jxsl !xs INNER JOIN jxsl!cj;
ON Xs.xh=Cj.xh GROUP BY Xs.xh;
Union;
Select “总计” as xh, space(8) as xm, SUM(CJ.CJ) AS zf;;
FROM jxsl ! xs INNER JOIN jxll !cj;
ON Xs.xh=Cj.ch
WHERE XH IN (SELECT XH FROM CJ WHERE XS.XH=CJ.XH;
AND CJ.KCDH=‟02‟)
(34)SELECT * FROM XS WHERE XH NOT IN (SELECT XH FROM CJ)
(35)SELECT * FROM XS WHERE XH NOT IN (SELECT XH FROM CJ WHERE CJ<60)
(36)SELECT * FROM CJ WHERE XH NOT IN (SELECT XH FROM XS)
(37) ALTER TABLE XS DROP COLUMN NL
(38) ALTER TABLE XS DROP COLUMN CSRQ
(39) UPDATE CJ SET CJ=CJ*0.98 WHERE KCH=‟02‟
(40)DELETE FROM xs WHERE xb=“男”
(41)ALTER TABLE cj DROP COLUMN kch
(42)ALTER TABLE XS ADD COLUMN JL M
(43)ALTER TABLE XS ADD COLUMN ZP G
四、根据要求填空
1.如下图所示,在文本框中TEXT1输入文字回车后,自动添加到列表框中,双击列表框中项目,则移出并放回文本框中。
文本框对象TEXT1的KEYPRESS事件代码:
LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode=
if ! empty(this.value)
endif
endif
列表框对象LIST1的DblClick事件代码:
if this.listindex>0
thisform.text1.value=
this.removeitem(this.listindex)
endif
2.如下图所示,在文本框中 TEXT1 输入文字回车后,自动添加到列表框中,双击列表框中项目,则移出并放回文本框中。
文本框对象TEXT1 的KEYPRESS事件代码:
LPARMETERS nKeyCode, nShiftAltCtr1
If_____________=13
If ! empty(this.value)
Thisform.list1.additem(_____________ )
Endif
Endif
if this.listindex>0
thisform.text1.value=_______________
this.removeitem(this.listindex)
endif
3.下面代码实现如图所示的表单。
单击”QUIT”按钮,退出程序。
Frmmy=createobject(“form”)
Frmmy.addobject(“mycircle”,”shape”)
With frmmy. mycircle
.left=150
.top=50
.width=100
.height=100
.curvature=_______________
.backcolor=rgb(255,0,0)
Endwith
Frmmy.______________(“myexit”,”mycommandbutton”)
Frmmy.show
Frmmy.mycircle.visible =.t.
Frmmy.myexit.visible =.t.
Read events
Define class mycommandbutton as _________________
Caption=“quit”
Height=25
Procedure click
Clear events
Thisform.release
Enddefine
4.有如下表单,功能是在左边的列表框中选择学生的姓名,右边各文本框中显示出学生的其他信息。
列表框的RowSourceType属性为6(字段),RowSource属性为XS.XM,右边各文本框都用ControlSource属性和学生表中的字段进行了绑定。
该表单的Caption属性为。
为了实现在列表框中选择一个学生的姓名,表单右边各文本框中自动显示出该学生的信息,则必须在列表框的InteractiveChange事件中包含代码。
5.以下程序的功能是删除字符串中所有空格,如DeleteSpace(“abc de h “)输出为”abcdeh”。
FUNCTION DeleteSpace()
parameters cStr
cResult=space(0)
for n=1 to _________________
if subs(cStr,n,1)=space(1)
loop
endif
cResult=cResult+subs(cStr, )
endfor
return cResult
endfunc
6. 下面是输入学生学号查询学生姓名的程序,能够反复输入学号查找对应的姓名,当输入为空时,退出程序执行。
(XS表结构如下,xs_xh是按学号建立的索引名)。
学生表xs.dbf
XH C,8 学号
XM C,8 姓名
XB C,2 性别
CSRQ D 出生日期
SET TALK OFF
USE XS
DO WHILE
ACCEPT “请输入姓名” TO MXH &&键盘输入语句,用于键盘输入学号
IF EMPTY(MXH)
ENDIF
SEEK MXH
IF
ELSE
? “无此姓名!!!”
ENDIF
ENDDO
USE
RETURN
7. 下面自定义函数DeleteSpace()的功能是将一个字符串中的所有空格删除。
FUNCTION DeleteSpace()
Parameters cStr
CResult=space(0)
For n=1 to len(cStr)
If subs(cStr, n, 1)=space(1)
Endif
Cresult= Cresult+subs(cStr,n,1)
Endfor
Return
Endfunc
8. 以下程序的功能是根据输入的学号,输出该学生的各门功课的成绩及平均成绩。
(表结构如第三题所示)
Set talk off
Use cj
X=0
Y=0
Accept “请输入学号” to mxh &&用于键盘输入学
&&根据学号定位记录
Do while __________________
X=X+cj
?xh, kcm, cj
_____________________ &&统计考试的门数
CONTI &&继续查找
Enddo
If ___________________________
X=X/y &&计算平均成绩
Endif
?”考试门数位:”+alltrim(str(y))+”平均成绩为:”+alltrim(str(x))
Use
Return
9. 以下程序的功能是根据输入的学号,输出该学生的各门功课的成绩及平均成绩。
(表结构如第三题所示)
Set talk off
Use cj
X=0
Accept “请输入学号” to mxh &&用于键盘输入学号
Locate for alltrim(xh)=mxh &&根据学号定位记录
Do while __________________
X=X+cj
?xh, kcm, cj
_____________________ &&统计考试的门数
___________________________ &&继续查找
Enddo
If ___________________________
X=X/y &&计算平均成绩
Endif
?”考试门数位:”+alltrim(str(y))+”平均成绩为:”+alltrim(str(x))
Use
Return
10.下列程序的功能是统计一个字符串中包括多少个汉字和字母(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCⅡ码值大于127,则为一个汉字内码的第一个字节。
cString=‟南京师范大学NANJING NORMAL UNIVERSITY百年老校‟
store 0 to nCountE, nCountC
DO WHILE len(cString)>0
IF ASC(LEFT(cString,10)) > 127
nCountC=nCountC + 1 &&汉字计数
cString=
ELSE
&&字母计数
CString=SUBSTR(cString,2)
ENDIF
ENDDO
WAIT WINDOWS …汉字数为‟ + STR(nCountC) + …字母数为… + STR(nCountE)
11.下面是一段0、1代码串的压缩程序,其输出结果为”压缩后为14*5*9*3*5*4”,即代表首位为1,连续4个后是5个0,然后是连续9个1,……。
Cstring=‟111100000111111111000111110000‟
Cresult=left(cstring,1)
Ncount=1
For n=2 to
If subs(cstring,n,1)=subs(cstring,n-1,1)
Ncount=ncount + 1
Else
Cresult=cresult + alltrim(str(ncount))+”*”
Endif
Endfor
Cresult=cresult + alltrim(str(ncount))
12.下列程序的功能是统计一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。
cString=“微软(Microsoft)公司开发的视窗(Windows)操作系统”
nCount=0
DO WHILE
IF ASC(LEFT(cString,1))>127
nCount=nCount+1
cString=SUBSTR(cString,3)
ELSE
cString=
ENDIF
ENDDO
WAIT WINDOWS “汉字个数为”+STR(nCount)
13. 下列程序的功能是将二进制转化成十进制数表示。
nNumber=101101 &&赋初值(认定它为二进制数)
cNumber=ALLTRIM(STR(nNumber))
nResult=0
FOR n= TO 1 STEP-1
C=left(cNumber,1)
IF c=‟0‟
nResult=nResult*2
ELSE
nResult=
ENDIF
cNumber=SUBSTR(cNumber,2)
ENDFOR
W AIT WINDOWS …十进制数表示为‟+STR(nResult)
五、编写程序
1.求出1~500之间的所有素数,并计算这些素数之和。
2.试编写求公式()()!121
120
1
+-∑=n n n
的值程序。
3.利用循环语句编写计算 1/1!+1/2!+1/3!+……+1/10! 的程序。
4.利用循环语句编写9*9乘法口诀表,要求输出三角形式样,直接在屏幕对象中输出。
5
6.利用循环计算S=300+304+308+312+…+396的值。
7. 计算级数S=1+1/2+1/3+1/4+…+1/i+…,使S的值最接近2.0且不大于2.0,并输出项数及S的值。
8.如下图所示,表单中包含容器对象Container1、开始命令按钮COMMAND1和结束命令按钮COMMAND2,Container1中又包含显示”热烈欢迎”文字的标签LABEL1和计时器TIMER1对象。
单击开始命令按钮”热烈欢迎”向左每秒5个像素速度移动,当移出左边界时,自动从右侧移入,单击结束命令按钮文字停止移动。
填写下列有关属性值及事件代码。
(1)计时器TIMER1的INTERVAL属性:_______ __________ _____;
(2)COMMAND1 的CLICK事件代码:_______________ ____________;
(3)COMMAND2 的CLICK事件代码:_____________ ______________;
(3)编写计时器TIMER1 的TIMER事件代码:
9.用选项按钮组及复选框来控制输入文本的字体及字形,如下图所示。
已知建立的对象有文本框TEXT1,标签LABEL1、LABEL2,选项组按钮Optiongroup1,复选框Check1、
(1TEXT1中的文字字体(字体属性为fontname)。
(2)编写Check1的CLICK事件代码,设置文本框TEXT1中的文字字形为斜体(斜体属性为fontitalic)。
10.如下图所示,表单用来查询调整教师的基本工资。
实现以下功能:
(1)表单在运行时自动居中,工龄的取值允许为(1,40)
(2)单击”工资调整”命令按钮,按下列要求对教师的基本工资进行调整(教师表为JS.DBF, 职称、基本工资字段分别为ZC , JBGZ);
教授和副教授:增加500
讲师:增加300
其他:增加200
填写下列有关属性及代码程序段:
(1)表单的caption属性值为_____________________;
表单的autocenter属性值为___________________;
(2)微调框的spinnerhighvalue为____________________;
微调框的spinnerlowvalue为_____________________;
微调框的keyboardhighvalue为_____________________;
微调框的keyboardlowvalue为______________________;
(3)编写”工资调整”命令按钮的Click事件代码。
11.下图是一个计算三角形面积的表单,其中表示三角形三边长的文本框对象为A,B,C且它们的VALUE初值均已设置为零,表示面积的文本框对象为S。
要求单击”计算”按钮对象 COMMAND1,计算三角形面积(保留2位小数),若输入的值不能构成三角形则在S中显示”边长非法”,试编写COMMAND1的CLICK事件代码。
[提示:三角形面积公式S=SQRT(P*(P-A)(P-B)(P-C)),其中P=(A+B+C)/2,A,B,C为边长]。