有以下程序段#include stdio.hmain(){ int j i k=0; for(j=50;j<=60;j++) { if(!(k%10))
程序
已帮助 人
有以下程序段#include "stdio.h"main(){ int j,i,k=0; for(j=50;j<=60;j++) { if(!(k%10)) printf("\n"); for(i=2;i<j;i++)if(!(j%i)) break; if(i>=j-1) { printf("%d",j); k++;} }}程序执行后输出的结果是A.5359 B.5953 C.3595 D.9535
-
参考答案:A在本题中,程序首先定义了三个整型变量,并将变量k赋值为0,然后开始循环,循环开始时变量j的值为50,结束时变量j的值为60,每循环一次,变量j自加1,即循环10次。当j=50,k=0时,“!(k%10)”为真,输出换行,即循环开始时,输出从新的一行开始,执行第二重循环,此时的i=2,“!(j%i)”为真,运行break语句,即跳出本层循环(从这里我们可以看出,j如果可以被i整除,则跳出本层循环),然后判断i是否不小于j-1,如果是,则输出此时j的值,否则k自加1。从程序执行的过程来看,这个题目确实非常复杂,循环的次数太多,但经过对上面一次循环过程的分析,我们可以发现,其实这个程序的作用是找出50~60之间除1和本身外,不能被其他小于本身的数据整除的数,并从小到大输出这样的数。这样就能很容易地得到答案是5359。因此本题的正确答案是A。
