二级Visual Foxpro上机模拟题(第二套)
文本框 PassWordChar 改为 *
功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单,否则重新输入用户名和口令。
&&**********Error**********************
if thisform.text1 = thisform.text2 改为 if thisform.text1.value=thisform.text2.value
wait "欢迎使用……" window timeout 1
&&**********Error**********************
thisform.close 改为 thisform.release
else
wait "用户名或口令不对,请重新输入……" window timeout 1
endif
二级Visual Foxpro上机模拟题(第三套)
*检索选课门数大于或等于3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,*并按平均成绩降序排序,将结果存储到表TEST1中.以下程序有三处错误,请改正
SET TALK OFF
SET SAFETY OFF
SELECT STUDENT.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数,院系 院系;
FROM STUDENT, SCORE;
WHERE STUDENT.学号 = SCORE.学号;
GROUP BY STUDENT.学号 HAVING SUM(课程编号) >= 3; &&*Error* 将sum改为count其他不变
ORDER BY 平均成绩 ; &&*********Error******* 改为 order by 平均成绩 desc
INTO TEST1 SDF &&*********Error******* 改为 into table test1
RETURN
二级Visual Foxpro上机模拟题(第五套)
*检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,*并按平均成绩降序排序.
SET TALK OFF
SET SAFETY OFF
USE DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 将use改为open
CREATE VIEW VS1
SELECT STUDENT2.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号;
FROM STUDENT2, COURSE2; &&*************Error************* 改为 from student2,sc
WHERE STUDENT2.学号 = SC.学号 ;
GROUP BY SC.学号 HAVING COUNT(课程号) > 3;
ORDER BY 成绩 &&*************Error************* 改为 order by 平均成绩 desc
CLOSE DATABASE
RETURN
二级Visual Foxpro上机模拟题(第九套)
*检索同时选修课程号c1和c2的学生的学号*以下程序有三处错误,请改正
SELECT 学号;
FROM SC ;
WHERE 课程号 = 'c1' AND 学号 = ; &&*****Error******* 改为 where 课程号="c1" and 学号 in
( SELECT * FROM SC ; &&************Error************改为 (select 学号 from sc;
WHERE 学号 = 'c2' ) &&************Error************改为 where 课程号="c2")
CLOSE DATABASE
二级Visual Foxpro上机模拟题(第十三套)
检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的,学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中.*以下程序有三处错误,请改正
OPEN DATABASE SDB
SELECT STUDENT.学号,姓名,性别,AVG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数;
FROM STUDENT,SC;
WHILE STUDENT.学号 = SC.学号 AND 成绩 >= 70 ; &&*******Error******** 将While 改为 where 其他不变
GROUP BY STUDENT.学号 HAVING SUM(课程号) >= 3; &&*******Error******** 将sum 改为 count 其他不变
TO NEW_TEST &&**********Error********** 改为 into table NEW_TEST
CLOSE ALL
二级Visual Foxpro上机模拟题(第十六套)
ThisForm.标题 = "商品销售数据输入" 改为 thisform.caption="商品销售数据输入"
DO sellcomm 改为DO Form sellcomm
DO print1 TO PREVIEW 改为 report Form print1 PREVIEW
二级Visual Foxpro上机模拟题(第十七套)
SELECT FORM DEPT 改为 SELECT * FROM DEPT
DELETE THISFORM 改为 THISFORM.release
二级Visual Foxpro上机模拟题(第十九套)
&&所有器件的单价增加5元
UPDATE order_detail1 SET 单价 WITH 单价+ 5 改为 UPDATE order_detail1 SET 单价=单价+ 5
&&计算每种器件的平均单价
SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1 ORDER BY 器件号 INTO CURSOR lsb 将 order by 改为 group by 其他不变
&&查询平均价小于500的记录
SELECT * FROM lsb FOR 平均价 < 500 改为SELECT * FROM lsb where 平均价 < 500
二级Visual Foxpro上机模拟题(第二十一套)
UPDATE ALL 日期 WITH DATE() 改为 UPDATE 雇员 set 日期 = DATE()
RELEASE THISFORM 改为 thisform.release
二级Visual Foxpro上机模拟题(第二十二套)
SELECT COUNT((现价-买入价)*持有数量) ; 将count 改为 sum 其他不变
FROM stock_sl ;
WHERE 股票代码 ;
= ; 改为 in
(SELECT 股票代码 FROM stock_name ;
WHERE "银行" LIKE 股票简称) 将like 改为 $ 其他不变
二级Visual Foxpro上机模拟题(第二十三套)
CLOSE ALL
OPEN DATABASE 成绩管理
USE 选课 IN 0
USE 学生 EXCL IN 0
***********Error***********
MODIFY TABLE 学生 ADD 平均成绩 N(6,2) 改为 alter table 学生 ADD 平均成绩 N(6,2)
SELECT 学生
***********Error***********
DO WHILE EOF() 改为 do while not eof()
SELECT AVG(成绩) FROM 选课 WHERE 学号=学生.学号 INTO ARRAY cj
***********Error***********
REPLACE 平均成绩 = cj[1] 改为 replace 平均成绩 with cj[1]
cj[1]=0
SKIP
ENDDO
CLOSE DATABASE
二级Visual Foxpro上机模拟题(第二十七套)
下面的程序在第2行、第3行、第4行、第5行有错误,请直接在错误处修改。修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。
OPEN DATABASE sdb
SELECT 学号,姓名,AVG(成绩) 平均成绩,COUNT(成绩) 选课门数; 将 学号 改为 student.学号 其他不变
FROM student JOIN sc OF student.学号 = sc.学号; 将of 改为 on 其他不变
WHERE 性别 = "女" AND AVG(成绩) >= 75; 本行改为 WHERE 性别 = "女"
GROUP BY 学号 ; 本行 改为 GROUP BY student.学号 having AVG(成绩) >= 75
ORDER BY 4 desc ;
INTO TABLE three
二级Visual Foxpro上机模拟题(第三十三套)
open database 外汇数据
use currency_sl
&&***********Error*****************
find for 姓名="林诗因" 改为 locate for 姓名="林诗因"
summ=0
&&***********Error*****************
while not eof() 改为 do while not eof()
select 现钞买入价 from rate_exchange;
where rate_exchange.外币代码=currency_sl.外币代码 into array a
&&***********Error*****************
summ=summ+a[1] * rate_exchange.持有数量 改为 summ=summ+a[1]*持有数量
continue
enddo
?summ
二级Visual Foxpro上机模拟题(第三十八套)
***在下一行添加一条打开customer表的语句, 然后把"(此处空行)"删除
(此处空行) 改为 use customer
***表没有索引,修改如下语句使之能显示所有“北京”客户的信息
SCAN WHILE 所在地='北京' 改为 SCAN for 所在地='北京'
? 客户编号,公司名称,联系人姓名
ENDSCAN
二级Visual Foxpro上机模拟题(第三十九套)
SELECT 零件名称 FROM 零件信息 WHERE 零件号 = ; 将 = 改为 in 其他不变
(SELECT 零件号 FROM 使用零件;
GROUP BY 项目号 HAVING COUNT(项目号) = 3) ; 本行改为 group by 零件号 HAVING COUNT(零件号) = 3
ORDER BY 零件名称 ;
INTO FILE results 改为 to file results
二级Visual Foxpro上机模拟题(第四十三套)
*下面的程序在第5行、第6行、第8行和第9行有错误,请直接在错误处修改。
*修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。
OPEN DATABASE SELLDB
SELECT S_T.部门号,部门名,年度,;
一季度销售额 + 二季度销售额 + 三季度销售额 + 四季度销售额 AS 全年销售额,;
一季度利润 + 二季度利润 + 三季度利润 + 四季度利润 AS 全年利润,;
一季度利润 + 二季度利润 + 三季度利润 + 四季度利润 / 一季度销售额 + 二季度销售额 + 三季度销售额 + 四季度销售额 AS 利润率; 本行改为 (一季度利润 + 二季度利润 + 三季度利润 + 四季度利润 )/ (一季度销售额 + 二季度销售额 + 三季度销售额 + 四季度销售额) AS 利润率;
FROM S_T DEPT; 改为 FROM S_T , DEPT;
WHERE S_T.部门号 = DEPT.部门号;
GROUP BY 年度 利润率 DESC; 改为 order BY 年度, 利润率 DESC;
INTO S_SUM 改为 INTO table S_SUM
二级Visual Foxpro上机模拟题(第四十四套)
*下面的程序在第1行、第2行和第5行有错误,请直接在错误处修改。
*修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。
USE sdb 改为 Open database sdb
CREATE VIEW ; 改为 create View s_view as ;
SELECT Class.班级号, 班级名, 姓名, 性别, 教师名 AS 班主任名;
FROM Student,Class,Teacher ;
WHERE Student.班级号 = Class.班级号, Teacher.教师号 = Class.班主任号 将“,” 改为 and 其他不变
二级Visual Foxpro上机模拟题(第四十八套)
*本程序的功能为输入圆柱体的半径和高,计算圆柱体表面积。
SET TALK OFF
CLEAR
LOCAL carea
INPUT "请输入圆柱体的半径" TO r
INPUT "请输入圆柱体的高" TO h
carea=cya(r,h)
?"圆柱体的表面积为:",carea
RETURN
FUNCTION cya
**********found***********
PARAMETERS a 改为 PARAMETERS a,b
LOCAL pai
pai=3.14159
c=2*(pai*a^2)+2*pai*a*b
**********found***********
ENDFUNC 改为 return c
二级Visual Foxpro上机模拟题(第四十九套)
本程序的功能为输入圆柱体的半径和高,计算圆柱体表面积。请将程序修改为函数调用方式(不得增删语句行)。
SET TALK OFF
CLEAR
LOCAL carea
INPUT "请输入圆柱体的半径" TO r
INPUT "请输入圆柱体的高" TO h
DO cya WITH r,h,carea 本行改为 carea=cya(r,h)
?"圆柱体的表面积为:",carea
RETURN
PROCEDURE cya
PARAMETERS a,b,c 本行 改为PARAMETERS a,b
LOCAL pai
pai=3.14159
c=2*(pai*a^2)+2*pai*a*b
RETURN 本行 改为 RETURN c
ENDPROC
二级Visual Foxpro上机模拟题(第五十一套)
SET TALK OFF
USE STUDENT
LOCATE FOR 政治面目="群众"
DO WHILE .NOT.FOUND() ******ERROR FOUND****** 将FOUND() 改为EOF() 其他不变
IF 性别="女"
CONTINUE
BREAK ******ERROR FOUND****** 改为 loop
ENDIF
? 姓名,班级
SKIP ******ERROR FOUND****** 改为 CONTINUE
ENDDO
USE
SET TALK ON
二级Visual Foxpro上机模拟题(第五十四套)
Select Avg(成绩);
From kscjb;
into cursor Tem 改为 into array Tem
Select 考生号,姓名;
From ksb;
Where 考生号 Exists; 改为Where not Exists;
(Select *;
From kscjb;
Where 成绩 二级Visual Foxpro上机模拟题(第五十五套) Select 会员号,会员名,单位,电话; From cus; Where 会员号=any; 本行 改为 Where 性别="女" and 会员号=any ; (Select 会员号; From cbc; Where 数量>=10 and 性别="女"; 本行改为 Where 数量>=10; Group by 会员号 having 数量*单价>=5000); 改为 Group by 会员号 having sum(数量*单价)>=5000); into table three 二级Visual Foxpro上机模拟题(第六十套) *******************found******************** x,s1,s2,s3=0 改为 store 0 to x,s1,s2,s3 *******************found******************** x=thisform.text1 改为x=val(thisform.text1.value) do while x>0 if int(x/2)=x/2 s1=s1+1 else s2=s2+1 endif *******************found******************** if div(x,3)=0 改为 if mod(x,3)=0 s3=s3+1 endif x=x-1 enddo thisform.text2.value=s1 thisform.text3.value=s2 thisform.text4.value=s3 thisform.text5.value=s1+s2+s3 二级Visual Foxpro上机模拟题(第六十一套) 该命令文件用来查询与"姚小敏"同一天入住宾馆的每个客户的客户号、身份证、姓名、工作单位。查询结果输出到表TABC中。该命令文件在第3行、第5行、第7行和第8行有错误,打开该命令文件,直接在错误处修改,不可*改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。 OPEN DATABASE 宾馆 SELECT 客户.客户号,身份证,姓名,工作单位; FROM 客户 JOIN 入住; 改为FROM 客户 JOIN 入住 on 客户.客户号=入住.客户号 WHERE 入住日期 IN; ( SELECT ; 改为 select 入住日期 FROM 客户,入住; WHERE 姓名 = "姚小敏"); 改为 WHERE 姓名 = "姚小敏" and 客户.客户号=入住.客户号 TO TABLE TABC 改为 into table tabc 二级Visual Foxpro上机模拟题(第六十二套) USE 用户表 GO TOP flag=0 && 下面语句有错误 WHILE .NOT. EOF() 改为 do while not eof() IF Alltrim(用户名)==Alltrim(Thisform.Text1.Value) IF Alltrim(口令)==Alltrim(Thisform.Text2.Value) WAIT "欢迎使用" WINDOW TIMEOUT 2 ELSE WAIT "口令错误" WINDOW TIMEOUT 2 ENDIF flag=1 EXIT ENDIF && 下面语句有错误 NEXT 改为 skip ENDDO && 下面语句有错误 CASE FLAG=0 改为 if flag=0 WAIT "用户名错误" WINDOW TIMEOUT 2 ENDIF 二级Visual Foxpro上机模拟题(第六十四套) *在下面的程序中,第3、4、12行语句不正确,请修改!修改时不允许增加或删除行,只能在错误行上进行修改! USE pass Key1 = ALLTRIM(ThisForm.text1.value) Key2 = ALLTRIM(ThisForm2) 改为 Key2 = ALLTRIM(ThisForm.text2.value) LIST ALL WHILE USER = Key1 改为 locate for USER = Key1 IF FOUND() AND PASS = Key2 WAIT "欢迎使用本系统!" WINDOW TIMEOUT 1 thisform.release ELSE num = num + 1 IF num = 3 WAIT "用户名或口令不对,登录失败!" WINDOW TIMEOUT 1 LOOP 改为 thisform.release ELSE WAIT "用户名或口令不对,请重输入!" WINDOW TIMEOUT 1 ENDIF ENDIF 二级Visual Foxpro上机模拟题(第六十九套) &&根据"歌手表"计算每个组的歌手人数 CLOSE DATA USE one GO TOP WHILE.NOT. EOF() &&错误 改为 do while not eof() zuhao=组号 SELECT COUNT(*) FROM 歌手表 WHERE 歌手表.歌手编号=zuhao INTO ARRAY A &&错误 将 WHERE 歌手表.歌手编号=zuhao 改为 WHERE left(歌手表.歌手编号,2)=zuhao REPLACE 歌手人数 INTO A &&错误 将 into 改为 with SKIP ENDDO 二级Visual Foxpro上机模拟题(第七十一套) * 请改正以下语句代码中的错误,然后运行程序。 SELECT 部门表.部门号, 部门名, 销售表.商品号, 商品名,一季度利润 + 二季度利润 + 三季度利润 + 四季度利润 as 年销售利润; FROM 部门表, 销售表, 商品代码表 ; 改为 FROM 部门表 join 销售表 join 商品代码表 ON 销售表.商品号 = 商品代码表.商品号 ; ON 部门表.部门号 = 销售表.部门号; WHERE 销售表.年度 = "2006"; ORDER 1, 5; 改为 ORDER by 1, 5 desc; TO TABLE TABA 改为 into TABLE TABA 二级Visual Foxpro上机模拟题(第七十二套) 下面代码的功能首先将年份设置为用4位数字表示,然后根据文本框Text1的值构建SQL语句,并设置表格Grid1的相关属性。 * 修改所有*** FOUND ***的一条语句。 * 不能修改其他语句。不能增加语句,也不能删除语句。 set century to 4 *** FOUND *** 改为 set century on va=text1.value *** FOUND *** 改为 va= thisform.text1.value st="select 订单号,签订日期,金额 from orders where 签订日期>=va order by 签订日期 into cursor tmp" this.grid1.RowdSource=st *** FOUND *** 改为 thisform.grid1.RecordSource=st 二级Visual Foxpro上机模拟题(第七十三套) (1)右键-->数据环境,将orders和employee表添加到数据环境 (2)组合框设置: RowSourceType改为6 / RowSource改为 employee.姓名 / Style改为2 (3)文本框设置: ReadOnly 改为.T. * 下面代码的功能是读取所选职员的职员号,然后计算该职员所签订单的平均金额,并显示在文本框内。修改所有*** FOUND ***的一条语句。不能修改其他语句。不能增加语句,也不能删除语句。 dime a(1,1) a(1,1)=0 m1=employee.职员号 select avg(金额) from orders where 职员号=m1 into array a m2=a(1,1) text1.value=m2 *** FOUND *** 改为 thisform.text1.vaule=m2 二级Visual Foxpro上机模拟题(第七十四套) &&根据"教师表"计算每个系的教师人数并将数据填入"学院表" CLOSE DATA USE 学院表 GO TOP DO .NOT. EOF() &&错误 改为 do while not eof() xihao=系号 SELECT COUNT(*) FROM 教师表 WHERE 教师表.系号=xihao INTO A &&错误 将 INTO A 改为 INTO array A REPLACE 教师人数 WITH A[1] NEXT &&错误 改为 skip ENDDO 二级Visual Foxpro上机模拟题(第八十套) (1)右键-->数据环境,将orders表添加到数据环境 (2)列表框设置: Multiselect 改为.T. / RowSourceType改为8 / RowSource改为 orders (3)表格设置: RecordSourceType 改为4 下面代码的功能是根据用户对列表框的选择结果构建字段列表,然后进一步构建select语句并据此为表格的相关属性设值。* 修改所有*** FOUND ***的一条语句。不能修改其他语句。不能增加语句,也不能删除语句。 s="" f=.T. FOR i=1 TO thisform.List1.ColumnCount *** FOUND *** 将ColumnCount 改为 listcount IF thisform.List1.Selected(i) IF f s=thisform.List1.value *** FOUND *** 将 value 改为 list(i) f=.F. ELSE s=s+thisform.List1.value *** FOUND *** 改为s=s+ ENDIF ENDIF ENDFOR st="select &s from orders into cursor tmp" thisform.Grid1.RecordSource=st 二级Visual Foxpro上机模拟题(第八十五套) &&下句只有一处有错误 SELECT 课程号 FROM 课程表 WHERE 课程名="数据结构" TO ARRAY a 将 to 改为 into 其他不变 &&下句有错误 OPEN 教师表 将open 改为 use STORE 0 TO sum &&下句两处有错误 SCAN OF 课程号=a OR 工资>=4000 本行改为 SCAN FOR 课程号=a and 工资>=4000 &&下句有错误 sum+1 本行改为 sum=sum+1 ENDSCAN ?sum 二级Visual Foxpro上机模拟题(第八十六套) *在第2行有一处错误,第3行有两处错误,请改正 select p.组别,c.姓名 组长,p.姓名 组员 ; from employee p,employee c ; 将“,”改为 join on p.组别=c.组别 where p.职务="组长" and c.姓名=p.姓名; 将 where p.职务="组长" and c.姓名=p.姓名; 改为 where c.职务="组长" and c.姓名<>p.姓名; 其他不变 order by p.组别 二级Visual Foxpro上机模拟题(第八十七套) 基本操作题2 i=5 DO WHILE i<=1 将i<=1改为i>=1 i i=i-1 ENDDO 简单应用题1 &&下句有错误 CREATE TABLE 工资表(职工号 C(8) KEY,姓名 C(6) ,工资 N(10,2)) 将key 改为 primary key &&下句有错误 INSERT TO 工资表 VALUES ("11020034宣喧",4500) 将 to 改为 into USE 工资表 APPEND FROM 教师表 &&下句有错误 UPDATE 工资表 WITH 工资=工资*1.1 WHERE 工资<3000 将wIth 改为 set &&&&下句有错误 DELETE FROM 工资表 WHILE 姓名="Thomas" 将while改为 where PACK 二级Visual Foxpro上机模拟题(第八十八套) &&下句只有一处有错误 SELECT 系号 FROM 学院表 WHILE 系名="信息管理" INTO ARRAY a 将while改为where &&下句只有一处有错误 OPEN 教师表 本行改为 use 教师表 STORE 0 TO sum STORE 0 TO num &&下句只有一处有错误 SCAN WHERE 系号=a 将where改为 for sum=sum+工资 &&下句缺少一句 填写 num=num+1 ENDSCAN ?sum/num 二级Visual Foxpro上机模拟题(第八十九套) i=2 DO WHILE i<=10 i i=i+1 将i=i+1改为i=i+2 ENDDO 二级Visual Foxpro上机模拟题(第九十四套) CLOSE DBF PRIVATE no,money USE scust *下面的一行语句有错误 SELECT 顾客号,数量*单价 应付款 ; 将 数量*单价 改为sum(数量*单价) 其他不变 FROM order JOIN comm ON order.商品号 = comm.商品号 ; GROUP BY 顾客号 ; INTO CURSOR ls SELECT scust *下面的一行语句有错误 DO WHILE EOF() 改为 DO WHILE NOT EOF() no = 顾客号 SELECT ls LOCAT FOR 顾客号 = no money = 应付款 SELECT scust *下面的一行语句有错误 REPLACE ALL 应付款 = money 改为REPLACE 应付款 with money SKIP +1 ENDDO CLOSE TABLE RETURN