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

admin2013-06-12  28

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

选项

答案(1)错误:if((k%13=0)||(k%17=0)) 正确:if(k%13=0)||(k%17==0)) (2) 错误:缺少大括号 正确:加}

解析 能被某个数整除的表示方法是x%y==0,而并非像题目中所表示的if((k%13=0)||(k%17=0)),所以, if((k%13=0)||(k%17=0))修改后的结果应该是答案所示信息,(2)中缺少程序完整所需的“}”,此类信息在做题时一定注意,我们可以在上机考试的时候先运行一下程序,这样明显的错误一般都会有错误信息显示出来,比如丢失“}”的错误信息是“Compound statement missing } in function fun”,并在当前错误处停止光标,我们只要按回车键进行编辑就可以了。
转载请注明原文地址:https://kaotiyun.com/show/krJp777K
0

最新回复(0)