1、改错题改 错 题1、给定程序中fun函数的功能是:根据整型形参m的值,计算如下公式的值:例如,若m中的值为5,则应输出0.536389。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include double fun ( int m ) double y = 1.0 ; int i ;/*found*/ for(i = 2 ; i m ; i+) 改为:for(i = 2 ; i = m ; i+)/*found*/ y -= 1 /(i * i) ; 改为:y -= 1.0 /(i * i) ; return( y ) ;ma
2、in( ) int n = 5 ; printf( nThe result is %lfn, fun ( n ) ) ;2、给定程序中fun函数的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为“ABCD”时,则t所指字符串的内容应为“ABCDDCBA”#include #include /*found*/void fun (char s, char t) 改为:void fun (char * s, char * t) int i, d; d = strlen(s); for (i = 0; id; i+) ti = si; for (i =
3、 0; id; i+) td+i = sd-1-i;/*found*/ t2*d-1 = 0; 改为:t2*d = 0;main() char s100, t100; printf(nPlease enter string S:); scanf(%s, s); fun(s, t); printf(nThe result is: %sn, t); 3、给定程序中fun函数的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。例如:字符串中的数据为:AABBCCDDEEFF,则应输出ABBCDDEFF。#include #includ
4、e #define N 80void fun(char *s, char t) int i, j=0; for(i=0; istrlen(s); i+)/*found*/ if(i%2 & si%2=0) 改为:if(i%2= =0 | si%2= =0) tj+=si; /*found*/ ti=0; 改为:tj=0;main() char sN, tN; printf(nPlease enter string s : ); gets(s); fun(s, t); printf(nThe result is : %sn,t);4、给定程序中fun函数的功能是:计算n!。例如,给n输入5,则输
5、出120.000000。#include double fun ( int n ) double result = 1.0 ;/*found*/ if n = = 0 改为:if (n = 0) return 1.0 ; while( n 1 & n 170 )/*found*/ result *= n- 改为:result *= n-; return result ;main ( ) int n ; printf(Input N:) ; scanf(%d, &n) ; printf(nn%d! =%lfnn, n, fun(n) ;5、给定程序中fun函数的功能是:先从键盘上输入一个3行3列
6、的矩阵的各个元素的值,然后输出主对角线元素之和。#include int fun() int a33,sum; int i,j;/*found*/ _; 改为:sum=0 for (i=0;i3;i+) for (j=0;j3;j+)/*found*/ scanf(%d,aij); 改为:scanf(%d,&aij); for (i=0;i3;i+) sum=sum+aii; printf(Sum=%dn,sum);main() fun(); 6、给定程序中fun函数的功能是:求,(此处aaaa表示n个a,a和n的值在1至9之间)。例如,a=3,n=6,则以上表达式为:s=333333-333
7、33-3333-333-33-3,其值是:296298。a和n是fun函数的形参。#include long fun (int a, int n) int j ;/*found*/ long s = 0, t = 1 ; 改为:long s = 0, t = 0 ;/*found*/ for ( j = 0 ; j =n ; j+) 改为:for ( j = 0 ; j n ; j+) t = t * 10 + a ; s = t ; for ( j = 1 ; j n ; j+) /*found*/ t = t % 10 ; 改为:t = t / 10 ; s = s - t ; retur
8、n(s) ;main( ) int a, n ; printf( nPlease enter a and n:) ; scanf( %d%d, &a, &n ) ; printf( The value of function is: %ldn, fun ( a, n ) );7、给定程序中fun函数的功能是:求k!(k13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。#include long fun ( int k)/*found*/ if k 0 改为:if(k 0) return (k*fun(k-1);/*found*/ else if ( k=0 ) 改为
9、:else if ( k=0 ) return 1L;main() int k = 10 ; printf(%d!=%ldn, k, fun ( k ) ; 8、给定程序中fun函数的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。例如,n=8时,输入:193.99,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为:195.838745,在平均值以上的实数个数应为:5。#include int fun(float x, int n)/*found*/ int j, c=0, float
10、 xa=0.0; 改为:int j, c=0; float xa=0.0; for (j=0; jn; j+ ) xa += xj/n; printf(ave =%fn,xa); for (j=0; j xa) 改为:if (xj = xa) c+; return c;main ( ) float x100 = 193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763 ; printf(%dn, fun (x, 8); 9、给定程序中fun函数的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符
11、不变。例如:若输入“Ab,cD”,则输出“AB,CD”#include #include char* fun( char tt ) int i; for( i = 0; tti; i+ )/*found*/ if( a = tti )|( tti = a)&( tti = z ) )/*found*/ tti += 32; 改为:tti - = 32; return( tt );main( ) char tt81; printf( nPlease enter a string: ); gets( tt ); printf( nThe result string is:n%s, fun( tt
12、) ); 10、给定程序中fun函数的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数这前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGH。#include /*found*/fun( char *p ) 改为:void fun( char *p ) char max,*q; int i=0; max=pi; while( pi!=0 ) if( maxp ) 改为:while(qp ) *q=*(q-1); q-; p0=max;main() char str80; printf(Ent
13、er a string: ); gets(str); printf(nThe original string: ); puts(str); fun(str); printf(nThe string after moving: ); puts(str); printf(nn); 11、给定程序MODI1.CJ是建立一个带头结点的单向链表,并用随机函数为各结点赋值。给定程序中fun函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。#include #include typedef struct aa int data; struct aa *next; NODE
14、;int fun(NODE *h) int sum = 0 ; NODE *p;/*found*/ p=h; 改为:p=h-next;/*found*/ while(p-next) 改为:while(p) if(p-data%2=0) sum +=p-data;/*found*/ p=h-next; 改为:p=p-next; return sum;NODE *creatlink(int n) NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE); for(i=1; idata=rand()%16; s-next=p-nex
15、t; p-next=s; p=p-next; p-next=NULL; return h;outlink(NODE *h, FILE *pf) NODE *p; p = h-next; fprintf(pf ,nnTHE LIST :nn HEAD ); while(p) fprintf(pf ,-%d ,p-data ); p=p-next; fprintf (pf,n);outresult(int s, FILE *pf) fprintf(pf,nThe sum of even numbers : %dn,s);main( ) NODE *head; int even; head=crea
16、tlink(12); head-data=9000; outlink(head , stdout); even=fun(head); printf(nThe result :n); outresult(even, stdout); 12、给定程序中fun函数的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1,x2,x3分别输入15 11 2,则输出结果应当是:330。#include /*found*/fun(int x, y, z ) 改为:fun(int x, int y, int z ) int j,t ,n ,m;/*found*/ j = 1 ; 改为:j = x; t=j%
17、x; m=j%y ; n=j%z;/*found*/ while(t!=0&m!=0&n!=0) 改为:while(t!=0|m!=0|n!=0) j = j+1; t=j%x; m=j%y; n=j%z; /*found*/ return i; 改为:return j;main( ) int x1,x2,x3,j ; printf(Input x1 x2 x3: ); scanf(%d%d%d,&x1,&x2,&x3); printf(x1=%d, x2=%d, x3=%d n,x1,x2,x3); j=fun(x1,x2,x3); printf(The minimal common mul
18、tiple is : %dn,j); 13、给定程序中fun函数的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s听字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。#include #include void fun (char *s, char *t) int i, sl; sl = strlen(s);/*found*/ for( i=0; i=s1; i +) 改为:for( i=0; i sl; i +) ti = si; for (i=0; isl; i+) tsl+i = ssl-i-1;/*found*/
19、tsl = 0; 改为:t2*sl = 0;main() char s100, t100; printf(nPlease enter string s:); scanf(%s, s); fun(s, t); printf(The result is: %sn, t); 14、给定程序中fun函数的功能是:从s所指字符串中删除所有小写字母c。#include void fun( char *s ) int i,j; for(i=j=0; si!=0; i+) if(si!=c)/*found*/ sj=si; 改为:sj+=si;/*found*/ si=0; 改为:sj=0;main() ch
20、ar s80; printf(Enter a string: ); gets(s); printf(The original string: ); puts(s); fun(s); printf(The string after deleted : ); puts(s);printf(nn); 15、给定程序中fun函数的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。#include /*found*/fun( int *b ) 改为:int fun( int *b )
21、int k,a1,a2,i=0;/*found*/ for(k=10; k=55; k+) 改为:for(k=10; k55; k+) /*found*/ a2=k/1O; 改为:a2=k/10; a1=k-a2*10; if(k%3=0 & a2=5)|(k%3=0 & a1=5) bi=k; i+; /*found*/ return k; 改为:return i; main( ) int a100,k,m; m=fun( a ); printf(The result is :n); for(k=0; km; k+) printf(%4d,ak); printf(n); 16、给定程序中fu
22、n函数的功能是:求S的值。例如,当k为10时,函数值应为:1.533852。#include #include /*found*/void fun( 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+; /*found*/ return s 改为:return s;main ( ) printf(%fn, fun (10); 17、给定程序中fun函数的功
23、能是:将十进制正整数m转换成k(2=k=9)进制数,并按高位到低位顺序输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。#include #include /*found*/fun( int m, int k ) 改为:void fun( int m, int k ) int aa20, i; for( i = 0; m; i+ ) /*found*/ aai = m/k; 改为:aai = m% k; m /= k; for( ; i; i- )/*found*/ printf( %d, aa i ); 改为:printf( %d, aa i-1 ); main( ) int b, n; printf( nPlease enter a number and a base:n ); scanf( %d %d, &n, &b ); fun( n, b ); printf(n); 18、给定程序中fun函数的功能是:根据整型形参n,计算如下公式的值。例如:若n=10,则应输出0.617977.#include /*found*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1