欢迎来到天天文库
浏览记录
ID:42325728
大小:31.00 KB
页数:4页
时间:2019-09-12
《2011年计算机等级二级C语言填空题练习题及答案解析)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2011年计算机等级二级C语言填空题练习题及答案解析 求和、平均值 1.请补全main函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的的绝对值,并显示出来。 main() {longintn; clrscr(); printf("Enterthedata:"); scanf(___1___); printf("******theorigialdata********"); if(n<0) ___2___ printf(""); printf(___3___); } 第一处:"%ld",&n 第二处:n=-n 第三处:"%l
2、d",n 解析:此题要注意的是数据类型,输入输出的格式控制。 长整数使用ld(或Ld) 双精度浮点数使用lf(或Lf) 此处df不能大写 2.请在函数fun的横线上填写若干个表达式,使从键盘上输入一个整数n,输出斐波纳契数列。斐波契数列是一种整数数列,其中每数等于前两数之后,如:011235813…… 1)intfun(intn){ 2)if(___1___) 3)return0; 4)elseif(___2___) 5)return1; 6)else 7)return___3___; 8)} 第一处:n==0 第二处:n==1 第三处:fun(n-1)+fu
3、n(n-2) 解析:求斐波契数列:一项等于其前两项的和。 这也是一个递归。 求斐波契数列的第n项的值,n从0开始。 3.请补全函数fun,该函数的功能是求出以下分数序列的前n项之和。和值通过函数值返回到main函数。 1)#include 2)#include 3)___1___fun(intn) 4){inta,b,c,k; 5)doubles; 6)s=0.0; 7)a=2; 8)b=1; 9)for(k=1;k<=n;k++) 10){ 11)s=s+(___2___)a/(___3___)b; 12)c=a; 13)a=a+b; 14)b=c;
4、15)} 16)returns; 17)} 第一处:double 第二处:double 第三处:double 解析:从第11----14总结出数列的表达式。第1项是a/b=2/1;3/24/3 故:s=2/1+3/2+4/3+……和的初值是0。 记住:两个整数进行算术运算结果也是整数,算术运算中只要有一个操作数是实数,运算结果就是实数。 本题希望结果是实数,故要进行强制类型转换,2,3只要有一个进行强制转换就可以了。 最后,函数需要有一个返回值类型,当然也是双精度浮点数了。 4.给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。
5、 1)doublefun(doubleq) 2){intn; 3)doubles; 4)n=2; 5)s=2.0; 6)while(s___1___q) 7){ 8)s=s+(double)(n+1)/n; 9)___2___; 10)} 11)printf("n=%d",n); 12)___3___; 13)} 第一处:s<=q 第二处:n++ 第三处:returns 解析:从第8行, 从数学的角度总结出数列的表达式。 (n+1)/nn从2开始,每次增加1,故:SN=2+3/2+4/3+……和的初值是2.0 循环条件是“SN大于q为止”,whil
6、e是满足条件才循环,故填写s<=q 最后,函数需要有一个返回值。 5.给定程序功能是计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。 floatf(doublex) { if(x==0.0
7、
8、x==2.0) return___1___; elseif(x<0.0) return(x-1)/(x-2); else return(x+1)/(x-2); } doublefun(intn) {inti;doubles=0.0,y; for(i=-n;i<=___2___;i++) {y=f(1.0*i);s+=y;} retu
9、rn___3___; } main() { printf("%f",fun(5)); } 第一处:0.0 第二处:n 第三处:s 解析:函数f(doublex)求每个单项的值。if……else的条件是互斥的。 fun()是求和。
此文档下载收益归作者所有