问答题 给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。 例如,若输入整数:2310,则应输出:2、3、5、7、11。 请改正程序中的语法错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************ found************/ IsPrime (int n); { int i, m; m = 1; for (i =2; i < n; i++) /************found************/ if !(n%i) { m = 0; break ;} return (m); } main () { int j, k; printf("/nPlease enter an integer number between 2 and 10000: "); scanf("%d", &k); printf ("/n/nThe prime factor (s) of %d is (are):", k) ; for(j =2; j <= k; j++) if((!(k%j))&&(IsPrime(j)) ) printf("/n %4d", j); printf("/n"); }
【正确答案】正确答案:(1)IsPrime(int n) (2) if(!(n%i))
【答案解析】解析:函数功能是求整数n的素数因子,IsPrime自定义函数的功能是判断j是否为素数。 (1)第一个标识下面的“.IsPrime(int n);”在程序中显然是一个函数,因此,应将后面的分号去掉。 (2)第二个标识下面的if语句后面缺少括号,因此,“if!(n%i)”应改为“if(!(n%i))”。 该题主要考查标点符号、运算符、基本定义。