为世纪教育www.greatc.cn4月上机考试题库改错题 母不分大、小写 22、给定程序MODC中函数fn的功能是:利用插入排 例如:若输入: THIs is a boot,则输出应该是:1、0 序法对字符串中的字符按从小到大的顺序进行排序。插入法2、2、0 的基本算法是:先对字符串中的头两个元素进行排序。然后 请改正程序中的错误,使它能得出正确的结果 把第三个字符插入到前两个字符中,插入后前三个字符依然 意:不要改动main函数,不得增行或删行,也不得 第四个字符插入到前三个字符中 待排序更改程序的结构! 的字符串已在主函数中赋予 #include <stdio h> 请改正程序中的错误,使它能得出正确结果 fun( char int num[5]) 注意:不要改动main函数,不得增行或删行,也不得intk,i=5 更改程序的结构 for(k=0, k<1; k++) #include <stdio. h> #include <string h> m[=0 #define n 80 for;*s, s++) void insert(char *aa) 率率布率事事 found摩率率率事**/ found事事事率有 switch(s) n=strlen[ aa f case 'a': case 'A:F0, break for(Fl,i<n计++){ e: case E:Fl; break; 率*布布亭率事布布foud布事事率*布事事/ I: case 'T:F2; break; c=aan case case case u': case U: F4; break while(≥=0)&&(ch<a) i aa[+1 if(i>=0) numo++ i char sl[81]: int numl5],i, printf("nPlease enter a string: ") gets(sl ) i char aNF"QWERTYUIOPASDFGHJKLMNBVCXZ for(F0; i <5: 1++ ) printf ("%d",numl o); printf("n printf("The original string %osn,a) insert(a) y printf("The string after sorting: %sInn", a ) 25、给定程序 MODIL.O中函数fn的功能是:将s所指字 符串的正序和反序进行连接,形成一个新串放在t所指的数 3、给定程序 MODILO中函数fun的功能是:应用递归算 例如,当s所指字符串为:"ABCD"时,则t所指字符 法求形参a的平方根。求平方根的迭代公式如下 串中的内容应为:" ABCDDCBA 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得 更改程序的结构! 例如,a为2时,平方根值为:1.414214 #include <stdio h> 请改正程序中的错误,使它能得出正确结果 #include <string. h> 注意:不要改动main函数,不得增行或删行,也不得事事 found*幸幸春事* 更改程序的结构 #include <stdio. h> #include <math. h> /*率事率*布fOud市事事麻*/ d= strlen(s) double fun( double a, doule xo) for(i=0;id;计++)t=s[ for (i=0; i<d; i++)t[d+]=s[d-1-1; l=(x0+ax0)2.0, 事率 found率率布事 t2*d-1=10 if(fabs(x1-xo)>0.00001) fun(ax1) maino else y= char s[100], t( 100 printf("InPlease enter string S: ") scanf("%s",S); nain() i double x; printf("nThe result is: %s\n",t); printf("Enter x: ") scanf("%lf, &x); printf("The square root of %lf is %lf\n"x, fun(x, 1.0)), 26、给定程序 MODIL.O中函数fn的功能是:将十进制正 整数m转换成k(2≤k9)进制数,并按高位到低位顺序输出 24、给定程序 MODILO中函数fun的功能是:统计字符串 例如,若输入8和2,则应输出1000即十进制数8转换 中各元音字母(即:A、E、I、O、U)的个数。注意:字成二进制表示是1000宏为世纪教育 www.greatc.cn 4 月上机考试题库 改错题 6 22、给定程序 MODI1.C 中函数 fun 的功能是:利用插入排 序法对字符串中的字符按从小到大的顺序进行排序。插入法 的基本算法是:先对字符串中的头两个元素进行排序。然后 把第三个字符插入到前两个字符中,插入后前三个字符依然 有序;再把第四个字符插入到前三个字符中,……。待排序 的字符串已在主函数中赋予。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构。 #include <stdio.h> #include <string.h> #define N 80 void insert(char *aa) { int i,j,n; char ch; /**********found**********/ n=strlen[ aa ]; for( i=1; i<n ;i++ ) { /**********found**********/ c=aa[i]; j=i-1; while ((j>=0) && ( ch<aa[j] )) { aa[j+1]=aa[j]; j--; } aa[j+1]=ch; } } main( ) { char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ"; int i ; printf ("The original string : %s\n", a); insert(a) ; printf("The string after sorting : %s\n\n",a ); } 23、给定程序 MODI1.C 中函数 fun 的功能是:应用递归算 法求形参 a 的平方根。求平方根的迭代公式如下: 1 a x1 = ─ ( x0 + ─ ) 2 x0 例如,a 为 2 时,平方根值为:1.414214。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构。 #include <stdio.h> #include <math.h> /**********found**********/ double fun(double a, dounle x0) { double x1, y; x1=(x0+ a/x0)/2.0; /**********found**********/ if( fabs(x1-xo)>0.00001 ) y=fun(a,x1); else y=x1; return y; } main( ) { double x; printf("Enter x: "); scanf("%lf",&x); printf("The square root of %lf is %lf\n",x,fun(x,1.0)); } 24、给定程序 MODI1.C 中函数 fun 的功能是:统计字符串 中各元音字母(即:A、E、I、O、U)的个数。注意:字 母不分大、小写。 例如:若输入:THIs is a boot,则输出应该是:1、0、 2、2、0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! #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;} } if (i >= 0) num[i]++; } } main( ) { char s1[81]; int num1[5], i; printf( "\nPlease enter a string: " ); gets( s1 ); fun ( s1, num1 ); for ( i=0; i < 5; i++ ) printf ("%d ",num1[i]); printf ("\n"); } 25、给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字 符串的正序和反序进行连接,形成一个新串放在 t 所指的数 组中。 例如,当 s 所指字符串为:"ABCD" 时,则 t 所指字符 串中的内容应为:"ABCDDCBA"。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! #include <stdio.h> #include <string.h> /************found************/ void fun (char s, char t) { int i, d; d = strlen(s); for (i = 0; i<d; i++) t[i] = s[i]; for (i = 0; i<d; i++) t[d+i] = s[d-1-i]; /************found************/ t[2*d-1] = '\0'; } main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); } 26、给定程序 MODI1.C 中函数 fun 的功能是: 将十进制正 整数 m 转换成 k(2≤k≤9)进制数, 并按高位到低位顺序输出。 例如,若输入 8 和 2,则应输出 1000(即十进制数 8 转换 成二进制表示是 1000)