就业数据资源平台
当前位置:首页 > C语言程序设计
2011年计算机二级C语言十套上机题5

2011年计算机二级C语言十套上机题5


2. 改错题


  下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。


  请改正程序中的错误,使它能得到正确结果。


  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。


  试题程序:


  #include


  #include


  int fun(int k)


  {


  int m=0,mc=0, j;


  /**********************found***********************/


  while(k>=2)&&(mc<6)


  {


  /**********************found***********************/


  if((k%7=0)||(k=0))


  {


  /**********************found***********************/


  m=k;


  mc++;


  }


  k--;


  }


  return m;


  }


  main()


  {


  clrscr();


  printf("%d\n ",fun(500));


  }


  答案及评析:


  (1)错误:while(k>=2)&&(mc<6)


  正确:while((k>=2)&&(mc<6))


  (2)错误:if((k%7=0)||(k=0))


  正确:if((k%7==0)||(k= =0))


  (3)错误:m=k;


  正确:m=m+k;


  【解析】错误1:C语言规定while语句后的表达式两侧必须要有圆括号。


  错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。


  错误3:根据题意,将满足条件的数求累加和。 

就业数据资源平台