• ベストアンサー

基本情報 H17春午後問1 リストの次のポインタの値はどうやってわかるのでしょうか

今春基本情報を受ける者です。 解説を読んでもわかりません。root →0091・→0093・→0095・→  ... (間が抜けている) →00B0 0000 0091の後ろの・は次のポインタの値が入ってます 問題文中に要素の値とポインタの表がありますが、(間が抜けている) 部分は要素の数もポインタの値も書いてないのにどうして、 次にどこに進むのかが分かるのでしょう 教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

問題文は公式サイトを参照。 http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2005h17_1/2005h17h_fe_pm_qs.pdf リストの先頭を指すROOTのみ,1語(00FF番地)で1要素。 以降のリスト要素はすべて, >(2)リストの要素は連続する2語からなる。第1語には値が, >第2語には次の要素へのポインタが格納されている。 よって,「図2 主記憶の状態」の00FF番地からたどれば次のようになる。 +――+ |0100|00FF +――+   ↓ +――+ |0091|0100 +――+ |010A|0101 +――+   ↓ +――+ |0093|010A +――+ |0104|010B +――+   ↓ +――+ |0095|0104 +――+ |0116|0105 +――+   ↓ (間が抜けている) であるなら,次のリスト要素はこれだと断定できます。以降も同様です。 +――+ |0099|0116 +――+ |0110|0117 +――+

ravingu
質問者

お礼

早速の回答本当に有難うございます。よく分かりました。 "連続する2語"は番地が連続している2語という意味 だったんですね。 試験がもうそこまで迫っているのに 午後問題でも比較的簡単な部類に入るだろうこの問題が さっぱり分からなくて、情けなくて本当に困ってました。 どうにか解けそうなので、とてもうれしいです。 有難うございました。

関連するQ&A

  • 基本情報 14年秋期午後問(2)について

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 JavaScriptでポーカーを再現し、 同じくJavaScriptで音声は出ませんが、 http://sdin.jp/browser/casino/blackjack/ と同様の動作をするブラックジャックを作るくらいです。 ( CGI, サーバーのことはよくわかりません。) 現在 暇な時間をみて、4月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 以下のサイトをコピペして、みていただきたいのですが・・・ http://情報処理試験.jp/FE14b-pm/t02.html (1)「問2の設問2は、リストの要素のポインタの値を変えるだけなので、   そのオーダは、テキストの文章の行数に関係なく[定数]である。」 (2)「設問1は、二重ループである挿入ソートの値をずらしていく部分と   同様な処理なので、一重のループであり、オーダは [n] である。   よって、行数やCPの値でオーダは変化する。」 (1)、(2)のような解釈でよいのでしょうか。 もし間違っていたら、どなたか、教えていただけないでしょうか。 よろしくお願いします。

  • 基本情報処理試験 H15 春 午後問題 問1

    http://情報処理試験.jp/FE15a-pm/t01.html 参考書の解説を読んでもわかりません。 (1)命令語 OP R X I D adrが問題のどの部分に当たるのかがわかりません。 解説では2100 011Bの 00の部分を2進数8ビット表現をしていますが、問題文にそのような指示が見当たりません。 (2)実行終了時には、最初と同じ0113番地になるのかもよくわかりません。実行終了時は0108番地がFF00なので、FF00なのではないんでしょうか? 詳しく教えていただけないでしょうか? 宜しくお願いします。  

  • 基本情報平成4年春の問題

    基本情報平成4年春の問題で問題集の答えが、納得いきません。どなたかよったら 教えてください。 問題 リストヘの登録 次の流れ図中の(a)~(C)に適切な字句を補い,流れ図を完成せよ。 〔流れ図の説明〕 流れ図は,ファイルから数値データを読み込み,配列に格納するとともに,昇順にポイ ンタでつなぐ処理を表す。 (1)配列の要素は,データ領域(DATA)とポインタ領域(POlNTER)からなる。データ領域に は,数値データを読み込んだ順に格納する。ポインタ領域には,各数値データを昇順に 並べた場合,その数値データの直後にくるデータが格納されている配列要素番号を格納 する。1件の数値データをデータ領域に格納するたびに,対応するボインタ領域に値を 格納する。このとき,必要があればそれまでにセットしたポインタ領域の値を修正する。 (2)一番大きい値のデータが格納されている配 列要素のポインタ領域の値は,0にする。 一番小さい値のデータが格納されている配 列要素の要素番号を,変数MlNに格納する。 配列にデータが1件も格納されてし/ない場 合,変数MlNの値は0である。 (3)同じ値のデータが配列中に存在する場合、 先に格納されたデータほど小さい値とみなして処理を行う

  • 基本情報 過去問16年 問4について

    基本情報資格の勉強をしているのですが、平成16年度の問4の問題でわからない点があるので教えてください。 問題は下記を参考にしていただきたいのですが、 http://情報処理試験.jp/FE16b-pm/t04.html 自分が持っている解説によると、 ”関数MToIntは後述するように、Frdx(関数MToIntではRdx)を基数とする数字列Fnum(関数MToIntではNum)を十進数に変換する。” つまり M進数→10進数→N進数 となり、これを前提に問題を解いていくようなのです。 しかし、私には”後述”の部分がどこかわかりません。 おそらくどこか問題の記述から10進数であることが、把握できるはずだと思うのですが、 どの個所から考えればよいのでしょうか?? あと他のサイトなどの解説を読んで見ると、変換する基数が10進数であることの説明が特に書いていない気がするのですが、変換する基数を10進数だとしなくても解ける問題なのでしょうか?? よろしくおねがいします。

  • 基本情報H25年午後春 問13の設問1[b]

    基本情報 H25年午後春の問13の設問1[b]の出題についての質問です。 問題文では、O6に数式を入力してからO7~019に複写するとしています。 そうすると、 O6=f(P5,N6,N7)であることから、O19=f(P18,N19,N20)となります。 ところが、N20は空値なので、O19の数式は成り立たないと考えました。 このことについて情報処理技術者試験センターに問い合わせたところ 下(参考資料)のような回答がきました。 この回答について、私は次の(1)、(2)に疑問を感じました。 (1)「空値をどのように評価するかについては...特に定義がない」 という場合に、0にしてよいか。 (2) 何をもって「一般的な表計算ソフト」というか。 みなさんはどう考えられるでしょうか。 --------------------------------------------------------------- (参考資料 回答) --------------------------------------------------------------- 情報処理技術者試験センターでございます。 お問い合わせの件でございますが、 平成25年度春期試験案内書(以下PDFファイル)に記載のとおり、 試験後及び合格発表後の個々の問題及び採点結果に対する問合せには、 原則として応じておりませんので、まずはその旨ご理解くださいますよう お願いいたします。 【平成25年度春期試験案内書 P22「6-1.採点方式・配点・合格基準(6)」】 http://www.jitec.ipa.go.jp/1_01mosikomi/25h_annaisho/25h_all.pdf 今回ご指摘の点につきまして、式において空値をどのように 評価するかについては「表計算の機能・用語」の中には特に 定義は無く、本問題においては、一般的な表計算ソフトと同様に 算術式の中では0と評価しております。

  • 基本情報のCASLIIの平成18年春の問13

    基本情報のCASLIIの平成18年春の問13の問題です。 32ビットの2進数(被乗数)と15ビットの符号なし二進数(乗数)の乗算を行うプログラムなのですが、解説を読んでもわからない点があったので質問させていただきます。 32ビットの被乗数の方は上位16ビットと下位16ビットにそれぞれGR1,GR0に分けて格納しています。 ここで、GR1,GR0をGR3ビットだけ論理左シフトします。そうすると、上位16ビットの左端からGR3ビットはみ出します。解説のここまでは理解できたのですが、次からの文章が理解できませんでした。 「シフト前の下位(16-GR3)ビットがシフト後の上位(16-GR3)ビットとして残る。したがって下位語の上位GR3ビットを(16-GR3)ビット,つまりGR4ビット論理右シフトして,上位語の下位GR3ビットに転送する必要がある。」 というものです。 シフト前の下位(16-GR3)ビットというのはどこのことを指しているのか不明ですし、シフト後の上位(16-GR3)ビットも同様です。 また、なぜGR4ビット論理右シフトするとなぜ上位語に反映されるのかもわかりません。右シフトすれば上位語も右シフトされて反映下位から上位へビットが転送されないと思うからです。 ちなみに、GR3+GR4=16という関係を持っています。 それと、解説の画像は添付しておきます。

  • 平成15年 春期 基本情報技術者 午後 問01

    http://情報処理試験.jp/FE15a-pm/t01.html 参考書にて上記の問題の解説を読んだ上での質問です。 (1)最初の命令(2100 011B)を実行する前に、すでに汎用レジスタ0には「0003」がセットされているとのことですが、なぜその値がセットされているのでしょうか。問題文の通りだと、命令実行前は「0113」がセットされているはずでは? (2)RとXとIを求める際に、例えば、命令が2170 0111の場合には、「70」を「0111 0000」の2進数に変換し、Rが01、Xが11、Iが0だということですが、Iがなぜ0なのかがわかりません。問題文から、Iは1バイトということですが、「0000」は4バイトなのに、なぜIは「0」?? というか、Iは1バイトなのに、なぜ「0000」??

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕の設問2の空欄gが 今日一日やったのですが、理解できません。 〔問8〕の空欄g N=7は2進数で0111です。 Rの下位5ビット 01110 1回目 ビット:10 なので 減算 2回目 ビット:11 なので 何もせず 3回目 ビット:11 なので 何もせず 4回目 ビット:01 なので 加算 ここまでは、プログラム2をトレースしてわかります。 解説書によると、以下ですが、何が「つまり」なのか? 計算式がどうして導き出せるのかがわかりませんでした。 ----------------------------------------  つまり次のように計算しています。 M×7=M×(-1+8)=M×(-2^0+2^3)  以上のことから、正解はアです。 -------------------------------------- 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html よろしくお願い致します。

  • 基本情報技術者試験の過去問で平成16年度春期 問10が分かりません。問

    基本情報技術者試験の過去問で平成16年度春期 問10が分かりません。問題は「2種類の文字‘A’、‘B’を1個以上、最大n個並べた符号を作る。60通りの符号を作るときのnの最小値は幾らか。」です。解説としては「文字A、Bをn個並べたとき、表せる符号の数は、2のn乗とおりとなる。従って、60通りの符号を表すnの最小値は、 2の1乗+2の2乗+2の3乗+2の4乗+2の5乗=62 より、5であることがわかる。」となっています。 「文字A、Bをn個並べたとき、表せる符号の数は、2のn乗とおりとなる」のであれば、2の6乗=64なので6ではないかと考えたのですが、なぜ「2の1乗+2の2乗+2の3乗+2の4乗+2の5乗=62 より、5であることがわかる。」となるのでしょうか? 本当に無知で恥ずかしいのですが、誰か分かりやすく教えていただけないでしょうか?

  • 構造体配列のポインタについて(H17春基本情報試験C言語問題)

    平成17年春基本情報技術者試験の午後問題の問6について、質問があります。 設問dの答えがイなのですが、これがどうしても理解できません。 関数「int word_width(char *str, CHARPROF *char_list)」の「char_list」は構造体の配列のポインタとして宣言されています。 そしてこの関数内の処理を問う穴埋めdの解答は「*str != char_list[idx].char_p」となっています。 char_listは構造体配列のポインタなので、「char_list[idx]->char_p」あるいは「(*char_list[idx]).char_p」となるのでは?と思ったのですが、選択肢にもそれはありません。 char_list配列の先頭アドレスの中身を見るときは「char_list->char_p」となっても、要素番号がつくと、ポインタとはみなさなくなって「char_list[0].char_p」となるのでしょうか? だとするとポインタ宣言したchar_listとポインタ宣言しなかった場合(「CHARPROF char_list」のように普通に変数宣言?した場合)の「char_list[0].char_p」の違いがよくわからないのですが・・・。 念のため、この関数word_widthと構造体CHARPROFを転記します。 アドバイス、よろしくお願いします。 typedef struct {  char char_p; /* 文字 */  int char_w; /* 文字幅(ポイント数) */ } CHARPROF; int word_width(char *str, CHARPROf *char_list) {  int print_w = 0, idx;  while (*str != '\0') {   for (idx = 0; (ここに穴埋め「d」が入る); idx++);   print_w += char_list[idx].char_w;   str++;   }   return print_w; }

専門家に質問してみよう