程序改错
程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。
#include "stdio.h"#define N 20void fun(int a[], int n){int i, j, t, k;for (j = 0 ;j < n-1 ;j++){/**********ERROR**********/k = jfor (i = j+1;i < n; i++)/**********ERROR**********/if(a[i] >a[k])/**********ERROR**********/k=j;t = a[k] ;a[k] = a[j] ;a[j] = t;}}main(){int a[N]={9,6,8,3,-1},i, m = 5;printf("排序前的数据:") ;for(i = 0;i < m;i++)printf("%d ",a[i]);printf("\n");fun(a,m);printf("排序后的数据:") ;for(i = 0;i < m;i++)printf("%d ",a[i]);printf("\n");}【参考答案】k = j;【参考答案】if(a[i] < a[k])if(a[k] > a[i])【参考答案】k = i;(二)功能:求广义菲玻那契级数的第n项。
广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,……项值通过函数值返回 main ( )函数。
例如:若 n = 15,则应输出:The value is: 2209。
#include "conio.h"#include "stdio.h"long fun ( int n ){long a=1, b=1, c=1, d=1, k;/**********ERROR**********/for (k=4; k<n; k++){d = a+b+c;/**********ERROR**********/a=bb=c;c=d;}/**********ERROR**********/return k;}main( ){int n = 15;printf( "The value is: %ld\n", fun ( n ) );}【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;(三)功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
程序改错题

程序改错题(注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1.输出计算结果.main(){ int a=b=10;a+=b+5;b*=a+=10;printf(”%d%d\n",a,b);}2.输出计算结果。
#include <stdio。
h〉main(){ float x,y;scanf("%f",x);y=x*56/97;printf("%f\n",y);}3.输出计算结果.main(){ int x=2,y=3;z=(x++,y++);printf("%d”,z);}4.输出运行结果。
main(){ float a,b,c,v;a=2。
0;b=3.0;c=4.0;v=a*b*c;printf("%f\n" ,v)}5.输出运行结果.#include “stdio.h”main(){float r,s;r=5。
0;s=3.14159*r*r;printf("%d\n”,s);}输出程序运行结果。
#include 〈stdio。
h〉main(){ char ch;scanf("%c”,ch);printf(”%d\n",ch);}7.输入一整数判断是否能被13整除。
main(){ int i;scanf(“%d”,i);if(i%13==0) printf(”yes”);else printf("no");}8.输出程序运行结果。
main(){ int a,b;float x,y,z;scanf(”%f%f%f”,&x,&y,&z); a=b=x+y+z;c=a+b;printf("%d%d%d",a,b,c);}9.输出程序运行结果。
#include 〈stdio。
h>main(){ float x,y;scanf("%f",&x);y=2x+10;printf("%f\n",y);}10.输出程序运行结果.main(){ int a,b='B';scanf(”%d”,a);printf("%c,”,b++);printf(”%d\n”,b-a);}下列程序的功能是计算字符串的字符个数.#include ”stdio.h"main(){ char str[80];int s,i=0;gets(str);for(;str[i]!=‘\0’;i++)s++;printf(”%4d\n”,s);}12.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数. main(){float x[]={23。
程序改错

发生错误后都要回到编辑阶段,分析错误原因,修改C源程序,再重复上述操作,直到程序能得到正确的运行结果,程序才算调试成功。程序发生错误,其原因很复杂。学会调试程序,也是学习C程序设计的重点和难点之一,必须多练、多分析,积累经验。
scanf(“%d”,&n);
while(i<n)
i+=2;
sum+=i;
if(n%2==0) n--;
printf(“输出1+3+5+……+%d=%ld\n”,n,sum);省略号是在中文状态下输入的。
}
第四题:程序功能:定义计算三角形面积的函数。计算公式:
s=(a+b+c)/2
a、b、c为三角形的边长。
{
char str[80]="a*b$c(d!EEE !!a.";
fun(str[80]);
printf("\n");
puts(str);
}
4、下列程序,其功能是:从s所指向的串中,找出包含有t所指字符串的个数。例如:s所指向的串为abcdabfab,t所指字符串为ab,则所求个数为3。请改正程序中的错误,使程序能输出正确的结果。
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
int a[]={1,2,3,4,5,6,7,8,9,10},i=10,n;
if((fp=fopen(“file6.txt”,”w”))==NULL)
程序改错

【程序改错】
功能:求1到20的阶乘的和。
答案:
1). t=1; 或 t=1.0;
2). t=t*j; 或 t*=j; 或 t=j*t;
3). s=s+t; 或 s+=t; 或 s=t+s;
4). printf("jiecheng=%f\n",s);
一半;再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
答案:
1). float sn=100.0,hn=sn/2;
2). for(n=2;n<=10;n++) 或 for(n=2;n<11;n++)
3). hn=hn/2;
3). if (i!=k&&i!=j&&j!=k)
【程序改错】
功能:某个公司采用公用电话传递数据,数据是四位的整数,在
传递过程中是加密的,加密规则如下:每位数字都加上5,
然后除以10的余数代替该位数字。再将新生成数据的第一
位和第四位交换,第二位和第三位交换。
x*x+x x<0且x≠-3
f(x)= x*x+5x 0≤x<10且x≠2及x≠3
x*x+x-1 其它
答案:
1). float y;
2). if (x<0 && x!=-3.0)
A[1]=1, A[2]=1/(1 + A[1]), A[3]=1/(1 + A[2]), …,
A[n]=1/(1 + A[n-1])
例如:若 n=10,则应输出:a10=0.617977。
C语言改错题-含答案

第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。
------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。
和值通过函数值返回main 函数。
2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。
------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
程序改错示例

程序改错示例(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--程序改错:在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
练习1:下列程序是将“China”编成密码,规律是:如是大写字母,用原字母后面第4个字母代替原字母,例字母“A”后面第4个字母是“E”,用“E”代替“A”;小写字母用原字母后面第2个字母代替原字母,例如字母“a”后面第2个字母是“c”,用“c”代替“a”。
因此,“China”密码为“Gjkpc”。
SET COLLATE TO "MACHINE"LOCAL mSting,cString,chmString=SPACE(0)cString="China"FOR i=1 TO VAL(cString) ***FOR i=1 TO Len(cString) ch=SUBSTR(cString, 1, i) ***ch=SUBSTR(cString, i,1)IF BETWEEN(ch,"a","z")mString=mString+CHR(ASC(ch)+2)ELSEmString=mString+CHR(ASC(ch)+4)ENDIFENDFORWAIT WINDOW cString+"密码为"+mString练习2:下列程序中的过程(过程名为ren)用来产生n个a~b之间的随机整数,然后将它们以从大到小的顺序存储在数组X中,并分别输出n=10、a=5、b=25和n=20、a=50、b=80时数组X的值。
=ren(10,5,25)=ren(20,50,80)PROC renPARA a,b,n ***PARA n,a,bDIME x(n)x = 0FOR i = 1 TO nx(i) = INT((b-a)*RAND() + a)ENDFORFOR j = 1 TO n-1FOR k = j+1 TO nIF x(k) > x(j)t = x(j)x(k) = x(j) ***x(j) = x(k)x(k) = tENDIFENDFORENDFORFOR i = 1 TO nx(i)ENDFORENDPROC练习3:下列程序用来产生10个30~50之间的随机整数,并将它以从大到小的顺序存储在数组X中。
计算机二级考试C++语言程序设计上机考试试题

计算机二级考试C++语言程序设计上机考试试题计算机二级考试C++语言程序设计上机考试试题计算机二级考试接近,不知道各位同学都预备得怎么样呢?接下来应届毕业生我为大家细心预备了计算机二级考试C++语言程序设计上机考试试题,期望能够给大家带来帮忙!一、程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor留意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:#include(iostream.h)classTC{inti;第1页/共5页public:TC();voiddisplay();~TC();};//******error******TC:TC(){coutConstructor,;i=0;)//******error******TC:display(){touti= }//******error******第2页/共5页TC:TC(){COUIDestructor }voidmain(){TCa;a.display();}二、简洁应用题使用VC++6.0打开考生文件夹下的源程序文件2.cpp。
阅读下列函数说明和代码,实现函数sort(intA[],intn),用选择排序法将数组从大到小排序。
提示:选择排序法的思想是(1)反复从还未排好序的那部分线性表中选出关键字最小的结点。
(2)根据从线性表中选出的.挨次排列结点,重新组成线性表。
(3)直到未排序的那部分为空,使得重新形成的线性表是一个有序的线性表。
第3页/共5页补充函数sort(intA[],intn),实现选择排序。
留意:请勿改动主函数。
试题程序:#include#defineN10voidsort(intA[N],intn){}intmain()intA[N]={-72,54,-6,7,18,102,0,4,-11,1}; sort(A,10);for(inti=0;i(sizeof(A)/sizeof(int);i++){cout }cout return0;第4页/共5页}文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
c语言改错题题库及详解答案

c语言改错题题库及详解答案C语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和强大的功能而受到程序员的青睐。
然而,即使是经验丰富的程序员也难免会在编写C语言程序时犯一些错误。
下面是一个C语言改错题题库及其详解答案,帮助学习者识别并改正常见的编程错误。
题目1:错误的变量初始化```cint main() {int a;printf("%d", a); // 错误:变量a未初始化return 0;}```详解答案:在C语言中,如果一个变量在使用前没有被显式地初始化,它的值是不确定的。
为了修复这个错误,我们应该在声明变量时对其进行初始化。
```cint main() {int a = 0; // 正确的初始化printf("%d", a);return 0;}```题目2:错误的数组索引```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[5]); // 错误:数组索引越界return 0;}```详解答案:数组索引是从0开始的,所以对于一个有5个元素的数组,有效的索引范围是0到4。
访问数组的第6个元素会导致越界错误。
```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[4]); // 正确的索引return 0;}```题目3:错误的循环使用```cint main() {int i;for (i = 0; i <= 10; i++) {printf("%d ", i);} // 错误:循环条件错误return 0;}```详解答案:循环条件应该是`i < 10`,以确保循环不会无限执行。
```cint main() {int i;for (i = 0; i < 10; i++) {printf("%d ", i);}return 0;}```题目4:错误的函数调用```cint main() {int result = add(5, 3); // 错误:add函数未定义printf("%d", result);return 0;}```详解答案:在调用一个函数之前,需要确保该函数已经被定义。
程序改错与填空全部试题

程序改错、程序填空程序填空:第1题:题目:下面是计算1+1+2+2+…n+n之和的平方根的程序。
SET TALK OFFINPUT TO N*************SPACE******* 【?】FOR I=1 TO N*************SPACE*******S=【?】ENDFOR*************SPACE*******?“结果是”,【?】RETURN答案:(1)S=0 (2)s+2*I (3)SQRT(S)第2题:题目:以下程序通过键盘输入4个数字,找出其中最小的数。
SET TALK OFF*************SPACE******* 【?】INPUT “请输入第一个数字”TO XDO WHILE I<=3M=XINPUT “请输入数字”TO M *************SPACE********* ****IF 【?】M=XENDIF*************SPACE******* 【?】ENDDO?“最小的数是”,MSET TALK ON答案:(1)I=1(2)X<M(3)I=I+1 第3题:题目:以下程序的功能:t=20+21+22+ (2)SET TALK OFF*************SPACE******* 【?】*************SPACE******* 【?】TO NFOR I=0 TO N*************SPACE*******T=T+【?】ENDFOR?“T的值是:”,TSET TALK ONRETURN答案:(1)T=0(2)INPU T(3)2**I第4题:题目:复制表XSDA.DBF,生成新表XS.DBF,在新表中查找所有男同学的记录,并将男同学的记录逻辑删除。
SET TALK OFFUSE XSDA*************SPACE******* 【?】USE XSLOCA TE FOR 性别=“男”DO WHILE FOUND()*************SPACE******* 【?】*************SPACE******* 【?】ENDDOUSESET TALK ON答案:(1)COPY TO XS(2)DELETE(3)CONTINUE第5套:题目:表RSDA.D BF结构为:姓名(C,6);性别(C,2),年龄(N,2),出生日期(D,8)。
第四课:如何修改程序中的错误

二、程序中的常见错误
7、变量名写错
二、程序中的常见错误
8、逻辑错误
第五课 如何修改程序中的错误
本次课程目标
一、学习查找程序中的错误 二、程序中的常见错误分析
一、学习查找程序中的错误
一、学习查找程序中的错误
1. 运行>编译时,系统会帮我们找出程序中的语法错误(书写错误) 2. 系统会指出出错的大致位置(本行,或上一行,或附近位置) 3. 要学会看错误提示(可以借助翻译软件或者搜索引擎)
二、程序中的常见错误
1、语句末尾丢分号
二、程序中的常见错误
2、英文单词包括大小写
二、程序中的常见错误
ቤተ መጻሕፍቲ ባይዱ3、使用了中文(全角符号)
二、程序中的常见错误
中 文
3、使用了中文(全角符号) 的
: “” ()
二、程序中的常见错误
4、<<或>>方向错误
二、程序中的常见错误
5、{ }不配对
二、程序中的常见错误
计算机二级C上机:程序改错题

计算机二级C上机:程序改错题计算机二级C上机:程序改错题为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是店铺搜索整理的计算机二级C上机:程序改错题,供参考练习,预祝考生们考出自己理想的成绩!程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为150200注意:错误的语句在//******error******的下面,修改该语句即可。
提示:定义Numl为一个整型数据位长的`变量。
试题程序:#include//******error******struct{//******error******intNuml:1;intNum2;}MyStruct;voidmain(){MyStructmstr;mstr.Num1=150;mstr.Num2=15;//******error******int*ptr=&mstr.Numl;cout<<*ptr<<endl;*ptr=200;cout<<*ptr<<endl;}答案:(1)“typedefstruct”。
(2)“intNuml:32;”或“intNuml;”。
(3)“int*ptr=(int*)&mstr;”。
【解析】第1处是定义结构体,结构体定义的一般形式为struct(结构体名>{<成员列表>}(变量名列表);程序当中定义结构体名放在后面,MyStruct为结构体变量类型,相当于typedef为已有的类型定义一个新的类型,第1处应改为“typedefstruct”。
第2处是定义Numl为一个整型数据变量,整型数据位数为32(4字节),因此第2处应改成“intNuml:32;”或“intNuml;”。
ptr为整型数据指针,mstr为MyStruct类型结构变量,两者类型不一致应该做强制类型转换,第3处应改成“int*ptr=(int*)&mstr;”,表示将mstr的地址给ptr,ptr指向MyStruct的第一个域Numl,Numl也是整型,类型一致,故可通过ptr指针来改变Numl的值。
大学C语言期末考试练习题程序改错(带详解答案)

scanf(“%d”,a); //若 scanf 语句有错误,常见考点有两个:(1)格式声明符号要 与后面欲赋值的变量的类型一致,此题%d 与 a 的类型 int 一致(详见 p69-78);(2)变量 的前面要有地址符号&
{ sum=sum*i; // 若不为 sum 赋初值,则此处无法计算 sum*i。 i++;
} printf("sum=%d",sum); //若 printf 语句有错误,常见考点有 1 个:格式声明符号 要与后面欲输出的变量的类型一致,此题%d 与 sum 的类型 long int 不一致,应改为%ld (详见 p69-78);
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
略 { if(n%3=0) // = 是赋值符号,用于将右边的值赋给左边的变量;== 是
关系符号,用来判断两个值是否相等 。改错中 if 后面表达式中的赋值符号是常见的 考点。
复习资料_程序设计改错

程序改错题一个程序可能有多个方面的错误,此处仅归在一个出错的地方语法错误,书写错误/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。
(输出的数据都保留2位小数)------------------------------------------------------*/#include <stdio.h>fun(){/**********FOUND**********/float tfloat a, b ;scanf("%f %f",&a,&b);/**********FOUND**********/if(a<b){t=a;a=b;b=t;}/**********FOUND**********/printf("%5.2f ,%5.2f\n",&a,&b);}main(){fun();}答案:1、float t;2、if(a>b)3、printf("%5.2f, %5.2f\n",a,b);/*------------------------------------------------【程序改错】---------------------------------------------------功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
------------------------------------------------------*/#include <stdio.h>#define N 11main(){int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("please enter an integer to insert in the array:\n");/**********FOUND**********/scanf("%d",&number)printf("The original array:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n");/**********FOUND**********/for(i=N-1;i>=0;i--)if(number<=a[i])/**********FOUND**********/a[i]=a[i-1];else{a[i+1]=number;/**********FOUND**********/exit;}if(number<a[0]) a[0]=number;printf("The result array:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}答案:1、scanf("%d",&number);2、for(i=N-2;i>=0;i--)3、a[★i★+★1★]=a[i];4、break;/*-------------------------------------------【程序改错】----------------------------------------------功能:以下程序把两个数按由大到小的顺序输出来.------------------------------------------------------*/#include <stdio.h>/***********FOUND***********/swap( int *p1,*p2){int p;p=*p1;*p1=*p2;*p2=p;}main( ){int a,b, *p,*q;printf("input a,b:");/***********FOUND***********/scanf("%d%d",a,b);p=&a;q=&b;if(a<b)swap(p,q);printf("a=%d,b=%d\n",a,b);/***********FOUND***********/printf("max=%d,min=%d\n",p,q);}答案:1、swap( int *p1,int *p2)2、scanf("%d%d",&a,&b);3、printf("max=%d,min=%d\n",*p,*q);输入、输出语句错误/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:在一个一维整型数组中找出其中最大的数及其下标。
VB程序改错40题含答案

【程序改错】题目:该程序实现将输入的 0 - 255 之间的正整数转换成二进制数Option ExplicitPrivate Sub Form_Click()Const n = 8Dim a(n) As Integer, s As String, m As Integer, x As Integer x = Val(InputBox("请输入一个 0 - 255 之间的正整数:"))Print xFor m = 1 To na(m) = x Mod 2x = x / 2Next ms = " "For m = n To 0 Step -1s = Str(a(m))Next mPrint sEnd Sub答案:=======(答案1)=======For m = 0 To n=======(答案2)=======x= x \ 2=========或=========x= int(x/2)=======(答案3)=======s = s + Str(a(m))第3题(1.0分)题号:463'【程序改错】'题目:以下程序功能是输入三个数,由大到小排序。
Option ExplicitDim A As IntegerDim B As IntegerDim C As IntegerPrivate Sub Form_Click()Dim nTemp As IntegerA = Val(InputBox("Please input first integer", "输入正整数"))B = Val(InputBox("Please input second integer", "输入正整数"))C = Val(InputBox("Please input third integer", "输入正整数"))If A <= C ThennTemp = AA = BB = nTempEnd IfIf B <= C ThennTemp = AA = CC = nTempEnd IfIf A <= B ThennTemp = BB = CC = nTempEnd IfPrint "The integers in order is"; A; B; CEnd Sub答案:=======(答案1)=======If A <= B Then=========或=========If B >= A Then=======(答案2)=======If A <= C Then=========或=========If C >= A Then=======(答案3)=======If B <= C Then=========或=========If C >= B Then第4题(1.0分)题号:127'【程序改错】'题目:下面程序可输出如下图形:' *' ***' *****' *******' *********'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer n = 4m = 1s = "*"For i = 5 To 1 Step -1Print Spc(n)For j = 1 To 2 * m - 1Print s;Next jPrintn = n + 1m = m - 1Next iEnd Sub答案:=======(答案1)=======Print Spc(n);=========或=========Print Spc(i);=========或=========? Spc(n);=========或=========? Spc(i);=======(答案2)=======n = n - 1=========或=========n = - 1+n=======(答案3)=======m = m + 1第5题(1.0分)题号:469'【程序改错】'题目:已知一个函数f(x)=1000*sin(x),利用绘图方法' 在图片框中显示其图形。
程序改错——精选推荐

程序改错1、改正下面程序段中的错误public Class Test {public static void main(String args) { //此处有错int i1,i2,i3;float f;char c;System.out.println("int:" + i1); //此处有错c = “A”; //此处有错f = 3.0; //此处有错}}主方法的args参数的数据类型应该为String数组,即String[] args变量i1要初始化c = …A‟f = 3.0f,当给声明float数据类型的变量赋值时,应该在数值后面加个f或者是F2、改正下面程序段中的错误public class Test {public void main(String[] args) {//此处有错boolean isV alid = 0; //此处有错int scores[5] = {65,70,69,98,86}; //此处有错if( isV alid ) then{System.out.println(scores[5]); //此处有错}else{System.out.println(“No information”);}}}是public static void main(String[] args)在java中boolean数据类型只有两个值,要么false,要么true,不能赋值为0;声明数组时不能具体写出数组的大小,改成int score[]score[5]数组下标不能为5,数组下标越界3、改正下面程序段中的错误public class Student{String id;Strng name;int salary;public void Test(String id, String name, int salary){this.id = id; = name;this.salary = salary;}public void changeInfo(String id, int salary){ //此处有错boolean result;if(id == this.id){this.salary = salary;result = TRUE;}else{result = false;}return result;}public boolean changeInfo(String ids, int salarys){……}}changeInfo(String id, int salary)这个方法的返回类型要为boolean型(可能还有一个错误,就是没有主方法)4、改正下面程序段中的错误import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame{public MyFrame(){Button btn = new Button(“Exit”);setLayout(BorderLayout);add(btn);btn.addActionListener(this); //此处有错setSize(300,300);setVisible(TRUE);}public static void main(String[] args){MyFrame fr = MyFrame();}class MyHandler extends ActionListener{ //此处有错public void actionPerformed(ActionEvent e){System.exit(0);}}}btn.addActionListener(new MyHandler);因为MyFrame这个类并没有实现ActionListener这个接口不是继承,是实现,即implements,因为ActionListener是一个接口。
程序阅读、改错并调试出正确结果

1.调试C程序时常见的错误类型分析一般情况下,错误主要分为两大类:一、语法错误。
对于这种错误,用编译器很容易解决。
所以,改错题的第一步是先编译,解决这类语法错误。
下面总结了二级C语言上机改错题中常见的语法错误:(1)丢失分号,或分号误写成逗号。
(2)关键字拼写错误,如本来小写变成大写。
(3)语句格式错误,例如for语句中多写或者少写分号。
(4)表达式声明错误,例如:少了()(5)函数类型说明错误。
与main()函数中不一致。
(6)函数形参类型声明错误。
例如:少*等。
(7)运算符书写错误,例如:/写成了\。
二、逻辑错误,或者叫语义错误,这和实现程序功能紧密相关,一般不能用编译器发现。
对于逻辑错误可以按这样的步骤进行查找。
(1)先读试题,看清题目的功能要求。
(2)通读程序,看懂程序中算法的实现方法。
(3)细看程序,发现常见错误点。
2.改错题的改错方式总结,当然这些总结只能对大部分改错行有效。
1、若错误行是函数首部,可分为以下几种情况:A、该行最后若有分号则删除,中间若有分号则改成逗号B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则第二维的长度必须与main中对应数组的第二维长度相同C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return后变量的类型一致。
2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。
3、若错误行中有if、while、for则要特别注意条件表达式的错误问题:A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一般是进行逆转或加一个等于号C、for中要用分号分隔表达式,而不是用逗号4、语法错误A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
'------------------------------------------------
'题目:程序功能根据输入的学习成绩,分别显示优秀
' (90分以上), 良好(75分以上),及格(60分以上)
' ,不及格几个等级.
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
Private Sub Form_Click()
Cls
Dim i As Integer
i = InputBox("请输入学习成绩")
Select Case i
m = 1
s = "*"
For i = 5 To 1 Step -1
'**********FOUND**********
Print Spc(n)
For j = 1 To 2 * m - 1
Print s;
Next j
'**********FOUND**********
C = nTemp
End If
'**********FOUND**********
If A <= B Then
nTemp = B
B = C
C = nTemp
End If
Print "The integers in order is"; A; B; C
'题目:已知C的公式表示如下:
' n!
' C=------------------
' (n-m)!*m!
'函数过程fac( )求k!函数,在Fomr_Click事件中完成运算,
'请修正程序中错误。
'------------------------------------------------
'------------------------------------------------
Private Sub Form_Click()
Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer
n = 4
'**********FOUND**********
Case 0 < i < 100
MsgBox "成绩应该在0--100之间"
'**********FOUND**********
Case 90
Print "优秀"
Case 75 To 90
Print "良好"
Case 60 To 75
'【程序改错】
'------------------------------------------------
'题目:程序功能为打印下列图形:
' *
' **
' ***
' ****
' *****
'------------------------------------------------
For i = 2 To 8
s = s + fact(i)
Next i
Print s
End Sub
'**********FOUND**********
Public Function fact()
Dim t As Long
Dim i As Integer
t = 1
For i = 1 To n
End Sub
if A <=B then
if A <=c then
if B <=C then
'------------------------------------------------
'【程序改错】
'------------------------------------------------
'【程序改错】
'------------------------------------------------
'题目:随机产生n个两位正整数(n由输入对话框输入,且n>0),
' 求出其中的偶数之和,并在标签框Label1上显示。
'------------------------------------------------
Dim A As Integer
Dim B As Integer
Dim C As Integer
Private Sub Form_Click()
Dim nTemp As Integer
A = Val(InputBox("Please input first integer", "输入正整数"))
'【程序改错】
'------------------------------------------------
'题目:求s=2!+4!+6!+8!,阶乘的计算用Function过程
' fact实现
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
Private Sub Form_Click()
Cls
Dim i As Integer
Dim j As Integer
'**********FOUND**********
Print "及格"
'**********FOUND**********
Case
MsgBox "不及格", vbCritical
End Select
End Sub
case is >100,is <0
case 90 to 100
case else
'------------------------------------------------
If rnddat / 2 = 0 Then
Dim C As Single
Dim m As Integer, n As Integer
m = Val(InputBox("请输入一个整数(m):"))
n = Val(InputBox("请输入一个整数(n):"))
'**********FOUND**********
'**********FOUND**********
x = 0
For j = 1 To k
'**********FOUND**********
x = x ^ j
Next j
fac = x
End Function
Private Sub Form_Click()
'题目:下面程序可输出如下图形:
' *
' ***
' *****
' *******
' *********
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构
B = Val(InputBox("Please input second integer", "输入正整数"))
C = Val(InputBox("Please input third integer", "输入正整数"))
'**********FOUND**********
n = n + 1
'**********FOUND**********
m = m - 1
Next i
End Sub
? Spc(n)
n=n-1
m=m+1
Option Explicit
'------------------------------------------------
Dim rnddat As Integer
n = Val(InputBox("Please input a integer", "Input N value"))
'**********FOUND**********
sum = n
If n > 0 Then
For i = 1 To n
'**********FOUND**********
rnddat = Int(90 * Rnd)