无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2013年计算机二级考试C语言第十一章课后题及参考答案

2013-03-18来源/作者:卫凯点击次数:283

第十一章

  一、选择题

  11.1 以下叙述不正确的是

  A) C程序的main函数可以没有参数。

  B) C程序的main函数可以有参数。

  C) C程序的main函数若有参数时,第一个参数的值最少是1。

  D) main函数的第一个参数必须是整型,其名字必须是argv,第二个参数可以定义成:char

  *argv[],名字必须是argv。

  答案:D

  11.2 若有以下定义和说明,则对fun函数的正确调用语句是

  A) a=fun; a(w); B) a=fun; (*a)(&c);

  C) b=fun; *b(w);D) fun(b);

  main()

  { int (*a)(int *),*b(),w[10],c;

  .

  .

  .

  }

  fun(int *c) { ... }

  答案:B

  11.3 以下叙述正确的是

  A) C程序中各函数之间既允许直接递归调用也允许间接递归调用

  B) C程序中各函数之间不允许直接递归调用也不允许间接递归调用

  C) C程序中各函数之间允许直接递归调用不允许间接递归调用

  D) C程序中各函数之间不允许直接递归调用允许间接递归调用

  答案:A

  11.4 以下程序的输出结果是

  A) 8 B) 30 C) 16 D) 2

  long fib(int n)

  { if(n>2) return (fib(n-1)+fib(n-2));

  else return (2);

  }

  main()

  { printf("%ld\\n",fib(6)); }

  答案:C

计算机二级C语言章节练习在线测试
第11章 对函数的进一步讨论 马上检测

  二、填空题

  11.5 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入

  PROG ABCD EFGH IJKL (此处代表Enter键)

  则输出结果为_____。

  main(int argc, char *argv[])

  { while(--argc>0) printf("%s",argv[argc]);

  printf("\\n");

  }

  答案:IJKLEFGHABCD

  11.6 以下程序的输出结果是_____。

  fun(int x)

  { int p;

  if(x==0||x==1) return (3);

  p=x-fun(x-2);

  return p;

  }

  main()

  { printf("%d\\n",fun(9)); }

  答案:7

  11.7 以下程序的输出结果是_____。

  fun(int n,int *s)

  { int f1,f2;

  if(n==1||n==2) *s=1;

  else

  { fun(n-1,&f1);

  fun(n-2,&f2);

  *s=f1+f2;

  }

  }

  main()

  { int x;

  fun(6,&x);

  printf("%d\\n",x);

  }

  答案:8

  11.8 以下程序调用invert函数按逆序重新放置a数组中元素的值,a数组中的值在main函数中读入。请填空。

  #define N 10

  void invert(int *s,int i, int j)

  { int t;

  if(i  { t=*(s+i); *(s+i)=_____; *(s+j)=t;

  invert(s,_____,j-1);

  }

  }

  main()

  { int a[N],i;

  for(i=0; i  invert(a,0,N-1);

  for(i=0; i  printf("\\n");

  }

  答案:*(s+j) i+1 i

  11.9 以下程序的输出结果是_____。

  funa(int a,int b)

  { return a+b; }

  funb(int a,int b)

  { return a-b; }

  sub(int (*t)(),int x,int y)

  { return (*t)(x,y); }

  main()

  { int x,(*p)(int ,int);

  p=funa;

  x=sub(p,9,3);

  x+=sub(funb,8,3);

  printf("%d\\n",x);

  }

  答案:17

  11.10 以下程序中的trap函数是一个用梯形法求定积分的通用函数,梯形法求定积分s的公式为:

  n-1

  x=((f(a)+f(b))/2+∑ f(a+i*h)*h, h=│(a-b)/n│

  i=1

  其中,n为积分小区间数,以下程序调用trap函数求积分,被积函数是:

  f(x)=x*x+3*x+2,且 n=1000,a=0,b=4。

  #include "math.h"

  double trap(double _____,double a,double b)

  { double t,h; int i,n=1000;

  t=0.5*((*fun)(a)+(*fun)(b));

  h=fabs(a-b)/(double)(n);

  for(i=1; i<=n-1; i++) t=t+_____;

  t=t*h;

  return (t);

  }

  double mypoly(double x)

  { return (x*x+3.0*x+2.0); }

  main()

  { double y,(*pf)(double);

  pf=_____;

  y=trap(pf,0.0,4.0);

  printf("%f\\n",y);

  }

  答案:(*fun)(double) (*fun)(a+i*h) mypoly

计算机二级C语言章节练习在线测试
第11章 对函数的进一步讨论 马上检测





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策