《2020年计算机等级考试二级VisualFoxPro上机试题及解题思路汇总120.pdf》由会员分享,可在线阅读,更多相关《2020年计算机等级考试二级VisualFoxPro上机试题及解题思路汇总120.pdf(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2 0 2 0 年 计 算 机 等 级 考 试 二 级V i s u al F o x P r o 上机试题及解题思路汇总12 0计算机等级考试二级VisualFoxPro上机试题及解题思路汇总1-20一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)注意:基本操作题为4道SQL题,,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做相应行为空。在考生文件夹下完成下列操作:1.利用SQL;INSERT命 令 插 入 记 录 600028,5500)o“股票代码”为600007的股票“现价”。“股票代码”为600000的股票。本题的主要考核点:
2、SQL语句的使用。1、SELE*FROM stock_sl INTO DBFstock_bk2、INSE INTO stock_bk(股票代码,买入价,现价,持有数量)VALU(“600028”,5500)3、UPDA stock_bk SET 现价二 WHER 股票代码=600007”4、DELE FROM stock_bk WHER 股票代码二”600000”二、简单应用(2小题,每 题2 0分,计40分)1、在考生文件夹下建立数据库sc2,将考生文件夹下的自由表score2添 加 进sc2中。根据score2表建立一个视图score_view,视图中包含的 字 段 与score2表相同,
3、但视图中只能查询到积分小于等于1500的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表v2o2、建 立一个菜单filemenu,包括两个菜单项,文件,和,帮助,文件,,将激活子菜单,该子菜单包括“打开“、“存为“和“关闭“三个菜单项”关 闭”子 菜 单 项 用SET SYSMENU TODEFAULT命令返回到系统菜单,其它菜单项的功能不做要求。第1题,本题的主要考核点是视图的建立。在“项目管理器”中选择一个数据库,选择”本地视图”,然后选择“新建”按钮,打开“视图设计器”。选择所有字段,在”筛选“栏内输入条件,积分=1500”,关闭并保存。在数据库设计器中打开视图,
4、用sort o n积 分to v 2命令存入新表。第2题,本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择,文件,菜单中的,新建“命令,在“新建”对话框中选择“菜单”,单击“新建文件“按钮。在“新建菜单”对话框中选择“菜 单”按 钮,调 出”菜 单 设 计 器”。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入,文件”、”帮助“,”文件,结果为子菜单,单击编辑;在子菜单的菜单名称中输入“打开“、“存为“、“关闭“,“关闭 结果为命令 SET SYSMENU TO DEFAULT n。三、综合应用(1小题,计30分)在 考 生 文 件 夹 下 有 学 生 成 绩 数
5、据 库XUESHENG3,包括如下所示三个表文件以及相关的索引文件:1、(学生文件:学 号C 8,姓 名C 8,性别C 2,班 级C 5;,索引键:学号)2、(成绩文件:学 号C 8,课 程 名C 20,成绩;,索引键:学号)3、(成绩表文件:学号C 8,姓 名C 8,班级C 5,课 程 名C 12,)设计一个名为X S3的菜单,菜单中有两个菜单项,计算”和,退 出 程 序 运 行 时,单击“计算,菜单项应完成下列操作:将所有选修了,计算机基础”的学生的”计算机基础”成绩,(事前须将文件中原有数据清空)。单击“退出“菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)本题的主要考核点
6、:结构化查询语言(SQL)中的联接查询、查询的排序、查询的去向等知识解题思路:在本题中要想得到所有选修了“计算机基础”的学生的“计算机基础”成绩及学生的姓名等信息、,就需要用到联接查询。因为学生的姓名、而这两个表要联接起来能够通过“学号”字段。有以下两种联接查询的形式:SELECT,姓名,班级,课程名,成 绩FROM XS,CJ WHERE=AND课程名二”计算机基础”或 者SELECT,姓名,班级,课程名,成 绩FROM XS LEFT JIONCJ ON=WHERE课程名廿计算机基础”通过以上的联接查询便得到了所有选修”计算机基础”的学生的”计算机基础”的成绩及学生的姓名等信息。而题中所要
7、求按成绩的降序排序,所 以 应 该 在 以 上S Q L语 句 的 基 础 上 加A:ORDER BY 成绩 DESC将 查 询 所 得 到 的 结 果 放 于 一 个 数 组 变 量AFieldsValue 中,要用至INTOARRAY:SELECT,姓 名,班 级,课 程 名,成绩FROM XS,CJ WHERE=AND 课程名二”计算机 基 础 ORDER BY 成 绩 DESC INTOARRAY AFieldsValueINTO CJB FROM ARRAY AfieldsValue一、基本操作题(共4小题,第1和2题 是7分、第3和4题 是8分)在考生文件夹下完成下列操作(在“成绩
8、管理,数据库中完成):1.为“学生“表在”学号”字段上建立升序主索引,索引名为学号;2.为“学生“表的”性别”字段定义有效性规则,规 则 表 达 式 为 性 别$“男女”出错提示信息是:“性别必须是男或女”。3.在“学生“表的“性别“和“年龄”字段之间插入一个“出生日期”字段,数据类型为“日期型”(修改表结构);”王三风”的出生日期修改为1983年5月1日,并将该(第一行、只占一行)本题的主要考核点:主索引的建立、字段有效规则的建立,表结构的更改,SQL语言的使用。解题思路:O2、建立有效性规则在表设计器中的字段选项卡。在“规则“栏中输入“性别$“男女”提示信息”栏输入”性别必须是男或女”(不
9、要双引号)。UPDA学 生SE T出生日期二 八1983/05/01WHER姓名廿王三风”二、简单应用(2小题,每 题2 0分,计40分)1、根据考生文件夹下的txl表 和jsh表建立一 个 查 询query2,查询出单位是“南京大学”的所有教师的姓名、职称、电话,要求查询去向是表,,并执行该查询。2、建 立 表 单enterf,表单中有两个命令按钮,按钮的名称分别为cmdin和cmdout,标题分别为 进入 和 退出。第1题,本题的主要考核点是建立查询。建立查询能够使用“文件”菜单完成,选择文件-新建-查询-新建文件,将txl和jsh添加入查询中,从字段中选择姓名、职称和电话字段,单击查询菜
10、单下的查询去向,选择表,。最后运行该查询。第2题,本题的主要考核点是表单的建立。能够用三种方法调用表单设计器:在项目管理器环境下调用;单击“文件”菜单中的“新 建%打开“新建”对话框,选择“表单”;在命令窗口输入 CREATE FORM 命令。打开表单设计器后,在表单控件工具栏上单击“命令按钮%在表单上放置两个按钮。分别修改其属性 Name 为 cmdin 和 cmdout.Caption属性为“进入”和“退出”。三、综合应用(1小题,计30分)在考生文件夹下有仓库数据库CK3,包括如下所示两个表文件:CK(仓库号C(4),城 市C(8),面 积N(4)ZG(仓库号C(4),职 工 号C(4)
11、,工 资N(4)设计一个名为ZG3的菜单,菜单中有两个菜单项“统计“和“退 出 程 序 运 行 时,单击”统计”菜单项应完成下列操作:检索出所有职工的工 资 都 大 于1220元的职工所管理的仓库信息,将结果保存在w hl数据表(WH1为自由表)文件中,该 文 件 的 结 构 和C K数据表文件的结构一致,并按面积升序排序。单击”退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)本题主要考核点:菜单的建立、结构化查询语言(SQL)中的嵌套查询、查询结果的去向等知识。解题思路:利用菜单设计器定义两个菜单项,在菜单名称为“统计”的菜单项的结果列中选择“过程”,并通过单击“编辑”按
12、钮打开一个窗中来添加“统计,菜单项要执行的命令。在菜单名称为“退出”的菜单项的结果列中选择,命令,并在后面的“选 项”列 中 输 入 以 下 退 出 菜 单 的 命 令:SETSYSMENU TO DEFAULT,统计,菜单项要执行的程序:首 先 中 打 开 数 据 库 文 件 OPENDATABASE下面我们分析所要用到的查询语句的实现,题面要求”检 索 出 所 有 职 工 的 工 资 都 大 于1220的职工所管理的仓库信息)所以得到满足以上条件的仓库号成为解答本题的关键。,所有职工的 工 资 都 大 于1220的职工所管理的仓库”这个条件能够将其分解为同时满足以下两个条件的结果”仓库号不
13、存在于职工的工资小于等于1220的职工所管理的仓库号中“并且“仓库号存在于表ZG中1 而以上两个条件我们能够利用SQL轻 松 写 出 来。所 以 最 后 形 成 的 查 询 语 句 以T:SELECT*FROM CK WHERE 仓库号NOT IN(SELECT 仓 库 号 FROM ZGWHERE 工 资 n+SUBSTR(C,2*N+l,2)IF INKEY(0)=27EXITENDIFENDDOSET TALK ON程序阅读题。阅读下列程序,写出运行结果。1、注:字符“A的ASCII码为65。程序代码:SET TALK OFFCLEARC二 一二三四五六七八九十”B=nABCDnR=0L
14、=LEN(B)FOR 1=1 TO LW=SUBSTR(B,I,1)D=ASC(W)+R-65S=nnIF Dn+SR=R+11ENDFORSET TALK ON参考答案:A-B-,五2、设 A 的值为:ABCDEF程序代码:SET TALK OFFCLEARACCEPT nA=H TO AL=LEN(A)P=SPACE(0)1=1DO WHILE IP=P+SUBSTR(A,L-I,2)1=1+2ENDDO?A+n+PSET TALK ON参考答案:ABCDEFEFCDAB计算机等级考试二级VisualFoxPro上机试题及解题思路(12)来源:青年人0-9-17 9:3 1:2 5 1青年
15、人:中国教育考试第一门户】资料下载教材购买劝0 殳 近1包 3、写出运行结果程序代码:SET TALK OFFM=3DO WHILE M10N=2DO WHILE NIF INT(M/N)=M/NEXITENDIFN=N+1ENDDOIF N=M?MENDIFM=M+1ENDDOSET TALK ON参考答案:3574、写出运行结果程序代码:SET TALK OFFCLEARINPUT nM=n TO MIF INT(M)!=M OR ABS(M)!=M?”输入的数值不符合题目要求!”LOOPENDIF?ALLTRIM(STR(M,19)+”的质数因子有:1=2DO WHILE I=MIF M
16、%I=0?STR(I,6)M=INT(M/I)LOOPENDIF1=1+1ENDDOSET TALK ONSET ESCAPE ON设:M的输入值为12 o参考答案:1 2的质数因子有:2 235、写出运行结果程序代码:SET TALK OFFCLEAR?”*1 2 3 4 5”A=1DO WHILE A=5?ALLTRIM(STR(A)+SPAC(2)B=1DO WHILE B=AS=A*B?STR(S,2)+SPAC(2)B=B+1ENDDOA=A+1ENDDOSET TALK ON参考答案:*123451 12243369448 125 5 10 15 20 256、写出运行结果程序代码
17、:SET TALK OFFCLEARDIMENSION A(6,6)FOR 1=1 TO 6FOR J=1 TO 6IF IJA(I,J)=0ELSEA(I,J)=-1ENDIFENDFORENDFORFOR 1=1 TO 69*FOR J=1 TO 6?A(I,J)ENDFORENDFORSET TALK ON参考答案:-10 00 000-100 000 0-10000 0-1 0000 00-1000 000 0-15、写出运行结果程序代码:SET TALK OFFCLEAR?”*1 2 3 4 5”A=1DO WHILE A=5?ALLTRIM(STR(A)+SPAC(2)B=1DO
18、WHILE B=AS=A*B?STR(S,2)+SPAC(2)B=B+1ENDDOA=A+1ENDDOSET TALK ON参考答案:*123451 12243369448 125 5 10 15 20 256、写出运行结果程序代码:SET TALK OFFCLEARDIMENSION A(6,6)FOR 1=1 TO 6FOR J=1 TO 6IF IJA(I,J)=0ELSEA(I,J)=-1ENDIFENDFORENDFORFOR 1=1 TO 69FOR J=1 TO 6?A(I,J)ENDFORENDFORSET TALK ON参考答案:-10 00 000-1 00 000 0-1
19、 0 0 00 0-1 0 0 00 00-1 0 00 000 0-1综合编程题。根据题目要求,编写相应的程序。1、求 乂+*2+乂 3+乂 4+1 1 1 的值。N,X 从键盘输入。程序代码:SET TALK OFFclearINPUT nX=n TO XINPUT nN=n TONS=01=1DO WHILE I=NS=S+XAI1=1+1ENDDO?nX+XA2+XA3+.+XAN=n,SSET TALK ON2、求 S=2/l+3/2+5/3+8/5+13/8+.前 20 项之和。程序代码:SET TALK OFFclearS=0N=1X=1Y=2DO WHILE N=20S=S+Y
20、/XT=XX=YY=Y+TN=N+1ENDDO?n2/l+3/2+5/3+.+17711/10946=n,S&共有 N=20项累加SET TALK ON3、从键盘输入一个正整数,判断其所含5 的个数。(如:输入数值2345105,其中包含5 的个数为 2)程序代码:SET TALK OFFclearINPUT”请输入一个正整数X:n TO Xs=oDO WHILE,T.N=MOD(X,10)&第一次求X 的个位数N,第二次求X 的十位数N,IF N=5S=S+1ENDIFX=INT(X/10)IF X=0EXITENDIFENDDO?nX 中5 的个数为:”,SSET TALK ON4、从键盘
21、输入20个数,去掉20个数中的最大值和最小值,然后求平均值。程序代码:SET TALK OFFCLEARS=0N=1STORE 0 TO MAX,MINDO WHILE NBMIN=BENDIFN=N+1ENDDO?nAVERAGE=,+STR(S-MAX-MIN)/18,19,2)SET TALK ON5、求21000之间完数的个数。(完数:一个数如果恰好等于它的因子之和,因子不包括本身且不能重复。如:6=1+2+3,801+2+4,所以6是完数,8不是完数)程序代码:SET TALK OFFCLEARSN=O?”21000之间的完数为:“FOR N=2 TO 1000M=N1=1s=oDO
22、 WHILE IIF INT(M/I)=M/IS=S+IENDIF1=1+1ENDDOIF N=SSN=SN+1?NENDIFENDFOR完数的个数为:,SNSET TALK ON6、本程序首先对矩阵按行读入数据,并将它转置。程序代码:SET TALK OFFIN P U T T O NDIME A(N,N)FOR 1=1 TO NFOR J=1 TO NINPUT A(+STR(I,l)+,+STR(J,l)+)=,TO AI,J)ENDFORENDFORFOR 1=1 TO NFOR J=1 TO IT=A(I,J)A(I,J)=A(J,I)A(J,I)=TENDFORENDFORSET
23、TALK ON7、从键盘任意输入N 个数,去掉其中最大值和最小值,然后求平均值。程序代码:SET TALK OFFCLEARS=0INPUT nN=n TO NSTORE N TO MAX,MINFOR 1=1 TO NINPUT nB=n TO BS=S+BIF MAXMAX=BENDIFIF MINBMIN=BENDIFENDFOR?nAVERAGE=n+STR(S-MAX-MIN)/(N-2),19,2)SET TALK ON8、利用参数传递和过程文件,求(M!+N!)/(M-N)!程序代码:SET TALK OFFCLEARSET PROC TO 程序 20INPUT nM=n TO
24、MINPUT nN=n TO NSTORE 0 TO SM,SNDO JC2 WITH M,SMDO JC2 WITH N,SNDO MC2 WITH M-N,N?”表达式结果为S=H+STR(SM+SN)/N,10,2)SET PROC TOSET TALK ONPROCJC2PARA X,Y1=1T=1DO WHILE I=XT=T*I1=1+1ENDDOY=TRETURNPROC MC2PARA Y,X1=1T=1DO WHILE I=XT=T*Y1=1+1ENDDOX=TRETURN9、编程求l1000之内的同构数。(同构数:若A是同构数,则 A 出现在A 的平方数的右边。如:5*5=
25、25,5 出现在25的右边,3*3=9,3 不出现在9 的右边,所以5 是同构数,而 3 不是。)程序代码:SET TALK OFFCLEARFOR X=1 TO 1000P=X*XL=LEN(ALLTRIM(STR(X,19)IFALLTRIM(STR(X,19)=RIGHT(ALLTRIM(STR(P,19),L)?XENDIFENDFORSET TALK ON10、本程序用于输入一个表名,若表存在则打开,并显示出其各个字段名。程序代码:SET TALK OFFDO WHILE.T.ACCEPT 请输入表名:,TO FNAMEIF.(FNAME)WAIT,此表不存在,ELSEUSE&FNA
26、MEZDSM=FCOUNT()?,此表中的字段有:STR(ZDSM)+,个,FOR 1=1 TO ZDSM?STR(I)+*?FIELD(I)ENDFORENDIFWAIT,是否继续(Y/N),TO YNIF UPPER(YN)=N,EXITENDIFENDDOSET TALK ON表单程序设计,当表单运行时,标签控件自动从左向右移动。,并且能够实现日期的前翻和后翻,。,最高值为亿。要求:数字金额转换成中文大写金额用方法来实现,表单运行输入数据值金额后,调用这个方法。,o除了3个标签控件、3个文本框和两个命令按钮外,再添加3个形状控件,将输入值与显示计算结果的区域、命令按钮的区域区分开来,并设
27、置形状控件的SpecialEffeect属性为3维。注意:班级号不存在,通过对学号的截取来获得,奖学金总额是通过计算得到的。,。要求:表单运行时,在文本框中输入表名(不包括扩展名),在列表框中显示指定表的全部字段名。,查找指定班级学生的名单,。要求:表单刚运行时,文本框为空白,输入班级号后,按“确定”按钮,将指定班级学生的姓名添加到组合框中,如果该班级不存在的话,用消息对话框提示班级不存在的信息。,用 3 个文本框分别显示时、分、秒,。要求:表单刚运行时,各个文本框中显示“00”。单击“开始,按钮后,从 o 开始计时,单击“停止,按钮停止计时,文本框中显示当前计时的值,单击“退出”按钮结束。,
28、查找指定学生的课程选修情况,其中C o m b o l 的数据源为学生表的姓名,Label2的标题根据组合框中的选择而变化,。要求:表单运行时,Label2、Listl是不可见的。在组合框中选择姓名后,在 Listl中显示该生选修的课程名和成绩。多表操作程序设计题“学籍”数据库中的“学生”表,编写一个输入学生信息的程序,要求保证该表的实体完整性。用户界面能够自行设计。“学籍”数据库中的“学生”表,编写一个按照“学号”修改某个学生信息的程序,要求保证该表的实体完整性。用户界面能够自行设计。,其中顺序排列的控件Textl Text6被放置在容器Containerl中。该表单可实现查询指定学生姓名的
29、所修课程名及成绩情况。具体要求如下:用户能够在控件C o m b o l 中输入或选择学生姓名;输入或选择学生姓名后,按回车或“确定”按钮,可在表单的左部控件中以只读方式显示对应的学号和学生姓名以及指定学生姓名所修各门课程的课程名和成绩以及总平均金额;课程名及成绩显示项可根据表中满足条件的记录个数动态的调整,如果某学生尚无选修任何课程,则课程名及成绩显示项将不出现(包括显示控件和显示数据),且在总平均成绩显示项中显示未选修任何课程的信息;表单中命令按钮的汉字标题在表单执行后会自动显现。编写完成上述功能的事件代码,要求写明数据源的设置情况及各个事件的名称及归属(假设销售金额显示项最多不超过10项
30、)。学生或播血虫费单 二i叵fk图8.5 1表单的运行界面情况8.5 2表单的控件布局情况,其中顺序排列的控件C o m m a n d l C o m m a n d 7 属于组容器 Commandgroupl o 该表单可实现学生“成绩,表的编辑浏览操作,具体要求如下:能够随时向成绩表中添加新记录;能够随时删除成绩表中当前指针所指的记录;能够随时向前、后、表头、表尾翻动浏览记录,当指针到达表头或表尾时,自动将相应按钮设为不可访问;在添加或浏览记录时,随着学号的变化,相应的姓名、课程号、课程名和成绩会自动地以只读方式定位显示;控件Commandl Command7的汉字标题执行后会自动显现。编写完成上述功能的事件代码,要求写明数据源的设置情况及各个事件的名称及归属。图 8.5 3 表单的运行界面情况图 8.5 4 表单的控件布局情况