2013年计算机二级考试C语言课后习题(第十一章)_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年1月11日

  二、填空题

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

  PROG ABCD EFGH IJKL<CR> (此处<CR>代表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<j)

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

  invert(s,_____,j-1);

  }

  }

  main()

  { int a[N],i;

  for(i=0; i<N; i++) scanf("%d",a+____);

  invert(a,0,N-1);

  for(i=0; i<N; i++) printf("%d",a[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


首页 1 2 尾页

相关文章