改错题 1.  下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为600,则函数的值为5671。请修改程序中的错误,使它能得出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdio.h>
    #include<conio.h>
    #inelude<stdlib.h>
    int proc(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;
    }
    void main()
    {
    system("CLS");
    printf("%d\n",proc(600));
    }
【正确答案】(1)错误:if((k%13=0)||(k%17=0))
   正确:if((k%13==0)||(k%17==0))
   (2)错误:缺少大括号
   正确:在“k--;”后加“}”
【答案解析】 题目中要求能被13或17整除的自然数,判断整除条件是取余恒等于0,判断相等的符号应该用“==”,符号“=”是赋值符号,因此,“=”应改为“==”;在C语言中,括号一定是成对出现的,因此,在语句“k--;”后要加上符号“}”。