问题 问答题

fclose(fp);

答案

参考答案:void countValue()
{
int i=100;
while(1)
{
if(3*i%2==0 && 3*i/2>1000 && 3*i/2<=9999)
/*如果满足条件SIX+SIX+SIX=NINE*NINE*/
{ /*即一个3位数乘3再除2余数为0, 且所得的数为4位数*/
cnt++; /*统计满足条件的数的个数*/
sum+=i+3*i/2; /*求满足此条件的所有SIX与NINE的和*/
i++;
}
else i++; /*如果不满足条什,则取下一个数*/
if(i>999 || 3*i/2>9999)
break; /*当SIX不为3位数时或所得的数不为四位数时,退出循环*/
}
}

解析: 本题考查的知识点如下:
(1)循环与判断的嵌套使用。
(2)多条件的布尔运算。
(33 “%”与“/”运算符的使用。
根据题意,求的是满足3位数乘以3等于4位数乘以2的数的个数。我们可以使用循环结构对所有的3位数进行判断,若某个3位数乘以3整除2所得的数是4位整数,则这个3位数足满足条件的数。当判断的数不再是3位数或者进行处理后所得的数大于9999,则要退出循环。在这里,还要注意判断结构中,各条件之问是用“与”运算还是用“或”运算。

单项选择题
单项选择题 A3/A4型题