程序改错--答案版

合集下载

C语言程序改错题及答案

C语言程序改错题及答案
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str
scanf("%d\n",&n); str=(char*)malloc(n); gets(str);
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /*输出数组元素*/
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++ห้องสมุดไป่ตู้ /*排序操作*/
{
min = i;
for (j=i+1; j<N; j++)
/****** 2 *****/
putchar(\n);//‘\n’
}
}
12、在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,
请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。
该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
}
11、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)

计算机程序改错题,及答案

计算机程序改错题,及答案

11*程序名:TEST.prg*检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的*学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中.*以下程序有三处错误,请改正OPEN DA TABASE SDBSELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数;FROM STUDENT,SC;WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error**********GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error**********inTO table NEW_TEST &&**********Error********** CLOSE ALL9*程序名:dbtest3.prg*定义一个视图VS1,*检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,*并按平均成绩降序排序.*以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFopen DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行CREATE VIEW VS1SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号;FROM STUDENT2, sc; &&*************Error*************WHERE STUDENT2.学号= SC.学号;GROUP BY SC.学号HA VING COUNT(课程号) > 3;ORDER BY 平均成绩desc &&*************Error*************CLOSE DATABASERETURNi=2create table four(结果I)do while i<=1000if i%3=0insert into four values(i) &&错误语句请修改endifi=i+1 && 请增加一条语句enddocreate database 学习情况create table 学生(姓名C(20),学号C(10) primary key) &&有错误alter table 学生add总分I &&有错误alter table 学生alter总分set check 总分<=800 and 总分>=0 &&有错误insert into 学生values ("林红","20100808",788) &&有错误update 学生set 总分=786 where 学号="20100808"&&有错误alter table employee alter 性别set check 性别="男" or 性别="女"SELECT Department.部门名, count(*) as 总人数;FROM employee_m!department INNER JOIN employee_m!employee ;ON Department.部门号= Employee.部门;group by 部门号;INTO TABLE tone.dbfSELECT Department.部门名, count(*) as 人数_男;FROM employee_m!department INNER JOIN employee_m!employee ;ON Department.部门号= Employee.部门;where 性别="男";group by 部门号;INTO TABLE ttwo.dbfSELECT tone.部门名, ttwo.人数_男, 总人数-人数_男as 人数_女, tone.总人数;FROM tone INNER JOIN ttwo ;on tone.部门名=ttwo.部门名;order by tone.部门名desc;INTO TABLE tableone12*程序名:dbtest61.prg*检索同时选修课程号c1和c2的学生的学号*以下程序有三处错误,请改正SELECT 学号;FROM SC ;WHERE 课程号= 'c1' AND 学号in ; &&************Error************ ( SELECT 学号FROM SC ; &&************Error************WHERE 课程号= 'c2' ) &&************Error************CLOSE DATABASE*程序名:dbtest4.prg*检索选课门数大于或等于3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,*并按平均成绩降序排序,将结果存储到表TEST1中.*以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFSELECT STUDENT.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数,院系院系;FROM STUDENT, SCORE;WHERE STUDENT.学号= SCORE.学号;GROUP BY STUDENT.学号HA VING count(课程编号) >= 3; &&*********Error************ ORDER BY 平均成绩desc; &&*********Error************INTO table TEST1 &&*********Error************RETURN18 $$75所有器件的单价增加5元UPDATE order_detail1 SET 单价=单价+ 5计算每种器件的平均单价SELECT 器件号,A VG(单价) AS 平均价FROM order_detail1 group BY 器件号INTO CURSOR lsb&&查询平均价小于500的记录SELECT * FROM lsb where平均价< 50019&&功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单;&&否则重新输入用户名和口令。

程序改错包括答案版本.docx

程序改错包括答案版本.docx

12592 '题目 : 编程求一个十进制整数n 的各位数字之和,设n 为小于或等于 5 位的数。

'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim N As Integer, Sum As Integer, S1As String, S2 As StringDim i As Integer, Ch As StringSum = 0N = InputBox(" 输入整数n")S1 = Str(N)S1 = Trim(S1)For i = 1 To Len(S1)'**********ERROR**********Ch = Mid(N, i, 1)'**********ERROR**********Sum = Val(Ch)Next iPrint " 该整数的各位数之和是: "; Sum End Sub答案: Ch=Mid(S1 , i , 1)Sum = Sum + Val(Ch)12610'题目:程序功能根据输入的学习成绩, 分别显示优秀 (90 分以上 ), 良好 (75 分以上 ), 及格 (60 分以上 )不及格四个等级 .'------------------------------------------------Option ExplicitPrivate Sub Form_Click()ClsDim i As Integeri = InputBox(" 请输入学习成绩")Select Case i'**********ERROR**********Case 0 < i < 100MsgBox " 成绩应该在0--100 之间 """ '**********ERROR**********Case 90Print " 优秀 "Case 75 To 89Print " 良好 "Case 60 To 74Print " 及格 "'**********ERROR**********CaseMsgBox " 不及格 ", vbCritical End SelectEnd Sub答案: Case 100 < x or x < 0Case 90 to 100Case Else12616.题目:求 s=1!+3!+5!+7! ,阶乘的计算用Function 过程 fact 实现 .'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim i As Integer, s As Integer'**********ERROR**********For i = 1 To 7s = s + fact(i)Next iPrint sEnd Sub'**********ERROR**********Public Function fact()Dim t As Integer, i As Integert = 1For i = 1 To nt = t * iNext i'**********ERROR**********fact = iEnd Function答案: For i = 1 To 7 Step 2Public Function fact%(n%)fact = t12620 题目 :编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。

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

程序改错完整版---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个字符,以相反顺序打印出来。

C语言程序改错答案

C语言程序改错答案
4). s=s1+s2+s3+s4;
题目:编写函数fun计算下列分段函数的值:
x*x+x x<0且x≠-3
f(x)= x*x+5x 0≤x<10且x≠2及x≠3
x*x+x-1 其它
答案:
3). while(fabs(t)>1e-4) 或 while(0.0001<fabs(t)) 或 while(1e-4<fabs(t)) 或 while(fabs(t)>0.0001)
4). printf("pi=%f\n",★s★*★4★);
题目:给定程序MODI1.C中函数fun的功能是:将长整型
2). for( i = 100; i <= m; i += 100 )
3). y += 1.0 / d ;
题目:给定程序MODI1.C中函数fun的功能是:
将长整型数中每一位上为偶数的数依次取出,
构成一个新数放在t中。高位仍在高位,低位
仍在低位。
2 3 5 7
请改正程序中的错误,使它能得出正确的结果。
答案:
1). #include "math.h"
2). float s=0,t=1,p=1; 或 float s=0,p=1,t=1; 或 float p=1,s=0,t=1; 或 float p=1,t=1,s=0; 或 float t=1,p=1,s=0; 或 float t=1,s=0,p=1;
3). b.c='y';
题目:利用条件运算符的嵌套来完成此题:学习
成绩>=90分的同学用A表示,60-89分之间

大学C语言期末考试练习题程序改错(带详解答案)

大学C语言期末考试练习题程序改错(带详解答案)

y=3.5+x;
printf(“y=%d”);
}
正确的:
int x; float y;
printf(“y=%f”,y);
6 编程计算下面分段函数, 输入 x, 输出 y
x 1 x 0 y 2x 1 0 x 10
3x 11 x 10
main() { int x,y;
第三处改为: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); // 调用带有返回值的函数,应将函数的返回值保存在变量里
} 第四行改为:for(j=0;j<5;j++) 第五行改为:scanf(“%d”,&a[j]); 第七行改为:for(j=1;j<5;j++) 第八行改为:if(max<a[j]) 第十三行改为:printf(“下标:%d\n 最大值:%d”, m,max)
3.用一个函数求两个数之和。 sum(x,y) //函数定义的一般形式 p173-174 { float z; z=x+y; return; //return 语句后面可以返回 0、常量、变量和表达式的值。 } main() { float a,b; int c; / /若定义变量的语句有错误,常见考点有两个:(1)变量的类型,(2)在定

程序改错

程序改错

下面给定程序中,函数fun的功能是:判断用户输入的任意一个字符串是否为"回文串"。

所谓"回文串"是指从开头读和从末尾读均为相同字符,例如:"HELLEH"。

请改正程序中的错误。

注意:不得增行和删行,不得更改程序的结构。

【改错1】错误【参考答案】}while(a[num]!='\0');【改错2】错误【参考答案】if(a[i]!=a[num-1-i])if(a[i]!=a[num-i-1])【改错3】错误【参考答案】}while(i<num/2);【改错4】错误【参考答案】scanf("%s",a);gets(a);功能:用指针作函数参数,编程序求一维数组中的最大和最小的元素值.--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

【改错1】错误【参考答案】void maxmin(int arr[ ],int *pt1,int *pt2,int n)maxmin(int arr[ ],int *pt1,int *pt2,int n)void maxmin(int *arr,int *pt1,int *pt2,int n)【改错2】错误【参考答案】*pt1=*pt2=arr[0];*pt1=*pt2=*(arr+0);*pt2=*pt1=arr[0];【改错3】错误【参考答案】if(arr[i]>*pt1) *pt1=arr[i];if(*(arr+i)>*pt1)) *pt1=arr[i];if(*pt1<*(arr+i))) *pt1=arr[i];if(*pt1<arr[i]) *pt1=arr[i];【改错4】错误【参考答案】p1=&a;p2=&b;功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。

程序改错题-答案

程序改错题-答案
下列程序有3处错误请按题中的功能要求在不改变程序结构不增加删除语句不调整语句顺序的情况下调试并修改该程序在所修改语句后加字样的注释使其运行能得到正确的结果
1.程序调试题1(X_2_1.C)
调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:\KS\中。
scanf("%d",&n);
for (r=1,r<=n;r++)
{
area=3.0) continue;
printf("r=%d,square=%d\n",r,area);
}
getch();
}
答案
#include <stdio.h>
main()
{
int r,n;
}
2.程序调试题2(X_2_2.C)
调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:\KS\中。
功能说明:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。
printf("\nupper=%d,lower=%d\n",upper,&lower);
getch();
}
答案
#include <stdio.h>
void fun(char *s, int *a, int *b)

C语言改错题-含答案

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个随机整数从小到大排序。

程序改错答案

程序改错答案

二.程序改错1.01、if k>1应改为if(k>1)或if(1<k)2.01、result*=--n应改为result*=n-- 02、应填result;3.01、k++应改为k++; 02、if(m=k)应改为(if(m==k)4.01、IsPrime(int n);应改为IsPrime(int n) 02、if!(n%i)应改为if(!(n%i)) 5.01、if(i%k!=0)应改为if(i%k==0) 02、if(k<i)应改为if(k>=i)6.01、y=0;应改为y=1; 02、d=i-a;应改为d=a-i;7.01、break后应加上一个分号“;”,即break;8.01、fun(int n)应改为double fun(int n) 02、return sum应改为return sum;9.01、long k;应改为long k=1; 02、num\=10;应改为num/=10;10.01、j=1;应改为j=0; 02、while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)11.01、b=a;应改为a=b; 02、return(a);应改为return(b);12.01、void fun(char *s,*t1,*t2,*w)应改为void fun(char *s,char *t1,char*t2,char*w) 02、while(r)应改为while(*r)13.01、int k=1;应改为int k=0; 02、while(*p!=*q)应改为while(*p||*q)14.01、while(*s!= ‘@’)应改为while(*s)或while(*s!= ‘\0’)或while(*s!=0) 02、(*s)++;应改为s++;15.01、s[j]=s[i];应改为s[j++]=s[i]; 02、s[j]= “\0”;应改为s[j]= ‘\0’; 16.01、void upfst (char p)应改为void upfst (char *p)17.01、if(p== ‘’)应改为if(*p== ‘’) 02、*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));18.01、if((tt[i]>= ‘a’)||(tt[i]<= ‘z’))应改为if((tt[i]>= ‘a’)&&(tt[i]<= ‘z’)) 02、tt[i]+=32;应改为tt[i]-=32;19.01、while(i>j)应改为while(i<j)或while(j>i) 02、c=0;应改为*c= ‘\0’;或*c=0; 20.01、if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0) 02、t[i]= ‘\0’;应改为t[j]= ‘\0’;或t[j]=0;21.01、void fun(char *s,int num[5];应改为void fun(char *s,int num[5]) 02、num[i]=0;应改为num[k]=0; 03、switch(s)应改为switch(*s)22.01、void fun(char *s,int a,int b)应改为void fun(char *s,int *a,int *b) 02、a++;应改为(*a)++; 03、b++;应改为(*b)++23.01、if(r==p)应改为if(*r==*p) 02、if(r== ‘\0’)应改为if(*r== ‘\0’) 24.01、*r=t;应改为r=t;或r=&t[U]; 02、应填r=t;或r=&t[u];25.01、a=NuLL;应改为a=NULL; 02、if(r==p)应改为if(*r==*p)26.01、int fun(char *str,*substr)应改为int fun(char *str,char *substr) 02、for(i=0,str[i],i++)应改为for(i=0;str[i];i++)27.01、c=c-32;应改为c=c+32; 02、c=c-5应改为c=c+5;28.01、if(i+1%5==0)应改为if((i+1)%5==0)29.01、bb[i]=0或*(bb+i)=0 02、bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1 03、p++;或++p;或p+=1;或p=p+1;30.01、void fun(int a,int b)应改为void fun(int *a,int *b) 02、t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;31.01、t=x;x=y;应改为t=*x;*x=y; 02、return(y);应改为return(t);或return t; 32.01、s=p;应改为p=s; 02、应填p++;或++p;或p+=1;或p=p+1; 03、a[i]= ‘0’;应改为a[i]= ‘\0’;或a[i]=0;33.01、void fun(char str[][],int m,char *pt)应改为void fun(char str[][10],int m,char *pt) 02、pt[i]=str[k,i];应改为pt[i]=str[k][i];34.01、void fun(char s,char t)应改为void fun(char *s,char *t) 02、t[2*d-1]= ‘\0’;应改为t[2*d]= ‘\0’;或t[d+i]= ‘\0’;35.01、fun函数定义少了一个{,应该在int fun(double x[],int n)后面加一个{ 36.01、double fun(char *s,char *t)应改为char *fun(char *s,char *t) 02、(*ss)++;应改为ss++; 03、(*tt)++;应改为tt++;37.01、for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++) 02、t=i;应改为p=i;38.01、void fun(char a)应改为void fun(char *a)39.01、for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--) 02、if(t[j]<t[j+1])应改为if(t[j]>t[j+1]) 40.01、c=aa[i];应改为ch=aa[i];41.01、void fun(char(*pstr)[6])应改为void fun(char *pstr[6]) 02、if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0) 03、*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);42.01、void fun(int *a,int n);应改为void fun(int *a,int n) 02、m=0;应改为m=i;43.01、for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++) 02、t[s1]= ‘\0’;应改为t[2*s1]= ‘\0’44.01、void fun(char *p);应改为void fun(char *p) 02、p=q+i;应改为q=p+i; 45.01、if(t=0)应改为if(t==0) 02、zero=count;应改为*zero=count;46.01、c[t]= “\0”;应改为c[t]= ‘\0’;47.01、return 1;应改为return 3; 02、return 3;应改为return 1;48.01、填空sum=0 02、scanf(“%d”,a[i][j]);应改为scanf(“%d,”,&a[i][j]); 49.01、int fun(int m,int xx[])应改为int fun(int m,int xx[][M]) 02、printf(“%4f”,xx[i][j]);应改为printf(“%4d”,xx[i][j]);50.同48题51.01、void fun(int a)应改为void fun(int a[M])或void fun(int a[])或void fun(int *a) 02、a[j]=a[j+1];应改为a[j]=a[j-1];52.01、fun(int **a,int m)应改为void fun(int (*a)[M],int m) 02、a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);53.01、n=*p- ‘o’;应改为n=*p- ‘0’; 02、n=n*7+*p- ‘o’;应改为n=n*8+*p- ‘0’54.01、voidfun(int m,int k);应改为void fun(int m,int k) 02、aa[i]=m/k;应改为aa[i]=m%k; 03、printf(“%d”,aa[i]);应改为printf(“%d”,aa[i-1]); 55.01、for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++) 02、if(k>=1&&k<=6)应改为if(k>=0&&k<=6)56.01、d=0;应改为d=1; 02、s=1;应改为s=0; 03、s=s/10;应改为d=d/10; 57.01、for(i=1;i<y;i++)应改为for(i=1;i<=y;i++) 02、t=t/1000;应改为t=t%1000; 58.01、int sum=0.0;应改为double sum=0.0 02、sum\=c;应改为sum/=c;59.01、fun(int m)应改为double fun(int m) 02、for(i=100,i<=m,i+=100)应改为for(i=100;i<m;i+=100)60.01、for(i=2;i<m;i++)应改为for(i=2;i<=m;i++) 02、y-=1/(i*i);应改为y-=1.0/(i*i);61.01、t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i; 02、应填returnt;62.01、t+=1.0/k;应改为t=+1.0/i; 02、应增加一个返回语句return t;63.01、fun (int n)应改为double fun(int n) 02、b+=c;应改为b=c;64.01、fun(int k)应该为double fun(int k) 02、return s应改为return s; 65.01、while (t>=num)应改为while (fabs(t)>=num) 02、t=s%n;应改为t=s/n; 66.01、fun(n)应改为int fun(int n) 02、if(n=1)应改为if(n==1)67.01、#define FU(m,n) (m/n)应改为#define FU(m,n) (m)/(n) 02、Return (value);应改为return (value);68.01、p=h;应改为p=h->next; 02、p=h->next;应改为p=p->next;69.01、p->next=NULL;应改为p=s; 02、s->data=rand()%m;应改为s->data=rand()%(m-1); 03、return p;应改为return h;70.01、while(p->next)应改为while(p!=NULL)或while(p) 02、p=h->next;应改为p=p->next;71.01、a[i+1]=a[i];应改为a[i]=a[i+1];72.01、p=j应改为p=j; 02、p=i;应改为p=j;73.01、t=s[k];应改为t+=s[k]; 02、*aver=&ave;应改为*aver=ave;74.01、void fun(char str,char ch)应改为void fun(char *str,char ch) 02、if(*str==ch)应改为if(*str== ‘\0’) 03、str[1]= ‘0’;应改为str[1]= ‘\0’;或str[1]=0;75.01、if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0)) 02、应加一个} 76.01、void fun(long s,long t)应改为void fun(long s,long *t) 02、while(s<0)应改为while(s>0)77.01、void fun(int a[],int m)应改为int fun(int a[],int m) 02、if(m>=a[mid]应改为if(m>a[mid])78.01、for(i=2;i<m;i++)应改为for(i=2;i<=m;i++) 02、y+=1/(i*i);应改为y+=1.0/(i*i);79.01、if n==0应改为if(n==0) 02、result=n--;应改为result *=n--;80.01、t=0;应改为t=1.0; 02、while(t<=eps)应改为while(t>=eps)81.01、k=n;应改为k=i; 02、b=k/10;应改为b=k%10;82. 01、void fun(char*s,t1,t2,w)应改为void fun(char *s,char *t1,char *t2,char *w) 02、while(w)应改为while(*w)83.01、fun(char(*sq)[N])应改为char *fun(char(*sq)[M]) 02、return sq;应改为return sp;84.01、*t=malloc(sizeof(STU));应改为t=(STU *)malloc(sizeof(STU)*m); 02、t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);85.01、t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];86.01、switch(g);应改为swithc(g) 02、case 1;应改为case 1:87.01、i=1;应改为i=0; 02、while(i<3||*p)应改为while(i<3&&*p) 03、b[k]= ‘’;应改为b[k++]= ‘’;88.01、void fun(long s,long t)应改为void fun(long s,long *t) 02、s1=s1*100;应改为s1=s1*10;89.01、int fun(int *b);应改为int fun(int *b) 02、for(k=10;k<=55;k++)应改为for(k=1;k<55;k++) 03、return k;应改为return i;90.01、long s1=0;应改为long s1=1; 02、s\=10;应改为s/=10;91.01、fun(int n)应改为double fun(int n) 02、s=s+(Double)a/b;应改为s=s+(double)a/b;92.01、fun(int n)应改为double fun(int n) 02、for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)93.01、void fun(int x,int y)应改为void fun(int *x,int *y) 02、t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;94.01、s[j]=s[i];应改为s[j++]=s[i]; 02、s[i]= ‘\0’;应改为s[j]= ‘\0’; 95.01、float *k;应改为float k; 02、if(*s<*p)应改为if(*s>*p)96.01、long s=0,t=1;应改为long s=0,t=0; 02、for(j=0;j<=n;j++)应改为for(j=0;j<n;j++) 03、t=t%10;应改为t=t/10;97.01、s=s+(n+1)/n;应改为s=s+(double)(n+1)/n; 02、return s;应改为return t; 98.01、f(double x)应改为double f(double x) 02、return s应改为return s; 99.01、int i,j,k,sum;应改为int i,j=0,k,sum; 02、if(sum%4=2)应改为if(sum%4==2) 100.01、int r;应改为double r; 02、while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)101.01、fun(double a,double x0)应改为double fun(double a,double x0) 02、if(abx(x1-x0)>=le-6)应改为if(fabs(x1-x0)>=le-6)。

程序改错

程序改错

五、程序改错1./*--------------------------------------------------------【程序改错】--------------------------------------------------------功能:依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

例如:输入ab12c3d,则输出123。

注意:不得增行或删行,也不得更改程序的结构!------------------------------------------------------*/#include "stdio.h"/**********ERROR**********/void fun(char s){int i,j;for(i=0,j=0; s[i]!='\0'; i++)if(s[i]>='0'&&s[i]<='9')/**********ERROR**********/s[j]=s[i];/**********ERROR**********/s[j]="\0";}main(){char item[80];printf("\nEnter a string: ");gets(item);printf("\n\nThe string is: \"%s\"\n",item);fun(item);printf("\n\nThe string of changing is: \"%s\"\n",item);}【改错1】【学生答案】void fun(char s)【参考答案】void fun(char *s)void fun(char s[])void fun(char s[80])============================================================【改错2】【学生答案】s[j]=s[i];【参考答案】s[j++]=s[i];{ s[j]=s[i]; j++; }============================================================【改错3】【学生答案】s[j]="\0";【参考答案】s[j]='\0';============================================================/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读入一个整数m( 5≤m≤20 ),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

java程序改错12道及答案

java程序改错12道及答案
while(i<100)
{
/***********FOUND***********/
if(i%2==0)
s=s+i;
i=i+2;
}
/***********FOUND***********/
product=i;
}
System.out.println("偶数之和是 : "+sum);
System.out.println("奇数之积是 : "+product);
3)while(i<=10)或while(i<11)
4)}
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目2:计算 1/1+1/2+1/3+...+1/100 的值
-------------------------------------------------------*/
public class Prog1
{
public static void main( String args[ ])
{
/***********FOUND***********/
public static void main (args[])
{
/***********FOUND***********/
int n=100,sum=1;
while(n>0)

程序改错复习题答案

程序改错复习题答案

程序改错复习题答案1. 题目:在下面的代码中找出并修正错误,使其能够正确计算并输出两个数的和。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, "3")```答案:错误在于第二个参数传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "3" 改为整数 3。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, 3)```2. 题目:修正以下代码中的错误,使其能够正确地将列表中的所有元素乘以2。

```pythonmy_list = [1, 2, 3, 4]for i in range(len(my_list)):my_list[i] = my_list[i] * 2print(my_list)```答案:代码本身没有错误,可以直接运行。

但是,更高效的方式是使用列表推导式。

```pythonmy_list = [1, 2, 3, 4]my_list = [x * 2 for x in my_list]print(my_list)```3. 题目:找出并修正以下代码中的错误,使其能够正确地计算并输出一个数的平方。

```pythondef square_number(n):return n * nprint(square_number("5"))```答案:错误在于函数调用时传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "5" 改为整数 5。

```pythondef square_number(n):return n * nprint(square_number(5))```4. 题目:修正以下代码中的错误,使其能够正确地遍历字典中的所有键值对。

-程序改错部分试题及答案

-程序改错部分试题及答案

第1题/*i【程序改错】功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------------------------------------ * #include <stdio. h>ttdefine N 11main(){int i,number,a[N] = {l,2,4,6,8t9t12,15,149,156);printf(^please enter an integer to insert in the array:\n n):/**********FOUND**********/scanf(”%d&number)printf("The original array:\rT);for(i=0;i<N-l;i++)printf (^%5(1 M,a[i]);printf(*\n n);/**********FOUND**********/for(i=N-l;i>二0;i--)if(number<=a[il)/**********FOUND**********/a[i]=a[i-l]:else{a[i+l]=number;/**********FOUND**********/exit;}if(number<a[0]) aL0]二number;printf(^The result array:\n”);for(i=0;i<N;i++)printf(n%5d w,a[il);printf(H\n H);}第2题/♦ ------------------------------------------------------------------------------------ 【程序改错】功能:求如下表达式:S = 1 + ——+ ——+ .................. + ------------1+2 1+2+3 1+2+3+ ......... +n------------------------------------------------------------------------------------ */ #include <stdio.h>main()int n;double fun ();printf ("Please input a nilmber:R):/**********FOUND**********/print("^d^.n);printf(H%10. 6f\n w,fun(n));}/♦♦********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********POUND**********/while(i=l;i<=n;i++);{t=0;for(j=l;j<=i;j++)t=t+j;/ **********P*OL1ND**********/=s+l/t;}return s;}第3题/* ---------------------------------------------------------- 【程序改错】功能:判断m是否为素数,若是返回1,否则返回0。

程序改错题答案

程序改错题答案
printf("%f\n",(a+i)->y);
}
}
7循环输入x,n,调用递归函数计算,显示x的n次方。
当输入n小于0时,结束循环。
#include <stdio.h>
float f(float x,int n)
{ /******* 1 ******/
if(n==0)
return 1;
else
/****** 2 ******/
scanf("%d",&mm);
for(i=0;a[i]!='\0';i++) /*各字符与mm作一次按位异或*/
a[i]=a[i]^mm;
puts(a);
/*** 各字符与mm再作一次按位异或 ***/
/******** 3 *******/
for(i=0;a[i]!='\0';i++)
/****** 4 ******/
void main()
{ int i,n;
struct axy { float x,y;};
/***** 1 *****/
struct axy*a;
/***** 2 *****/
scanf("%d",&n);
a=(struct axy*) malloc(n*sizeof(struct axy));
for(i=0;i<n;i++)
/******** 3 *******/
if(a[i]==b[j]) break;
/******* 4 ********/
if(j<7)
printf("%d ",a[i]);

程序改错--答案版

程序改错--答案版

程序改错--答案版12592 '题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。

'------------------------------------------------ Option Explicit Private Sub Form_Click()Dim N As Integer, Sum As Integer, S1 As String, S2 As StringDim i As Integer, Ch As StringSum = 0N = InputBox("输入整数n")S1 = Str(N)S1 = Trim(S1)For i = 1 To Len(S1) '**********ERROR* *********Ch = Mid(N, i, 1)'**********ERROR* *********Sum = Val(Ch)Next iPrint "该整数的各位数之和是:"; Sum End Sub12610'题目:程序功能根据输入的学习成绩,分别显示优秀(90分以上), 良好(75分以上),及格(60分以上)不及格四个等级.'------------------------------------------------ Option Explicit Private Sub Form_Click()ClsDim i As Integeri = InputBox("请输入学习成绩")Select Case i'**********ERROR* *********Case 0 < i < 100MsgBox "成绩应该在0--100之间""" '**********ERROR* *********Case 90Print "优秀"Case 75 To 89Print "良好"Case 60 To 74Print "及格"'**********ERROR* *********CaseMsgBox "不及格", vbCritical End SelectEnd Sub12616.题目:求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现.'------------------------------------------------ Option Explicit Private Sub Form_Click()Dim i As Integer, s As Integer'**********ERROR* *********For i = 1 To 7s = s + fact(i)Next iPrint sEnd Sub'**********ERROR* *********Public Function fact() Dim t As Integer, i As Integert = 1For i = 1 To nt = t * i Next i'**********ERROR* *********fact = iEnd Function12620题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。

C语言程序改错题及答案

C语言程序改错题及答案
if(x>max) max=x;
if(x<min) min=x;
}
printf("%f,%f\n",max,min);
}
10、.在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
for(i=0;i<sl;i++)
t[i]=s[i];
for(i=0;i<sl;i++)
/********1********///t[sl+i]=s[s1-1-i];
t[sl+i]=s[sl-i];
/********2********/
t[sl]="\0";//t[sl+s1]=’\0’;
}
void main()
/***** 2 *****/
for(i=1;i<strlen(str);i++)//i=0
if(str[i]>='a'&& str[i]<='z') str[i]=str[i]-32 ;
puts(str);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str

程序改错(自我总结)answer

程序改错(自我总结)answer

1、给定程序modi.c中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。

#include <stdio.h>void fun(){int a[3][3],sum;int i,j;/************found************/ _______; sum=1for (i=0;i<3;i++){ for (j=0;j<3;j++)/************found************/ scanf("%d" a[i][j]);scanf("%d",&a[i][j]);2、给定程序modi.c中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

double fun(int n){double t,sn=1.0;int i,j;for(i=1;i<n;i++){t=1.0;for(j=1;j<=i;j++)t=t*j;sn+=1.0/t;}return sn;}确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/************found************/if (i%k!=0) if(i%k==0)break;/************found************/if (k<i) if (k==i)3、给定程序modi.c中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

/************found************/ p=j p=j ;for (i=j;i<n;i++)if(a[i]<a[p])/************found************/p=j; p=i;4、给定程序modi.c中fun函数的功能是:根据整型参数m,计算如下公式的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12592 '题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。

'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()Dim N As Integer, Sum As Integer, S1 As String, S2 As StringDim i As Integer, Ch As StringSum = 0N = InputBox("输入整数n")S1 = Str(N)S1 = Trim(S1)For i = 1 To Len(S1)'**********ERROR**********Ch = Mid(N, i, 1)'**********ERROR**********Sum = Val(Ch)Next iPrint "该整数的各位数之和是:"; Sum End Sub12610'题目:程序功能根据输入的学习成绩,分别显示优秀(90分以上), 良好(75分以上),及格(60分以上)不及格四个等级.'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()ClsDim i As Integeri = InputBox("请输入学习成绩")Select Case i'**********ERROR**********Case 0 < i < 100MsgBox "成绩应该在0--100之间""" '**********ERROR**********Case 90Print "优秀"Case 75 To 89Print "良好"Case 60 To 74Print "及格"'**********ERROR**********CaseMsgBox "不及格", vbCritical End SelectEnd Sub12616.题目:求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现.'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()Dim i As Integer, s As Integer'**********ERROR**********For i = 1 To 7s = s + fact(i)Next iPrint sEnd Sub'**********ERROR**********Public Function fact()Dim t As Integer, i As Integert = 1For i = 1 To nt = t * iNext i'**********ERROR**********fact = iEnd Function12620题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。

'------------------------------------------------ Option ExplicitPrivate Sub HScroll1_Scroll()'**********ERROR**********Timer1.Interval = HScroll1.Min - HScroll1.ValueEnd SubPrivate Sub Timer1_Timer()'**********ERROR**********If Label1.Left <= Form1.Width Then'**********ERROR**********Label1.Left = Label1.WidthElseLabel1.Left = Label1.Left + 100 End IfEnd Sub12624.题目:程序功能:求1+2+3……,直到其和超出3000为止,并输入结果。

'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()ClsDim i As IntegerDim s As Singlei = 1'**********ERROR**********s = 0Do'**********ERROR**********i = i + 2s = s + i'**********ERROR**********Loop s > 3000Print "从1 到:"; i; "的和是"; sEnd Sub12629.题目:下面的程序段用于实现以下功能:建立一顺序文件,存放10名同学的学号和三门功课成绩,显示该文件内所有记录,并同时显示其总分和平均分。

'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()Dim no%, c1%, c2%, c3%, i As Integer'**********ERROR**********Open "c:\2.txt" For Input As #1For i = 1 To 10no = InputBox("请输入学号")c1 = InputBox("请输入数学成绩")c2 = InputBox("请输入语文成绩")c3 = InputBox("请输入外语")Write #1, no, c1, c2, c2Next iClose #1'**********ERROR**********Open "c:\2.txt" For Output As #1For i = 1 To 10'**********ERROR**********Print #1, no, c1, c2, c3Print no, c1, c2, c3, c1 + c2 + c3, (c1 + c2 + c3) / 3Next iClose #1End Sub12677.题目:求s=72+102+132+……832的值。

'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()ClsDim s As LongDim i As Integer'**********ERROR**********s = 1'**********ERROR**********For i = 7 To 832s = s + i'**********ERROR**********loop 30Print sEnd Sub12683.题目:产生30个小于100的成绩随机数,并统计出优、良、中等、及格、不及格数的个数,并计算出成绩属于优秀段的成绩平均分。

'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()Dim k%, a%, bjg%, jg%, zd%, lh%, yx As IntegerDim pjf As IntegerRandomizepjf = 0For k = 1 To 30'**********ERROR**********a = Int(Rnd())Select Case aCase 0 To 59bjg = bjg + 1 '不及格Case 60 To 69jg = jg + 1 '及格Case 70 To 79zd = zd + 1 '中等Case 80 To 89lh = lh + 1 '良好Case 90 To 100yx = yx + 1 '优秀'**********ERROR**********pjf = pjf + 1End SelectNext k'**********ERROR**********If yx > 0 Then pjf = pjf / 30Debug.Print "不及格" + Str$(bjg) + "人,及格" + Str$(jg) + "人,中等" + Str$(zd) + "人";Debug.Print "良好" + Str$(lh) + "优秀" + Str$(yx) + "人"Debug.Print "优秀分数段成绩平均分" & pjfEnd Sub12687.'题目:使用顺序文件读写方式编写一个简单的记事本应用程序,' 基本逻辑是:假设在考生目录中有一个名为exam.txt的文本文件。

当点击"打开"按钮(Command1)时,程序将exam.Txt文件中的内容显示在文本框(Text1)中,当点击"新建"按钮(Command2)时,清空Text1中的内容;用户可以在Text1中进行编辑操作,当点击"保存"按钮(Command3)时,将Text1中的内容保存在exam.txt文件中。

当点击"退出"按钮(Command4)时关闭本窗体。

'------------------------------------------------ Option ExplicitPrivate Sub Command1_Click()Dim A As StringText1 = ""Open "exam.txt" For Input As #1Do While Not EOF(1)'**********ERROR**********Input #0, AText1 = Text1 + ALoop'**********ERROR**********Close #0End SubPrivate Sub Command2_Click()Text1 = ""End SubPrivate Sub Command3_Click()Open "exam.Txt" For Output As #1'**********ERROR**********Input #1, Text1Close #1End SubPrivate Sub Command4_Click()Unload MeEnd Sub12697.'题目:以下程序段用于打印如图1所示的九九乘法表:'------------------------------------------------ Option ExplicitPrivate Sub Form_Click()Dim i As Integer, j As Integer, k As IntegerPrint Tab(30); "9*9 table"Print: PrintPrint " * ";For i = 1 To 9'**********ERROR**********Print Tab(i * 6); iNext iPrintFor j = 1 To 9Print j; " ";'**********ERROR**********For k = 1 To 9'**********ERROR**********Print Tab(j * 6); j * k; " ";Next kPrintNext jEnd Sub12701.'题目:用辗转相除法求两个整数的最大公约数。

相关文档
最新文档