网站大量收购独家精品文档,联系QQ:2885784924

改错——给定范围.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
改错——给定范围

1、给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成 新串, 并且覆盖原串。 注意: 字符串的长度最长允许为79。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include stdio.h #include string.h void fun ( char s[], int n ) { char a[80] , *p; int i; /**********found***********/ s=p; for(i=0; in; i++) a[i]=*; do { a[i]=*p; i++; } /**********found***********/ while(*p++) a[i]=0; strcpy(s,a); } main() { int n; char s[80]; printf(\nEnter a string : ); gets(s); printf(\nThe string \%s\\n,s); printf(\nEnter n ( number of * ) : ); scanf(%d,n); fun(s,n); printf(\nThe string after insert : \%s\ \n ,s); } 解题思路: 第一处: 指针p应指向s,所以应改为:p=s;。 第二处: 死循环,当do while循环执行一次,临时变量p应该指向字符串的下一位置,所以 应改为:while(*p++);。 2、给定程序MOD.C中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include stdio.h double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n 1 n 170 ) /************found************/ result *= n-- return result ; } void main ( ) { int n ; printf(Input N:) ; scanf(%d, n) ; printf(\n\n%d! =%lf\n\n, n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 3、给定程序MOD.C中函数 fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num )为止: (/4(1-1/3+1/5+1/7+( 例如, 程序运行后, 输入0.0001, 则程序输出3.1414。 请改正程序中的错误,使它能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include math.h #include stdio.h float fun ( float num ) { int s ; float n, t, pi ; t = 1 ; pi = 0 ; n = 1 ; s = 1 ; /**************found**************/ while(t = num) { pi = pi + t ; n = n + 2 ; s = -s ; /**************found**************/ t = s % n ; } pi = pi * 4 ; return pi ; } void main( ) { float n1, n2 ; printf(Enter a float number: ) ; scanf(%f, n1) ; n2 = fun(n1) ; printf(%6.4f\n, n2) ; } 解题思路: 第一处:要判断t的最后一项绝对小于指定的数,由于t是实数,那么应改为 while(fabs(t)=num)。 第二处:t是s除以n的值,而不是取余数,所以应改t=s/n; 4、给定程序MOD.C中函数fun的功能是:求k!(k13),所求阶乘的值作为函数值返回。例如:若k = 10,则应输出:3628800。 请改正程序中的错误,使它能得出正确

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档