首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C语言 > 复习资料 > 正文

计算机等级考试二级C语言填空题练习及精解(2)

来源:考试吧Exam8.com) 2011-2-14 11:25:56 考试吧:中国教育培训第一门户 模拟考场
希望通过本套习题及讲解,达到举一反三的学习效果,能对考生的学习有所帮助。

  点击查看:计算机等考二级C语言填空题练习及精解汇总>>

  二、求和、平均值

  1. 请补全main函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的的绝对值,并显示出来。

  main()
  {long int n;
  clrscr() ;
  printf("Enter the data:\n");
  scanf(___1___);
  printf("****** the origial data ********\n");
  if(n<0)
  ___2___
  printf("\n\n");
  printf(___3___);
  }

  第一处:"%ld",&n
  第二处:n=-n
  第三处:"%ld",n

  解析:此题要注意的是数据类型,输入输出的格式控制。
  长整数使用 ld(或Ld)
  双精度浮点数使用 lf(或Lf)
  此处 d f 不能大写

  2. 请在函数fun的横线上填写若干个表达式,使从键盘上输入一个整数n,输出斐波纳契数列。斐波契数列是一种整数数列,其中每数等于前两数之后,如: 0 1 1 2 3 5 8 13……

  1) int fun(int n){
  2) if(___1___)
  3) return 0;
  4) else if(___2___)
  5) return 1;
  6) else
  7) return___3___;
  8) }

  第一处:n==0
  第二处:n==1
  第三处:fun(n-1)+fun(n-2)

  解析:求斐波契数列:一项等于其前两项的和。
  这也是一个递归。
  求斐波契数列的第n项的值,n从0开始。

  3. 请补全函数fun,该函数的功能是求出以下分数序列的前n项之和。和值通过函数值返回到main函数。

  1) #include
  2) #include
  3) ___1___ fun(int n)
  4) {int a,b,c,k;
  5) double s;
  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;
  15) }
  16) return s;
  17) }

  第一处:double
  第二处:double
  第三处:double

  解析:从第11----14总结出数列的表达式。第1项是a/b=2/1;3/2 4/3
  故:s=2/1+3/2+4/3+…… 和的初值是0。
  记住:两个整数进行算术运算结果也是整数,算术运算中只要有一个操作数是实数,运算结果就是实数。
  本题希望结果是实数,故要进行强制类型转换,2,3只要有一个进行强制转换就可以了。
  最后,函数需要有一个返回值类型,当然也是双精度浮点数了。

  4. 给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。

  1) double fun( double q )
  2) {int n;
  3) double s;
  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",n);
  12) ___3___ ;
  13) }

  第一处:s <= q
  第二处:n++
  第三处:return s

  解析:从第8行,
  从数学的角度总结出数列的表达式。
  (n+1)/n n从2开始,每次增加1,故:SN=2+3/2+4/3+…… 和的初值是2.0
  循环条件是“SN大于q为止” ,while是满足条件才循环,故填写s <= q
  最后,函数需要有一个返回值。

  5. 给定程序功能是计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。

  float f( double x)
  {
  if (x == 0.0 || x == 2.0)
  return ___1___;
  else if (x < 0.0)
  return (x -1)/(x-2);
  else
  return (x +1)/(x-2);
  }
  double fun( int n )
  {int i; double s=0.0, y;
  for (i= -n; i<=___2___; i++)
  { y=f(1.0*i); s += y; }
  return ___3___;
  }
  main ( )
  {
  printf("%f\n", fun(5) );
  }

  第一处:0.0
  第二处:n
  第三处:s

  解析:函数f ( double x) 求每个单项的值。 if……else的条件是互斥的。
  fun( ) 是求和。

  编辑推荐:

  2011年计算机等级考试二级C语言常见问题汇总

  2011计算机等级考试二级C笔试考纲及备考经验

  2011计算机等级二级C语言模拟试题及答案汇总

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。