技術士の技事録

新米技術士が、IT技術動向・高度資格試験対策等、現役SE向け情報を発信します。

技術士第一次試験専門科目 平成24年度 Ⅲ-7

問題

1/1+1/2+1/3+...+1/9999999十1/10000000を計算するために,C
で次の2つの関数A,Bを作った。ただしdoubleはIEEE754に従う倍精度(64bit)の型であり,コンパイルされた機械語コードは,ソスコード中に記述された演算をすべて順序どおりに実行するものとする。

doubleA(){
inti;doublesum=0.0;
for(i=1;i<=10000000;i++){
sum+=1.0/(double)i;


どeturnsum;


doubleB(){
in七i;doublesum=0.0;
for(i=10000000;i>=1;i一一){
sum+=1.0/(double)i;


re七urnsum;

 

A,Bの実行結果について,最も適切なものはどれか。

選択肢

AとBの結果は同じ精度になる。
Aの結果の方がBより精度が高い。
Bの結果の方がAより精度が高い。
Aはオーバーフローになるが,Bは正常に実行できる。
Bはオーバーフローになるが,Aは正常に実行できる。

 

答え

 ③

解説

 

次の問題へ専門科目TOPへ技術士TOPへ