问答题 给定程序MODI1.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数。不得增行或删行,也不得更改程序的结构! #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; } main() { int n; printf("\nPlease enter n:");scanf("%d“,&n); if(fun(n))printf("YES\n"); else printf("NO!\n");}
【正确答案】正确答案:(1)k++; (2)if(m==k)
【答案解析】解析:本题中函数的功能是判断一个整数n是否是素数。素数是只能被1和本身整除的正整数(>1),所以判别n是否为素数,只要用2、3、…、n-1这些数逐个去除n,观察余数是否为0即可,只要有一次相除余数为0,n就不是素数,否则n为素数。 (1)第一个标识下“k++”语句没有结束符分号,所以将“k++”改为“k++”。(2)第二个标识下的“if(m=k)”语句应该是判断m是否素数,而原题中是将k的值赋给m,并不表示是否m等于k,所以第二个标识下“if(m=k)”应该改为“if(m==k)”。