江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2012春江苏省计算机二级VFP上机真题1

   2012春江苏省高校计算机等级考试

    二级VFP上机真题

二级     Visual  Foxpro上机试卷

    (本试卷完成时间为70分钟)

 1.首先登录考生信息,然后启动VFP并在命令窗口中执行如下命令,以设置默认的工作

   目录:

   set defa to T:

 2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。

  一、项目、数据库和表操作(12)

  打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ 

  1.JXSJ数据库中按下表所示的结构创建AB.DBF,并按表格中的要求设置相关

属性。

字段名

数据类型

宽度

字段标题

RQ

D

8

日期

LGMC

C

20

旅馆名称

XJ

C

4

星级

RZL

N

6(小数2)

入住率

 (1)设置表的注释:世博会期间上海旅馆入住率统计表;

(2)设置XJ字段的默认值:三星;

(3)设置LGMC字段的显示类:下拉列表框;

(4)设置RZL字段的有效性规则:大于等于0且小于等于100;

(5)创建索引名为ABCD的普通索引,要求按日期排序,日期相同时按入住率排序

2.AB表中输入如下记录:

RQ

LGMC

XJ

RZL

2010-05-10

锦江之星

零星

90

3.计算JYBFK字段的值:借阅天数超过30天的按超过天数罚款(借阅天数根据借阅日期JYRQ与还书日期HSRQ计算),学生(LX字段的值为X)超期每天罚0.1,教师(LX字段的值为J)超期每天罚0.2

4.YXZY表与JS表具有相同的字段YXZYDM,YXZY表为主表,JS表为子表,根据YXZYDM建立永久关系,并设置两表之间的参照完整性:更新级联、插入限制。

.设计查询(8)

    已知课程安排表(KCAP.DBF)存储了每个学期各班级所上的课程信息,其中含学期编码

(XQBM,C)、班级编号(BJBH,c)等字段;课程表(KC.DBF)存储了每门课程的信息,其中含课

程代码(KCDM,C),学分(XF,N)等字段,按如下要求修改JXGL项目中的查询CHAXUN:

    基于KCAP表和KC,查询每学年(XQBM字段的前13个字节内容指定),每个班级

的课程门数和总学分。要求输出字段依次为学年、BJBH、课程门数、总学分,查询结果按学年排序,输出去向为临时表(表名为ABCD)  

 三、设计菜单

JXGL项目中已存在菜单MENU,其中已定义了"文件"菜单栏及其中的"退出菜单"项。按如下要求设计菜单,完成后的运行效果如图1所示。

  1."文件"菜单栏修改为"文件管理",并设置其访问键"F"

  2."文件管理"菜单栏中添加菜单项"新建""打开""关闭"(其中"新建""打开"为系统菜单项),并在"打开""关闭""关闭""退出菜单"之间设置分组线。

  3."关闭"菜单项创建子菜单"数据库"""

  4.""菜单项设置"跳过"条件,使该菜单项不可用。  

  5."数据库"菜单项设置命令,命令的功能是关闭所有已打开的数据库。

  四、设计表单(10)

  表单FRM12E用于文字缩放演示。按下列要求修改表单,修改后的表单运行时如图2所示。

 

  1.设置表单的标题为"文字缩放"

  2.添加标签对象Label1,并设置相关属性:标题为"等级考试",且能根据标题内容自动调节大小。

  3.添加两个命令按钮,并按图2所示设置标题为"缩小""放大",

   同时设置"缩小"命令按钮的有关属性使其不可使用

  4."放大"命令按钮编写Click事件代码:调用表单的方法XXX(已创建)

  5.将表单的XXX方法程序代码,复制到"缩小"命令按钮的Click事件代码中,修改程序

    代码的前3,实现:

  (1)"缩小"命令按钮不可使用,“放大"命令按钮可使用;

  (2)标签对象标题逐渐缩小显示。

  五、程序改错(5)

  下列程序中PrintPrime过程的功能是查找所有小于自然数nMax的素数,并按每行nCol

素数显示在主窗口中。素数是大于1且只能被1和自身整除的整数,2357等。判断一个自然数N是否是素数的方法是:N除以从2到大于N的最小整数之间的每一个整数j,

若所有的j都不能整除N,N为素数。要求:

  1.项目中有一个程序文件Pcode,T盘中VFP01.TXT中的程序代码复制到其中并进行

修改。

  2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

1    CLEAR

2    DO PrintPrime(400,5)  

3    PROCEDURE PrintPrime

4      PARA nMax,nCol

5      i=0    &&记录素数个数

6      FOR n=2 TO nMax

7        Flag=.T.

8        FOR j=2 TO INT(SQRT(n))

9          IF n%j=0

10           Flag=.F.

11           RETURN

12         ENDIF

13      ENDFOR

14      IF FLag

15        ?? n

16        i=i+1

17        IF MOD(i,nCol)=0

18           ?

19        ENDIF

20      ENDIF

21    ENDFOR

22  ENDPROC

    参考答案

    一、项目、数据库和表操作

    LGMC字段的显示类:Listbox

    RZL字段的有效性规则:BETWEEN(RZL,0,100)

    ABCD索引表达式:DTOC(RQ,1)+STR(RZL,6,2)

    UPDATE JYB SET FK=IIF(LX='X',0.1,0.2)*IIF(HSRQ-JYRQ>30,HSRQ-JYRQ-30,0)

    二、设计查询

    SELECT LEFT(ALLT(XQBM),13)AS 学年,KCAP.BJBH,COUNT($) AS课程门数,;

       SUM(XF) AS 总学分;

     FROM JXSJ!KCAP INNER JOIN JXSJ!KC;

          ON KCAP.KCDM=KC.KCDM;

      GROUP BY 1,KCAP.BJBH;

      ORDER BY 1;

      INTO CURSOR ABCD

  三、设计菜单

  ""菜单项设置"跳过"条件:.T.

  为“数据库"菜单项设置命令:CLOSE DATABASE ALL

  .设计表单

题号

对象名

属性/事件/方法名

属性值/代码

1

Forml

Caption属性  

文字缩放

 

2

 

Labell

Caption属性

等级考试

AutoSize属性

.T.

 

3

Commandl

Caption属性

放大

 

Command2

Caption属性

缩小

Enabled属性

.F.  

4

Commandl

Click事件

ThisForm.XXX

Command2

Click事件

ThisForm.Command2.Enabled=.F.

ThisForm.Commandl.Enabled=.T.

For i=40 to 9 step  -1

    ThisForm.Labell.FontSize=i

    =INKEY(0.3)

EndFor

 

 

五、程序改错

  2   DO printPrime(400,5)      该为    PrintPrime With 400,5

  11  Return                    改为    Exit