問題
配列{1,2,3,4,5}を逆順にするときresult[6-i] ← data[i]のresultは何か。
選択肢
- 1{5,4,3,2,1}
- 2{1,2,3,4,5}
- 3{2,3,4,5,1}
- 4{5,1,2,3,4}
正解
1. {5,4,3,2,1}
詳しい解説を見る解説を閉じる
解説
代入式result[6-i] ← data[i]に各iを順に当てはめてトレースする。i=1のときresult[6-1]=result[5]にdata[1]=1を代入、i=2でresult[4]=2、i=3でresult[3]=3、i=4でresult[2]=4、i=5でresult[1]=5となる。result[1]から順に並べると{5,4,3,2,1}であり、配列が逆順になるため正解である。{1,2,3,4,5}はresult[i]←data[i]のそのままコピーの結果であり、{2,3,4,5,1}や{5,1,2,3,4}は1つずらす巡回シフトに相当し、いずれも添字の対応を誤った値である。要素数nの配列を逆順にする添字変換は「n+1-i」(本問は6-i)の形になる点が頻出ポイントであり、先頭(i=1)と末尾(i=5)の2か所だけ代入して検算すれば短時間で確認できる。
一問一答
科目A 180問+科目B 60問