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

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

二级Visual  Foxpro试卷

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

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

   目录:

   set defa to T:

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

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

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

  1JXSJ数据库中按下表所示的结构创建TABDBF,并按表格后的要求设置相关属性。 

字段名

数据类型

宽度

字段标题

NO

I

 

届数

JBG

C

20

举办国

JBCS

C

20

举办城市

NF

C

4

举办年份

 

(1)设置TAB表的注释:奥运举办历史表;   

(2)设置NF字段验证规则及信息举办年份必须在1896年至2012年之间;

(3)设置NO字段的默认值:表记录个数加1;

(4)N0字段创建主索引,索引名为ABCD    1

2.在TAB表中输入如下记录:

NO

JBG

JBCS

NF

1

希腊

雅典

1896

3.根据成绩字段值修改CJB表中备注字段的数据:若成绩字段值为90100,则备注字段中写“优秀;成绩字段值为8089,则备注字段中写“良好;成绩字段值为6079,则备注字段中写入“及格;成绩字段值为059,则备注字段中写入“不及格

  4.设置CJ表的更新触发器,要求课程代码为“60023的记录不允许修改。

  5.已知JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以js表为主表、KCAP表为子表,基于GH索引建立永久关系,并设置两表之间的参照完整性:插入限制。   

  二、设计查询(8)

  已知在JXSJ数据库的学生(XS)表中含有学号(XH)、院系专业代码(YXZYDM)等字段;学生就业(XSJY)表中含有学号(XH)、就业类型(JYLX)等字段。按如下要求修改查询CHAXUN

  基于XS表和XSJY表查询各院系专业04(学号的前2为“04)学生的就业率,要求输出字段包括YXZYDM、就业率,输出结果按就业率排序。(注:假定XS表中某一学生的XH字段的值在XSJY表中出现,则表示该学生就业;否则表示未就业提示使用左联接,通过判断JYLX字段的值是否为NULL确定该学生是否就业)

  三、设计菜单(5)

  项目JXGL中已存在菜单MENU,利用菜单设计器按如下要求修改菜单,完成后的运行效果如图1所示。

 

  1.为“系统管理菜单栏设置访问键”S”

  2.增加“学生成绩管理菜单栏及其子菜单“学生成绩录入和“学生成绩查询”,在菜单项之间设置分组线,并且设置快捷键Ctrl+ICtrl+Q

  3.为“学生成绩录入菜单项设置过程:首先打开学生成绩表(CJB),然后在其中增加条空记录,并以编辑方式显示该记录。

  4.为“学生成绩查询菜单项设置命令:运行根目录下的表单文件XSCJCXSCX

  四、设计表单(10)

  表单FRMl2A用于显示代码表(DMB..DBF)。按下列要求修改表单,修改后表单运行时如图2所示。

 

    1.设置表单的有关属性,使表单的标题为“代码、图标为PCICO文件,并且表单无最大化和最小化按钮。

  2.将表格控件设置为只读,且无水平滚动条。

  3.在表格控件的左侧添加一个选项按钮组控件,并设置有关属性,使其有3个选项按钮,按钮的标题分别为“政治面貌、“文化程度和“民族”,选项按钮的Value属性值为“无”(即初始运行时无选项按钮选中)

  4.为选项按钮组编写InterAetiveChange事件代码,.其功能是根据选项控制表格中显示的数据。要求用三条语句实现:

(1)将选项按钮的Value属性值赋给变量x;

(2)根据选项(变量x的值)DMB表进行筛选,仅显示lx为“政治面貌、“文化程度或“民族的记录;

(3)刷新表单。

  五、程序改错(5)  

  下列程序的功能是用数字19组成3个三位数(每个数字只能用一次),且每个三位数都是一个平方数。要求:

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

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

1    CLEAR

2    n=0

3    FOR i=101 TO 999    &&3位不含数字0的平方数存放在数组中  

4      IF SQRT(i)=INT(SQRT(i)) AND !’0’$STR(i)

5        n=n+1

6        DIME b(n)

7        b(n)=STR(n,3)

8      ENDIF

9    ENDFOR

10    FOR i=1 To n-2

11      FOR i=i TO n-1

12        FOR k=j TO n

13          c=B(i)+B(j)+B(k)

14          FOR m=1 T0 9

15            IF !STR(m,1)$c

16             L00P

17            ENDIF

18          ENDFOR

19         IF m>9

20           ?三个3位的平方数为:,b(i),b(j),b(k)

21         ENDIF   

22        ENDFOR

23      ENDFOR

24    ENDFOR

    参考答案

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

  NF字段的有效性规则:NF>=1896ANDNF="2012

  NO字段的默认值:RECCOUNT()+1

  CJ表的更新触发器:.NOTKCDM=60023

  主索引表达式:NO

  二、设计查询

    SELECT XS.YXZYDM,SUM(IIF(ISNULL(JYLX),0,1))/CNT(*) As 就业率;

      FROM JXSJ!XS LEFT OUTER JOIN JXSJ!XSJY;

       ON XS.XH=XSJY.XH;

      WHERE LEFT(XS.BJBH,2)="04;

       GROUP BY XS.YXZYDM;

          ORDER BY 2

  三、设计菜单

  学生成绩录入菜单项的过程:

    USE CJB   

    APPEND BLANK

    EDIT   

  学生成绩查询菜单项的命令:DO FORM XSCJCX

五、程序改错

7  b(n)=str(n,3)       改为b(n)=STR(i,3)

16  END  IF          改为EXIT