1
0

程序修改题1-20.txt 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
  1. 程序修改题(一)
  2. 给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。
  3. 例如对于字符串:dadbcdbabdb,对应的输出应为:b或d。
  4. 请改正函数fun中指定部位的错误,使它能得出正确的结果。
  5. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
  6. #include<stdio.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. void fun(char a[])
  10. { int b[26], i, n,max;
  11. for (i=0; i<26; i++)
  12. /**********found**********/
  13. a[i] = 0;
  14. n= strlen(a);
  15. for (i=0; i<n; i++)
  16. if (a[i] >='a' && a[i]<='z')
  17. /**********found**********/
  18. b[a[i] - 'A']++;
  19. else if (a[i] >='A' && a[i]<='Z')
  20. b[a[i] -'A']++;
  21. max = 0;
  22. for (i=1; i<26; i++)
  23. /**********found**********/
  24. if (b[max] > b[i])
  25. max=i;
  26. printf("出现次数最多的字符是 : %c\n", max + 'a');
  27. }
  28. main( )
  29. { char a[200];
  30. printf("请输入一个待统计的字符串 : "); scanf("%s", a);
  31. fun(a);
  32. }
  33. 程序修改题(二)
  34. 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中函数fun的功能是:计算数组元素中所有值为正数的平均值(不包括0)。
  35. 例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。
  36. 请改正程序中的错误,使它能得出正确的结果。
  37. 注意:不得增行或删行,也不得更改程序的结构!
  38. #include <stdio.h>
  39. double fun ( int x[])
  40. {
  41. /************found************/
  42. int sum = 0.0;
  43. int c=0, i=0;
  44. while (x[i] != 0)
  45. { if (x[i] > 0) {
  46. sum += x[i]; c++; }
  47. i++;
  48. }
  49. /************found************/
  50. sum \= c;
  51. return sum;
  52. }
  53. main( )
  54. { int x[1000]; int i=0;
  55. printf( "\nPlease enter some data (end with 0): " );
  56. do
  57. { scanf("%d", &x[i]); }
  58. while (x[i++] != 0);
  59. printf("%f\n", fun ( x ));
  60. }
  61. 程序修改题(三)
  62. 下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
  63. 请改正程序中的错误,使它能得出正确的结果。
  64. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  65. #include <stdlib.h>
  66. #include <conio.h>
  67. #include <stdio.h>
  68. int fun( int m)
  69. { int i,k;
  70. for (i=m+1; ;i++)
  71. { for (k=2;k<i;k++)
  72. /*************found**************/
  73. if (i%k!=0)
  74. break;
  75. /*************found**************/
  76. if (k<i)
  77. return(i);
  78. }
  79. }
  80. void main()
  81. { int n;
  82. system("CLS");
  83. printf("\nPlease enter n: ");
  84. scanf("%d",&n);
  85. printf ("%d\n",fun(n));
  86. }
  87. 程序修改题(四)
  88. 下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
  89. 例如,当s中的数为87653142时,t中的数:8642。
  90. 请改正程序中的错误,使它能得出正确的结果。
  91. 注意:不得增行或删行,也不得更改程序的结构!
  92. #include <stdio.h>
  93. void fun (long s, long *t)
  94. { int d;
  95. long sl=1;
  96. *t = 0;
  97. while ( s > 0)
  98. { d = s%10;
  99. /************found************/
  100. if (d%2=0)
  101. { *t=d* sl+ *t;
  102. sl *= 10;
  103. }
  104. /************found************/
  105. s \= 10;
  106. }
  107. }
  108. main()
  109. { long s,t;
  110. printf("\nPlease enter s:"); scanf("%ld", &s);
  111. fun(s, &t);
  112. printf("The result is: %ld\n", t);
  113. }
  114. 程序修改题(五)
  115. 下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3,5,7,11。
  116. 请改正程序中的错误,使它能得出正确的结果。
  117. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  118. #include <conio.h>
  119. #include <stdio.h>
  120. /*************found**************/
  121. IsPrime(int n);
  122. {
  123. int i,m;
  124. m=1;
  125. for(i=2;i<n;i++)
  126. /*************found**************/
  127. if!(n%i)
  128. {
  129. m=0;
  130. break;
  131. }
  132. return(m);
  133. }
  134. main()
  135. {
  136. int j,k;
  137. printf("\nPlease enter an interger number between 2 and 10000: ");
  138. scanf("%d",&k);
  139. printf("\nThe prime factor(s) of %d is(are): ",k);
  140. for(j=2;j<k;j++)
  141. if((!(k%j)) && (IsPrime(j)))
  142. printf("%4d,",j);
  143. printf("\n");
  144. }
  145. 程序修改题(六)
  146. 下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。
  147. 请改正程序中的错误,使它能得出正确的结果。
  148. 注意:不得增行或删行,也不得更改程序的结构。
  149. #include <stdlib.h>
  150. #include <conio.h>
  151. #include <stdio.h>
  152. #include <string.h>
  153. int fun (char *s, char *t)
  154. {int n; char *p, *r;
  155. n=0;
  156. while(*s)
  157. {p=s;
  158. r=t;
  159. while (*r)
  160. /*************found**************/
  161. if(*r==*p) {r++; p++}
  162. else break;
  163. /*************found**************/
  164. if(r=='\0')
  165. n++;
  166. s++;
  167. }
  168. return n;
  169. }
  170. void main( )
  171. {char s[100], t[100]; int m;
  172. system("CLS");
  173. printf("\nPlease enter string s: ");
  174. scanf("%s",s);
  175. printf("\nPlease enter substring t: ");
  176. scanf ("%s",t);
  177. m=fun(s,t);
  178. printf("\nThe result is: m=%d\n", m);
  179. }
  180. 程序修改题(七)
  181. 下列给定程序中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,z和y的值不相等。
  182. 例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。
  183. 请改正程序中的错误,使它能得出正确的结果。
  184. 注意:不得增行或删行,也不得更改程序的结构。
  185. #include <stdio.h>
  186. #include <math.h>
  187. #include <stdlib.h>
  188. /************found************/
  189. #define FU(m,n) ((m/n))
  190. float fun(float a,float b,float c)
  191. { float value;
  192. value=FU(a+b,a-b)+FU(c+b,c-b);
  193. /************found************/
  194. Return(Value);
  195. }
  196. main()
  197. { float x,y,z,sum;
  198. printf("Input x y z: ");
  199. scanf("%f%f%f",&x,&y,&z);
  200. printf("x=%f,y=%f,z=%f\n",x,y,z);
  201. if (x==y||y==z){printf("Data error!\n");exit(0);}
  202. sum=fun(x,y,z);
  203. printf("The result is : %5.2f\n",sum);
  204. }
  205. 程序修改题(八)
  206. 下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。
  207. 请改正程序中的错误,使它能得出正确的结果。
  208. 注意:不得增行或删行,也不得更改的程序的结构!
  209. #include <stdio.h>
  210. int fun( int *b )
  211. { int k,a1,a2,i=0;
  212. for(k=10; k<=55; k++) {
  213. /************found************/
  214. a2=k/1O;
  215. a1=k-a2*10;
  216. if((k%3==0 && a2==5)||(k%3==0 && a1==5))
  217. { b[i]=k; i++; }
  218. }
  219. /************found************/
  220. return k;
  221. }
  222. main( )
  223. { int a[100],k,m;
  224. m=fun( a );
  225. printf("The result is :\n");
  226. for(k=0; k<m; k++) printf("%4d",a[k]); printf("\n");
  227. }
  228. 程序修改题(九)
  229. 下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。
  230. 请改正程序中的错误,使它能得出正确的结果。
  231. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  232. #include <string.h>
  233. #include <stdio.h>
  234. void fun(char t[])
  235. {
  236. char c;
  237. int i,j;
  238. /*************found**************/
  239. for(i=strlen(t);i;i--)
  240. for(j=0;j<i;j++)
  241. /*************found**************/
  242. if(t[j]<t[j+1])
  243. {
  244. c= t[j];
  245. t[j]=t[j+1];
  246. t[j+1]=c;
  247. }
  248. }
  249. main()
  250. {
  251. char s[81];
  252. printf("\nPlease enter a character string :");
  253. gets(s);
  254. printf("\nBefore sorting : %s\n",s);
  255. fun(s);
  256. printf("\nAfter sorting decendingly: %s\n",s);
  257. }
  258. 程序修改题(十)
  259. 下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
  260. 输入字符串时用'#'结束输入。
  261. 请改正程序中的错误,使它能输出正确的结果。
  262. 注意:不得增行或删行,也不得更改程序的结构!
  263. #include <string.h>
  264. #include <stdio.h>
  265. #include <ctype.h>
  266. fun ( char *p)
  267. { int i,t; char c[80];
  268. /************found************/
  269. For (i = 0,t = 0; p[i] ; i++)
  270. if(!isspace(*(p+i))) c[t++]=p[i];
  271. /************found************/
  272. c[t]="\0";
  273. strcpy(p,c);
  274. }
  275. main( )
  276. { char c,s[80];
  277. int i=0;
  278. printf("Input a string:");
  279. c=getchar();
  280. while(c!='#')
  281. { s[i]=c;i++;c=getchar(); }
  282. s[i]='\0';
  283. fun(s);
  284. puts(s);
  285. }
  286. 程序修改题(十一)
  287. 下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如:把三个串"abc"、"CD"、"EF"连接起来,结果是"abcCDEF"。
  288. 请改正程序中的错误,使它能得出正确的结果。
  289. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  290. #include <stdio.h>
  291. #include <string.h>
  292. void fun ( char str[][10], int m, char *pt )
  293. {
  294. /************found************/
  295. Int k, q, i ;
  296. for ( k = 0; k < m; k++ )
  297. { q = strlen ( str [k] );
  298. for (i=0; i<q; i++)
  299. /************found************/
  300. pt[i] = str[k,i] ;
  301. pt += q ;
  302. pt[0] = 0 ;
  303. }
  304. }
  305. main( )
  306. { int m, h ;
  307. char s[10][10], p[120] ;
  308. printf( "\nPlease enter m:" ) ;
  309. scanf("%d", &m) ; gets(s[0]) ;
  310. printf( "\nPlease enter %d string:\n", m ) ;
  311. for ( h = 0; h < m; h++ ) gets( s[h]) ;
  312. fun(s, m, p) ;
  313. printf( "\nThe result is : %s\n", p) ;
  314. }
  315. 程序修改题(十二)
  316. 下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。
  317. 请改正函数fun中的错误,使它能得出正确的结果。
  318. 注意:不得增行或删行,也不得更改程序的结构。
  319. #include <stdlib.h>
  320. #include <stdio.h>
  321. #include <conio.h>
  322. void fun(char *s)
  323. {int i,j;
  324. for(i=0,j=0; s[i]!= '\0'; i++)
  325. if(s[i]>= '0'&&s[i]<= '9')
  326. /*************found**************/
  327. s[j]=s[i];
  328. /*************found**************/
  329. s[j]=”\0”;
  330. }
  331. void main()
  332. {char item[80];
  333. system("CLS");
  334. printf("\nEnter a string: ");gets(item);
  335. printf("\nThe string is:%s\n",item);
  336. fun(item);
  337. printf("\nThe string of changing is :%s\n",item);
  338. }
  339. 程序修改题(十三)
  340. 由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
  341. 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>high,查找结束。
  342. 请改正程序中的错误,使它能得出正确的结果。
  343. 注意:不得增行或删行,也不得更改程序的结构。
  344. #include <stdio.h>
  345. #define N 10
  346. /************found************/
  347. void fun(int a[], int m )
  348. { int low=0,high=N-1,mid;
  349. while(low<=high)
  350. { mid=(low+high)/2;
  351. if(m<a[mid])
  352. high=mid-1;
  353. /************found************/
  354. else If(m > a[mid])
  355. low=mid+1;
  356. else return(mid);
  357. }
  358. return(-1);
  359. }
  360. main()
  361. { int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;
  362. printf("a数组中的数据如下:");
  363. for(i=0;i<N;i++) printf("%d ", a[i]);
  364. printf("Enter m: "); scanf("%d",&m);
  365. k=fun(a,m);
  366. if(k>=0) printf("m=%d,index=%d\n",m,k);
  367. else printf("Not be found!\n");
  368. }
  369. 程序修改题(十四)
  370. 下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
  371. 请改正程序中的错误,使它能得出正确的结果。
  372. 注意:不得增行或删行,也不得更改程序的结构。
  373. #include <stdlib.h>
  374. #include <conio.h>
  375. #include <string.h>
  376. #include <stdio.h>
  377. #include <malloc.h>
  378. #define N 10
  379. typedef struct ss
  380. { char num[10];
  381. int s;
  382. } STU;
  383. STU *fun(STU a[], int m)
  384. { STU b[N],*t;
  385. int i, j,k;
  386. /*************found**************/
  387. *t=calloc(m,sizeof(STU));
  388. for(i=0;i<N;i++) b[i]=a[i];
  389. for(k=0;k<m;k++)
  390. { for (i=j=0;i<N;i++)
  391. if(b[i].s>b[j].s) j=i;
  392. /*************found**************/
  393. t[k].num=b[j].num;
  394. t[k].s=b[j].s;
  395. b[j].s=0;
  396. }
  397. return t;
  398. }
  399. outresult(STU a[],FILE *pf)
  400. { int i;
  401. for(i=0;i<N;i++)
  402. fprintf(pf, "No=%s Mark=%d\n ",a[i].num, a[i].s);
  403. fprintf(pf, "\n\n ");
  404. }
  405. void main()
  406. { STU a[N]={{ "A01 ",81},{ "A02 ",89},{ "A03 ",66},{ "A04 ",87},{ "A05 ",77},
  407. { "A06 ",90},{ "A07 ",79},{ "A08 ",61},{ "A09 ",80},{ "A10 ",71}};
  408. STU *pOrder;
  409. int i, m;
  410. system("CLS");
  411. printf("*****THE RESULT*****\n");
  412. outresult(a,stdout);
  413. printf("\nGive the number of the students who have better score: ");
  414. scanf("%d",&m);
  415. while(m>10)
  416. { printf("\nGive the number of the students who have better score: ");
  417. scanf("%d",&m);
  418. }
  419. pOrder=fun(a,m);
  420. printf("***** THE RESULT*****\n");
  421. printf("The top :\n");
  422. for(i=0;i<m;i++)
  423. printf("%s %d\n",pOrder[i].num, pOrder[i].s);
  424. free(pOrder);
  425. }
  426. 程序修改题(十五)
  427. 给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000
  428. 请改正函数fun中指定部位的错误,使它能得出正确的结果。
  429. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
  430. #include <stdio.h>
  431. typedef struct
  432. { char num[8];
  433. double score[2];
  434. }STU ;
  435. double fun(STU std[], int n)
  436. { int i;
  437. /**********found**********/
  438. double sum ;
  439. /**********found**********/
  440. for(i=0; i<2 ; i++)
  441. /**********found**********/
  442. sum += std[i].score[1];
  443. return sum/n;
  444. }
  445. main()
  446. { STU std[ ]={ "N1001", 76.5,82.0 ,"N1002", 66.5,73.0,
  447. "N1005", 80.5,66.0,"N1006", 81.0,56.0 };
  448. printf("第1门课程的平均分是:%lf\n", fun(std,4) );
  449. }
  450. 程序修改题(十六)
  451. 下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。
  452. 请改正程序中的错误,使它能得出正确的结果。
  453. 注意:不得增行或删行,也不得更改程序的结构!
  454. 试题程序:
  455. #include <stdio.h>
  456. #define M 5
  457. /************found************/
  458. int fun(int n, int xx[][])
  459. { int i, j, sum=0;
  460. printf( "\nThe %d x %d matrix:\n", M, M );
  461. for(i = 0; i < M; i++)
  462. { for(j = 0; j < M; j++)
  463. /************found************/
  464. printf("%f ", xx[i][j]);
  465. printf("\n");
  466. }
  467. for(i = 0 ; i < n ; i++)
  468. sum += xx[i][i]+xx[i][ n-i-1 ];
  469. return( sum );
  470. }
  471. main( )
  472. { int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},
  473. {6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
  474. printf("\nThe sum of all elements on 2 diagnals is %d.",fun(M, aa));
  475. }
  476. 程序修改题(十七)
  477. 下列给定程序中,函数fun的功能是:计算整数n的阶乘。
  478. 请改正程序中的错误,使它能得出正确的结果。
  479. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
  480. 试题程序:
  481. #include <stdlib.h>
  482. #include <stdio.h>
  483. double fun(int n)
  484. {
  485. double result=1.0;
  486. while(n>1 && n<170)
  487. /*************found**************/
  488. Result *=--n;
  489. /*************found**************/
  490. return;
  491. }
  492. void main()
  493. {
  494. int n;
  495. printf("Enter an integer: ");
  496. scanf("%d",&n);
  497. printf("\n%d!=%1g\n ",n,fun(n));
  498. }
  499. 程序修改题(十八)
  500. 下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形。若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。
  501. 请改正程序中的错误,使它能得出正确的结果。
  502. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  503. 试题程序:
  504. #include <stdio.h>
  505. #include <math.h>
  506. int fun(int a,int b,int c)
  507. { if(a+b>c&&b+c>a&&a+c>b)
  508. {if(a==b && b==c)
  509. /*************found**************/
  510. return 1;
  511. else if(a==b||b==c||a==c)
  512. return 2;
  513. /*************found**************/
  514. else return 3;
  515. }
  516. else return 0;
  517. }
  518. void main()
  519. {
  520. int a,b,c,shape;
  521. printf("\nInput a,b,c: ");
  522. scanf("%d%d%d",&a,&b,&c);
  523. printf("\na=%d, b=%d, c=%d\n",a,b,c);
  524. shape=fun(a,b,c);
  525. printf("\nThe shape :%d\n",shape);
  526. }
  527. 程序修改题(十九)
  528. 下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。
  529. 请改正程序中的错误,使它能得出正确的结果。
  530. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  531. 试题程序:
  532. #include <stdio.h>
  533. #include <conio.h>
  534. #include <stdlib.h>
  535. int fun(int k)
  536. { int m=0,mc=0, j;
  537. while((k>=2) && (mc<10))
  538. {
  539. /*************found**************/
  540. if((k%13=0)||(k%17=0))
  541. { m=m+k;mc++; }
  542. k--;
  543. /*************found**************/
  544. return m;
  545. }
  546. void main()
  547. {
  548. printf("%d\n ",fun(500));
  549. }
  550. 程序修改题(二十)
  551. 给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。
  552. 例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应为"a4b3c2d1efg";而当a所指字符串中的内容为"1234",b所指字符串的内容为"abcdefg"时,c所指数组中的内容应该为"1g2f3e4dcba"。
  553. 请改正程序中的错误,使它能得出正确的结果。
  554. 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  555. 试题程序:
  556. #include <stdio.h>
  557. #include <string.h>
  558. void fun(char *a,char *b,char *c)
  559. {
  560. int i,j;char ch;
  561. i=0; j=strlen(b)-1;
  562. /************found************/
  563. while(i > j)
  564. {
  565. ch=b[i]; b[i]=b[j]; b[j]=ch;
  566. i++; j--;
  567. }
  568. while ( *a || *b )
  569. {
  570. /************found************/
  571. If ( *a )
  572. { *c = *a; c++; a++; }
  573. if ( *b )
  574. { *c = *b; c++; b++; }
  575. }
  576. *c = 0;
  577. }
  578. main()
  579. {
  580. char s1[100],s2[100],t[200];
  581. printf("\nEnter s1 string : ");
  582. scanf("%s",s1);
  583. printf("\nEnter s2 string : ");
  584. scanf("%s",s2);
  585. fun( s1, s2, t );
  586. printf("\nThe result is : %s\n",t);
  587. }