問16基本情報技術者 サンプル問題(科目B)
次のプログラム中の に入れる正しい答えを,解答群の中から選べ。二つの には,同じ答えが入る。ここで,配列の要素番号は 1 から始まる。Unicode の符号位置を,UTF-8 の符号に変換するプログラムである。本問で数値の後ろに“(16)”と記載した場合は,その数値が 16 進数であることを表す。Unicode の各文字には,符号位置と呼ばれる整数値が与えられている。UTF-8 は,Unicode の文字を符号化する方式の一つであり,符号位置が 800(16) 以上 FFFF(16)以下の文字は,次のように 3 バイトの値に符号化する。3 バイトの長さのビットパターンを 1110xxxx 10xxxxxx 10xxxxxx とする。ビットパターンの下線の付いた“x”の箇所に,符号位置を 2 進数で表した値を右詰めで格納し,余った“x”の箇所に,0 を格納する。この 3 バイトの値が UTF-8 の符号である。例えば,ひらがなの“あ”の符号位置である 3042(16) を 2 進数で表すと11000001000010 である。これを,上に示したビットパターンの“x”の箇所に右詰めで格納すると,1110xx11 10000001 10000010 となる。余った二つの“x”の箇所に 0を格納すると,“あ”の UTF-8 の符号 11100011 10000001 10000010 が得られる。関数 encode は,引数で渡された Unicode の符号位置を UTF-8 の符号に変換し,先頭から順に 1 バイトずつ要素に格納した整数型の配列を返す。encode には,引数として,800(16) 以上 FFFF(16) 以下の整数値だけが渡されるものとする。

選択肢をえらぶと、答えと解説が出ます
ここに答えと解説が出ます

正答 8解説
決まった長さのビットの並びに、符号位置の桁を後ろから詰めていく手続になる。後ろ側のバイトはそれぞれ決まった桁数だけを受け持ち、残りの桁は先頭に置く目印で埋まる。ある桁数の分だけを取り出すには、その桁数で表せる場合の数で割った余りを使い、次へ進むときは同じ数で割った商に置き換える。割る数は受け持つ桁数から決まる。
「科目B」の他の問題
- サンプル問題(科目B) 問15次の記述中の と に入れる正しい答えの組合せを,解答群の中から選べ。三目並べにおいて自分が勝利する可能性が最も高い手を決定する。次の手順で,ゲームの状態遷…
- サンプル問題(科目B) 問17製造業の A 社では,EC サイト(以下,A 社の EC サイトを A サイトという)を使用し,個人向けの製品販売を行っている。A サイトは,A 社の製品…
- サンプル問題(科目B) 問14次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。要素数が 1 以上で,昇順に整列済みの配列を基に,配列を…
- サンプル問題(科目B) 問18A 社は IT 開発を行っている従業員 1,000 名の企業である。総務部 50 名,営業部50 名で,ほかは開発部に所属している。開発部員の 9 割は客…
- サンプル問題(科目B) 問13次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。関数 search は,引数 data で指定された配列…
- サンプル問題(科目B) 問19A 社は従業員 200 名の通信販売業者である。一般消費者向けに生活雑貨,ギフト商品などの販売を手掛けている。取扱商品の一つである商品 Z は,Z 販売課…
独立行政法人情報処理推進機構(IPA)が公表している過去問題です。IPA の「過去問題の使用について」に基づき、IPA が指定する形で出典を明記して掲載しています(利用の許諾申請は不要)。問題文・選択肢の内容は変えていません。本文は IPA が公表した問題冊子の頁を人が読んで起こし、別の読み手が原本と突き合わせています。その都合で、改行・字間の空白は省き、英数字の全角・半角は元とそろえていない箇所があります。図表は IPA が公表した問題冊子のものです。解説は当サイトが独自に作成したもので、IPA とは関係ありません。
