下列给定的程序中,函数fun()的功能是: 计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或

admin2009-02-15  29

问题 下列给定的程序中,函数fun()的功能是:  计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。
   请改正程序中的错误,使它能得到正确结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include<stdio.h>
   #include<conio.h>
   int fun(int k)
   {
   int m=0,mc=0,j;
   /*************found*************/
    while(k>=2)&&(mc<6)
       {
   /*************found*************/
       if((k%7=0)||(k%ll=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%11=0)) 正确:if((k%7==0)||(k%11=0)) (3) 错误:m=k 正确:m=m+k;

解析 错误1:C语言规定while语句后的表达式两侧必须要有圆括号。错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。错误3:根据题意,将满足条件的数求累加和。
转载请注明原文地址:https://kaotiyun.com/show/VTID777K
0

最新回复(0)