程序改错C

合集下载

C语言程序改错

C语言程序改错

/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include"stdio.h"main( ){/**********FOUND**********/long a,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if (a==0)printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);getch();}答案:1). long a,b,c,d,e,x;2). b=x%10000/1000; 或b=x/1000%10;3). if (a!=0) 或if (!a)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。

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

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 *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#define NULL 0struct stud{long num;char name[10];float score;struct stud *next;};/* …………… comment …………… */int n;struct stud create() ////////struct stud *create(void){struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/* ……………comment …………… */head=NULL;while(p1!=0) //////////while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p1=(struct stud *)malloc(size(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

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

程序改错完整版---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语言程序改错及填空题

每个注行邻近,更正。

更正中,不得改程序构,也不得增句。

#define NULL 0struct stud{long num;char name[10];float score;struct stud *next;};/* ⋯⋯⋯⋯⋯ comment⋯⋯⋯⋯⋯*/ int n;struct stud create()////////struct stud *create(void){struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*⋯⋯⋯⋯⋯ comment ⋯⋯⋯⋯⋯*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p1=(struct stud *)malloc(size(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c 的功能是互定数中的最大数和最小数。

如将下边8 个数:5,3,1,4,2,8,9,6变为:5,3,9,4,2,8,1,6程序中,最大数与最小数的交换操作经过函数调用来实现,让指针max 和 min 分别指向最大数和最小数。

程序有二处错误,请更正。

注意:不得增行和删行,也不得改正程序的构造。

main(){int i;static int a[8]={5,3,1,4,2,8,9,6};void jhmaxmin();printf(" Original array: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf(" Array after swaping max and min: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");}// 注意: void jhmaxmin(p,n)int p, n;这是一种老的函数形式,此刻一般这样写void jhmaxmin(int p,int n)void jhmaxmin(p,n)int p, n;//////// int *p,n;{int t, *max, *min, *end, *q;end=p+n;max=min=p;for(q=p+1; q<end; q++){ if(*q>*max) max=q;if(*q<max) min=q; ////////*q<*min}t=*max; *max=*min; *min=t;}gc101.c 的功能为 : 输入 8 个整数 , 使用指针以选择法对其进行排序( 从小到大 ). 程序中有两处错误代码 , 请更正 . 注意,不得改变程序构造。

C程序填空改错及答案(可编辑修改word版)

C程序填空改错及答案(可编辑修改word版)
printf("%d\n",n); }
15、结果:52
#include<stdio.h> int fun(int a,int b) { int r,t;
if(a<b) { t=a; a=b; b=t; } r=a%b; while(r!=0) { a=b;
b=r; /*下行有错*/ r=a/b; // r=a%b; } /*下行有错*/ return a; // return b; } main() { int a; a=fun(780,208); printf("%d\n",a); }
#include<stdio.h> void main() {
int num,a,b,c,count=0; /*下行有错*/ while(num=101;num<1000;num++) // for(num=101;num<1000;num++) {
a=num/100; b=num%100/10; c=num%10; /*下行有错*/ if(num+c*100+b*10+a=1333) // if(num+c*100+b*10+a==1333)
if(a%b==0) sum=sum+a/b; } for(i=2;i<=9;i++) if(sum==a*i) /*下行有错 */ count+=i; //count+=1; } printf("%d\n",count); }
7、结果:495.00
#include<stdio.h> float fun(int m, int n) {

C语言程序改错

C语言程序改错

C语言程序改错程序改错第1题题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。

请改正程序中的错误,使它能得出正确的结果。

1). scanf(\ 2). for(j=0;j*pt1) 4). p1=&a;p2=&b; 第3题题目:将6个数按输入时顺序的逆序进行排列. 1). p1=p+i; p2=p+(m-1-i);2). char *p,num[6]; 3). scanf(\ 4). sort(p,6); 第4题题目:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。

程序中共有4条错误语句,请改正错误。

1). scanf(\ 2). if(*p > *max) 3). if( max == arr )4). for(i=0;ii;i++) 或 for(p=arr;p 题目:以下程序把两个数按由大到小的顺序输出来. 1). swap( int *p1,int *p2) 2). scanf(\ 3).p1=&a;p2=&b;4). printf(\第6题题目:将一个字符串中的大写字母转换成小写字母。

例如:输入aSdFG输出为asdfg。

1). char fun(char *c)2). return *c; 或 return (*c); 或 return(*c); 3). { chars[81],*p=s;4). putchar(*p); 或 printf(\第7题题目:将若干学生的档案存放在一个文件中,并显示其内容。

1). { struct student *p 2). FILE *fp;3). for(p=stu;p< stu + 3 ;p++) 4).printf(\第8题题目:在一个一维整型数组中找出其中最大的数及其下标。

程序中共有4条错误语句,请改正错误。

1). int fun(int *a,int *b,int n) 2). *b=c-a;}3). scanf(\ 4). max=fun(a,&p,N); 第9题题目:下列程序中,函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

C语言程序设计改错信息

C语言程序设计改错信息
十二、123页:将图5-2的地址法列中:&a[0]+0、&a[0]+1、&a[0]+2、&a[1]+0、&a[1]+1、&a[1]+2的&全部删除
十三、159页:删除第7行:函数名就是这个函数源代码在内存中的起始地址,编译器将不带“()”的函数名解释为该函数的入口地址.中的“源”字
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有
printf("%d,%o,%u\n",a,a,A.。
}
改为
6.下面程序输出结果是().
#include <stdio.h>
main()
{
int a=-1。
printf("%d,%o,%u\n",a,a,a)。
}
第76页
10.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是().
void main()
{
int a。
float b,c。
scanf("%2d%3f%4f",&a,&b,&c)。
printf("\na=%d,b=%.1f,c=%.1f\n",a,b,c)。
}
第76页
5.执行下面程序:
#include <stdio.h>
main()
{
int a=0,b=9。
printf("a=%%d,b=%%d\n",a,B.。
s=s+i。
printf("s=%d\n",s)。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*……………comment……………*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

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

main(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max)max=q;if(*q<max)min=q;////////*q<*min}t=*max;*max=*min;*min=t;}gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。

C语言程序改错

C语言程序改错

【程序改错】功能:求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);【程序改错】功能:计算正整数num的各位上的数字之积。

例如:输入252,则输出应该是20。

答案:1). long k=1;2). num/=10; 或num=num/10;3). scanf("%ld",&n);4). printf("\n%ld\n",fun(n));【程序改错】功能:求出两个非零正整数的最大公约数,并作为函数值返回。

例如:若给num1和num2分别输入49和21,则输出的最大公约数为7。

答案:1). a=b;2). b=t;3). r=a%b;4). return b; 或return (b); 或return(b);【程序改错】功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。

max代表最高分,min代表最低分,avg代表平均分。

答案:1). float a[10],min,max,avg;2). scanf("%f",&a[i]); 或scanf("%f",a+i);3). max=min=avg=a[0];4). if (min>a[i]) 或if (a[i]<min)【程序改错】功能:输入10个数,要求输出这10个数的平均值答案:1). for(i=1;i<10;i++) 或for(i=1;i<=9;i++)2). float score[10],aver; 或float aver,score[10];3). scanf("%f", &score[i]); 或scanf("%f", score+i);4). aver=average(score);【程序改错】功能:判断整数x是否是同构数。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#define NULL 0struct stud{long num;char name[10];float score;struct stud *next;};/* …………… comment …………… */int n;struct stud create() ////////struct stud *create(void){struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/* ……………comment ……………*/head=NULL;while(p1!=0) //////////while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p1=(struct stud *)malloc(size(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

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

C语言程序改错

C语言程序改错

/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include"stdio.h"main( ){/**********FOUND**********/long a,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if (a==0)printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);getch();}答案:1). long a,b,c,d,e,x;2). b=x%10000/1000; 或b=x/1000%10;3). if (a!=0) 或if (!a)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。

c语言程序改错题

c语言程序改错题

【程序改错】功能: 根据整型形参m的值, 计算如下公式的值。

1 1 1.....1.—..—......——2x2 3x3 mxm例如: 若m=5, 则应输出: 0.536389------------------------------------------------------*/#include <stdio.h>double fun(int m){double y=1.0;int i;/**********FOUND**********/for(i=2;i<m;i--) for(i=2;i<=m;i++) /**********FOUND**********/y-=1/(i*i); y-=1.0/(i*i)/**********FOUND**********/return m; return y}main(){int n=5;printf("\nthe result is %lf\n",fun(n));}【程序设计】---------------------------------------------------------题目: 编程求所有4位数, 这些数具有以下特点: 这数本身是平方数, 且其低2位和高2位所组成的2个2位数也是平方数。

要求: 使用程序中定义的变量-------------------------------------------------------*/#include <stdio.h>#include <math.h>main(){int qw,bw,sw,gw; // qw千位数bw百位数sw十位数gw个位数int a,b; //a 高两位低两数int i; //循环变量/**********Program**********/for(i=1000;i<10000;i++){qw=i/1000;bw=i/100%10;sw=i/10%10;gw=i%10;1a=qw*10+bw;b=sw*10+gw;if(sqrt(i)==(int)sqrt(i)&&sqrt(a)==(int)sqrt(a)&&sqrt(b)==(int)sqrt(b)) printf(“%d\n”,i);}/********** End **********/}【程序设计】功能: 从键盘为一维整型数组输入10个整数, 调用fun 函数找出其中最小的数, 并在main函数中输出。

C语言程序改错

C语言程序改错

1-7919 计算并输出k以内最大的10个能被13或17整除的自然数之和。

K的值由主函数导入。

错1:while((2<=k)&&(mc<10)) 错2:if(k%13==0||k%17==0)错3:k--; 错3:return m;1-2511 功能:计算正整数num的各位上的数字之积。

例如:输入252,则输出应该是20。

错1:long k=1; 错2:num/=10;错3:scanf("%ld",&n); 错4:printf("\n%ld\n",fun(n));1-354 功能:输出fabonacci数列前20项,要求变量类型定义为浮点型,输出时只输出整数部分,输出项数不得多于或少于20.错1:printf(“%f”,f1); 错2:for(i=1;i<20;i++)错3:f1=f2; 错4:f2=f3;1-2544 功能:在一个一维整型数组中找出其中最大的数及其下标。

错1:int fun(int *a,int *b,int n) 错2:*b=c-a;错3:scanf(“%d”,a+i); 错4:max=fun(a,&p,N)1-1859 功能:实现交换两个整数的值。

例如:给a和b分别输入3和6,输出为a=6,b=3。

错1:fun(int *a,int *b) 错2:t=*a;错3:*a=*b; 错4:*b=t;1-840 功能:求1到20的阶乘的和。

错1:t=1; 错2:t=t*j;错3:s=s+t; 错4:printf("jiecheng=%f\n",s);1-6949 用起泡法对10个整数从小到大排序错1:void sort (int *x,int n) 错2:for(j=0;j<n-1-i;j++)错3:if(x[j]>x[j+1]) 错4:sort (a,n);1-4336 输入aSdFG输出为asdfg错1:char fun (char *c) 错2:return *c;错3:char s[81],*p=s; 错4:printf(“%c”,*p);1-4489 为一维数组输入10个整数。

C语言程序改错题

C语言程序改错题
do
{
scanf("%d",&x[i]);
/**********FOUND**********/
void maie(){Biblioteka double r,l,s;
/**********FOUND**********/
scanf("%lf",r);
l=2*PI*r;
s=PI*r*r;
printf("%6.2f,%6.2f\n",l,s);
}
7、在主函数中从键盘输入若干个数放入数组中,用0结束输入,并放在最后一个元素中。下列给定程序中,函数fun()功能是计算数组元素中值为负数的平均值(不包括0)。
#include <stdio.h>
#define N 20
/***********FOUND***********/
void fun(int a,int n);
{
int i, m, t, k;
for(i=0; i<2;i++)
{
/***********FOUND***********/
m=0;
for(k=i+1; k<n; k++)
fun(b,n);
for(i=0; i<n; i++)
printf("%d ", b[i]);
printf("\n");
}
3、计算并输出k以内最大的10个能被13或17整除的自然数之和。
K的值由主函数传入。
#include <stdio.h>
int fun(int k)
{
int m=0,mc=0;

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

大学C语言期末考试练习题程序改错(带详解答案)
辑地址下标。因此输出的时候只能从 a[1]开始输出,无法输出 a[0].因此应将 j 赋初值 0, 相应的循环条件改为 j<5 或者 j<=4 用于控制循环执行 5 次
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 后面表达式中的赋值符号是常见的 考点。

程序改错——精选推荐

程序改错——精选推荐

程序改错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是一个接口。

C语言程序改错题

C语言程序改错题

C语言程序改错一、程序改错共 138 题(共计 1380 分)━━━━━━━━━━━━━━━━━━第 1 题(10.0 分)/*------------------------------------------------------ 功能:根据整型形参 m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-3)------------------------------------------------------*/ #include "stdio.h"double fun(int m){/**********FOUND**********/double y=1int i;/**********FOUND**********/for(i=3; i<m; i++)/**********FOUND**********/y+=1.0/(2i-3);return(y);}void main(void){int n;clrscr();printf("Enter n: ");scanf("%d", &n);printf("\nThe result is %1f\n", fun(n));getch();}答案:1). double y=1;2). for(i=3; i<=m; i++) 或 for(i=3; i<m+1;i++)3). y+=1.0/(2*i-3);第 2 题(10.0 分)/*------------------------------------------------------ 功能:用选择法对数组中的 n 个元素按从小到大的顺序进行排序。

------------------------------------------------------*/ #include <stdio.h>#define N 20void fun(int a[], int n){int i, j, t, p;for (j = 0 ;j < n-1 ;j++){/**********FOUND**********/p = jfor (i = j;i < n; i++)/**********FOUND**********/if(a[i] >a[p])/**********FOUND**********/p=j;t = a[p] ;a[p] = 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");getch();}答案:1). p = j;2). if(a[i] < a[p]) 或 if(a[p] > a[i])3). p = i;第 3 题(10.0 分)/*------------------------------------------------------ 功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。

C语言程序改错练习

C语言程序改错练习
printf("\40: The a & b(decimal) is %d \n",&b);
/**********FOUND**********/
b|=7
printf("\40: The a & b(decimal) is %d \n",b);
}
答案:
=======(答案1)=======
int a,b;
main()
{
int a,b;
double x;
/***********FOUND***********/
scanf("%d,%d",a,b);
/***********FOUND***********/
x=2ab/(a+b)(a+b);
/***********FOUND***********/
printf("x=%d\n",x);
for(i=1;i<=5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
/**********FOUND**********/
if (i!=k||i!=j||j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
答案:
=======(答案1)=======
------------------------------------------------------*/
#include<stdio.h>
void main()
{
/**********FOUND**********/
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序改错==================================================题号:7471/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:计算正整数num的各位上的数字之积。

例如:若输入:252,则输出应该是:20。

若输入:202,则输出应该是:0。

------------------------------------------------------*/#include <stdio.h>#include <conio.h>long fun (long num){/**********ERROR**********/long k=1do{k*=num%10 ;/**********ERROR**********/num\=10;/**********ERROR**********/}while(!num) ;return (k) ;}void main( ){long n ;printf("\Please enter a number:") ; scanf("%ld",&n) ;printf("\n%ld\n",fun(n)) ;}答案:位置 1:long k=1;位置 2:num/=10; 【或】 num=num/10;位置 3:} while(num) ; 【或】 while(num!=0)题号:7383/*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。

例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分的人数为1人。

------------------------------------------------------*/#include "stdio.h"float Min=0;int J=0;float fun(float array[],int n){int i;float sum=0,ave;Min=array[0];for(i=0;i<n;i++){if(Min>array [i]) Min=array [i];/**********ERROR**********/sum=+array [i];}/**********ERROR**********/ave=sum\n;for(i=0;i<n;i++)/**********ERROR**********/if(array [i]=Min) J++;return(ave);}void main( ){float a[10],ave;int i=0;for(i=0;i<10;i++)scanf("%f",&a[i]);ave=fun(a,10);printf("ave=%f\n",ave);printf("min=%f\n",Min);printf("Total:%d\n",J);}答案:位置 1:sum+=array[i]; 【或】 sum=sum+array [i];位置 2:ave=sum/n;位置 3:if(array [i]==Min) J++;题号:1698/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

π 1 1 1- = 1 - - + - - - + ...4 35 7------------------------------------------------------*/#include "stdio.h"/**********ERROR**********/#include "math"void fun(){int i=1;/**********ERROR**********/int s=0,t=1,p=1;/**********ERROR**********/while(fabs(t)<=1e-4){s=s+t;p=-p;i=i+2;t=p/i;}/**********ERROR**********/printf("pi=%d\n",s*4);}main(){fun();}答案:位置 1:#include "math.h" 【或】 #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: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);题号:7244/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?------------------------------------------------------*/#include"stdio.h"int age(int n){int c;/**********ERROR**********/if(n=1)c=10;else/***********FOUND***********/c=age(n)+2;return(c);}void main(){/**********ERROR**********/printf("%d",age5);}答案:位置 1:if(n==1)位置 2:c=age(n-1)+2;位置 3:printf("%d",age(5));题号:3230/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:从键盘输入的整数中找出最小值,输入负数时结束。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include "stdio.h"main(){int min,a;scanf("%d",&a);min=a;/**********ERROR**********/while (a<0 ){/**********ERROR**********/if(a>min) min=a;scanf("%d",&a);}}答案:位置 1:while(a>=0)位置 2:if(a<min) min=a; 【或】 if(a<=min) min=a;题号:1900/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:从键盘输入的正整数中找出最大值,输入0时结束。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include "stdio.h"main(){int max=0,a;do{scanf("%d",&a);/**********ERROR**********/if(a>max) a=max;/**********ERROR**********/while(a==0);printf("%d",max);}答案:位置 1:if(a>max) max=a;位置 2:while(a!=0);题号:5672/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:输入两个正整数,并由小到大排列。

输入负数或0则重新输入。

相关文档
最新文档