改错题
1. 下列给定程序中,函数proc()的功能是:判断一个整数m是否是素数,若是,返回1,否则返回0。在main()函数中,若函数proc()返回1,则输出“YES”,若函数proc()返回0,则输出“NO!”。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序: #include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int proc(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(proc(n))printf("YES<n");
else printf("NO!
}
【正确答案】(1)错误:k++
正确:k++
(2)错误:if(m=k)
正确:if(m==k)
【答案解析】 根据C语言的语法规则,每一条语句都要以分号结束,因此k++后要加上分号。在if语句中,不是把k的值赋给m,因此把“m=k”改为“m==k”。