本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成19年度 技術士第一次試験問題【専門科目】

W−2

Java言語で書いた次のプログラムがある。A.foo() を呼び出したときの返り値として適切なものを@〜Dの中から選べ。

class A {
 static int foo() {
  int x = 0;
  try { x = B.bar(x); }
  catch (Error y) { x += 4; }
  finally { x += 8; }
  return x;
 }
}
class B {
 static int bar(int x) throws Error {
  try { throw new Error(); }
  catch (Error y) { x += 1; }
  finally { x += 2; }
  return x;
  }
}

@ 1  A 3  B 5  C 11  D 15


正解

C


解説

以下の処理を行う。

class A
 int x = 0; ・・・ x に 0 を格納
class B
 try { x = B.bar(0); } ・・・barメソッドを呼び出し。
 try { throw new Error(); } ・・・例外を発生させる。
 catch (Error y) { x += 1; } ・・・ x に 1 を加える (x=1)
 finally { x += 2; } ・・・x に 2 を加える。 (x=3)
class A
 finally { x += 8; } ・・・ x に 8 を加える。 (x=11)

W−1 目次 W−3