资源描述:
《二级c语言题库-改错题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#include/************found************/voidfun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++){/************fo
2、und************/s=s+(Double)a/b;c=a;a=a+b;b=c;}returns;}main(){intn=5;printf("Thevalueoffunctionis:%lf",fun(n));}【参考答案】(1)doublefun(intn)(2)s=s+(double)a/b;2.下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。例如,若字符串为aaas1kaaas,子字符串为as,则应输出2。请改正程序中的错误,
3、使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#includeintfun(char*str,char*substr){inti,j,k,num=0;/************found************/for(i=0,str[i],i++)for(j=i,k=0;substr[k]==str[j];k++,j++)/************found************/If(substr[k+1]==' '){
4、num++;break;}returnnum;}main(){charstr[80],substr[80];printf("Inputastring:");gets(str);printf("Inputasubstring:");gets(substr);printf("%d",fun(str,substr));}【参考答案】(1)for(i=0;str[i];i++)(2)if(substr[k+1]==′ ′)3.下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表
5、达式。例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#includeintfun(int*x,inty){intt;/**************found**************/t=x;x=y;/**************found**************/return(y);}main(){inta=3,b=8;pri
6、ntf("%d%d",a,b);b=fun(&a,b);printf("%d%d",a,b);}【参考答案】(1)t=*x;*x=y;(2)return(t);或returnt;4.下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得
7、更改程序的结构。#includeintfun(inta,intb){intr,t;if(a8、ntf("num1=%dnum2=%d",num1,num2);a=fun(num1,num2);printf("Themaximuncommondivisoris%d",a);}【参考答案】(1)t=a;a=b;b=t;(2)return(b);或returnb;5.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7