プログラミングの基礎(擬似言語のトレース)

配列の要素番号は1から始まり、+ は文字列を連結する。次のプログラムを実行した後の r の値はどれか。

文字列型の配列: s ← {"S", "T", "O", "P"}
文字列型: r ← ""
for (i を 1 から sの要素数 まで 1 ずつ増やす)
  r ← s[i] + r
endfor
  1. APOTS
  2. BPOT
  3. CSTOP
答えと解説を見る

正解:A. POTS

r ← s[i] + r は、新しい文字を r の先頭(左)に付け加えます。r は「S」「TS」「OTS」「POTS」と変わるので、文字の並びが逆順になります。r ← r + s[i] と書くと末尾に付け加えることになり、元と同じ「STOP」になります。

  • A. 正しい。文字を先頭に付け加えていくので、逆順の POTS になります。
  • B. 繰返しを2から始めた場合の結果です。1文字目の「S」も連結されます。
  • C. r ← r + s[i] のように末尾に連結した場合の結果です。
この分野を解く 分野ページへ

関連する計算ツール

プログラミングの基礎(擬似言語のトレース)の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

プログラミングの基礎(擬似言語のトレース)のほかの問題

  1. 次の関数 isPal は、文字列型の配列 s の文字の並びが前から読んでも後ろから読んでも同じ(回文)なら true を返す。配列の要素番号は1から始まる。プログラム中の【a】に入れる字句はどれか。
  2. ÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 f を f(9087) として呼び出したときの戻り値はどれか。
  3. ÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 toBin を toBin(12) として呼び出したときの戻り値はどれか。
  4. 2つの整数 a、b を引き算で等しくしていく次のプログラムを実行した後の k の値はどれか。
  5. 次の関数 isLeap は、西暦 y 年がうるう年なら true を返す。and は or より先に計算する。isLeap(y) が true を返す y はどれか。