第一篇:5 程序改错题
程序改错 共10题
程序代码中,“**********FOUND**********”语句的下一行有错误。1./*------------------------【程序改错】
--------------------------题目:从键盘上输入一个字符,判断该字符是数字字符、英文字符
还是其他字符
------------------------*/ import java.io.*;public class Prog1 { public static void main(String args[])throws IOException { /***********FOUND***********/ boolean c;请在此处填写答案:_______________________________ /***********FOUND***********/ c=System.in.read();请在此处填写答案:_______________________________ if(c>='0'&&c<='9')System.out.println(c+“是数字字符”);/***********FOUND***********/ else if(c>='A'&&c<='Z'&&c>='a'&&c<='z')请在此处填写答案:_______________________________ System.out.println(c+“是英文字符”);/***********FOUND***********/ end if 请在此处填写答案:_______________________________ System.out.println(c+“是其他字符”);} } 2./*------------------------【程序改错】
--------------------------题目:计算1到100的整数和值
------------------------*/ public class Prog1 { /***********FOUND***********/ public static void main(args[])请在此处填写答案:_______________________________ { /***********FOUND***********/ int n=100,sum=1;请在此处填写答案:_______________________________ while(n>0)
{ sum+=n;/***********FOUND***********/ n++;请在此处填写答案:_______________________________ } /***********FOUND***********/ System.println(“Sum is ”+sum);请在此处填写答案:_______________________________ } } 3./*------------------------【程序改错】
--------------------------题目:从键盘上输入一个正整数,计算该数的各位数字之和
------------------------*/ import java.io.*;/***********FOUND***********/ public Prog1 请在此处填写答案:_______________________________ { public static void main(String args[])throws IOException { int m,s;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print(“请输入一个自然数:”);m=Integer.parseInt(buf.readLine());/***********FOUND***********/ m=0;请在此处填写答案:_______________________________ while(m!=0){ /***********FOUND***********/ s=s+m/10;请在此处填写答案:_______________________________ /***********FOUND***********/ m=m%10;请在此处填写答案:_______________________________ } System.out.print(“其各位数字之和为:”+s);} } 4./*------------------------【程序改错】
--------------------------题目:求1到100的偶数之和,奇数之积
------------------------*/
public class Prog1 { public static void main(String args[]){ /***********FOUND***********/
int i,j,sum=1;请在此处填写答案:_______________________________ /***********FOUND***********/ int product=1;请在此处填写答案:_______________________________ for(i=1;i<=100;i++){ /***********FOUND***********/ if(i%2!=0)请在此处填写答案:_______________________________ sum+=i;else /***********FOUND***********/ product=i;请在此处填写答案:_______________________________ } System.out.println(“偶数之和是 : ”+sum);System.out.println(“奇数之积是 : ”+product);} } 5./*------------------------【程序改错】
--------------------------题目:计算并输出100以内最大的10个能被3或7整除的自然数之和------------------------*/ public class Prog1 { public static void main(String args[]){ int k,s=0,mc=0;/***********FOUND***********/ for(k=500;k>0;k++)请在此处填写答案:_______________________________ { /***********FOUND***********/ if(k%3 == 0 && k%7==0)请在此处填写答案:_______________________________ { /***********FOUND***********/ s=k;请在此处填写答案:_______________________________
mc++;} /***********FOUND***********/ if(mc=10)请在此处填写答案:_______________________________ break;} System.out.println(“Sum is ”+s);} }
6./*------------------------【程序改错】
--------------------------题目:完成程序的编写,运行结果显示如下: 1 2 3 4 5 6 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1------------------------*/ public class Java_2 { public static void main(String[] args){ /***********FOUND***********/ int[] aTriangle = new int[6][];请在此处填写答案:_______________________________ int i = 0;int j = 6;int k = 0;/***********FOUND***********/ for(i = 0;i < aTriangle.length;i--){ 请在此处填写答案:_______________________________ aTriangle[i]=new int[j];//创建数组。//给每个数组元素赋值并在一行中打印输出。for(k = 0;k < aTriangle.length-i;k++){ /***********FOUND***********/ aTriangle[i][k]=k;请在此处填写答案:_______________________________ /***********FOUND***********/ System.print(aTriangle[i][k]+ “ ”);请在此处填写答案:_______________________________ } j--;System.out.println();//换行。} }
}
7./*------------------------【程序改错】
--------------------------题目:该程序的功能是打印如下所示图形: * *** ***** ******* *********------------------------*/ public class Java_1 { public static void main(String[] args){ /***********FOUND***********/ for(int i=1;i<5;i++){ 请在此处填写答案:_______________________________ /***********FOUND***********/ for(int k=1;k<=5-i;k--)请在此处填写答案:_______________________________ System.out.print(“ ”);/***********FOUND***********/ for(j=1;j<=2*i-1,j++)请在此处填写答案:_______________________________ System.out.print(“*”);/***********FOUND***********/ System.println();请在此处填写答案:_______________________________ } } }
8./*------------------------【程序改错】
--------------------------题目:根据学生的考试的百分制成绩得出分数等级。
(90~100为A级,80~89为B级,70~79为C级,60~69为D级,60分以下为E级)------------------------*/ import java.io.*;public class Prog1 { public static void main(String args[])throws IOException { int grade;/*****************FOUND*****************/ boolean str;
请在此处填写答案:_______________________________ BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print(“请输入考试成绩:”);str=buf.readLine();/*****************FOUND*****************/ grade=Int.parseInt(str);请在此处填写答案:_______________________________ System.out.print(“对应的级别为:”);/*****************FOUND*****************/ if(grade>90)请在此处填写答案:_______________________________ System.out.println(“A”);else if(grade>=80)System.out.println(“B”);else if(grade>=70)System.out.println(“C”);else if(grade>=60)System.out.println(“D”);/*****************FOUND*****************/ otherwise 请在此处填写答案:_______________________________ System.out.println(“E”);} } 9./*------------------------【程序改错】
--------------------------题目:该程序功能是,从键盘输入5个整数,输出其中最大值。
例如:从键盘输入 10 30 50 20 40 则屏幕显示
输入的最大值是 50------------------------*/ import java.io.*;public class Java_1 { /***********FOUND***********/ public static void main(String args)throws IOException { 请在此处填写答案:_______________________________ InputStreamReader ir;BufferedReader in;int max, x;String data;
max = 0;ir = new InputStreamReader(System.in);in = new BufferedReader(ir);System.out.println(“请输入5个正整数:”);/***********FOUND***********/ for(int i = 1;i< 5;i++){ 请在此处填写答案:_______________________________ data = in.readLine();/***********FOUND***********/ x = =Integer.(data);请在此处填写答案:_______________________________ if(max < x)/***********FOUND***********/ x= max;请在此处填写答案:_______________________________ } System.out.println(“输入的最大值是 ”+ max);} }
10./*------------------------【程序改错】
--------------------------题目:从键盘上接受用户输入的10个整数,并输出这10个整数的最大值和最小值
------------------------*/ import java.io.*;public class Prog1 { public static void main(String args[ ])throws IOException { int i, n=10, max, min,temp,sum=0;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));/***********FOUND***********/ max=min==Integer.parseInt(buf.readLine());请在此处填写答案:_______________________________ /***********FOUND***********/ for(i=1;i<=n;i++)请在此处填写答案:_______________________________ { temp=Integer.parseInt(buf.readLine());if(temp > max)/***********FOUND***********/ temp=max;请在此处填写答案:_______________________________ if(temp < min)
/***********FOUND***********/ temp=min;请在此处填写答案:_______________________________ } System.out.println(“max=”+max+“nmin=”+min);} }
第二篇:程序改错题
1、Gaicuo1.cpp的功能是:1!+2!+3!+……+20!。
程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include
float s=0,t;int n,i;for(n=1;n<=20;n++){ for(i=1,t=1;i<=n;i++)t=t*i;/****found*****/ /****found****/
}
2、gaicuo2.cpp的功能是:输入两个不等的整数分别给x和y,输出其中的大数。程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include } 3、gaicuo3.cpp的功能是交换两个数,若输入10和20,则输出20和10。程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 如果程序正确运行时,屏幕的显示和要求输入形式如下: input a,b,c: 2.0 2.0 3.0 ←此处的2.0 2.0 3.0是用户输入的数据 a=2.000000,b=2.000000,c=3.000000 ←此处是要求的输出格式 s=4.000000,v=12.000000 程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出上面的正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include { /****found****/ int sum=0,i=1;/****found****/ while(i<=100) } 8.Gaicuo8.cpp中的函数isprime(int a)是用来判断自变量a是否为素数,若是返回1,否则返回0。程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出上面的正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include { int length(char *);char s[]=“abcdef”;int len1,len2;/****found****/ len1=length(“ ”);//判断有几个空格 /****found****/ len2=length(s);//判断有几个字符 printf(“len1=%d,len2=%dn”,len1,len2);} int length(char *s){ int i=0;while(*(s+i)!=' ')i++;return i;} 10.Gaicuo10.cpp的功能是计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时的圆面积。程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出上面的正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 第二十一套 2.1 DO cya WITH r,h,carea改为:carea=cya(r,h,carea)PROCEDURE cya改为:func cya RETURN改为:RETURN C ENDPROC改为:ENDfunc 第二十四套 2.1 步骤1:打开考生文件夹下的five.prg文件。步骤2:修改其中的命令语句如下。错误1:DO.NOT.EOF()修改为:DO WHILE.NOT.EOF()错误2:SELECT COUNT(*)FROM 教师表 WHERE 教师表.系号=xihao INTO A 修改为:SELECT COUNT(*)FROM 教师表 WHERE 教师表.系号=xihao INTO ARRAY A 错误3:NEXT 修改为:SKIP 步骤3:保存修改后的程序并运行。 第二十五套 2.1 故第1处错误应改为“DO WHILE.NOT.EOF()”;由题意可知,one表中的组号实际上是歌手编号的前两位,故第2处错误应改为“SELECT COUNT(*)FROM 歌手表 WHERE LEFT(歌手表.歌手编号,2)=zuhao INTO ARRAY A”;表中记录值的修改可以通过REPLACE命令来完成,其格式为: REPLACE 字段名 WITH 常量 故第3处错误应改为“REPLACE 歌手人数 WITH A”。 第四十三套 2.1 步骤1:打开程序rate pro。修改程序如下: 第1处错误改为:locate for姓名=“林诗因” 第2处错误改为:do while not eof() 第3处错误改为:summ=summ+a[1] * currency_sl.持有数量 步骤2:保存并运行程序。 第五十五套 2.2 错误1改为:SELECT 顾客号,sum(数量*单价)应付款;错误2 改为:DO WHILE NOT EOF()错误3 改为:REPLACE 应付款 WITH money 第六十三套2.1 第1行中的“=”需改为“IN”;第3行中的“GROUP BY 项目号”需改为“GROUP BY 零件号”;第5行中的“INTO FILE”需改为“TO FILE”。 第六十八套 2.1 步骤1:打开程序four.prg,修改语句如下: 第一处: WHILE改为WHERE。第二处: OPEN改为USE。第三处: WHERE改为FOR。第四处: 填入num = num+1。步骤2:保存并运行程序。 第六十九套 2.1 打开modi1.prg,修改其中的错误如下。 ① 删除“(此处空行)”,然后填写“ use customer”。② 把 “WHILE” 改为“FOR”。 第七十三套 2.1 本题是一个程序修改题。第一处错误应改为:SELECT 课程号 FROM 课程表 WHERE 课程名=“数据结构” INTO ARRAY a;第二处错误应改为:USE 教师表;第三处错误应改为:SCAN FOR 课程号=a AND 工资>=4000;第四处错误应改为:sum=sum+1。 第四十套 3(1)【操作步骤】 首先增加一个新的字段新单价(浮动型,宽度10,小数位数2);然后单击“新建”菜单建立一个程序。在程序中输入如下两行代码: UPDATE order_detail SET 新单价=单价*0.9 WHERE 订单号 IN(SELECT 订单号 FROM order_list;WHERE 订单号=order_detail.订单号 AND YEAR(订购日期)=2001)UPDATE order_detail SET 新单价=单价*1.1 WHERE 订单号 IN(SELECT 订单号 FROM order_list where;订单号=order_detail.订单号 AND YEAR(订购日期)=2002)然后保存该程序,文件名为”prog1.prg”,最后并运行.2.建立“快速报表”: 单击“文件新建报表新建文件”菜单项来建立报表设计器;接着在”报表”菜单但选择”快速报表”.在弹出来的对话框中点击“字段”按钮,然后按顺序添加题目中的字段。接着按“确定”-“确定”;最后保存即可。 第四十三套 【解题思路】 新建表单,按要求添加控件并修改属性,写入命令按钮的代码。【操作步骤】 步骤1:新建一个名为myrate的表单,按照题目的要求为表单添加一个选项组控件两个命令按钮控件,并设置各控件的属性如下(注意:在修改选项组控件中各选项按钮的属性时,要先右键单击选项组控件,选择“编辑”命令,先后单击选中各选项按钮)。保存表单名为myform,运行查看表单的运行结果。步骤2:双击“统计”按钮,编写其Click事件代码如下。************************* If ThisForm.myOption.Value=1 Select 姓名,持有数量 from currency_sl,rate_exchange;where rate_exchange.外币代码=currency_sl.外币代码.and.;rate_exchange.外币名称=“日元”;into table rate_ry else If ThisForm.myOption.Value=2 Select 姓名,持有数量 from currency_sl,rate_exchange;where rate_exchange.外币代码=currency_sl.外币代码.and.;rate_exchange.外币名称=“美元”;into table rate_my else Select 姓名,持有数量 from currency_sl,rate_exchange;where rate_exchange.外币代码=currency_sl.外币代码.and.;rate_exchange.外币名称=“欧元”;into table rate_oy endif endif ************************* 步骤3:双击“退出”按钮,编写其Click事件代码如下: ThisForm.Release 步骤3:运行表单,查看结果。 第四十九套 3 【操作步骤】 步骤1:通过常用工具栏中的“打开”命令打开考生文件夹下的程序文件“ptwo.prg”。步骤2:按题目要求填入相应的语句如下。 语句1:SET RELATION TO 商品号 INTO goods_t 语句2:set relation to 订单号 into orderitems additive 语句3:if 数量>goods_t.库存量 语句4:skip-n 语句5:replace 库存量 with 库存量-orderitems.数量 步骤3:保存修改后的程序文件并运行。 第七十套 3 【操作步骤】 步骤1:通过前面所学的知识,按照题目的要求新建一个表“table3”。步骤2:新建一个程序并输入下列命令语句。*********程序文件中的代码********* SET TALK OFF OPEN DATABASE cj_m SELECT * FROM table3 WHERE.f.INTO TABLE temp SELECT 1 USE xuesheng INDEX ON 学号 TAG 学号 SELECT 2 USE chengji INDEX ON 学号 TAG 学号 SET RELATION TO 学号 INTO xuesheng GO TOP DO WHILE.NOT.EOF()IF chengji.数学<60 INSERT INTO temp Values(xuesheng.学号,xuesheng.姓名,'数学',chengji.数学)ENDIF IF chengji.英语<60 INSERT INTO temp Values(xuesheng.学号,xuesheng.姓名,'英语',chengji.英语)ENDIF IF chengji.信息技术<60 INSERT INTO temp Values(xuesheng.学号,xuesheng.姓名,'信息技术',chengji.信息技术)ENDIF SKIP ENDDO SELECT * FROM temp ORDER BY 分数,学号 DESC INTO ARRAY arr INSERT INTO table3 FROM ARRAY arr CLOSE DATABASE CLOSE TABLES ALL DROP TABLE temp SET TALK ON RETURN ********************************** 步骤3:保存并运行程序,程序文件的名称为prog1。 /*----------------------- 【程序改错】 ------------------------- 功能:求1到20的阶乘的和。 -----------------------*/ #include “stdio.h” void fun(){ int n,j; float s=0.0,t=1.0; for(n=1;n<=20;n++) { /**********FOUND**********/ s=1;改成t=1; for(j=1;j<=n;j++) /**********FOUND**********/ t=t*n;改成t=t*j; /**********FOUND**********/ s+t=s;改成s=s+t; } /**********FOUND**********/ printf(“jiecheng=%dn”,s);改成printf(“jiecheng=%fn”,s);} main(){ fun();} /*----------------------- 【程序改错】 ------------------------- 题目:该函数用于交换两个变量的值。 -------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。-----------------------*/ #include “stdio.h” void change(int *pa,int *pb){ int temp; /**********FOUND**********/ *temp=pa;改成temp=*pa; *pa=*pb; *pb=temp;} main(){ int x, y; x=10;y=20; /**********FOUND**********/ change(x,y);改成change(&x,&y); printf(“%d %d”, x, y);} 改错题: /*----------------------- 【程序改错】 ------------------------- 功能:编写input()和output()函数输入,输出5个学生的数据记录。 -----------------------*/ #include “stdio.h” #define N 5 struct student { char num[6]; char name[8]; int score[3];} stu[N]; input(stu)struct student stu[];{ /**********FOUND**********/ int i;j;改成int i,j; for(i=0;i { printf(“n please input %d of %dn”,i+1,N); printf(“num: ”); scanf(“%s”,stu[i].num); printf(“name: ”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { /**********FOUND**********/ printf(“score %d.”,j);改成printf(“score %d.”,j+1); scanf(“%d”,&stu[i].score[j]); } printf(“n”); } } print(stu)struct student stu[];{ int i,j; printf(“nNo.Name Sco1 Sco2 Sco3n”); /**********FOUND**********/ for(i=0;i<=N;i++)改成for(i=0;i { printf(“%-6s%-10s”,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(“%-8d”,stu[i].score[j]); printf(“n”); } } main(){ input(); print();} 在考生文件夹下的给定程序modi33.c中,函数fun的功能是:计算输出high以内最大的10个素数之和。high由主函数传给fun函数。 若high的值为:100,则函数的值为:732。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include for(j=2;j<=high/2;j++)/************found************/ if(high%j==0){yes=0;break} if(yes){sum+=high;n++;} high--;} return sum;} main(){system(“cls”);printf(“%dn”,fun(100));} 第1 处内容填写有误 第[1]处操作错误 题面要求操作:内容为[while((high>=2)&&(n<10))] 实际操作结果:内容为[while((high>=2)&&(n<10)] 第2 处内容填写有误 第[2]处操作错误 题面要求操作:内容为[if(high%j==0){yes=0;break;}] 实际操作结果:内容为[if(high%j==0){yes=0;break}] 本题的考核点是C语言中一些规定的应用。 本题中的第一处错误是:在C语言中,“{”和“}”应成对出现,所以程序中的语句“ while((high>=2)&&(n<10)”应改为“while((high>=2)&&(n<10))”或相同作用的语句。 本题中的第二处错误是:C语言中,“;”是语句的一部分,是语句结束的标志,不可缺少,所以,“ if(high%j==0){yes=0;break}”应改为“if(high%j==0){yes=0;break;}”或相同作用的语句。 本评析仅作参考。 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序存在考生文件夹下的文件prog91.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include char num[10]; int s;} STREC;int fun(STREC a[]){ } main(){ STREC s[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87},{“GA015”,85},{“GA013”,91},{“GA012”,64},{“GA014”,91},{“GA011”,91},{“GA017”,64},{“GA018”,64},{“GA016”,72}}; int i,n;FILE *out; fun(s); printf(“The data after sorted:n”); for(i=0;i { if((i)%4==0)printf(“n”); printf(“%s %4d”,s[i].num,s[i].s); } printf(“n”); out=fopen(“out16.dat”,“w”); for(i=0;i { if((i)%4==0 && i)fprintf(out,“n”); fprintf(out,“%s %4d”,s[i].num,s[i].s); } fprintf(out,“n”); fclose(out);}生成的结果文件的内容有误 文件[out16.dat]未创建 本题的考核点是按分数的高低排列学生记录的算法。 解题思路:通过选择法或其它的方法对学生记录按分数从高到低进行排序。 本评析仅供参考。 int fun(STREC a[]){int i,j,p,t,k;char h;for(i=0;i第三篇:程序改错题
第四篇:程序改错题
第五篇:程序改错题集