M031

02-程序修改题 软件154 范金瑞 1274浏览

所属年份:2012.3;

下列给定程序中函数fun的功能是:判断一个整数是否为素数,若是素数返回1,否则返回0。
在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

#include  <stdlib.h>
#include  <conio.h>
#include  <stdio.h>
int fun(int m)
{
    int k=2;
    while (k<=m&&(m%k))
        /*************found**************/
        k++
        /*************found**************/
        if(m=k)
            return 1;
        else return 0;
}
void main()
{
    int n;
    system("CLS");
    printf("\nPlease enter n: ");
    scanf("%d",&n);
    if(fun(n)) printf("YES\n");
    else printf("NO!\n");
}

【参考答案】

(1)k++;
(2)if(m==k)

【考点分析】
本题考查:C语言中的语法格式,每个语句后面要以”;”结尾;if语句条件表达式,区别条件表达式中==和=的区别。

【解题思路】
函数fun的功能是判断m是否为素数:m从2开始作为除数,并对m取余,若不存在一个数使得余数为0,则m为素数,程序的错误在于if(m=k)语句中的逻辑表达式写成了赋值语句。