のんびりやろう!情報処理試験!-1問1問コツコツと- RSSを登録する

情報処理技術者試験のソフトウェア開発,基本情報技術者の午前問題を中心に初級シスアドやセキュリティ,ネットワークなどの高度区分まで幅広く対応!問題/用語のリクエストも受付中!役立つIT知識を増やしたい方はぜひ。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/09/05

J Question vol.1880

この記事を取り寄せる


 ▲ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏┓
┃┃  のんびりやろう!情報処理試験! 〜1問1問コツコツと〜  ┃┃
┃┃ 2008.9.5 vol.1880 19,609 部発行   http://www.shunzei.com/  ┃┃
┗┛ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ 

--PR------------------------------------------------------------------

全国のバイト・パート情報満載!好きな街・沿線から探すなら【anエリア】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【高校生】高校生OK&部活の後でもできるバイト有り★
【大学生】便利な駅でのアルバイト!おしゃれ・面白いバイト満載!
【主婦】物価高に打ち勝て!週1-2でもOKパート★
【アルバイター】シフト自由・髪形服装自由!便利なバイト満載♪
 このほかにもおいしいバイト・パート情報たくさん!!!急いで=3=3=3
 http://px.a8.net/svt/ejp?a8mat=1BR40L+CL2W4Y+1D74+HW2QB 

----------------------------------------------------------------------

◇◆ C言語対策の決定版!アルゴリズム力を身に付けるための1冊! ◆◇
◆◇       【基本情報技術者試験 C言語の切り札】      ◇◆
◇◆      http://www.shunzei.com/book/kirifuda_c.html     ◆◇
◆◇◆                             ◆◇◆
◇◆◇    C言語対策の定番として継続的に売れています(^^)   ◇◆◇

------------------------------------------------------------------PR--

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今日の問題■☆☆(等幅フォントで見てね!)
----------------------------------------------------------------------
 次のメインプログラムを実行した結果はどれか。
 ここで、static は静的割当てを、auto は動的割当てを表す。
 
  メインプログラム   
 ┌──────────┐
 │ auto int x, y;   │
 │ x = f1(2) + f1(2); │
 │ y = f2(2) + f2(2); │
 └──────────┘

  関数 f1(u)         関数 f2(u)
 ┌──────────┐  ┌──────────┐
 │ auto int u;    │  │ auto int u;    │
 │ auto int v = 1;   │  │ static int v = 1; │
 │ v = v + u;     │  │ v = v + u;     │
 │ return v;     │  │ return v;     │
 └──────────┘  └──────────┘

 ア x = 6, y = 6

 イ x = 6, y = 8

 ウ x = 8, y = 6

 エ x = 8, y = 8




















━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H16. ソフトウェア 問44)
----------------------------------------------------------------------
 イ x = 6, y = 8

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■
----------------------------------------------------------------------
 オペレーションシステム(OS) に関する問題の特集を続けています。
 今日は、静的割当てと動的割当てに関する問題でした。

 先日の問題とよく似ていますね(^^;;
 この年のソフトウェアでは、立て続けに2問出題されました。


 静的変数(static)は、プログラムの実行開始時にメモリ上に記憶領域が
 確保され、プログラム終了まで保持されます。

 また、動的変数(auto)は、プログラムの実行中に記憶領域が確保されます。
 つまり、関数が呼び出されるたびに記憶領域が割り当てられ、
 初期化されます。


 これを踏まえつつ、プログラムを見ていきましょう。

>  メインプログラム   
> ┌──────────┐
> │ auto int x, y;   │
> │ x = f1(2) + f1(2); │
> │ y = f2(2) + f2(2); │
> └──────────┘

>  関数 f1(u)         関数 f2(u)
> ┌──────────┐  ┌──────────┐
> │ auto int u;    │  │ auto int u;    │
> │ auto int v = 1;   │  │ static int v = 1; │
> │ v = v + u;     │  │ v = v + u;     │
> │ return v;     │  │ return v;     │
> └──────────┘  └──────────┘

 まず、メインプログラムを見ると、1行目でint型の変数 x, y が
 動的変数として確保され、2行目と3行目でそれぞれ関数f1, f2が二回ずつ
 呼び出されています。


> x = f1(2) + f1(2);

 関数 f1 を見ると、int型の変数 u と v がいずれも動的変数(auto)で
 宣言されています。つまり、プログラムが呼び出されるたびに
 メモリ領域が確保され、値の初期化が行われます。

 よって、u は引数ですので u=2 となり、v は 1 で初期化され
 v=1 となるので、

  v = v + u = 1 + 2 = 3

 となり、x = 3 + 3 = 6 となります。


> y = f2(2) + f2(2);

 関数 f2 を見ると、int型の変数 u は動的変数(auto)、int型の変数 v は
 静的変数(static)で宣言されています。

 つまり、u についてはプログラムが呼び出されるたびにメモリ領域が
 確保されますが、v は最初の実行時に呼び出された後は終了まで
 メモリ領域が確保されたままになります。

 よって、1回目の f2 の実行では

  v = v + u = 1 + 2 = 3

 となりますが、2 回目の実行時には変数 v は初期化されずに
 3 が入ったままとなり、

  v = v + u = 3 + 2 = 5

 となります。

 つまり、y = 3 + 5 = 8 となります。


 したがって、x = 6, y = 8 となり、正解は「イ」となります。



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★これ、おしえてっ!(質問編)★ 回答期限:9月8日(月)の夜まで
----------------------------------------------------------------------
 「この問題がわからないっ!!」という、
 読者からの質問をみなさんに回答してもらおう!というコーナーです。


 今回の質問はこちらです。(出典:H19. エンベデッド 問15)
----------------------------------------------------------------------

 図の回路において出力が x=0,y=1 である状態から,
 x=1,y=0 に変える入力 a 及び b の組合せはどれか。

     ┬─\
 ここで, )  )○─ は否定論理和を表す。
     ┴─/


 a ○──┬─\
      )  )○ ┬───○ x
   ┌─┴─/   |
    \      |
     \    /
      \  /
       \/
       /\
      /  \
     /    \
    /      |
   └─┬─\  |
      )  )○ ┴───○ y
 b ○──┴─/


 ア a=0, b=0

 イ a=0,b=1

 ウ a=1,b=0

 エ a=1, b=1


 注)問題はこちらからの転載です。
 http://www.mirai.ne.jp/~suehiro/homework/hwbackup/200705/hw20070517z.txt


--[回答のめやす(横幅:全角34文字)]--------------------------------
> 1234567890123456789012345678901234
----------------------------------------------------------------------

 エンベデッドの問題のリクエストです。
 今回も回答が来ないかもしれませんが、リクエストがあったので
 取り上げてみます。

 これに対する回答(解説)を9月8日(月)の夜までにお願いします。

 このコーナーで取り上げてほしい問題のリクエストも募集中です。
 回答&お便りはこちらからでもOKです。
 http://www.shunzei.com/about/mail.html 



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼選択肢で勉強しよっ!▼(答えはこのメールの一番下にあります)
----------------------------------------------------------------------

> ロールバック(roll back) って?



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> *********************** 投稿募集中のテーマ *********************** <
----------------------------------------------------------------------

 ●「これ、おしえてっ!」で扱ってほしい問題のリクエストやその回答
 ●「選択肢で勉強しよっ!」で扱ってほしい用語のリクエスト
 ●「その他、試験などに関するお便り(テーマフリー)」

 ハンドル名を添えて、このメールマガジンに返信して頂ければ届きます。
 WebからでもOK! http://www.shunzei.com/about/mail.html 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 のんびりやろう!情報処理試験! 〜1問1問コツコツと〜(週3日発行)
----------------------------------------------------------------------

 編集・発行:しゅんぜい mail_at_shunzei.com (_at_は @ に)
     発送:melma!   http://www.melma.com/  (ID:189)
      :まぐまぐ  http://www.mag2.com/   (ID:24856)
      :めろんぱん http://www.melonpan.net/ (ID:78)

 登録・解除:http://www.shunzei.com/mm/ 

 ○バックナンバー
 立ち読み  : http://www.melma.com/backnumber_189/ 
 ダウンロード: http://www.shunzei.com/mm/backnumber.html 

 転載について: http://www.shunzei.com/about/disclaimer.html 
 広告掲載は mail_at_shunzei.com (_at_は @ に)までお願いします。

----------------------------------------------------------------------
 ○メールマガジンの購読の登録・解除は個人の責任で行ってください。
  しゅんぜいは一切代行しません!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼選択肢で勉強しよっ!の答え▼
----------------------------------------------------------------------

 (ソフトウェア平成19年秋問68)の問題文より

> データベースを更新するトランザクションが異常終了したとき、
> DBMSが行うべき処理

 (セキュアド平成17年問12エ)
 (初級シスアド平成15年秋問43エ)
 (初級シスアド平成14年春問41エ)の選択肢より

> 更新前ジャーナルを用いて、トランザクション開始直前の状態にまで
> データを復旧させる。

 (基本情報平成17年春問47ウ)の選択肢より

> ロールバックとは、OLTPなどの実行中に障害が発生したとき、
> トランザクション開始直前の状態にデータベースを復旧する処理をいう。

 (2種平成12年秋問49)の問題文より

> データベース操作において障害が発生した際に、データベースの状態を
> トランザクション開始前の状態に戻す障害回復処理

 ロールバック(roll back) とは、データベースに論理的な障害
 (プログラムの強制終了など)が発生した場合のリカバリ(修復)方法です。
 後退復帰ともいいます。

 一時的に保持された更新データを破棄し、データベースを
 トランザクション開始前の状態に戻す(なかったことにする)ことを
 いいます。

 簡単に言うと、真っ白にしてしまうことです(^^;;

 「論理的障害」には「ロールバック」と覚えておきましょう。



=-=[あとがき]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 夏フェスラッシュが過ぎ去りましたが、今度は結婚式ラッシュです。

 早速、明日は友達の結婚式があるのですが、
 僕は楽器がちょろっとできることもあって、明日も余興を頼まれてます。
 (明日「も」と言うのは、よくやらされてるので)

 有名な曲をカバーするのですが、さっきから全然覚えられません(^^;;
 いやぁー、ちゃんと覚えられるかな。。。
 祝われる側にとっては一生に一度の機会なのに、我ながらひどいなぁ。。


----------------------------------------------------------------------
◆のんびりやろう!情報処理試験!はこちらから http://www.shunzei.com/ 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る