第一篇:VF复习题 实验改错题
『Visual ForPro——程序改错『题干』
*【程序改错】** *题目:将XSDB.DBF表中奖学金超过60元的学生姓名和奖学金显示 在屏幕上。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB ***********FOUND********** IF 奖学金>“60” DO WHILE.NOT.EOF()***********FOUND********** ?“姓名=”+姓名,“奖学金=”+奖学金 CONT ENDDO USE 『图片数目』:0张 『文件数目』:1张 『错误答案』:
LOCATE FOR 奖学金>60 或 LOCA FOR 奖学金>60 或 LOCA FOR 60<奖学金 或 LOCATE FOR 60<奖学金
?“姓名=”+姓名,“奖学金=”+★STR★(奖学金,4,1)或 ?“姓名=”+姓名,“奖学金=”+★STR★(奖学金)或 ?“姓名=”+姓名,“奖学金=”,★STR★(奖学金)或 ?“姓名=”+姓名,“奖学金=”,奖学金 2 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:通过键盘输入一个数N,计算2^2+4^4+……+N^N 的值并显示输出。*注意:不可以增加或删除程序行,也不可以更改程序的结构。T=0 I=2 INPUT “N=” to N ***********FOUND********** DO WHILE.NOT.EOF()T=T+I^I ***********FOUND********** I=I+T ENDDO ?“TOTAL=”,T 『图片数目』:0张 『文件数目』:0张 『错误答案』:
DO ★WHILE★ I<=N 或 DO ★WHILE★ N>=I 2 I=★2+I 或 I=★I+2 3 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:通过字符串变量操作先竖向显示“伟大祖国”,再横向显示 * “祖国伟大”。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。STORE “伟大祖国”TO XY CLEA ***********FOUND********** N=0 DO WHILE N<8 ?SUBS(XY,N,2)N=N+2 ENDDO ? ***********FOUND********** ??SUBS(XY,4,4)??SUBS(XY,1,4)『图片数目』:0张 『文件数目』:0张 『错误答案』: 1 N=1 2 ??SUBS(XY,★5,4)或 ??SUBSTR(XY,★5,4)或 ??SUBS(XY,★5)或 ??SUBSTR(XY,★5)或 ??RIGHT(XY,★4)或 ??RIGH(XY,★4)4 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:计算并在屏幕上显示出“九九乘法表”,显示格式如下 *1×1=1 *2×1=2 2×2=4 *3×1=3 3×2=6 3×3=9 *9×1=9 … 9×8=72 9×9=81 *程序中共有2个错误,请修改下面一条语句的错误,并调试运行。*注意:不可以增加或删除程序行,也不可以更改程序的结构。X=1 DO WHILE X<=9 Y=1 ***********FOUND********** DO WHILE Y<=9 ??STR(X,1)+“×”+STR(Y,1)+“=”+STR(X*Y,2)+“ ” Y=Y+1 ENDDO ***********FOUND********** disp X=X+1 ENDDO 『图片数目』:0张 『文件数目』:0 『错误答案』:
DO ★WHILE★ Y<=X 或 DO ★WHILE★ X>=Y 或 DO ★WHIL★ Y<=X 或 DO ★WHIL★ X>=Y 2 ? 5『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:在XSDB.DBF表中统计法律和中文两个系的总人数和奖学金总额。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB STORE 0 TO R,S DO WHILE.T.***********FOUND********** IF 系别=“法律”.AND.系别=“中文” STORE S+奖学金 TO S R=R+1 ENDIF SKIP ***********FOUND********** IF.NOT.FOUN()EXIT ENDIF ENDDO ?S,R USE 『图片数目』:0张 『文件数目』:1张 『错误答案』:
IF 系别=“法律”★.OR.★系别=“中文” 或 IF 系别=“法律” ★OR★ 系别=“中文” 或 IF 系别=“中文”★.OR.★系别=“法律” 2 IF EOF()6『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:计算1!+3!+9!的结果并输出。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。M=1 S=0 DO WHILE M<=9 STOR 1 TO I,P P=1 ***********FOUND**********
DO WHILE I>M P=P*I I=I+1 ENDDO S=S+P ***********FOUND********** M=M+3 ENDDO ? “1!+3!+9!=”,S 『图片数目』:0张 『文件数目』:0张 『错误答案』:
DO ★WHILE★ I<=M 或 DO ★WHILE★ M>=I 或 DO ★WHIL★ I<=M 或 DO ★WHIL★ M>=I 2 M=M*3 或 M=3*M 7 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:求X =1+2+3+… +100,并同时求出 1到100 之间的奇数之和Y,* 而且显示输出这两个和。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。CLEAR STORE 0 TO I , X , Y ***********FOUND********** DO WHILE I<=100 I = I+1 X =X+I IF I/2 = INT(I/2)***********FOUND********** EXIT ENDIF Y=Y+I ENDDO ?X,Y RETURN 『图片数目』:0张 『文件数目』:0张 『错误答案』:
DO WHILE I★<100 或 DO WHILE I★<=★99 或 DO WHIL I★<100 或 DO WHIL I★<=★99 2 LOOP 8 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:在RSH.dbf 中,查找职工赵红的工资,如果工资小于200元,* 则增加100元;如果工资大于等于200元且小于500元时,则增 * 加50元;否则增加20元。最后显示赵红的姓名和工资。*注意:不可以增加或删除程序行,也不可以更改程序的结构。CLEAR USE RSH ***********FOUND********** LOCATE FOR 姓名 =赵红 DO CASE CASE 工资< 200 REPLACE 工资 WITH 工资+ 100 CASE 工资< 500 REPLACE 工资 WITH 工资+ 50 OTHERWISE REPLACE 工资 WITH 工资+ 20 ENDCASE ***********FOUND********** LIST 姓名,工资 USE 『图片数目』:0张『文件数目』:1张 『错误答案』:
LOCATE★ FOR 姓名=★“赵红” 或 LOCA FOR 姓名=★'赵红' 或 LOCA FOR 姓名=★“赵红” 2 DISP 姓名,工资 或 ?姓名,工资 或 DISPLAY 姓名,工资 9『Visual ForPro——程序改错』
『题干』*【程序改错】** *题目:根据姓名查询RSH.dbf中的职工情况,如果有则显示该职工的 * 工资和职称,否则显示“查无此人!”。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE RSH XM=“赵红” LOCATE FOR 姓名 = XM ***********FOUND********** IF BOF()WAIT “查无此人!” ELSE ***********FOUND********** ? “工资+职称” ENDIF USE 『图片数目』:0张『文件数目』:1张 『错误答案』:
IF EOF()或 IF.NOT.FOUN()或 IF.NOT.FOUND()或 IF NOT FOUND()或 IF!FOUND()或 IF NOT FOUN()2 ?工资, 职称 或 ?STR(工资)+职称 或 ?STR(工资),职称 10 『Visual ForPro——程序改错』
『题干』*【程序改错】** *题目:从键盘上输入任意一串字符,判断是否回文。* 例如:MUM、456654,MADAM。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF ACCEPT “A=” TO A L=LEN(A)FLAG=1 I=1 **********FOUND********** DO WHILE FLAG=1 OR I<=INT(L/2)**********FOUND**********
IF SUBS(A,I,1)<>SUBS(A,L-I,1)ENDIF I=I+1 FLAG=0 ENDDO **********FOUND********** IF FLAG=0 ELSE ENDIF ? “是回文” ? “不是回文” CANCEL 『图片数目』:0张『文件数目』:0张 『错误答案』:
DO ★WHILE ★FLAG=1 ★AND★ I<=INT(L/2)或 DO ★WHILE ★FLAG=1 ★AND★ INT(L/2)>=I 2 IF ★SUBSTR(A,I,1)★<>★SUBSTR(A,L-★I+1★,1)或 IF ★SUBS(A,I,1)★<>★SUBS(A,L-★I+1★,1)或 IF ★SUBS(A,I,1)★#★SUBS(A,L-★I+1★,1)或 IF ★SUBSTR(A,I,1)★#★SUBSTR(A,L-★I+1★,1)3 IF FLAG=★1 11『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:程序输入两个任意整数,求最小公倍数,并显示输出。*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF INPUT “ X=” TO X INPUT “ Y=” TO Y MAX=X IF Y>X MAX=Y **********FOUND********** ENDFOR A=MAX DO WHILE A<=X*Y IF INT(A/X)=A/X AND INT(A/Y)=A/Y **********FOUND********** LOOP ENDIF A=A+MAX ENDDO **********FOUND********** ? “ 最小公倍数为”, X CANCEL 『图片数目』:0张『文件数目』:0张 『错误答案』: 1 ENDIF 或 ENDI 2 EXIT 3 ? “最小公倍数为”,★ A 或 ? “最小公倍数为”+★STR(A)12 『Visual ForPro——程序改错』
『题干』 *【程序改错】** *题目:输入两个任意整数,求最大公约数,并显示输出最大公 * 约数。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF INPUT “X=” TO X **********FOUND********** ACCEPT “Y=” TO Y IF X>Y M=X ELSE N=Y M=Y N=X **********FOUND********** ENDFOR A=MOD(M,N)**********FOUND********** DO WHILE A>=0
M=N N=A A=M%N ENDDO ?N CANCEL 『图片数目』:0张『文件数目』:0张 『错误答案』:
INPUT★ “Y=” TO Y 或 INPU★ “Y=” TO Y 2 ENDIF 或 ENDI 3 DO ★WHILE★ A > 0 或 DO ★WHILE★ 0 < A 或 DO ★WHIL★ A>0 或 DO ★WHIL★ 0 『题干』 *【程序改错】** *题目:本程序计算1!×3!×9!的乘积。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF M=1 **********FOUND********** S=0 DO WHILE M<=9 I=1 P=1 **********FOUND********** DO WHILE M<=9 P=P*I I=I+1 ENDDO S=S*P **********FOUND********** M=M+3 ENDDO ? “1!×3!×9!=”,S SET TALK ON RETURN 『图片数目』:0张『文件数目』:0张 『错误答案』: 1 S=1 2 DO ★WHILE★ I<=M 或 DO ★WHILE★ M>=I 或 DO ★WHIL★ I<=M 或 DO ★WHIL★ M>=I 3 M=★M★*★3 或 M=★3★*★M 14『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:从键盘上输入5个数,统计其中奇数的个整数。*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF A=0 FOR J=1 TO 5 **********FOUND********** ACCEPT “请输入第”+STR(J,2)+ “数” TO M **********FOUND********** IF INT(M/2)=M/2 ENDIF A=A+1 ENDFOR **********FOUND********** ?奇数个数是,A CANCEL 『图片数目』:0张『文件数目』:0张 『错误答案』: ★INPUT★ “请输入第”+STR(J,2)+ “数” TO M 或 ★INPU★ “请输入第”+STR(J,2)+ “数” TO M 2 IF INT(M/2)★<>M/2 或 IF INT(M/2)★!=M/2 或 IF★ mod(M,2)=1 或 IF(M★%2)=1 或 IF INT(M/2)★#M/2 3 ? “奇数个数是”,A 或 ? “奇数个数是”,str(A)或 ? “奇数个数是”+str(A)15 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:表XSDA.DBF结构为:学号(C,6),姓名(C,6),* 性别(C,2),入学成绩(N,6,2)。* 本程序实现按学号查找记录,直到输入“#”为止。*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF USE XSDA **********FOUND********** ACCEPT “请输入要查找的学号” ON XH DO WHILE XH!= “#” **********FOUND********** LOCATE FOR 学号=“CJ” IF FOUND()ELSE ENDIF ACCEPT “请继续输入要查找的学号” TO XH ? “无此学号” ?学号,姓名,入学成绩 **********FOUND********** ENDFOR ?“谢谢使用本查找系统” USE SET TALK ON 『图片数目』:0张『文件数目』:1张 『错误答案』: ACCEPT★ “请输入要查找的学号” ★TO★ XH 或 ACCE ★ “请输入要查找的学号” ★TO★ XH 2 LOCATE★ FOR 学号=★XH 或 LOCA FOR 学号=★XH 3 ENDDO 或 ENDD 16 『Visual ForPro——程序改错』 -------------------『题干』*【程序改错】** *题目:以下程序输出如下图所示的图形。*!$!*!$!$!$ *!$!$!*!$!$!$!$!$ *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF I=4 DO WHILE I<10 **********FOUND********** IF INT(I/2)=I/2 ELSE ENDIF FOR J=1 TO I I=I-1 I=I*2 **********FOUND********** IF J/2=0 ELSE ?? “$” ?? “!” **********FOUND********** ENDDO ENDFOR ? ENDDO RETURN 『图片数目』:0『文件数目』:0张 『错误答案』: IF ★INT(I/2)★<>★I/2 或 IF ★INT(I/2)★!=I/2 或 IF ★INT(I/2)★#★I/2 2 IF J%2=1 或 IF mod(j,2)=1 或 IF J%2<>0 或 IF J%2#0 或 IF mod(j,2)<>0 或 IF mod(j,2)#0 3 ENDIF 或 ENDI 17『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:表XSDA.DBF结构为:学号(C,6),姓名(C,6),* 性别(C,2),入学成绩(N,6,2)。本程序复制表 * XSDA的记录到表XS1中,在表XS1中查找入学成绩550分 * 以上的同学,将其删除并浏览XS1的内容。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF USE XSDA **********FOUND********** COPY STRUCTURE TO XSDA USE XS1 **********FOUND********** LOCATE ALL 入学成绩>=550 DO WHILE FOUND()DELETE **********FOUND********** LOOP ENDDO PACK BROW USE SET TALK ON 『图片数目』:0『文件数目』:1张 『错误答案』: COPY★ TO ★XS1 2 ★LOCATE★ ALL★ FOR 入学成绩>=550 或 ★LOCATE★ ALL ★FOR 550★<=入学成绩 或 ★LOCA★ ALL★ FOR 入学成绩>=550 或 ★LOCATE★ FOR 入学成绩>=★550 或 ★LOCA★ FOR 入学成绩>=★550 3 CONTINUE 或 CONT 18 『Visual ForPro——程序改错』 『题干』【程序改错】** *题目:求1+5+9+13+…+97的和 *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF S=0 **********FOUND********** N=0 DO WHILE N<=97 **********FOUND********** S=S+1 N=N+4 **********FOUND********** ENDWHILE ? S SET TALK ON 『图片数目』:0张『文件数目』:0张 『错误答案』: N=1 或 STORE 1 TO N 或 STOR 1 TO N 2 S=★S★+★N 或 S=★N★+★S 3 ENDDO 或 ENDD 19 『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:求2!+4!+6!+…+10!的和 *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF S=0 **********FOUND********** T=0 FOR N=2 TO 10 **********FOUND********** T=T*(T-1)IF N%2=0 **********FOUND********** S=S+N ENDIF ENDFOR ? S 『图片数目』:0『文件数目』:0张 『错误答案』: 1 T=1 2 T=★T★*★N 或 T=★N★*★T 3 S=★S★+★T 或 S=★T★+★S 20 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:键盘输入X值时,求其相应的Y值 * ┌-1(X<0)* │ * Y=├ 0(X=0)* │ * └ 1(X>0) *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF **********FOUND********** ACCEPT “请输入一个数:” TO X **********FOUND********** DO WHILE CASE X<0 Y=-1 CASE X=0 Y=0 **********FOUND********** DEFAULT X>0 Y=1 ENDCASE ? Y SET TALK OFF 『图片数目』:0张『文件数目』:0张 『错误答案』: ★INPU★ “请输入一个数:” TO ★ X 或 ★INPUT★ “请输入一个数:” TO ★ X 2 DO CASE 3 OTHERWISE 或 CASE x>0 或 OTHE 21 『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:从键盘输入一串汉字,将它逆向输出, 并在每个汉字中 * 间加一个“*”号。 * 例如:输入“计算机考试”,应输出“试*考*机*算*计” *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF ACCEPT TO A **********FOUND********** DO N=2 TO LEN(A)**********FOUND********** ?? SUBSTR(A,LEN(A)-N,2)IF N#LEN(A)**********FOUND********** ENDIF ? “*” ENDFOR SET TALK ON 『图片数目』:0『文件数目』:0张 『错误答案』: FOR N=2 TO LEN(A)STEP 2 或 FOR N=2 TO LEN(A)STEP +2 2 ?? SUBSTR(A,LEN(A)-★N★+★1★,2)或 ?? ★SUBS★(A,LEN(A)-★N★+★1★,2)3 ?? “*” 22『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:从键盘输入一个表名,打开该表文件,移动记录指针到 * 文件头,输出当前记录号;在移动记录指针到文件尾,* 输出当前记录号。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF ACCEPT TO A **********FOUND********** FIND A GO TOP **********FOUND********** NEXT ? RECNO()GO BOTTOM **********FOUND********** NEXT-1 ? RECNO()USE SET TALK ON 『图片数目』:0张『文件数目』:1张 『错误答案』: USE(A)或 USE &A 2 SKIP-1 3 SKIP 或 SKIP 1 或 SKIP +1 23 『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:从键盘输入一个表文件名,打开该表,查找“姓名”是 * “张三”的记录,并显示该记录,最后输出“姓名”是“张 * 三”的记录个数。(设被打开的表中有固定字段“姓名”)*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF ACCEPT TO A USE &A **********FOUND********** N=1 SCAN FOR 姓名= “张三” **********FOUND********** LIST N=N+1 ENDSCAN **********FOUND********** ? 记录个数是,N USE SET TALK ON 『图片数目』:0张『文件数目』:1张 『错误答案』: 1 N=0 2 DISPLAY 或 DISP 3 ? “记录个数是”,N 或 ? “记录个数是”,str(N)或 ? “记录个数是”+str(N)24『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:该程序完成口令检验功能。输入三次不正确退出。*注意:不可以增加或删除程序行,也不可以更改程序的结构。SET TALK OFF CLEAR ass1=“AbCdEf” TT=1 DO WHILE TT<4 @10,20 SAY “请输入口令:” SET CONSOLE OFF ACCEPT TO ass SET CONSOLE ON **********FOUND********** IF ass1=ass CLEAR ?“欢迎使用本系统!” **********FOUND********** LOOP ELSE **********FOUND********** TT=TT-1 CLEAR ?“口令错,按任意键再输入一次!” WAIT“ ” ENDIF ENDDO RETURN 『图片数目』:0张『文件数目』:0张 『错误答案』: IF ★UPPE★(ass1)★==★UPPE★(ass)或 IF ASS1==ASS 或 IF ASS==ASS1 或 IF ★UPPER★(ass1)★==★UPPER★(ass)或 IF ★LOWER★(ass1)★==★LOWER★(ass)2 EXIT 3 TT=★TT★+★1 或 TT=★1+TT 25 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:求1到10之间积数的阶乘和t=1!+3!+5!+…+9!*注意:不可以增加或删除程序行,也不可以更改程序的结构。**********FOUND********** t=1 P=1 I=1 **********FOUND********** Do while I>10 P=p*I **********FOUND********** If int(i/2)=i/2 T=t+p Endif I=I+1 Enddo ?“t=”,t 『图片数目』:0张『文件数目』:0张 『错误答案』: 1 t=0 2 do ★while★ I<=10 或 do ★while★ 10>=I 或 do ★whil★ I<=10 或 do ★whil★ 10>=I 3 if int★(i/2)★<>★i/2 或 if int★(i/2)★!=★i/2 或 if i%2★=1 或 if mod(i,2)★=1 或 if int★(i/2)★#★i/2 26『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:计算出1-30以内(包含30)能被5整除的数之和。*注意:不可以增加或删除程序行,也不可以更改程序的结构。CLEAR SET TALK OFF X=0 **********FOUND********** Y=1 DO WHILE.T.X=X+1 DO CASE CASE MOD(X,5)=0 Y=Y+X CASE X<=30 **********FOUND********** EXIT CASE x>30 **********FOUND********** LOOP ENDCASE ENDDO ?Y SET TALK ON 『图片数目』:0张『文件数目』:0张 『错误答案』: Y=0 或 STORE 0 TO Y 或 STOR 0 TO Y 2 LOOP 3 EXIT 27 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:计算出1-50以内(包含50)能被3和5整除的数之和。*注意:不可以增加或删除程序行,也不可以更改程序的结构。CLEAR SET TALK OFF X=0 **********FOUND********** Y=1 **********FOUND********** DO WHILE NOT EOF()X=X+1 DO CASE CASE MOD(X,5)=0 AND MOD(X,3)=0 Y=Y+X CASE X<=50 LOOP CASE X>50 EXIT ENDCASE ENDDO **********FOUND********** ?X SET TALK ON 『图片数目』:0张『文件数目』:0张 『错误答案』: Y=0 或 STORE 0 TO Y 或 STOR 0 TO Y 2 DO ★WHILE★.T.或 DO ★WHIL★.T.3 ?Y 28『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:查找RSH.dbf 中女职工的最高工资,并显示其姓名和工资。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE RSH MGZ = 0 DO WHILE.NOT.EOF()***********FOUND********** IF 性别=“女”,MGZ<“工资” MGZ=工资 MXM=姓名 ENDIF ***********FOUND********** CONT ENDDO ?MXM,MGZ USE 『图片数目』:0张『文件数目』:1张 『错误答案』: IF 性别=“女”★.and.★MGZ<工资 或 IF 性别=“女” ★and★ MGZ<工资 或 IF MGZ<工资★.and.★性别=“女” 或 IF MGZ<工资★and★性别=“女” 2 SKIP 或 SKIP 1 或 SKIP +1 29『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:统计RSH.dbf 中职称是教授、副教授、讲师和助教的人数。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE RSH ***********FOUND********** STORE 1 TO A , B , C , D DO WHILE.NOT.EOF()DO CASE CASE 职称 = “教授” A = A + 1 CASE 职称 = “副教授” B = B + 1 CASE 职称 = “讲师” C = C + 1 CASE 职称 = “助教” D = D + 1 ENDCASE ***********FOUND********** NEXT 1 ENDDO USE ? A,B,C,D 『图片数目』:0张『文件数目』:1张 『错误答案』: STORE★ 0 TO A,B,C,D 或 STOR★ 0 TO A,B,C,D 2 SKIP 或 SKIP 1 或 SKIP +1 30 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:计算S=1+3+5+…+99 的程序。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。store 0 to s,i ***********FOUND********** do i<=99 ***********FOUND********** i=i+1 s=s+i enddo ?“s=”,s 『图片数目』:0张『文件数目』:0张 『错误答案』: do while ★ i<=99 或 do while ★i<100 2 I=★2+I 或 I=★I+2 31 『Visual ForPro——程序改错』 『题干』【程序改错】** *题目:打开XSDB.DBF数据表, 分别统计男、女生的人数。*注意:不可以增加或删除程序行,也不可以更改程序的结构。* USE XSDB STOR 0 TO B,G DO WHILE.NOT.EOF()***********FOUND********** IF 性别<>女 B=B+1 ***********FOUND********** ENDIF G=G+1 ENDIF SKIP ENDDO ?“男生人数是:”+STR(B)?“女生人数是:”+STR(G)『图片数目』:0张『文件数目』:1张 『错误答案』: IF 性别★=★“男” 或 IF 性别<>★“女” 或 IF 性别★#★“女” 2 ELSE 32 『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:打开表XSDB.DBF, 查找计算机和英语的平均成绩最高的学生,* 并显示姓名和计算机、英语成绩。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB JSJ=计算机 YY=英语 XM=姓名 PJ=(JSJ+YY)/2 DO WHILE.NOT.EOF()***********FOUND********** X=计算机+英语 ***********FOUND********** IF PJ>X JSJ=计算机 YY=英语 XM=姓名 ENDIF SKIP ENDDO ?XM,JSJ,YY 『图片数目』:0『文件数目』:1张 『错误答案』: X=(计算机+英语)/2 或 X=(英语+计算机)/2 2 IF X>PJ 或 IF PJ★<★X 33 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:用户选择菜单中的功能序号,程序将根据序号对数据表 * XSDB.DBF进行对应的操作。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB DO WHILE.T.?“ 1-追加记录 2-修改记录 3-显示记录 0-结束程序” INPUT “请选择(1,2,3,0):” TO ANS ***********FOUND********** IF ANS>=0.AND.ANS<=3 WAIT “输入错误,按任意键重新输入!” LOOP ENDIF DO CASE CASE ANS=1 APPE CASE ANS=2 BROW CASE ANS=3 LIST OTHERWISE ***********FOUND********** LOOP ENDCASE ENDDO USE 『图片数目』:0张『文件数目』:1张 『错误答案』: IF ANS<0★.OR.★ANS>3 或 IF ANS>3★.OR.★ANS<0 或 IF ANS<0★OR★ ANS>3 或 IF ANS>3 ★OR★ ANS<0 2 EXIT 34 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:用循环程序计算XSDB.DBF中法律系学生的计算机平均成绩、* 英语平均成绩和奖学金总额。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB STORE 0 TO JSJ,YY,JXJ,RS LOCA FOR 系别=“法律” ***********FOUND********** DO WHILE FIND()JSJ=JSJ+计算机 YY=YY+英语 JXJ=JXJ+奖学金 RS=RS+1 CONT ENDDO ***********FOUND********** ?JSJ,YY,JXJ 『图片数目』:0张『文件数目』:1张 『错误答案』: do ★while★ FOUN()或 do ★while★.NOT.EOF()或 do ★while★!EOF()或 do ★while★ NOT EOF()或 do ★while★ FOUND()或 do ★whil★ FOUN()或 do ★whiL★.NOT.EOF()或 do ★whil★!EOF()或 do ★whil★ NOT EOF()或 do ★whil★ FOUND()2 ?JSJ/RS,★YY/RS,JXJ 35『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:在XSDB.DBF中查找学生徐秋实的记录, 如果找到则将该记录 * 的系别、姓名,两科科目名称和对应的成绩显示在屏幕上,否则 * 显示:“查无此人!”。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB ***********FOUND********** FIND FOR 姓名=“徐秋实” IF.NOT.FOUND()?“查无此人!” ELSE ***********FOUND********** ?系别,姓名, “计算机=”+计算机, “英语=”+英语 ENDIF USE RETURN 『图片数目』:0张『文件数目』:1张 『错误答案』: LOCATE FOR 姓名=“徐秋实” 或 LOCA FOR 姓名=“徐秋实” 2 ?系别,姓名,“计算机=”+★STR★(计算机),“英语=”+★STR★(英语)或 ?系别,姓名,“计算机=★”,计算机, “英语=★”,英语 或 ?系别,姓名,“计算机=”+★STR★(计算机,3),“英语=”+★STR★(英语,3)或 ?系别,姓名,“计算机=”,★STR★(计算机),“英语=”+★STR★(英语)或 ?系别,姓名,“计算机=”+★STR★(计算机,3),“英语=”,★STR★(英语,3)或 ?系别,姓名,“计算机=”,★STR★(计算机),“英语=”,★STR★(英语)或 ?系别,姓名,“计算机=”,★STR★(计算机),“英语=”,英语 或 ?系别,姓名,“计算机=”,计算机,“英语=”,★STR★(英语)36『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:将100到300之间的所有能被3整除或被5整除的数求和并统计个数。*注意:不可以增加或删除程序行,也不可以更改程序的结构。STORE 0 TO S,C I=100 DO WHILE I<=300 ***********FOUND********** IF INT(I/3)=INT(I/5)S=S+I C=C+1 ENDIF ***********FOUND********** I=C ENDDO ?“100到300之间的所有能被3整除或被5整除的数之和=”+STR(S,6)?“100到300之间的所有能被3整除或被5整除的数的个数=”+STR(C,6)『图片数目』:0张『文件数目』:0张 『错误答案』: IF INT(I/3)★=I/3★.OR.★INT(I/5)=★I/5 或 IF MOD(I,3)=0★.OR.★MOD(I,5)=0 或 IF INT(I/5)=I/5★.OR.★ INT(I/3)=I/3 或 IF MOD(I,5)=0★.OR.★MOD(I,3)=0 或 IF INT(I/3)=★I/3 ★OR★ INT(I/5)=I/5 或 IF MOD(I,3)=0 ★OR★ MOD(I,5)=0 或 IF INT(I/5)=I/5 ★OR★ INT(I/3)=I/3 或 IF MOD(I,5)=0 ★OR★ MOD(I,3)=0 2 I=I+1 37 『Visual ForPro——程序改错』 『题干』【程序改错】** *题目:接收键盘输入的任意5个整数(不超过3位数), 找出其中的最 * 小的数并显示。程序中共有2个错误。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。INPUT “请输入第一个数:” TO X STORE X TO MA N=5 ***********FOUND********** DO WHILE N>=5 INPUT “请输入下一个数:” TO X ***********FOUND********** IF MA DO ★WHILE★ N>1 或 DO ★WHIL★ N>1 或 DO ★WHIL★ N>=2 或 DO ★WHILE★ N>=2 2 IF MA>X 38 『Visual ForPro——程序改错』 『题干』 *【程序改错】** *题目:从键盘输入十个非零整数,统计能被5整除的数的个数。*注意:不可以增加或删除程序行,也不可以更改程序的结构。STORE 0 TO I,A ***********FOUND********** DO WHILE I<=10 INPUT “请输入一个整数:” TO N ***********FOUND********** IF INT(N/3)=0 A=A+1 ENDIF I=I+1 ENDDO ?A 『图片数目』:0张文件数目』:0张 『错误答案』: DO ★WHILE ★I<10 或 DO ★WHILE★ I<=9 或 DO ★WHILE★ 9>=I 或 DO ★WHILE★ 10>I 或 DO ★WHIL ★I<10 或 DO ★WHIL★ I<=9 或 DO ★WHIL★ 9>=I 或 DO ★WHIL★ 10>I 2 IF MOD(N,5)=0 或 IF N%5=0 或 IF ★INT(N/5)★=N/5 39 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:显示XSDB.DBF中每个学生的姓名、计算机成绩和等级;等 * 级划分如下:计算机成绩大于等于90显示“优秀”;60到89 *(包括 60和89)之间显示“及格”;60分以下显示“补考”。* 如显示:张丽娜 90 优秀。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB ***********FOUND********** DO WHIL EOF()? 姓名,计算机 DO CASE CASE 计算机>=90 ??'优秀' CASE 计算机>=60 ??'及格' OTHERWISE ??'补考' ENDCASE ***********FOUND********** GO NEXT ENDDO USE-------------------『图片数目』:0张『文件数目』:1张 『错误答案』: DO WHIL NOT EOF()或 DO WHIL.NOT.EOF()或 DO WHIL!EOF()2 SKIP 或 SKIP 1 或 SKIP +1 40『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:从键盘输入一个数X,当X大于0、Y的值为1;当X等于0、Y的 * 值为0;当X小于0、Y的值为-1, 然后输出Y的值。*注意:不可以增加或删除程序行,也不可以更改程序的结构。***********FOUND********** ACCEPT “输入一个数X:” TO X ***********FOUND********** IF X>0 IF X>0 Y=1 ELSE Y=0 ENDIF ELSE Y=-1 ENDIF ?“Y=”,STR(Y)『图片数目』:0张『文件数目』:0张 『错误答案』: 1 INPUT 2 IF ★X>=0 或 IF ★0<=X 41『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:计算出1到50以内(包含50)能被2和3整除的数之和。*注意:不可以增加或删除程序行,也不可以更改程序的结构。STOR 0 TO X ,Y ***********FOUND********** DO WHILE NOT EOF()X=X+1 DO CASE CASE MOD(X,2)=0 AND MOD(X,3)=0 Y=Y+X CASE X<=50 ***********FOUND********** X=X+1 CASE X>50 EXIT ENDCASE ENDDO ?Y 『图片数目』:0张『文件数目』:0张 『错误答案』: 1 DO ★WHILE★.T.或 DO ★WHILE★ X<=50 或 DO ★WHIL★.T.或 DO ★WHIL★ X<=50 2 LOOP 42『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:从键盘上输入5个数,将其中奇数求和,偶数求积。*注意:不可以增加或删除程序行,也不可以更改程序的结构。S1=0 ***********FOUND********** S2=0 FOR I=1 TO 5 INPUT “请输入第”+STR(I,1)+ “数” TO M ***********FOUND********** IF INT(M/2)=0 ELSE S1=S1+M S2=S2*M ENDIF ENDFOR ? “奇数和是”,S1 ? “偶数积是”,S2 『图片数目』:0张『文件数目』:0张 『错误答案』: S2=1 或 STORE 1 TO S2 或 STOR 1 TO S2 2 IF MOD★(M,2)<>★0 或 IF MOD★(M,2)#★0 或 IF INT(M/2)★<>★M/2 或 IF INT(M/2)★#★M/2 43『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:将一串ASCII码字符“ABC123”,逆序输出为:321CBA“。*注意:不可以增加或删除程序行,也不可以更改程序的结构。S=”ABC123“ ?S+”的逆序为:“ ***********FOUND********** L=STR(S)***********FOUND********** DO WHIL L<1 ??SUBS(S,L,1)L=L-1 ENDD 『图片数目』:0张『文件数目』:0张 『错误答案』: 1 L=LEN(S)2 DO WHIL L>=1 44 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:有一个字符串”ABC“,将其插入3个数字转换为:”A1B2C3“输出。*注意:不可以增加或删除程序行,也不可以更改程序的结构。C1=”ABC“ C2=”“ FOR I=1 TO 3 ***********FOUND********** A=SUBS(C1,I)***********FOUND********** C2=C2+A+I ENDFOR ?C2 『图片数目』:0张『文件数目』:0张 『错误答案』: A=SUBS(C1,I★,1)或 A=SUBSTR(C1,I★,1)2 C2=★C2★+★A+★STR(I,1)45 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:打开表XSDB.DBF,统计姓张、姓王、姓李这三个姓的学生 * 人数并显示。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB C=0 ***********FOUND********** LOCA 姓名=”张“.AND.”王“.AND.”李“ ***********FOUND********** DO WHILE NOT FOUN()C=C+1 CONTINUE ENDDO ?C USE 『图片数目』:0张『文件数目』:1张 『错误答案』: LOCATE★ FOR 姓名=”张“★.OR.★姓名=”王“★.OR.★姓名=”李“ 或 LOCATE★ FOR 姓名=”张“★ OR ★姓名=”王“★ OR ★姓名=”李“ 2 DO WHILE FOUN()46 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:输入工资(以元为单位如:1568),计算出百元、伍十元、* 贰十元、拾元、伍元、贰元、壹元各多少张(要求张数最少),* 循环计算,当输入0时结束程序。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。GZ=1 ***********FOUND********** DO WHILE GZ=1 INPUT ”输入工资:“ TO GZ Y100=INT(GZ/100)Y50=INT((GZ-Y100*100)/50)Y20=INT((GZ-Y100*100-Y50*50)/20)Y10=INT((GZ-Y100*100-Y50*50-Y20*20)/10)Y5=INT((GZ-Y100*100-Y50*50-Y20*20-Y10*10)/5)Y2=INT((GZ-Y100*100-Y50*50-Y20*20-Y10*10-Y5*5)/2)***********FOUND********** Y1=GZ-Y100-Y50-Y20-Y10-Y5-Y2 ?Y100,Y50,Y20,Y10,Y5,Y2,Y1 ENDDO 『图片数目』:0张『文件数目』:0张 『错误答案』: DO ★WHILE★ GZ<>0 或 DO ★WHILE★ GZ>0 或 DO ★WHILE★ GZ#0 2 Y1=GZ-Y100★*★100-Y50★*★50-Y20★*★20-Y10★*★10-Y5★*★5-Y2★*★2 47『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:分别统计化学系的男、女生总人数并显示出来。*注意:不可以增加或删除程序行,也不可以更改程序的结构。USE XSDB STOR 0 TO RS1,RS2 ***********FOUND********** FIND FOR 系别=”化学“ DO WHILE.NOT.EOF()***********FOUND********** IF 性别<>”男“ RS1=RS1+1 ELSE RS2=RS2+1 ENDIF CONT ENDDO ? ”男生人数=“,RS1 ? ”女生人数=“,RS2 USE 『图片数目』:0张『文件数目』:1张 『错误答案』: LOCATE FOR 系别=”化学“ 或 LOCA FOR 系别=”化学“ 2 IF 性别★=★”男“ 或 IF 性别<>★”女“ 或 IF 性别★#★”女" 48 『Visual ForPro——程序改错』 『题干』*【程序改错】** *题目:打印由数字组成的图形,要求第一行空10个空格打印5个1,第 * 二行空11个空格打印5个2…,图形如下: * 55555 * 44444 * 33333 * 22222 * 11111 *注意:不可以增加或删除程序行,也不可以更改程序的结构。CLEA FOR I=1 TO 5 ***********FOUND********** ?SPAC(9-I)FOR J=1 TO 5 ***********FOUND********** ??STR(J,1)ENDFOR ENDFOR 『图片数目』:0张『文件数目』:0张 『错误答案』: ?SPAC★(9+I)或 ?SPACE★(9+I)或 ?SPACE★(I+9)或 ?SPAC★(I+9)2 ??STR★(6-I,1) 改错题(指出下列公文的8处错误) 关于办理商标注册附送证件问题的批复 《关于办理商标注册附送证件问题的请示》收悉,国务院大致同意关于办理商标变更、转让或者续展注册时不再附送原商标注册证的意见,但考虑到这一问题涉及《商标法实施细则》的修改,特批复如下,盼遵照执行。 ......本批发第一项、第四项由你局在1995年12月15日前发布。第二项、第三项由你局在一九九八年十一月一前发布。 国务院 1995年4月23日制发 ①标题不完整 ②缺主送机关 ③“大致同意”用法不当 ④实施细则应用全称 ⑤语气不当“盼......” ⑥“一九九八......”表达错误 ⑦作者位置不当 ⑧“制发”二字多余。 中国人民银行××市分行 关于转发总行《储蓄工作座谈会纪要》的通知 ×银发[2002]×号 现将总行的《储蓄工作座谈会纪要》转发给你们,请立即组织研究,展开讨论,并根据《纪要》精神,认真贯彻执行。当前,首先要抓好第一季度的工作,以便为全年工作打下基础。中国人民银行××市分行 二〇〇二年七月二十四日 一般来说,转发性通知只能有一个目的,或为执行,或为讨论,或为参考,二者不能兼得,更不能三者兼得。上面这则通知一方面让人家“研究讨论”,一方面又让人家“贯彻执行”,这二者是不可兼得的。因为“研究讨论”意味着转发对象尚不成熟,还没有达到“执行”的程度;而“贯彻执行”却意味着转发对象已经成熟,已经没有“研究讨论”的必要了。作者在这里显然犯了自相矛盾的错误,违背了形式逻辑中的不矛盾律。这是转发性通知中的一种多发病和常见病。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) ××镇人民政府: 对你镇的数次请示,经研究作答复如下: 其一,原则同意批准你镇建立联合贸易公司,负责本镇的内、外贸易工作。你镇应尽快使联合贸易公司开始营业。 其二,你镇提出试行“关于违反计划生育规定的处罚办法”最好不执行,因为这个办法违反上级有关文件精神。 其三,对你镇提出要建一俱乐部活跃居民文化生活一事,予以批准,但规模要适当控制,量力而行。 其四,同意你镇组团参加在上海举办的服装节和在服装节上进行引资促销活动。××市人民政府 2001年×月×日 一是违反一文一批的原则。市政府在积存了某乡四件请示之后,才合在一起给了这样一个批复,这样做有多种弊端:(1)延误时间,耽误下级工作;(2)多种事项集于一篇公文之中,内容杂乱;(3)一份公文涉及多方面工作,给下级落实带来困难。因为这些工作在下级机关是由不同单位和不同负责人分管的,由哪个负责人承担批复的落实工作,不好确定。正确的做法是,下级报来一份请示,就及时回复一份批复。对方的四份请求,应有四份相应的批复。 二是标题不合要求。本批复的标题只有文种品称,没有发文机关和主要内容,不够认真严肃,也影响工作效率。 三是用语含糊不清,观点不明确。如“原则同意”、“最好不执行”、“违反上级有关文件精神”,都没有明确指出自己的观点,使下级无法执行。 四是时间要用汉字,不能用阿拉伯数字。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) ××市工业局文件 ××字(2002)×× 号签发人:张平 ××市工业局关于印发“关于节减行政经费的几项规定”的通知 我局同意××市财政局关于节减行政经费的几项规定”中提出的意见,认为切实可行,请结合本单位的情况参照执行。 附:××市财政局文件 2002.10.16 主题词:印发、规定、通知 抄送:××市人民政府、××市财政局 (1)发文字号不规范,应为××〔2002〕23号; (2)下行文不应标注签发人,应取消,发文字号居中排列; (3)标题不规范,应将“印发”改为“转发”,引号应改为书名号《》; (4)缺主送机关,应写明收文单位名称; (5)转发同级机关公文,不应用批示语气,如“我局同意”、“所提意见切实可行”等; (6)《规定》属规范性公文,应认真执行而不应写“参照”执行; (7)附件说明不规范,应具体写明附件的标题; (8)成文日期不规范,应用汉字写全年月日,即二〇〇二年十月十六日;应加盖印章; (9)主题词不规范,应表明公文的主题项:行政经费;主题词之间空一个汉字位置,不用标点符号; (10)转发公文不应再向其他机关抄送,应取消抄送机关。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) 各省、自治区、直辖市人民政府: 今年初,枝江县董镇信用社职工××同志为保卫国家财产,面对英勇歹徒,顽强搏斗,最后擒获歹徒。为此决定:授予××同志先进工作者称号。 国务院希望各条战线的群众、工人、农民、知识分子认真贯彻十三届四中、5中、6中全会精神,胸怀全局,艰苦奋斗,努力工作,为社会主义现代化建设做出更大贡献。中共中央、国务院90年4月24日 1.标题结构不完整,应改为“中共中央、国务院关于授予××同志先进工作者称号的决定”。 2.“今年初”这一时间概念表达不当,应改为“1990年初”。 3.枝江县前应冠以省名。 4.“英勇歹徒”的表达有误。 5.“群众、工人、„„”等搭配不当。 6.数字表达不一致,不应用阿拉伯数字。 7.作者排列有误,应分两行排列。 8.日期书写有误,应用汉字。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) 关于申请拨给灾区贷款专项指标的报告 省行: ×月×日,×× 地区遭受了一场历史上罕见的洪水袭击,×江两岸乡、村同时发生洪水,灾情严重。经初步不完全统计,农田受灾总面积达38000多亩,各种农作物损失达 100多万元,农民个人损失也很大。灾后,我们立即深入灾区了解灾情,并发动干部群众积极开展生产自救。同时,为帮助受灾农民及时恢复生产,我们采取了下列措施: 一、对恢复生产所需的资金,以自筹为主。确有困难的,先从现有农贷指标中贷款支持。 二、对受灾严重的困难户,优先适当贷款,先帮助他们解决生活问题。到×月×日止,此项贷款已达××万元。 由于这次灾情过于严重,集体和个人的损失都很大,短期内恢复生产有一定的困难,仅靠正常农贷指标难以解决问题。为此,请省行下达专项救灾贷款指标××万元,以便支持灾区迅速恢复生产。 以上报告当否,请批示。 ××银行××市支行 一九九八年×月×日 一、文种选择有误 从标题看,这篇公文是向省行提出灾区贷款专项指标的申请,目的是获得省行的批准。从正文的主体部分看,两条措施确属报告性质,但随后出现的专项贷款请求,就不是报告应有的内容了。从结语看,“以上报告妥否,请批示”,有着很强的期复性。因此,综合起来看,这篇公文应改为《关于拨给灾区贷款专项指标的请示》。 二、内容含糊 这是由于原文混淆了报告和请示的界限而造成的。写请示,只需写明请示缘由、请示事项,最后提出请示要求即可,与此无关的内容不应写入。而原文提出的两条措施:“对恢复生产所需的资金,以自筹为主”、“对受灾严重的困难户,优先适当贷款”,既不是请示缘由,也不是请示事项,不应该写入文中。 三、语言不准确 文中有多处语言不确切。如“×江两岸乡、村同时发生洪水”,×江两岸所有村庄都遭受洪灾似不可能,“同时发生”更不可能。“灾情较重”跟后面“这次灾情过于严重”的说法相龃龉;“据初步不完全统计”,“初步”和“不完全”语意重复。 第十次上机题(改错补充题) 一、改错题 1.利用数组计算分数序列:2/1,3/2,5/3,8/5,13/8,21/13...前20项之和。 #include void input(int n =10 ,int w[] ,);float sum(int w[] , int n); void main(){ int data[22],n;cout<<“请输入数列的项数: ”;cin>>n;input(data[22],n);cout<<“2/1+3/2+5/3+…=”< void input(int n ,int w[]){ w[0]=w[1]=1;for(int i=2;i w[i]=w[i+11]+w[i+22];} } float sum(int w[],int n){ float num;for(int i=2;i num+=1.0*(w[i-1]+w[i-2])/w[i-1];} return num;} 【要求】 1.把上述程序录入到文件学号_1.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_1.cpp放在考试盘中的根目录下,供阅卷用。 二、改错题 题目:设计一个程序,键盘输入一个4×4矩阵,并按每行4个数据在屏幕上显示输入的原始数据。求:两对角线之和及将该矩阵转置后输出。含有错误的源程序如下: #include int sum(int a[4][4]);void f(int a[4][4]); void main(){ int data[4][4]={0};for(int i=0;i<4;i++) for(int j=0;j<4;j++) cin>>data[i][j];for(i=0;i<4;i++){ for(int j=0;j<4;j++) cout< cout< for(int j=0;j<4;j++) cout< cout< int sum(int a[][4]){ int n=0;for(int i=0;i<4;i++) n+=a[i][i]+a[i][3-i];} void f(int a[4][]){ int temp;for(int i=0;i<4;i++) for(int j=0;j<4;j++){ temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } } 【要求】 1.把上述程序录入到文件学号_2.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_2.cpp放在考试盘中的根目录下,供阅卷用。 三、改错题 【要求】 1.把上述程序录入到文件学号_3.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_3.cpp放在考试盘中的根目录下,供阅卷用。 四、改错题 以下程序验证一个猜想:任意一个十进制整数与其反序数相加后,得到一个新的正整数,将该新正整数重复上述处理后,最终可得到一个回文数。所谓反序数是指原数的数字次序颠倒而得到的数值,如4361的反序数为1634 所谓回文数是指正向和反向读的数字次序是一样的,例如12321和234555432。程序同时统计反复处理的次数c,例如对整数639,程序的运行状况如下: Please input a number:639 <回车> 639 , 99099 , 5 含有错误的源程序如下: 【要求】 1.把上述程序录入到文件学号_4.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_4.cpp放在考试盘中的根目录下,供阅卷用。 五、改错题 【要求】 1.把上述程序录入到文件学号_5.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_5.cpp放在考试盘中的根目录下,供阅卷用。 一、病句的几种类型: 1.成分残缺:即句子中缺少了某些必要成分,句子意思表达不清楚。 例:他受坏思想的影响,走上了犯罪。 2.搭配不当:即句子中的某两个成分或某两个词语错误搭配。 例:教室里人声混乱,老师讲的什么,谁也没有听清。 3.词序颠倒:即句子里的词没有按照规律和表达意思的需要来排列。 例:历史博物馆里展出了两千多年前新出土的文物。4.意思重复: 即句子里出现多余成分,显得语句罗嗦、累赘。 例:我觉得这是想得不对的错误想法。 5.概念不清:即句中的意思含糊不清,令人不解、混淆。例:造纸是中国的四大发明。 6.前后矛盾:即句子前后意思不一致。例:我肯定李琳大概是生病了。7.分类不当:即句子中把不是一类的归为了一类。例:篮子里有青菜、萝卜、葡萄、西红柿等 蔬菜。 二、改病句的三个步骤 ①读句子、理句意②查排审、找病因③改句子、保原意(改得少、改得巧) 三、改病 句练习。 (1)每个小学生都应该上课专心听讲的好习惯。 (2)“六一”联欢会上,我们班表演了文娱节目和大合唱。(3)我们要不断改进学习方法,增强学习效率。(4)周爷爷爱戴我们小朋友,我们热爱周爷爷。(5)这本书对我很感兴趣。 (6)黄继光不但壮烈牺牲了,而且他永远活在我们的心中。(7)大家都讲卫生,我们的健康和疾病就有保障。(8)《繁星》的作者是巴金写的。 (9)我们要积极响应“人人动手,绿化祖国”。(10)美丽的大草原一碧千里,到处都是绿色。(11)我们开会通过并讨论了他的建议。 (12)《小学生语文报》和《少年文艺》这两种报纸我都很爱看。(13)联欢会开始了,整个会场充满了热闹的气氛。(14)战士们冒着大雨和泥泞的小路快步前进。(15)下午,全校师生和少先队员去参观画展。 (16)《科学画报》和《少年文艺》这两种报纸我都爱看。(17)我估计他今天一定不会来参加会议了。 (18)在美术老师的悉心指导下,使我的素描画进步很快。(19)我们必须认真克服并善于发现学习上的毛病。(20)上课时,始终专心听讲,因此,成绩很好。 (21)菜园里种着西红柿、西瓜、黄瓜、毛豆、红豆、扁豆等蔬菜。(22)经过教育,我明确了学习目的和学习态度。(23)墙上的挂钟走了一圈,一个小时又过去了。(24)我们要热爱公共财产。(25)草原把夕阳照得五彩缤纷。 (26)《小学生数学报》和《少年报》这两种报纸我都很爱看。(27)王老师被光荣地评为“模范班主任”的光荣称号。(28)我们大摇大摆地走在山间小道上。 (29)我们要不断改善缺点,发挥优点,取答得更大的成绩。(30)经过努力,王小明的错别字大大进步了。 (31)黄河、长江、万里长城、古运河都是我国古代的伟大工程。(32)这篇作文层次和语句都很通顺。改病句练习 1.造纸是我国古代的四大发明。 2.《林海》这篇课文的作者是老舍先生写的。3.他穿了灰色上衣,一顶蓝帽子。 4.一进幼儿园,我就看见了一张张可爱的小脸和一阵阵动听的歌声。5.大扫除开始了,男女老少都参加,男的干重活,老的少的干轻活。6.这篇文章的内容比较优美。7.夏天的庐山是美丽的风景。8.小王用的毛笔写字非常漂亮。9.她焦急地等待着汽车开来的方向。10.列车沿着铁路在戈壁 滩上奔腾。 11.联欢会上,同学们唱了许多动听的歌和舞蹈。12.劳动开始了,男的女的都 一、病句的几种类型: 1.成分残缺:即句子中缺少了某些必要成分,句子意思表达不清楚。 例:他受坏思想的影响,走上了犯罪。 2.搭配不当:即句子中的某两个成分或某两个词语错误搭配。 例:教室里人声混乱,老师讲的什么,谁也没有听清。 3.词序颠倒:即句子里的词没有按照规律和表达意思的需要来排列。 例:历史博物馆里展出了两千多年前新出土的文物。4.意思重复: 即句子里出现多余成分,显得语句罗嗦、累赘。 例:我觉得这是想得不对的错误想法。 5.概念不清:即句中的意思含糊不清,令人不解、混淆。例:造纸是中国的四大发明。 6.前后矛盾:即句子前后意思不一致。例:我肯定李琳大概是生病了。7.分类不当:即句子中把不是一类的归为了一类。例:篮子里有青菜、萝卜、葡萄、西红柿等 蔬菜。 二、改病句的三个步骤 ①读句子、理句意②查排审、找病因③改句子、保原意(改得少、改得巧) 三、改病 句练习。 (1)每个小学生都应该上课专心听讲的好习惯。(2)“六一”联欢会上,我们班表演了文娱节目和大合唱。(3)我们要不断改进学习方法,增强学习效率。(4)周爷爷爱戴我们小朋友,我们热爱周爷爷。(5)这本书对我很感兴趣。 (6)黄继光不但壮烈牺牲了,而且他永远活在我们的心中。(7)大家都讲卫生,我们的健康和疾病就有保障。(8)《繁星》的作者是巴金写的。 (9)我们要积极响应“人人动手,绿化祖国”。(10)美丽的大草原一碧千里,到处都是绿色。(11)我们开会通过并讨论了他的建议。 (12)《小学生语文报》和《少年文艺》这两种报纸我都很爱看。(13)联欢会开始了,整个会场充满了热闹的气氛。(14)战士们冒着大雨和泥泞的小路快步前进。(15)下午,全校师生和少先队员去参观画展。 (16)《科学画报》和《少年文艺》这两种报纸我都爱看。(17)我估计他今天一定不会来参加会议了。 (18)在美术老师的悉心指导下,使我的素描画进步很快。(19)我们必须认真克服并善于发现学习上的毛病。(20)上课时,始终专心听讲,因此,成绩很好。 (21)菜园里种着西红柿、西瓜、黄瓜、毛豆、红豆、扁豆等蔬菜。(22)经过教育,我明确了学习目的和学习态度。(23)墙上的挂钟走了一圈,一个小时又过去了。(24)我们要热爱公共财产。(25)草原把夕阳照得五彩缤纷。 (26)《小学生数学报》和《少年报》这两种报纸我都很爱看。(27)王老师被光荣地评为“模范班主任”的光荣称号。(28)我们大摇大摆地走在山间小道上。 (29)我们要不断改善缺点,发挥优点,取答得更大的成绩。(30)经过努力,王小明的错别字大大进步了。 (31)黄河、长江、万里长城、古运河都是我国古代的伟大工程。(32)这篇作文层次和语句都很通顺。改病句练习 1.造纸是我国古代的四大发明。 2.《林海》这篇课文的作者是老舍先生写的。3.他穿了灰色上衣,一顶蓝帽子。 4.一进幼儿园,我就看见了一张张可爱的小脸和一阵阵动听的歌声。5.大扫除开始了,男女老少都参加,男的干重活,老的少的干轻活。6.这篇文章的内容比较优美。7.夏天的庐山是美丽的风景。8.小王用的毛笔写字非常漂亮。9.她焦急地等待着汽车开来的方向。10.列车沿着铁路在戈壁 滩上奔腾。 11.联欢会上,同学们唱了许多动听的歌和舞蹈。12.劳动开始了,男的女的都 三、将下面的词语补充完整。(4分)呕心沥()()断丝连()灵手巧 安然无()大显身()()天立地()往今来 不动声() 四、我会按要求完成下面各题。(8分) 1.大树爷爷看到了孩子们幸福的笑脸和欢乐的歌声。(修改病句) 2.目前已知最大的鲸约有十六万公斤重,最小的也有两千公斤。(写个句子,用上列数字的说明方法。) 3.21世纪图书馆的大门不会关闭。(改为反问句) 4.未来的社会不可能不是“多元”的社会。(改为肯定句) 五、用恰当的关联词语把下面的两句话合并成一句话。(6分) 1、(1)空气中没有灰尘。(2)大自然将多么单调。 2、(1)赵州桥雄伟坚固。(2)赵州桥美观。 六、根据提示的内容填空。(4分) 1.有些同学取得一点成绩就高兴的忘乎所以,我要送他的名言警句是: 2.我最喜欢的一句有关读书名言警句是: 七、写出下列句子运用的修辞手法。(8分)1.小明家的房子小得只有书桌那么大。() 2.小草偷偷地从土里钻了出来,嫩嫩的,绿绿的。()3.难道不耕耘也会有收获?() 4.它好肥,整个身子好像一个蓬松的球儿。() 八、选词填空。(6分)愿望 期望 盼望 1.我()到上海出差已三个月的爸爸早日回来。2.老师()后进生早日进步。 3.你想做个科学家,但想过怎样去实现这个()吗? 请求 乞求 要求 1.小姑娘抱着爸爸的腿,用会说话的眼睛()着。2.老师对学生的学习提出了新的()。3.指导员答应了董存瑞的()。 九、给下面的句子加上标点符号。(2+3=5分)1.欢迎你 同学们一口同声地说 2.我叫张丽娜 小女孩大大方方地说 希望大家多多帮助我 程序改错 ==== 题号:20301 /*----------------【程序改错】 -------------------------- 给定程序的功能是:从键盘上接收一字符串到a字符数组中,在cpy函数中将a数组中字符AscII值为偶数的复制到b数组,并在主函数中输出b数组。例如输入“aabcde”则输出“bd”。 请改正**********ERROR**********下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ----------------*/ #include while(*p1) {if(*p1%2==0)/**********ERROR**********/ p2++=*p1;p2前缺少*号 p1++; } /**********ERROR**********/ *p2=“ ”;*p2=’ ’ } void main(){char a[30],b[30];gets(a);/**********ERROR**********/ cpy(a,b)缺少分号 printf(“%sn”,b);} 程序改错 ==== 题号:20343 /*---------------------------【程序改错】 --------------------------- 给定程序的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,输入字符串:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ---------*/ #include char s[100]; char *q; int upper=0;/**********ERROR**********/ int lower=100;int lower=0; printf(“nPlease a string: ”); gets(s); q=s;/**********ERROR**********/ while(*q==' ')while(*q!=' ') { if(*q>='A' && *q<='Z') upper++; if(*q>='a' && *q<='z') lower++;/**********ERROR**********/ q--;q--; } printf(“n upper=%d lower=%dn”, upper,lower);} 程序改错 ==== 题号:20453 /*---------------------------【程序改错】 --------------------------- 给定的程序功能为:从键盘输入十个无序数据存入数组中,并找出其中数值最大的元素的下标。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ---------*/ #include /**********ERROR**********/ for(i=0;i<=10;i++)for(i=0;i<10;i++) /**********ERROR**********/ scanf(%d,&a[i]);scanf(“%d”,&a[i]); for(i=0,j=0;i<10;i++) /**********ERROR**********/ if(a[i]>a[j])j==i;j=i;printf(“n%d”,j);} 程序改错 ==== 题号:20331 /*--------------------------- 【程序改错】 --------------------------- 给定程序的功能是:将字符串s1中的ASCII码为奇数且下标也为奇数的字符复制到字符数组s2中。 如:输入bcdefg输出结果为ceg。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。------------------*/ #include char s1[80],s2[40]; int i=0,j=0,k=0; printf(“please input string1:n”); /**********ERROR**********/ getchar(s1);gets(s1); printf(“n”); /**********ERROR**********/ while(s1[i]==' ')while(s1[i]!=' ') { if(s1[i]%2==1 && k%2==1) { s2[j]=s1[i]; i++; j++; k++; } else { i++; k++; } /**********ERROR**********/ s2[j]=' 's2[j]=' '; } printf(“%sn”,s2);} 程序改错 ==== 题号:20325 /*--------------【程序改错】 ----------------------------- 程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!例如:若m=6,则应输出:1.718056。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------*/ #include “stdio.h” double fun(int m){ double y=0, t=1;int i;/**********ERROR**********/ for(i=2;i<=m;i++)for(i=1;i<=m;i++) { t=t*1.0/i;/**********ERROR**********/ y=t;y+=t;} return(y);} void main(){ int n;printf(“Enter n: ”);/**********ERROR**********/ printf(“%d”, &n);printf(“nThe result is %lfn”, fun(n));} 程序改错 ==== 题号:20325 /*--------------【程序改错】 ----------------------------- 程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!例如:若m=6,则应输出:1.718056。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------*/ #include “stdio.h” double fun(int m){ double y=0, t=1;int i;/**********ERROR**********/ for(i=2;i<=m;i++)for(i=1;i<=m;i++){ t=t*1.0/i;/**********ERROR**********/ y=t;y+=t;} return(y);} void main(){ int n;printf(“Enter n: ”);/**********ERROR**********/ printf(“%d”, &n);scanf(“%d”, &n);printf(“nThe result is %lfn”, fun(n));} 程序改错 ==== 题号:20331 /*--------------------------- 【程序改错】 --------------------------- 给定程序的功能是:将字符串s1中的ASCII码为奇数且下标也为奇数的字符复制到字符数组s2中。 如:输入bcdefg输出结果为ceg。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------------*/ #include char s1[80],s2[40]; int i=0,j=0,k=0; printf(“please input string1:n”); /**********ERROR**********/ getchar(s1);gets(s1); printf(“n”); /**********ERROR**********/ while(s1[i]==' ')while(s1[i]!=' ') { if(s1[i]%2==1 && k%2==1) { s2[j]=s1[i]; i++; j++; k++; } else { i++; k++; } /**********ERROR**********/ s2[j]=' 's2[j]=' '; } printf(“%sn”,s2);}第二篇:改错题
第三篇:改错题
第四篇:改错题
第五篇:改错题