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

第1题【程序改错】【2 】功效:先将在字符串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个随机整数从小到大排序.例如:若输入整数7,则应输出:3 10 17 28 32 36 47.------------------------------------------------------*/#include "conio.h"#include <stdio.h>sortpb ( int n, int *a ){/**********FOUND**********/int i, j, p, tfor ( j = 0; j < n-1 ; j++ ){p = j;for ( i = j + 1; i < n ; i ++ )/**********FOUND**********/if ( a[p] > a[j] ) p = i;/**********FOUND**********/if ( p == j ){t = a[j];a[j] = a[p];a[p] = t;}}}double rnd ( ){static t = 29, c = 217, m = 1024, r = 0; r =( r*t + c )%m; return( ( double )r/m ); }getarr( int n, int *x ){int i;for( i = 1; i <= n; i++, x++ ) *x = ( int )( 50*rnd() );}putarr( int n, int *z ){int i;for( i = 1; i <= n; i++, z++ ){printf( "%4d", *z );if ( !( i%10 ) ) printf( "\n" );}printf("\n");}main(){int aa[20], n;printf( "\nPlease enter an integer number between 5 and 20: " ); scanf( "%d", &n );getarr( n, aa );printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa ); sortpb( n, aa );printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );}答案:1). int i, j, p, t;2). if ( a[p] > a[i] ) p = i;3). if ( p != j )第4题【程序改错】--------------------------------------------------------功效:以下程序能求出1*1+2*2+......+n*n<=1000中知足前提的最大的n.------------------------------------------------------*/#include <stdio.h>#include "string.h"main(){int n,s;/**********FOUND**********/s==n=0;/**********FOUND**********/while(s>1000){++n;s+=n*n;}/**********FOUND**********/printf("n=%d\n",&n-1);}答案:1). s=n=0;2). while(s<=1000)3). printf("n=%d\n",n-1);第5题【程序改错】--------------------------------------------------------功效:求出a所指数组中最大数和次最大数(划定最大数和次最大数不在a[0]和a[1]中),依次和a[0].a[1]中的数对调.例如:数组华夏有的数:7.10.12.0.3.6.9.11.5.8,输出的成果为:12.11.7.0.3.6.9.10.5.8.------------------------------------------------------*/#include <conio.h>#include <stdio.h>#define N 20void fun ( int * a, int n ){int k,m1,m2,max1,max2,t;max1=max2= -32768; m1=m2=0;for ( k = 0; k < n; k++ )if ( a[k]>max1 ){max2 = max1; m2 = m1;max1 = a[k]; m1 = k;}/**********FOUND**********/else if( a[k]>max1 ){max2 = a[k]; m2 = k; }/**********FOUND**********/t = a[0];a[m1]=a[0];a[m1] = t;/**********FOUND**********/t = a[1];a[m2]=a[1];a[m2] = t;}main( ){int b[N]={7,10,12,0,3,6,9,11,5,8}, n=10, i; for ( i = 0; i<n; i++)printf("%d ",b[i]);printf("\n");fun (b, n);for ( i=0; i<n; i++ )printf("%d ",b[i]);printf("\n");}答案:1). else if( a[k]>max2 )2). t = a[0]; a[0]=a[m1]; a[m1] = t;3). t = a[1]; a[1]=a[m2]; a[m2] = t;第6题【程序改错】--------------------------------------------------------功效:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子).例如:若输入整数:2310,则应输出:2.3.5.7.11.请纠正程序中的语法错误,使程序能得出准确的成果.------------------------------------------------------*/#include "conio.h"#include <stdio.h>/**********FOUND**********/isPrime(integer n ){int i, m;m = 1;for ( i = 2; i < n; i++ )/**********FOUND**********/if ( n%i ){m = 0;break;}/**********FOUND**********/return n ;}main( ){int j, k;printf( "\nPlease enter an integer number between 2 and 10000: " ); scanf( "%d", &k );printf( "\n\nThe prime factor(s) of %d is( are ):", k );for( j = 2; j <= k; j++ )if((!( k%j))&&( IsPrime(j))) printf( "\n %4d", j );printf("\n");}答案:1). IsPrime(int n)2). if(!(n%i))3). return m ;第7 题【程序改错】--------------------------------------------------------功效:为一维数组输入10个整数;将个中最小的数与第一个数对调,将最大的数与最后一个数对调,输出数组元素.------------------------------------------------------*/#include <stdio.h>main(){int a[10];void input();void output();void max_min();input(a,10);max_min(a,10);output(a,10);}void input(int *arr,int n){int *p,i;p=arr;printf("please enter 10 integers:\n"); for(i=0;i<n;i++)/**********FOUND**********/ scanf("%d",p);}void max_min(int *arr,int n){int *min,*max,*p,t;min=max=arr;for(p=arr+1;p<arr+n;p++)/**********FOUND**********/ if(*p<*max)max=p;else if(*p<*min) min=p;t=*arr;*arr=*min;*min=t;/**********FOUND**********/ if(max=arr) max=min;t=*(arr+n-1);*(arr+n-1)=*max;*max=t;}void output(int *arr,int n){int *p,i;p=arr;printf("The changed array is:\n");/**********FOUND**********/while(i=0;i<n;i++)printf("%3d",*p++);printf("\n");}答案:1). scanf("%d",p ++); 或 scanf("%d",arr[i]); 或 scanf("%d",p+i); 或 scanf("%d",arr+i);2). if(*p>*max) 或 if(*max<*p)3). if( max == arr )4). for(i=0;i<n;i++) 或 for(i=0;n>i;i++) 或 for(p=arr;p<arr+n;) 或 for(i=0;i<=n-1;i++) 或for(i=0;n-1>=i;i++) 或 for(p=arr;p<=arr+n-1;) 或 for(p=arr;arr+n-1>=p;)第8题【程序改错】--------------------------------------------------------功效:求出在字符串中最后一次消失的子字符串的地址,经由过程函数值返回,在主函数中输出从此地址开端的字符串;若未找到,则函数值为NULL.例如:当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,输出成果应是:abcdx.当字符串中的内容为: "abcdabfabcdx",t中的内容为:"abd"时,则程序输出未找到信息:not found!.------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>char * fun (char *s, char *t ){char *p , *r, *a;/**********FOUND**********/a == NULL;while ( *s ){p = s;r = t;while ( *r )/**********FOUND**********/if ( r == p ){r++;p++;}elsebreak;/**********FOUND**********/if ( *r ='\0' ) a = s;s++;}return a ;}main(){char s[100], t[100], *p;printf("\nPlease enter string S :"); scanf("%s", s );printf("\nPlease enter substring t :"); scanf("%s", t );p = fun( s, t );if ( p )printf("\nThe result is : %s\n", p);elseprintf("\nNot found !\n" );}答案:1). a = NULL;2). if ( *r == *p )3). if ( *r == '\0' ) a = s;第9题【程序改错】--------------------------------------------------------功效:从m个学生的成绩中统计出高于和等于平均分的学生人数,此人数由函数值返回.平均分经由过程形参传回,输入学生成绩时,用-1停止输入,由程序主动统计学生人数.例如:若输入 8 逻辑学生的成绩,输入情势如下: 80.5 60 72 90.5 98 51.5 88 64 -1成果为:The number of students :4Ave = 75.56.------------------------------------------------------*/#include <conio.h>#include <stdio.h>#define N 20int fun ( float *s, int n, float *aver ){float av, t ; int count , i;count = 0; t=0.0;for ( i = 0; i < n; i++ ) t += s [ i ];av = t / n; printf( "ave =%f\n",av );for ( i = 0; i < n; i++ )/**********FOUND**********/if ( s[ i ] < av ) count++;/**********FOUND**********/aver = av;/**********FOUND**********/return count}main(){float a, s[30], aver;int m = 0;printf ( "\nPlease enter marks ( -1 to end):\n ");scanf("%f",&a );while( a>0 ){s[m] = a;m++;scanf ( "%f", &a );}printf( "\nThe number of students : %d\n" , fun ( s, m, &aver ));printf( "Ave = %6.2f\n",aver );}答案:1). if ( s[ i ] >= av ) count++;2). *aver = av;3). return count;第10题【程序改错】--------------------------------------------------------功效:依据以下公式求π值,并作为函数值返回.例如:给指定精度的变量eps输入0.0005时,应该输出Pi=3.140578.π 1 1 2 1 2 3 1 2 3 4— = 1 + — + — x — + — x — x — + — x — x — x — + ...2 3 3 5 3 5 7 3 5 7 9------------------------------------------------------*/ #include <stdio.h>double fun(double eps){double s,t;int n=1;s=0.0;t=1;/**********FOUND**********/while(t<=eps){s+=t;/**********FOUND**********/t=n/(2*n+1)*t;n++;}/**********FOUND**********/return s;}main(){double x;scanf("%lf",&x);printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));}答案:1). while(t>eps) 或 while(eps<t) 或 while(t>=eps) 或 while(eps<=t) 或 while (t>eps) 或 while (eps<t) 或 while (t>=eps) 或 while (eps<=t)2). t=t*n/(2*n+1); 或 t=1.0*n/(2*n+1)*t; 或 t=n/(2*n+1.0)*t; 或 t=n/(2.0*n+1)*t; 或t=n/(2.0*n+1.0)*t; 或 t=1.0*n/(2.0*n+1.0)*t;3). return 2 * s ; 或 return (2*s); 或 return(2*s); 或 return (s*2); 或 return(s*2);第11题【程序改错】--------------------------------------------------------功效:实现两个字符串的衔接.例如:输入dfdfqe和12345时,则输出dfdfqe12345.------------------------------------------------------*/#include <stdio.h>main(){char s1[80],s2[80];void scat(char s1[],char s2[]);gets(s1);gets(s2);scat(s1,s2);puts(s1);}void scat (char s1[],char s2[]){int i=0,j=0;/**********FOUND**********/while(s1[i]= ='\0')i++;/**********FOUND**********/while(s2[j]= ='\0'){/**********FOUND**********/s2[j]=s1[i];i++;j++;}/**********FOUND**********/s2[j]='\0';}答案:1). while( s1[i] != '\0' ) 或 while(s1[i]) 或 while( s1[i] != 0 )2). while( s2[j] != '\0' ) 或 while(s2[j]) 或 while( s2[j] != 0 )3). s1[i]=s2[j];4). s1[i]='\0'; 或 *(s1+i)='\0'; 或 s1[i]=0;第12题【程序改错】--------------------------------------------------------功效:求二分之一的圆面积,函数经由过程形参得到圆的半径,函数返回二分之一的圆面积.例如:输入圆的半径值:19.527 输出为:s = 598.950017.------------------------------------------------------*/#include <stdio.h>#include <conio.h>/**********FOUND**********/double fun( r){double s;/**********FOUND**********/s=1/2*3.14159* r * r;/**********FOUND**********/return r;}main(){float x;printf ( "Enter x: ");scanf ( "%f", &x );printf (" s = %f\n ", fun ( x ) );}答案:1). float fun(float r) 或 double fun(float r) 或 double fun(double r)2). s=1.0/2*3.14159* r * r;3). return s;第13题【程序改错】--------------------------------------------------------功效:应用二维数组输出如图所示的图形. *******************************------------------------------------------------------*/ #include <stdio.h>#include <conio.h>/**********FOUND**********/#define N= 7main(){char a[N][N];int i,j,z;for(i=0;i<N;i++)for(j=0;j<N;j++)/**********FOUND**********/a[i][j]=;z=0;for(i=0;i<(N+1)/2;i++){for(j=z;j<N-z;j++)a[i][j]='*';z=z+1;}/**********FOUND**********/ z=0;for(i=(N+1)/2;i<N;i++){z=z-1;for(j=z;j<N-z;j++)a[i][j]='*';}for(i=0;i<N;i++){for(j=0;j<N;j++)/**********FOUND**********/ printf("%d",a[i][j]);printf("\n");}}答案:1). #define N 72). a[i][j]=' ';3). z=z-1; 或 z--; 或 z=-1+z;4). printf("%c",a[i][j]);第14题【程序改错】--------------------------------------------------------功效:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*.------------------------------------------------------*/#include <stdio.h>main(){int i,a,n=1;/**********FOUND**********/while(n<7){do{scanf("%d",&a);}/**********FOUND**********/while(a<1&&a>50);/**********FOUND**********/for(i=0;i<=a;i++)printf("*");printf("\n");n++;}}答案:1). while(n<=7) 或 while(n<8)2). while(a<1||a>50); 或 while(a>50||a<1);3). for(i=1;i<=a;i++)。
程序改错

发生错误后都要回到编辑阶段,分析错误原因,修改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)
C语言习题级答案3

测试题31、C语言中不合法的字符常量就是 CA、’\65’B、’\xff’C、’\028’D、’&’2、具有相同类型的指针变量p与数组a,不能进行的操作就是(C)。
A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3、若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果就是(B ) z=x>y?x:yA、72B、26C、48D、224、对于建立函数的目的,正确的说法就是 DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5、有定义:char*p1,*p2;则下列表达式中正确合理的就是 CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26、以下程序的运行结果就是(B)。
main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17、若变量已正确定义且 k 的值就是 4,计算表达式 ( j =4, k--) 后,j与k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48、给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x与数组y等价C、数组x与数组y的长度相同D、数组x的长度小于数组y的长度9、在下述程序中,判断i > j共执行了多少次 C#include <stdio、h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710、下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的就是(D)。
程序改错——精选推荐

【程序改错】1.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。
请改正程序中的错误,使它能得出正确的结果。
#include <stdio.h>void fun( char *s ){ int I,j;for(i=j=0; s[i]!='\0'; i++)if(s[i]!='c')/***********FOUND***********/s[j++]=s[i];/***********FOUND***********/s[j]='\0';}main(){ char s[80];printf("Enter a string: "); gets(s);printf("The original string: "); puts(s);fun(s);printf("The string after deleted : "); puts(s);printf("\n\n");}2. 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)例如,若m=2000,则应输出0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include <stdlib.h>#include <conio.h>#include <stdio.h>/***********FOUND***********/double fun (int m){ double y=0, d;int i;/***********FOUND***********/for(i=100;i<=m;i+=100){d=(double)i*(double)i;y+=1.0/d;}return(y);}void main(){ int n=2000;system("CLS");printf("\nThe result is %lf\n",fun(n));}3. 下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。
程序改错

/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求100~200之间所有的素数。
------------------------------------------------------*///#include <iostream.h>void main(){int n;int i;/**********ERROR**********/for(n=100;n<200;n++){/**********ERROR**********/for(i=2;i<=n;i++)/**********ERROR**********/if(n%i==0) continue;if(n==i)cout<<n<<endl;}}//答案【改错1】错误【学生答案】for(n=100;n<200;n++)【参考答案】for(n=100;n<=200;n++)============================================================【改错2】错误【学生答案】for(i=2;i<=n;i++)【参考答案】for(i=2;i<=n-1;i++)for(i=2;i<n;i++)============================================================【改错3】错误【学生答案】if(n%i==0) continue;【参考答案】if(n%i==0) break;/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求水仙花数。
c语言程序改错

c语⾔程序改错【程序改错】1.功能:利⽤递归函数调⽤⽅式,将所输⼊的5个字符,以相反顺序打印出来。
char next;next=getchar();palin(n-1);2.功能:求⼴义菲玻那契级数的第n项。
⼴义菲玻那契级数的前n项为: 1,1,1,3,5,9,17,31,……项值通过函数值返回 main ( )函数。
例如:若 n = 15,则应输出:The value is: 2209。
for (k=4; k<=n; k++)a=b;return d;3.功能:根据整型形参m,计算如下公式的值:y=1/2+1/8+1/18+...+1/2m*mdouble y=0.0;4.功能:编制统计营业员⼀天的营业额的程序,设程序采⽤⼀个循环实现,每次循环输⼊⼀笔交易⾦额并累计营业额。
由于营业员⼀天完成的交易次数是不确定的,为此以最后附加输⼊⼀笔0或负数交易额作为交易⾦额已全部输⼊结束的标志。
float sale,sigma;scanf("%f",&sale);sigma=sigma+sale;5.功能:读取7个数(1-50)的整数值,每读取⼀个值,程序打印出该值个数的*。
while(n<8) while(a<1||a>50);for(i=0;i6.功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。
printf("%8f",f1);for(i=1;i<20;i++)f1=f2;f2=f3;7.功能:⼀个偶数总能表⽰为两个素数之和。
scanf("%d",&a);d=a-b;if(d%c==0)8.功能:利⽤⼆维数组输出如图所⽰的图形。
*******************************#define N 7a[i][j]=' ';z=z-1;printf("%c",a[i][j]);9.题⽬:求两个整数的最⼩公倍数。
计算机二级上机考试(程序改错题)1

程序编程题目1、第一大类(交换类)共7道2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。
例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。
例如给a和b分别输入60和65,输出为:a=65 b=60/**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。
例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n项之和。
2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。
例如n=5,则应输出:。
/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n项的值。
从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求 s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。
例如,a=3,n=6,则以下表达式为:S=333333-33333-3333-333-33-3其值是296298。
程序改错题

程序改错题第一篇:程序改错题1、 Gaicuo1.cpp的功能是:1!+2!+3!+……+20!。
程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void main() {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 void main( ) { int x,y; printf("Enter x & y:\n"); scanf("%d%d",&x,&y); /****found****/ if(x}3、gaicuo3.cpp的功能是交换两个数,若输入10和20,则输出20和10。
程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void main( ) { int x,y,t; printf("Enter x & y:\n"); /****found****/ scanf("%d%d",&x,&y); /****found****/ t=x; x=y;y=t; printf("x=%d y=%d",x,y) ; } 4. gaicuo4.cpp的功能是输入一个整数,判别它是否能被3整除,若能整除,打印YES;不能打印NO。
程序改错

下面给定程序中,函数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整除的自然数之和。
程序改错

五、程序改错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个随机整数从小到大排序。
-程序改错部分试题及答案

第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。
程序改错(1)

程序改错有情提示I的大写自己在VB中改下本人建议尽量别粘贴复制1 求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as Integer, s as Integer********FOUND*******For i =1 To 7 For i=1 To 7 Step2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim t as Integer,i as Integer********FOUND*******Fact=I fact=t2 求s=2!+4!+6!+8!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as integer, s as Long********FOUND*******For i=2 To 8 For i=2 TO 8 Step 2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim as Long********FOUND*******fact=I Fact=tEnd Function3 程序功能为打印下列图形:**********Private Sub Form_Click()ClsDim i As IntegerDim j As Integer********FOUND*******For i = 1 To 7 For i =1 To 5********FOUND*******For j =1 To 5 For j = 1 To iPrint”*”********FOUND*******Next I Next jPrintNext iEnd Sub4 在窗体上有两个命令按钮和一个文本框,名称分别为村民dstart(“开始”),cmdend(“结束”)和Text1.文本框Text1中的字符个数不超过200个.程序刚开始运行时,”结束”按钮成灰色,单击”开始”按钮后,将文本框Text1.Text中的字符按其ASCII码值由大到小自左而右重新组合,并在窗体上输出重组后的字符串,同时使”结束”按钮能响应而”开始”按钮不能响应. Private Sub Form_load()********FOUND*******Cmdend.Enabled=True Cmdend.Enabled= FalseEnd Sub********FOUND*******For I =0 To n-1 For I =1 To n-1p=IFor j=I+1 To n********FOUND*******If a(p)<a(j) Then j=p If a(p)<a(j) Then p=jNext jIf p<> Then t=a(I): a(I)=a(p): a(p)=t5 本程序将一个大于100的偶数n分解为两个素数之和,其中nflag逻辑函数用于判断自然数x是否为素数Private Sub Form_Click()Dim n As Integer, x As Integer ,y As Integern=Val(InputBox(“请输入一个大于100的偶数”,”输入数据”,100))For x=3 To n\2 Step 2********FOUND*******If x=0 Then If nflag(x) Theny=n-x********FOUND*******If nflag(x) Then If nflag(y) ThenForm1.Print n;”=”;x;”+”;yExit ForEnd If********FOUND*******If x Mod k=0 Then flag = True If x Mod k=0 Then flag= FalseK= k+1Loop6 本程序功能用于将学生学过得单词在列表框中显示出来。
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语言程序设计练习题--程序改错〖第1题〗(练习题所在文件夹:20)/*------------------------------------------------------ 【程序改错】-------------------------------------------------------- 题目:已知一个数列从第1项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。
下列给定程序中,函数fun的功能是:求该数列的前n项的平方根之和sum,n的值通过形参传入。
输出由主函数完成。
例如,当n=10时,程序的输出结果应为23.197745。
请改正程序中的错误,使它能得出正确的结果。
-------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/ #include "math.h"/**********FOUND**********/fun (int n){double sum,s0,s1,s2,s;int k;/**********FOUND**********/sum=0.0;if(n<=2) sum=0.0;s0=0.0;s1=0.0;/**********FOUND**********/s2=0.0;/**********FOUND**********/for(k=4;k>n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}return sum;}main(){int n;scanf("%d",&n);printf("%lf\n",fun(n));}答案:1). double fun (int n)2). sum=1.0; 或 sum=1;3). s2=1.0; 或 s2=1;4). for(k=4;k<=n;k++) 或for(k=3;k<=n-1;k++)〖第9题〗(练习题所在文件夹:356)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回。
程序改错——精选推荐

程序改错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.在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。
其功能是:产生30个[0,90]的随机整数,放入一个数组中,然后输出其中的最大值。
程序运行后,单击命令按钮,可求出数组中的最大值,并在窗体上显示。
运行界面请参阅附图。
在窗体的代码窗口中,已给出了部分程序,程序中有两处错误,请修改程序并运行,直到得出正确结果。
注意:程序中的修改位置就在注释行:’**********found*************’’请不要删除该行’的下面一行中,请不要改动程序中的其他部分。
最后把修改后的文件按原来文件名存盘,提交程序改错题文档。
VERSION 5.00Begin VB.Form Form1Caption = "Form1"ClientHeight = 2100ClientLeft = 1905ClientTop = 1875ClientWidth = 3660LinkTopic = "Form1"ScaleHeight = 2100ScaleWidth = 3660Begin mandButton Command1Caption = "输出最大值"Height = 375Left = 960TabIndex = 0Top = 1320Width = 1575EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption Base 1Private Sub Command1_Click()Dim arrN(30) As IntegerDim Max As IntegerRandomizeForm1.ClsFor i = 1 To 30’**********found*************’’请不要删除该行’arrN(i) = Int(Rnd * 51)Print Format(arrN(i),"@@@@@@");If i Mod 6 =0 Then PrintNext i’**********found*************’’请不要删除该行’Max = arrN(0)For i = 2 To 30If Max<arrN(i) ThenMax = arrN(i)End IfNext iPrint "Max=";Max2. 在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。
程序改错

1『Visual Basic——程序改错』'【程序改错】462?'------------------------------------------------'题目:请修改程序中错误,保证程序最后输出效果如图1所示。
'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 7'**********FOUND**********Print Spc(7);'**********FOUND**********If i >= 1 ThenPrint "*"Else'**********FOUND**********Print "*"; Spc(2 * (i - 1)); "*"End IfNext iEnd Sub1.Space2.3.space2『Visual Basic——程序改错』'【程序改错】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", "输入正整数"))'**********FOUND**********If A <= C ThennTemp = AB = nTempEnd If'**********FOUND**********If B <= C ThennTemp = AA = CC = nTempEnd If'**********FOUND**********If A <= B ThennTemp = BB = CC = nTempEnd IfPrint "The integers in order is"; A; B; CEnd Sub--------------------------------------------------『图片数目』:0张『文件数目』:2张『答案』:1 If A <= B Then 或If B >= A Then2 If A <= C Then 或If C >= A Then3 If B <= C Then 或If C >= B Then3『Visual Basic——程序改错』'【程序改错】464?'------------------------------------------------'题目:歌德巴赫猜想:任何一个大于或等于六的偶数都可' 以分解成两个素数之和,请修正下面程序的错误。
【550】程序改错程序改错【1】程序功能已知24有8个正整数因子1224而24正好被其因子。。。

程序改错【1】程序功能:已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[100,300]之间能被其因子数目整除的数中最大的数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
Private Sub Command1_Click() Dim N As Integer Dim s As Integer Dim i As Integer For N = 300 To 100 s = 0 For i = 1 To N If N Mod i = 0 Then s = s + 1 End If Next i If s Mod N = 0 Then Print N Exit For End If Next N End Sub【296 】【2】程序功能:求这样的一个三位数,其个位数不大于2。
若将个位数移动到百位之前(如:321移成132),新三位数大于原三位数的两倍。
程序中有两行错误,改正错误,使程序能输出正确的结果。
Private Sub Command1_Click() For i = 0 To 9 For j = 0 To 9 For k = 0 To 9 n = 100 * i + 10 * j + k m = 100 * k + 10 * i + j If m >= 2 * n Then Print n Next k Next j Next i End Sub【102】【3】程序功能:有一堆桃子(个数不超过1000),如果分成4个一组余2个;7个一组余3个; 9个一组余5个。
求这堆桃子的个数有几种可能。
程序中有错误,改正错误,使程序能输出正确的结果。
Private Sub Command1_Click() For x = 1 To 1000 If x Mod 4 = 2 Or x Mod 7 = 3 Or x Mod 9 = 5 Then i = i + 1 End If Next x Print i End Sub【4】【4】程序功能:求个位数是6,且能被3整除的所有四位数之和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1题(10.0分)题号:421/*-------------------------------- 【程序改错】--------------------------------功能:给一个不多于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 are5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0)printf("there are4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0)printf(" there are3,%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;3). if (a!=0) 或 if (!a) 第2题(10.0分)题号:417/*-------------------------------- 【程序改错】--------------------------------功能:下题是一段有关结构体变量传递的程序.--------------------------------*/#include "stdio.h"struct student{int x;char c;} a;main(){a.x=3;/**********FOUND**********/a.c='a'f(a);/**********FOUND**********/printf("%d,%c",a.x,b.c);getch();}f(struct student b){b.x=20;/**********FOUND**********/b.c=y;}答案:1). a.c='a';2). printf("%d,%c",a.x,a.c);3). b.c='y';第1题(10.0分)题号:440/*-------------------------------- 【程序改错】--------------------------------功能:输入字符序列,字符序列以特殊字符“#”结束。
程序从前向后依次读入字符,并翻译出新的字符输出。
翻译的规则是:如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入的字符不是数字符,则输出该字符。
输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。
翻译直至当前读入的字符为字符‘#’,结束翻译和输出。
--------------------------------*/#include<stdio.h>void main(){char ch,nch;int count;int k;printf("Enter string.\n");scanf("%c",&ch);/**********FOUND**********/while(ch='#'){if(ch>='0'&&ch<='9'){/**********FOUND**********/count=ch-'0'-1;scanf("%c",&nch);for(k=0;k<count;k++)printf("%c",nch);}else/**********FOUND**********/printf("%f",ch);printf(" ");scanf("%c",&ch);}printf("#\n");} 答案:1). while(ch!='#')2). count=ch-'0'+1;3). printf("%c",ch);第2题(10.0分)题号:411/*-------------------------------- 【程序改错】--------------------------------功能:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5--------------------------------*/#include "stdio.h"main(){int n,i;printf("\nplease input a number:\n"); scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){/**********FOUND**********/while(n==i){/**********FOUND**********/if(n%i==1){printf("%d*",i);/**********FOUND**********/n=n%i;}elsebreak;}}printf("%d",n);}答案:1). while(n!=i)2). if(n%i==0) 或 if (!(n%i))3). n=n/i;第1题(10.0分)题号:4/*-------------------------------- 【程序改错】--------------------------------功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
--------------------------------*/#define N 11main(){inti,j,t,number,a[N]={1,2,4,6,8,9,12,15,14 9,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--) 或for(i=N-2;0<=i;i--)3). a[ i + 1 ]=a[i];4). break;第2题(10.0分)题号:386/*-------------------------------- 【程序改错】--------------------------------功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U)的个数。
注意:字母不分大、小写。
例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
--------------------------------*/#include <conio.h>#include <stdio.h>fun ( char *s, int num[5] ){int k, i=5;for ( k = 0; k<i; k++ )/**********FOUND**********/num[i]=0;for (; *s; s++){i = -1;/**********FOUND**********/switch ( s ){case 'a':case 'A':{i=0;break;}case 'e':case 'E':{i=1;break;}case 'i':case 'I':{i=2;break;}case 'o':case 'O':{i=3;break;}case 'u':case 'U':{i=4;break;}}/**********FOUND**********/if (i < 0)num[i]++;}}main( ){char s1[81]; int num1[5], i;clrscr();printf( "\nPlease enter a string: " ); gets( s1 );fun ( s1, num1 );for ( i=0; i < 5; i++ )printf ("%d ",num1[i]);printf ("\n");}答案:1). num[k]=0;2). switch(*s)3). if (i >= 0) 第1题(10.0分)题号:447/*-------------------------------- 【程序改错】--------------------------------功能:企业发放的奖金根据利润提成。