NOIP 普及组初赛 · NOIP 2014 普及组初赛试题 第 13 题

选择题 · 答案 C · 考点:输入输出、位运算、循环结构

← 整套速查表 NOIP 普及组初赛 全部真题

题目

要求以下程序的功能是计算:$s=1+\dfrac{1}{2}+\dfrac{1}{3}+\dots+\dfrac{1}{10}$。

#include <iostream>  
using namespace std;  
int main()  
 { 
int n;     
float s;     
s = 1.0; 
for(n = 10; n > 1; n--)       
s = s + 1 / n;     
cout << s << endl;     
return 0;   
} 

程序运行后输出结果错误,导致错误结果的程序行是( )。

答案:C

考点

输入输出位运算 讲解 →位运算 真题汇总 →循环结构

解题思维

看到整数除法1/n → 先想类型不匹配

常见错误

别被s=1.0迷惑,以为整个表达式都是浮点运算。

详细解析(节选)

考点:整数除法陷阱|运算符优先级

解析

C行错误:1和n均为int,整数除法截断小数,结果恒为0。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断