




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。 例如,若n5,则应输出8.。请改正程序中的错误,使其得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include /*found*/void fun ( int n ) int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k = n; k+ ) /*found*/ s = s + (Double)a / b; c = a; a = a + b; b = c; return s;mai
2、n( ) int n = 5; printf( nThe value of function is: %lfn, fun ( n ) );【参考答案】(1)double fun(int n)(2)s=s+(double)a/b;2.下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include int fun (char *str,char *substr)
3、 int i,j,k,num=0;/*found*/ for(i = 0, stri, i+) for(j=i,k=0;substrk=strj;k+,j+)/*found*/ If(substrk+1=0) num+; break; return num;main() char str80,substr80; printf(Input a string:) ; gets(str); printf(Input a substring:) ; gets(substr); printf(%dn,fun(str,substr);【参考答案】(1)for(i=0;stri;i+)(2)if(subst
4、rk+1= 0)3.下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include int fun(int *x,int y) int t ;/*found*/ t =* x ; *x = y ;/*found*/ return(t) ;main() int a = 3, b = 8 ; printf(%d %dn, a, b) ; b = fun(&a, b)
5、 ; printf(%d %dn, a, b) ;【参考答案】(1)t = *x ; *x = y ;(2)return(t) ;或return t;4.下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include int fun(int a,int b) int r,t; if(ab) /*found*/ t
6、=a; a=b; b=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(b);main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);【参考答案】(1)t=a;a=b;b=t;(2)return(b);或return b;5.下列给定程
7、序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include void fun (long s, long *t) int d; long sl=1;/*found*/* t = 0; while ( s 0) d = s%10;/*found*/ if (d%2 = 0) *t = d * sl + *t;sl *= 10; s /= 10; main() lon
8、g s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);【参考答案】(1)*t=0;(2)if(d%2!=0)或if(d%2=1)6.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、例如,若给n输入7,则该项的斐波拉契数值为13。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include long fu
9、n(int g)/*found*/ switch(g) case 0: return 0;/*found*/ case 1 |case 2 : return 1 ; return( fun(g-1)+fun(g-2) );main() long fib; int n; printf(Input n: ); scanf(%d,&n); printf(n = %dn,n); fib=fun(n); printf(fib = %dnn,fib);【参考答案】(1)去掉分号(2)case 1:case 2:return 1;7.下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要
10、求每复制三个字符之后插入一个空格。例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include void fun(char *p, char *b) int i, k=0; while(*p) i=1; while( i=3 & *p ) /*found*/ bk=*p; k+; p+; i+; /加完之后k=4; if(*p) /*found*/ bk= ;k+; bk=0;main() char a80,b80
11、; printf(Enter a string: ); gets(a); printf(The original string: ); puts(a); fun(a,b); printf(nThe string after insert space: ); puts(b); printf(nn);【参考答案】(1)bk=*p;(2)bk= ;k+;8.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。例如,若输入Ab,cD,则输出AB,CD。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得
12、更改程序的结构!#include #include char* fun( char tt ) int i; for( i = 0; tti; i+ )/*found*/ if( a = tti )&( tti =a)&( tti = z)(2)tti-=32;9.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p
13、; for (i = 0 ; i 5 ; i+ ) /*found*/ for (j = i + 1;j 0) p = *(pstr + i) ;/*found*/ *(pstr + i) =*( pstr + j) ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri)
14、 ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ; i 6 ; i+) printf(%sn, pstri) ;【参考答案】(1)for (j = i + 1; j 6; j+)(2)*(pstr + i) = *(pstr + j) ;10.下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include lo
15、ng fun (long num)/*found*/ Int k; do k*=num%10 ;/*found*/ Num/=10 ; while(num) ; return (k) ;main( ) long n ; printf(nPlease enter a number:) ; scanf(%ld,&n) ; printf(n%ldn,fun(n) ;【参考答案】(1)long k=1;(2)num /=10;11.下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。例如,若输入的数为:551234,输出的结果应当是:a55
16、.0,b34.0,c12.0。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构。#include void fun(float *a,float *b,float *c)/*found*/ float *k; if( *a*c ) k=*c; *c=*a; *a=k; if( *b*c ) k=*b; *b=*c; *c=k; main() float a,b,c; printf(Input a b c: ); scanf(%f%f%f,&a,&b,&c); printf(a = %4.1f, b =
17、%4.1f, c = %4.1fnn,a,b,c); fun(&a,&b,&c); printf(a = %4.1f, b = %4.1f, c = %4.1fnn,a,b,c);【参考答案】(1)float k;(2)if(*a *c)12.下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为aBCDeFgH,b字符串为ABcd,则c中的字符串应为aBcdeFgH。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也
18、不得更改的程序的结构!#include #include void fun(char *p ,char *q, char *c)/*found*/ int k = 1;/*found*/ while( *p != *q ) if( *p*q ) ck=*q; else ck=*p; if(*p) p+; if(*q) q+; k+; main() char a10=aBCDeFgH, b10=ABcd, c80=0; fun(a,b,c); printf(The string a: ); puts(a); printf(The string b: ); puts(b); printf(The
19、result : ); puts(c);【参考答案】(1)int k=0;(2)while (*p|*q)13.下列给定程序中fun函数的功能是:求表达式saa aa aaa aa a(此处aa aa表示n个a,a和n的值在1至 9之间)例如,a3,n6,则以上表达式为:s333333333333333其值是。a和n是fun函数的形参,表达式的值作为函数值传回main函数。请改正程序中的错误,使它能计算出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include long fun (int a, int n) int j ;/*found*/ l
20、ong s = 0, t = 1 ; for ( j = 0 ; j n ; j+) t = t * 10 + a ; s = t ; for ( j = 1 ; j n ; j+) /*found*/ t = t % 10 ; s = s - t ; return(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 ) );【参考答案】(1)long s=0, t=0;(2)tt/1
21、0;14.下列给定程序中函数fun的功能是:从整数1到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include int fun( int *b ) int k,a1,a2,i=0; for(k=10; k=55; k+) /*found*/ a2=k/1O; a1=k-a2*10; if(k%3=0 & a2=5)|(k%3=0 & a1=5) bi=k; i+; /*f
22、ound*/ return k; main( ) int a100,k,m; m=fun( a ); printf(The result is :n); for(k=0; km; k+) printf(%4d,ak); printf(n);【参考答案】(1)a2k/10;(2)return i;15.下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出:dcba。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include /*found*/void f
23、un (char a) if ( *a ) fun(a+1) ;/*found*/ printf(%c *a) ; main( ) char s10=abcd; printf(处理前字符串=%sn处理后字符串=, s); fun(s); printf(n) ;【参考答案】(1)void fun(char *a)(2)printf(%c ,*a) ;16.下列给定程序中函数fun的功能是:将一个由八进制数字字符组成的字符串转换成与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。例如,若输入77777,则输出32767。请改正程序中的错误,使它能得出正确结果。注意:部分源程
24、序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include int fun( char *p ) int n;/*found*/ n= *P-o; p+; while( *p!=0 ) /*found*/ n=n*8+*P-o;p+; return n;main() char s6; int i; int n; printf(Enter a string (Ocatal digits): ); gets(s); if(strlen(s)5) printf(Error: String too longer !nn);exit(0); for(i=0; si; i+) if(
25、si7) printf(Error: %c not is ocatal digits!nn,si);exit(0); printf(The original string: ); puts(s); n=fun(s); printf(n%s is convered to integer number: %dnn,s,n);【参考答案】(1)n= *p-0; (2)n=n*8+*p-0;17.下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为时,t中的数:8642。请改正程序中的错误,使它能得出正确的结果。注
26、意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include void fun (long s, long *t) int d; long sl=1; *t = 0; while ( s 0) d = s%10;/*found*/ if (d%2=0) *t=d* sl+ *t; sl *= 10; /*found*/ s = 10; main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);【参考答案】(1)if(
27、d%2=0)(2)s/=10;18.下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。例如,若high的值为100,则函数的值为732。请改正程序中的错误,使程序能输出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include #include int fun( int high ) int sum = 0, n=0, j, yes;/*found*/ while (high = 2) & (n 10) yes = 1; for (j=2; j=2) & (n10)(2)yes=0;
28、 break;19.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include void fun( char *s ) int i,j; for(i=j=0; si!=0; i+) if(si!=c)/*found*/ sj=si;/*found*/ si=0;main() char s80; printf(Enter a string: ); gets(s); printf(The original string: ); puts(s); fu
29、n(s); printf(The string after deleted : ); puts(s);printf(nn);【参考答案】(1)sj+=si;或sj=si;j+;(2)sj= 0;20.下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include /*found*/void fun (long s, long t) long s
30、l=10; *t = s % 10; while ( s 0) s = s/100; *t = s%10 * sl + *t;/*found*/sl = sl*100; main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);【参考答案】(1)void fun(long s,long *t)(2)s1=s1*10;21.下列给定程序中函数fun的功能是:计算Sf(n)f(n1)f(0)f(1)f(2)f(n)的值。例如,当n的值为5时,函数值应为
31、10.。f(x)函数定义如下:f(x)(x1)/(x2)x0且x2 f(x) 0 x0或x2(x1)/(x2) x0请改正程序中的错误,使程序能输出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include #include #include #include /*found*/f(double x) if(x=0.0|x=2.0) return 0.0; else if(x0.0) return(x-1)/(x-2); else return(x+1)/(x-2);double fun(int n) int i; double s=0.0,y;
32、 for(i=-n; i=n;i+) y=f(1.0*i); s+=y;/*found*/ return svoid main() system(CLS); printf(%fn, fun(5);【参考答案】(1)double f(double x)(2)return s ;22.下列给定程序中函数fun的功能是:求三个数的最小公倍数。例如,若给主函数中的变量x1、x2、x3分别输入15112,则输出结果应当是330。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include /*found*/fun(int x,
33、 y, z ) int j,t ,n ,m; j = 1 ; t=j%x; m=j%y ; n=j%z; while(t!=0|m!=0|n!=0) j = j+1; t=j%x; m=j%y; n=j%z; /*found*/ return i;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 multiple is : %
34、dn,j);【参考答案】(1)fun(int x,int y, int z)或int fun(int x,int y,int z)(2)return j;23.下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为abcdabfab,t1所指子串中的内容为ab,t2所指子串中的内容为99时,在w所指的数组中的内容应为99cd99f99。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程
35、序的结构!#include #include void fun (char *s, char *t1, char *t2 , char *w) char *p , *r, *a; strcpy( w, s ); while ( *w ) p = w; r = t1;/*found*/ while ( r ) if ( *r = *p ) r+; p+; else break; if ( *r = 0 ) a = w; r = t2; while ( *r )/*found*/ *a = *r; a+; r+ w += strlen(t2) ; else w+; main() char s100
36、, t1100, t2100, w100; printf(nPlease enter string S:); scanf(%s, s); printf(nPlease enter substring t1:); scanf(%s, t1); printf(nPlease enter substring t2:); scanf(%s, t2); if ( strlen(t1)=strlen(t2) ) fun( s, t1, t2, w); printf(nThe result is : %sn, w); else printf(Error : strlen(t1) != strlen(t2)n
37、);【参考答案】(1)while( *r) (2)*a=*r;a+;r+;24.下列给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include #include #define N 5#define M 81/*found*/fun(char (*sq)M) int i; char *sp; sp=sq0; for(i=0;iN;i+) if(strlen( sp)strlen(sqi
38、) sp=sqi ;/*found*/ return sq;main() char strNM, *longest; int i; printf(Enter %d lines :n,N); for(i=0; iN; i+) gets(stri); printf(nThe N string :n,N); for(i=0; iN; i+) puts(stri); longest=fun(str); printf(nThe longest string :n); puts(longest);【参考答案】(1)char *fun(char (*sq)M)(2)return sp;25.由N个有序整数组
39、成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include #define N 10/*found*/void fun(int a, int m ) int low=0,high=N-1,mid; while(low=high) mid=(low+high)/2; if(m amid) low=mid+1; else return(mid); return(-1);main() int i,aN=-3,4,7,9,13,45,67,89,100,180 ,k,m; printf(a数组中的数据如下:); for(i=0;i=0) printf(m=%d,index=%dn,m,k); else printf(Not be found!n);【参考答案】(1)int fun(int a,int m)或fun(int a,int m)(2)else if(mamid)26.下列给定程序中函数fun的功能是:从低位开始依次取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集训服务合同协议书
- 停车场转租合同协议书
- 酒店居住安全协议书
- 解除拆迁补偿协议书
- 非婚抚养孩子协议书
- 邯郸学院就业协议书
- 转让食堂摊位协议书
- 闲置校舍转让协议书
- 茶桌转让合同协议书
- 订单木耳采购协议书
- 企业校园招聘宣讲会ppt模板ppt
- GB/T 33084-2016大型合金结构钢锻件技术条件
- GB/T 32294-2015锻制承插焊和螺纹活接头
- GB/T 25854-2010一般起重用D形和弓形锻造卸扣
- GB/T 23703.1-2009知识管理第1部分:框架
- GB/T 13262-1991不合格品率的计数标准型一次抽样检查程序及抽样表
- 12掺合料试验记录(矿渣粉)带数据
- 春天就是我童声合唱简谱
- 年产二十万吨合成氨转化工段设计
- 《煤矿安全规程》专家解读(详细版)
- DB63-T 1806-2020金属非金属露天矿山企业安全生产风险分级管控和隐患排查治理实施指南
评论
0/150
提交评论