共通テスト 情報Ⅰ・6-3

応用-3 プログラミング(配列と繰り返し)の一問一答

共通テスト「情報Ⅰ」の「共通テスト形式の応用」から、応用-3 プログラミング(配列と繰り返し)に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説付き・基本無料

アプリ形式で解く(全800問) 共通テスト形式の応用の要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。

問16-3・応用

Aさんは、5日間の最高気温を記録した配列Kionから、最も高い気温の日の添字を求めるプログラムを作った(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Kion = [18, 23, 21, 23, 19]
( 2 ) saidai = Kion[0]
( 3 ) basho = 0
( 4 ) i を 1 から 4 まで 1 ずつ増やしながら繰り返す:
( 5 ) | もし Kion[i] > saidai ならば:
( 6 ) | | saidai = Kion[i]
( 7 ) ⎿ ⎿ basho = i
( 8 ) 表示する(basho)
( 5 )行目の「Kion[i] > saidai」を「Kion[i] >= saidai」に変えて実行したとき、表示される値はどれか。

  • ①3
  • ②1
  • ③4
  • ④23
答えと解説を見る
正解 ①3
解説
正解は「3」。>= にすると、最高気温と同じ値が後から出てきたときにも basho が書き換わります。

手順
①初めは saidai=18、basho=0 です。
②i=1:23 >= 18 は成り立つので、saidai=23、basho=1。i=2:21 >= 23 は成り立たないので、そのままです。
③i=3:23 >= 23 は成り立つので、basho=3 に書き換わります。i=4:19 >= 23 は成り立ちません。最後に 3 が表示されます。

ひっかけ注意

・「1」…変える前の > のときの結果です。> では同じ値の23では書き換わらないので、最初に現れた添字1が残ります。
・「4」…最後の添字です。19は23より小さいので、basho は4になりません。
・「23」…最高気温の値 saidai です。表示する(basho) なので、表示されるのは気温ではなく、その日の添字(0〜4 のどれか)です。
問26-3・応用

Aさんは、1週間の歩数を記録した配列Hosuから、8000歩以上歩いた日の日数と、その日の歩数の合計を求めるプログラムを作った(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Hosu = [7500, 9200, 8000, 6400, 10300, 8800, 5100]
( 2 ) kosu = 0
( 3 ) goukei = 0
( 4 ) i を 0 から 要素数(Hosu) - 1 まで 1 ずつ増やしながら繰り返す:
( 5 ) | もし Hosu[i] >= 8000 ならば:
( 6 ) | | kosu = kosu + 1
( 7 ) ⎿ ⎿ goukei = goukei + Hosu[i]
( 8 ) 表示する(kosu, "日で合計", goukei, "歩")
このプログラムを実行したときに表示される内容はどれか。

  • ①3 日で合計 28300 歩
  • ②4 日で合計 36300 歩
  • ③3 日で合計 19000 歩
  • ④7 日で合計 55300 歩
答えと解説を見る
正解 ②4 日で合計 36300 歩
解説
正解は「4 日で合計 36300 歩」。

手順
①8000以上の値を探します。9200、8000、10300、8800 の4つです(8000ちょうども以上に入ります)。
②kosu は4になります。
③goukei は 9200+8000+10300+8800=36300 です。表示するはカンマ区切りの内容をつなげて表示します(大学入試センターの表示例のように、項目の間に空白を入れて示しています)。

ひっかけ注意

・「3 日で合計 28300 歩」…条件を8000より大きい(>)と読み、8000ちょうどの日を数えなかった場合です。
・「3 日で合計 19000 歩」…条件を逆にして、8000未満の日(7500、6400、5100)を数えた場合です。
・「7 日で合計 55300 歩」…条件を見ずに、すべての日を数えて合計した場合です。
問36-3・応用

Aさんは、6枚のカードに書かれた数を配列Cardに入れ、2枚を選んだときに和が10になる選び方(同じカードは2回選ばず、選ぶ順番は区別しない)が何通りあるかを数えるプログラムを作った(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Card = [3, 7, 5, 5, 2, 8]
( 2 ) kumi = 0
( 3 ) i を 0 から 4 まで 1 ずつ増やしながら繰り返す:
( 4 ) | j を i + 1 から 5 まで 1 ずつ増やしながら繰り返す:
( 5 ) | | もし Card[i] + Card[j] == 10 ならば:
( 6 ) ⎿ ⎿ ⎿ kumi = kumi + 1
( 7 ) 表示する(kumi)
このプログラムを実行したときに表示される値はどれか。

  • ①5
  • ②6
  • ③3
  • ④8
答えと解説を見る
正解 ③3
解説
正解は「3」。

手順
①j は i+1 から始まるので、i<j の組(選ぶ順番を区別しない組)だけを調べます。
②和が10になる組は、Card[0]とCard[1](3+7)、Card[2]とCard[3](5+5)、Card[4]とCard[5](2+8)です。
③よって kumi は3になります。5が2枚あるので、5+5の組は別々のカードどうしとして1通り数えます。

ひっかけ注意

・「5」…j を i から始めた場合です。同じカードを2回使う5+5(Card[2]どうし、Card[3]どうし)も数えてしまいます。
・「6」…i も j も0から5まで動かし、i と j が同じ場合だけ除いた場合です。選ぶ順番を区別するので、3つの組を2回ずつ数えます。
・「8」…i も j も0から5まで動かし、同じ添字の場合も含めて調べた場合です。上の6通りに、同じカードを2回使う5+5の2通りが加わります。
問46-3・応用

Aさんは、掃除当番の順番を入れた配列Retsuを、全員1つずつ前にずらし、先頭の人を最後尾に回すプログラムを作った。実行後に表示されるRetsuが [8, 1, 6, 3, 4] になるようにしたい(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Retsu = [4, 8, 1, 6, 3]
( 2 ) tmp = Retsu[0]
( 3 ) i を 0 から 3 まで 1 ずつ増やしながら繰り返す:
( 4 ) ⎿ Retsu[i] = Retsu[i + 1]
( 5 ) 【ア】
( 6 ) 表示する(Retsu)
【ア】に入るものとして最も適切なものはどれか。

  • ①Retsu[0] = tmp
  • ②Retsu[4] = Retsu[0]
  • ③tmp = Retsu[4]
  • ④Retsu[4] = tmp
答えと解説を見る
正解 ④Retsu[4] = tmp
解説
正解は「Retsu[4] = tmp」。退避しておいた先頭の値を、最後尾に入れます。

手順
①( 2 )で先頭の4を tmp に退避します(退避=消えないように別の変数に写しておくこと)。
②( 3 )〜( 4 )で後ろの値を1つずつ前に写すと、Retsu は [8, 1, 6, 3, 3] になります。
③最後尾の Retsu[4] に tmp の4を入れると、[8, 1, 6, 3, 4] になります。

ひっかけ注意

・「Retsu[0] = tmp」…先頭に4を戻すので [4, 1, 6, 3, 3] になり、目的と違います。
・「Retsu[4] = Retsu[0]」…この時点の Retsu[0] は8に書き換わっているので [8, 1, 6, 3, 8] になります。
・「tmp = Retsu[4]」…tmp を書き換えるだけで、配列は [8, 1, 6, 3, 3] のままです。
問56-3・応用

Aさんは、5段階評価(1〜5)のアンケートの回答を配列Kotaeに入れ、評価ごとの人数を配列Kaisuに数えるプログラムを作った。Kaisu[1]〜Kaisu[5]に、それぞれ評価1〜5の人数が入るようにしたい(Kaisu[0]は使わない)(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Kotae = [3, 5, 3, 1, 4, 3, 5]
( 2 ) Kaisu = [0, 0, 0, 0, 0, 0]
( 3 ) i を 0 から 要素数(Kotae) - 1 まで 1 ずつ増やしながら繰り返す:
( 4 ) ⎿ 【ア】 = 【ア】 + 1
( 5 ) 表示する(Kaisu)
2か所の【ア】には同じものが入る。【ア】に入るものとして最も適切なものはどれか。

  • ①Kaisu[Kotae[i]]
  • ②Kaisu[Kotae[0]]
  • ③Kotae[Kaisu[i]]
  • ④Kaisu[Kotae[i] - 1]
答えと解説を見る
正解 ①Kaisu[Kotae[i]]
解説
正解は「Kaisu[Kotae[i]]」。i番目の回答の値を、そのまま Kaisu の添字に使います。

手順
①i=0 のとき Kotae[0] は3なので、Kaisu[3] が1増えます。
②これを全員分繰り返すと、評価3の回答が来るたびに Kaisu[3] が増えます。
③実行後の Kaisu は [0, 1, 0, 3, 1, 2] で、Kaisu[1]〜Kaisu[5] が評価1〜5の人数になります。

ひっかけ注意

・「Kaisu[Kotae[0]]」…いつも最初の回答(3)の欄だけが増え、Kaisu[3] が7になってしまいます。
・「Kotae[Kaisu[i]]」…2つの配列を逆にした書き方です。回答の Kotae のほうを書き換えてしまい、i = 6 のときは存在しない Kaisu[6] も読もうとします(Kaisu の添字は 0〜5)。
・「Kaisu[Kotae[i] - 1]」…評価kの人数が Kaisu[k-1] に入り、1つずれます。Kaisu[0]を使わない、という条件に合いません。
問66-3・応用

Aさんは、素振りの回数を「1日目は10回、それ以降は前日より5回ずつ増やす」と決め、累計が100回以上になるのは何日目かを求めるプログラムを作った(プログラムは共通テスト用プログラム表記)。
( 1 ) goukei = 0 , nissu = 0 , kaisu = 10
( 2 ) goukei < 100 の間繰り返す:
( 3 ) | nissu = nissu + 1
( 4 ) | goukei = goukei + kaisu
( 5 ) ⎿ kaisu = kaisu + 5
( 6 ) 表示する(nissu)
このプログラムを実行したときに表示される値はどれか。

  • ①4
  • ②5
  • ③6
  • ④35
答えと解説を見る
正解 ②5
解説
正解は「5」。

手順
①1日目:goukei=10、2日目:10+15=25、3日目:25+20=45。
②4日目:45+25=70。70<100 は成り立つので、まだ繰り返します。
③5日目:70+30=100。100<100 は成り立たないので、繰り返しが終わり、5が表示されます。

ひっかけ注意

・「4」…4日目の累計70の時点で止めた場合です。70はまだ100未満です。
・「6」…条件を goukei <= 100 と読んだ場合です。累計がちょうど100でも、もう1回繰り返してしまいます。
・「35」…繰り返しが終わった時点の kaisu(6日目に予定していた回数)の値です。表示するのは日数の nissu なので、5 です。
問76-3・応用

Aさんは、正の整数 n の各位の数の和(例:4725なら 4+7+2+5)を求めるプログラムを作った。演算子 ÷ は整数の除算の商(整数)を、% は余りを表す(プログラムは共通テスト用プログラム表記)。
( 1 ) n = 4725
( 2 ) wa = 0
( 3 ) n > 0 の間繰り返す:
( 4 ) | wa = wa + (n % 10)
( 5 ) ⎿ 【ア】
( 6 ) 表示する(wa)
表示される値が18になるように、【ア】に入るものとして最も適切なものはどれか。

  • ①n = n % 10
  • ②n = n / 10
  • ③n = n ÷ 10
  • ④n = n - 10
答えと解説を見る
正解 ③n = n ÷ 10
解説
正解は「n = n ÷ 10」。一の位を取り出したあと、10で割った商にして一の位を切り捨てます。

手順
①n % 10 は、10で割った余り=一の位です。4725 % 10=5 なので wa=5。
②n ÷ 10 は商なので、4725 ÷ 10=472 になり、次は2を取り出せます。
③同じように 7、4 を足し、n が0になったところで終わります。wa=5+2+7+4=18 です。

ひっかけ注意

・「n = n % 10」…n は5になり、その後もずっと5のままなので、繰り返しが終わりません。
・「n = n / 10」…/ は小数も含めた割り算なので、n は 472.5、47.25…となり、各位の数を正しく取り出せません。
・「n = n - 10」…10ずつ減らすだけで、位は移りません。一の位の5を何百回も足すことになります。
問86-3・応用

文化祭で部誌を販売したAさんは、1時間ごとの販売冊数を配列Uriageに入れ、開店からの累計を配列Ruisekiに求めるプログラムを作った(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Uriage = [5, 3, 8, 2, 6]
( 2 ) Ruiseki = [0, 0, 0, 0, 0]
( 3 ) Ruiseki[0] = Uriage[0]
( 4 ) i を 1 から 4 まで 1 ずつ増やしながら繰り返す:
( 5 ) ⎿ Ruiseki[i] = Ruiseki[i - 1] + Uriage[i]
( 6 ) 表示する(Ruiseki[3])
このプログラムを実行したときに表示される値はどれか。

  • ①10
  • ②16
  • ③24
  • ④18
答えと解説を見る
正解 ④18
解説
正解は「18」。

手順
①Ruiseki[0]=5。
②Ruiseki[1]=5+3=8、Ruiseki[2]=8+8=16、Ruiseki[3]=16+2=18。
③表示するのは Ruiseki[3] なので18です(ちなみに Ruiseki[4]=18+6=24)。

ひっかけ注意

・「10」…Ruiseki[i-1] ではなく Uriage[i-1] を足したと考えた場合(8+2)です。累計は前の累計に足していきます。
・「16」…Ruiseki[2] の値です。添字が0から始まることを忘れ、3番目の要素と考えた場合です。
・「24」…最後の Ruiseki[4](全体の合計)の値です。
問96-3・応用

Aさんは、7日間の気温を入れた配列Kionについて、連続する3日間の平均(3日移動平均)を順に表示するプログラムを作った。配列の範囲を超えずに、求められるものをすべて表示したい(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Kion = [12, 15, 9, 18, 21, 6, 12]
( 2 ) i を 0 から 【ア】 まで 1 ずつ増やしながら繰り返す:
( 3 ) | heikin = (Kion[i] + Kion[i + 1] + Kion[i + 2]) / 3
( 4 ) ⎿ 表示する(heikin)
【ア】に入るものとして最も適切なものはどれか。

  • ①要素数(Kion) - 3
  • ②要素数(Kion) - 1
  • ③要素数(Kion) - 2
  • ④要素数(Kion) ÷ 3
答えと解説を見る
正解 ①要素数(Kion) - 3
解説
正解は「要素数(Kion) - 3」。

手順
①Kion の要素数は7で、添字は0〜6です。
②( 3 )では Kion[i+2] まで使うので、i+2 が6以下、つまり i は4まで進めばよいことになります。
③7-3=4 なので要素数(Kion) - 3です。i=0〜4 の5回で、12、14、16、15、13 が表示されます。

ひっかけ注意

・「要素数(Kion) - 1」…i が6まで進み、Kion[7] と Kion[8] という存在しない要素を使ってしまいます。
・「要素数(Kion) - 2」…i が5まで進み、i=5 のとき Kion[7] が範囲を超えます。
・「要素数(Kion) ÷ 3」…7÷3 の商は2なので i は2までしか進まず、後ろの平均が表示されません。
問106-3・応用

Aさんは、8日間の最高気温を入れた配列Kionから、30℃以上の日が最も長く連続した日数を求めるプログラムを作った(プログラムは共通テスト用プログラム表記。配列の添字は0から始まる)。
( 1 ) Kion = [31, 33, 29, 30, 32, 34, 28, 35]
( 2 ) ren = 0 , saicho = 0
( 3 ) i を 0 から 要素数(Kion) - 1 まで 1 ずつ増やしながら繰り返す:
( 4 ) | もし Kion[i] >= 30 ならば:
( 5 ) | | ren = ren + 1
( 6 ) | | もし ren > saicho ならば:
( 7 ) | | ⎿ saicho = ren
( 8 ) | そうでなければ:
( 9 ) ⎿ ⎿ ren = 0
(10) 表示する(saicho)
このプログラムを実行したときに表示される値はどれか。

  • ①6
  • ②3
  • ③2
  • ④1
答えと解説を見る
正解 ②3
解説
正解は「3」。30、32、34℃の3日間が、最も長い連続です。

手順
①31、33 で ren は2になり、saicho=2。29 で30未満なので ren=0 に戻ります。
②30、32、34 で ren は3になり、saicho=3。28 で ren=0 に戻ります。
③最後の35 で ren=1 ですが、saicho の3より大きくないので、3が表示されます。

ひっかけ注意

・「6」…( 9 )の ren=0 がないと考えた場合です。30℃以上の日の総数になり、連続の長さではなくなります。
・「2」…条件を30より大きい(>)と読んだ場合です。30℃ちょうどの日で連続が切れてしまいます。
・「1」…繰り返しが終わった時点の ren の値(最後の 35℃ の1日分)です。表示するのは最も長い記録の saicho なので、3 です。

当サイトは、独立行政法人 大学入試センターとは一切関係のない、非公式の学習サイトです。試験に関する最新情報は、大学入試センターの公式サイトでご確認ください。

共通テスト 情報Ⅰ 基礎完全対策(全800問)に戻る

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】