计算机二级上机编程50-100.doc

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

1.请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include stdio.h int fun(int *s, int t, int *k) { } main( ) { int a[10]={876,675,896,101,301,401,980,431,451,777}, k ; fun(a, 10, k) ; printf(%d, %d\n, k, a[k]) ; NONO( ) ; } 参考答案: int fun(int *s, int t, int *k) { int i, pos = 0, max = *s ; for(i = 1 ; i t ; i++) { if(max *(s + i)) { max = *(s + i) ; pos = i ; } } *k = pos ; } 2. 编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:当t = 1000时,函数值为:1597。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include math.h #include stdio.h int fun( int t) { } main() /* 主函数 */ { int n; n=1000; printf(n = %d, f = %d\n,n, fun(n)); NONO(); } 解题思路: 本题是考察考生用递推算法来求出斐波那契数列中每项的值。给出的程序就是用变量f、f0 和f1来表示递推的过程,给变量f0和f1最初分别置数列中第1项和第2项的值0和1,然后进入循环,执行语句f=f0+f1;将所得和值存入f中,这就是数列的第3项,把f1的值移入f0中,将f的值移入f1中,为求数列的下一列作好准备;接着进入下一次循环,通过语句f=f0+f1求得数列的第4项,不断重复以上步骤,每重复一次就依次求得数列的下一项,直至某项满足要为止。 参考答案: int fun( int t) { int f0 = 0, f1 = 1, f ; do { f = f0 + f1 ; f0 = f1 ; f1 = f ; } while(f t) ; return f ; } 3. 例如, 在主函数中从键盘给x输入0.21后,输出为:s=1.100000。注意: 部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include stdio.h #include math.h double fun(double x) { } main() { double x,s; printf(Input x: ); scanf(%lf,x); s=fun(x); printf(s=%f\n,s); NONO(); } 参考答案: double fun(double x) { int n=1; /* 循环计数*/ double sn=1; /* 累计数*/ double xn=1,xn1=0; /*x的n值,以及x的n-1值;*/ while(fabs(xn-xn1)=0.000001)/*绝对值是否满足条件*/ { xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1; sn+=xn; /*sn累加上xn*/ } return(sn); } 4. 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为:ABCDEFGHIJK,在t所指数组中的内容应是:BDFHJ。注意: 部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include stdio.h #incl

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档