1、不得增行和删行,也不得修改程序的结构。main() int i; static int a8=5,3,1,4,2,8,9,6; void jhmaxmin(); printf( Original array: n); for(i=0; i8; i+)%5d,ai);n jhmaxmin(a,8); Array after swaping max and min:/注意:void jhmaxmin(p,n) int p, n; 这是一种老的函数形式,现在一般这样写void jhmaxmin(int p,int n)void jhmaxmin(p,n) int p, n; / int *p,n;
2、int t, *max, *min, *end, *q; end=p+n; max=min=p; for(q=p+1; q*max) max=q; if(*qmax) min=q; /*q*min t=*max; *max=*min; *min=t;gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。#include int a8,*p=a; int i,j; int tempmin,tempcode;n input the numbers: for (i=0;ii+)%d,p+i); tempmin=*p;7;
3、 for (j=i;jj+) if (j=i|*(p+j)tempmin) tempmin=*(p+i); /tempmin=*(p+j); tempcode=j; if (tempcode!=i) *(p+tempcode)=*(p+i); *(p+j)=tempcode; /*(p+i)=tempmin;%d, ,*(p+i); return(1);gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误,使它能得出正确的结果。不
4、要改动main 函数,不得增行或删行,也不得修改程序的结构。 #include stdio.hconio.hstring.h void sub( char *s, char *t ) int i, d; d=strlen( s ); for( i=1; d ; i+ ) /for(i=0;d; ti=sd-1-i ; for( i=0; i+ ) td+i=si ; t2*d=/0 ; /t2*d=0; main( ) char s100, t100; clrscr( ) ; printf( n Please enter string S : );%s , s ); sub(s,t) ; n
5、The result is : %s n , t );gc163.c的功能是实现求1000以内的自然数中的完数及其个数(所谓完数,指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并显示结果。但该程序中有3处错误,请调试并改正。不允许改变程序结构和增删语句。void main(void) int i,k,m,n,s,p; /p=0 int a100;n10000以内的自然数中的完数有: for (i=2;=10000; s=0; m=0; for (k=1;k=i/2;k+) if (i%k=0) s=s+k; am=k; m=m+1; if (s=i) /
6、if(s=i) p=p-1; / p=p+1n%d=%d,s,a0); n=1; while (nm) printf(+%d,an);n总个数为: %dn,p);gc165.c 程序中的函数find_str()用来返回字符串s2在字符串s1中第一次出现的首地址;如果字符串s2不是s1的子串,则该函数返回空指针NULL。 现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。include char *find_str(char *s1,char *s2) int i,j,ls2; ls2=strlen(s2);
7、=strlen(s1)-ls2; for(j=0;ls2;j+) if(s1j+i!=s2j) break; /* . comment one . */ if(j=ls2) return(s1+j); /return(s1+i) return NULL;void main() char *a=dos6.22 windows98 office2000,*b=windows,c; /*c /* . comment two . */ c=find_str(a,b); if(c!=NULL) printf(%sn,c); else printf(未找到字符串%sn,b);gc166.c程序的功能是:计
8、算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。 例如,当输入的正整数为237时, s的值为12,t的值为42。 请改正程序中的两个错误,使它能得出正确的结果。不得增行或删行,也不得修改程序的 结构。#include int n, yw, s=0, t=0; /t=1, &n); while(n! yw=n%10; s=s+yw; t=t*yw; n=n%10; / n=n/10s=%d, t=%dn, s, t);gc228.c 代码功能为:使用指针将数组a中10个整数按相反的顺序存放。程序中有3处错误代码,请指出并改正之.void inv(x,n)int *x,n;int
9、 *p,t,*i,*j,m=(n-1)/2;i=x;j=n; /j=x+n-1;p=x+m;for(;=p;i+,j-)t=*i;*i=*j;*j=t;return;int a10,i;input 10 number10;ai);The original array:%d,printf(inv(a,n); /inv(a,10);The array has been inverted:for(i=0;i-) / for(i=0;gc234.c中函数fun的功能是:求S的值。设S= (2*2)/3) * (4*4)/(3*5) * . * ( (2*k*2*k)/(2*k-1)*(2*k+1) )
10、请改正函数fun中的两个错误,使程序能输出正确的结果。不要改动main函数,不得增行或删行,也不得更改程序的结构!dos.hfun( int k ) /float fun(int k) int n; float s, w, p, q; n = 1; s = 1.0; while ( n = k ) w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q; n+; return s /return s;main ( ) clrscr( );%fn, fun (10);gc273.c功能是:一个偶数总能表示为两个素数之和。 请改正程序的两个错
11、误,使程序能输出正确的结果。 注意:math.h int a,b,c,d;,a); /scanf(a); for(b=3;b=a/2;b+=2) for(c=2;csqrt(b) d=a+b; /d=a-b; else break; for(c=2;=sqrt(d); if(d%c=0) break;sqrt(d)%d=%d+%dn,a,b,d);gc274.c本程序用于输出如下所示的图形。请将源程序文件中的两个错误改正过来,注意在答题过程中不得对源程序增行或删行,也不得更改程序的结构。 1 121 12321 1234321 123454321 12345654321 12345676543
12、21 123456787654321 123456789876543211234567890987654321math.hint i,j,n;char s20=1234567890987654321nn /* ment 1.*/ n=10; /n=19; for(i=-n/2;=n/2;=15+abs(i); j+)printf(%c, /* ment 2.*/=n/2-abs(i);j+)printf(,sj); for(j=n/2-abs(i); j19; /j=n/2+abs(i)+1gc279.c的功能:函数prn_star(m,left)输出正菱形图案,其中参数m 代表图案的行数(为
13、一奇数),left代表图案距屏幕左边的列数。 函数prt_str(m,left)中有3处错误代码,请指出并改正之。#includevoid prn_star(m,left)int m,left; int i,j,p; for(i=1;m;i+) /for(i=1;=m; if(i=m) p=i; /if(i=m/2) else p=m+1+i; / p=m+1-i; for (j=1;=left+(m-(2*p-1)/2;=2*p-1;o int m,left;请输入正菱形图案的行数:m);请输入正菱形图案距屏幕左边的列数:left); prn_star(m,left);gc280.c功能为:
14、M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时,此人出圈,直到圈中只剩下一个人为止。请按退出次序输出出圈人原来的编号以及留在圈中的最后一个人原来的编号。程序中有3处错误代码,请指出并改正之。#define M 10 /*number of person*/#define N 2 /*eliminate a person for N compartment*/void main() int i,j,k,n; static aM; int bM; /*eliminate persons from array a to array b */ for (n=0,j=k=M-1;nk
15、) j=0; if (!aj) continue; /continue;改成break; bn=j-1; / bn=j+1; aj=-1; /*output*/%d ,bi);M;ai)%dn,i+1);gc304.c中的函数fun()的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:abc12时,则t中的字符串应为:abc1221cba。void fun (char *s, char *t) int i, st; st = strlen(s); i array;p-) *p=*(p+1); /*p=*(p-1); array=
16、array_end; /*array=array_end; m-; if(m0) move(array,n,m);gc307.c功能为:使用指针将数组中元素按升序排序。 int k,m,change,a10; int *p1; int *p2=p1; /int *p2=&p1 p1=a;Please input datas one by one: for (k=0;k+),p1+k);9; for (m=0;m(*p2)m+1) change=(*p2)m; (*p2)m=(*p2)m-1; / (*p2)m=(*p2)m+1 (*p2)m+1=change;,*(*p2+k);gc342.c的功能是:计算字符串中子串出现的次数 main() char str120,str220,*p1,*p2; int sum=0;please input two stringsn%s%s,str1,str2); p1=str1;p2=str2; while(*p1!=) if(*p1=*p2) while(*p1=*p2|*p2!) / while(*p1=*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1