1、一、程序改错 共 137 题 第 1 题 题号:15/*- 【程序改错】-功能:根据整型形参 m 的值,计算如下公式的值。 1 1 1t = 1- - - . - 2x2 3x3 mxm 例如:若 m=5,则应输出:0.536389-*/#include double fun(int m)double y=1.0;int i;/*FOUND*/for(i=2;i=i;i+) 或 for(i=2;ii;i+) 或 for(i=2;1+mi;i+)2). y-=1.0/(i*i); 或 y=y-1.0/(i*i); 或 y-=1.0/(float)(i*i); 或 y=y-1.0/(float)(
2、i*i); 或 y=y-1.0/i/i; 或 y=y-1.0/(float)i/(float)i; 或 y=y-1/(double)(i*i); 或 y-=1/(double)(i*i);3). return y; 或 return (y); 或 return(y);第 2 题 题号:362/*- 【程序改错】-功能:删除字符串 s 中的所有空白字符(包括 Tab 字符、回车符及换行符)。输入字符串时用#结束输入。-*/#include #include #include fun ( char *p) int i,t; char c80;/*FOUND*/for (i = 1,t = 0; p
3、i ; i+)/*FOUND*/if(!isspace(p+i) ct+=pi;/*FOUND*/ct=“0“; strcpy(p,c); main( )char c,s80;int i=0;printf(“input a string:“);c=getchar();while(c!=#) si=c;i+;c=getchar(); si=0;fun(s);puts(s);答案:1). for (i = 0,t = 0; pi ; i+)2). if(!isspace(*(p+i) ct+=pi;3). ct=0;第 3 题 题号:251/*- 【程序改错】-功能:用“起泡法“对连续输入的十个字
4、符排序后按从小到大的次序输出.-*/#include #include #define N 10sort(char strN)int i,j; char t;for(j=1;jstri+1) 或 if(stri+1void main()char ch,nch;int count;int k;printf(“Enter string.n“);scanf(“%c“,/*FOUND*/while(ch=#)if(ch=0/*FOUND*/for(i=0,j=0;*(ptr+i)!=“0“;i+)/*FOUND*/if(*(ptr+i)z| *(ptr+i)Z | *(ptr+i)z | *(ptr+
5、i)Z | *(ptr+i)#define Max 100void fun(int a,int n)/*FOUND*/int i=5;j=n-1,temp;while(i=0)/*FOUND*/j+;/*FOUND*/if(ij) temp=ai;ai=aj;aj=temp;void main()static a=1,-3,-1,3,2,4,-4,5,-5,-2,n=10,i;fun(a,n);for(i=0;imain()int n;double fun();printf(“Please input a number:“);/*FOUND*/print(“%d“,n) ; printf(“%
6、10.6fn“,fun(n);/*FOUND*/fun(int n) int i,j,t;double s;s=0;/*FOUND*/while(i=1;i=i;i+) 或 for(i=1;ii;i+)4). s+=1.0/t; 或 s= s + 1.0 /(float)t; 或 s= s + 1.0 /t; 或 s+=1.0/(float)t; 或 s+=1.0/(double)t; 或 s= s + 1.0 /(double)t;第 8 题 题号:387/*- 【程序改错】-功能:判断字符 ch 是否与 str 所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后。-*
7、/#include #include #include /*FOUND*/void fun(char str, char ch ) while ( *str /*FOUND*/if ( *str = ch )str 0 = ch;/*FOUND*/str1 = 0; main( )char s81, c ;printf( “nPlease enter a string:n“ );gets ( s );printf (“n Please enter the character to search : “ );c = getchar();fun(s, c) ;printf( “nThe result is %sn“, s);答案:1). void fun(char *str, char ch )2). if ( *str = 0 )3). str1 = 0;第 9 题 题号:401/*- 【程序改错】-功能:编写函数 fun 计算下列分段函数的值:x*x+x xdouble fun(float x)/*FOUND*/double y/*FOUND*/if (x=0 p,n;printf(“Enter n:n“);/*FOUND*/scanf(“%d“,n);/*FOUND*/for(s=p=0,i=1;in;i+)s+=p+=i;