问题
单项选择题
要求以下程序的功能是计算:s=1+1/2+1/3+…+1/100。
main()
int n;float s;
s=1.0:
for(n=100;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
程序运行后输出结果错误,导致错误结果的程序行是
A) s=1.0;
B) for (n=100;n>1;n--)
C) s=s+1/n;
D) printf("%6.4f\n",s);
答案
参考答案:C
解析: 本题的考查点是查找程序运行错误的原因。主要考查运算中字符的转换。初看此题,可能不太容易发现错误,该题的运行结果是1.0000,算法错误。s=s+1/n;1/2=0,因为n为整型,所以1/n都为0。这就是导致本题出错的原因。s=s+1/n应改为s=s+1.0/n。