基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成14年 秋期 基本情報技術者 午後 問13
問13   CASL

設問1〜5に答えよ。

〔プログラムの説明〕

 除算を行う副プログラム DIVIDE である。

(1) GR1 に被除数,GR2 に除数が格納されて,主プログラムから渡される。 被除数,除数ともに符号なしの正の整数( 1 〜 32767 )とする。

(2) 副プログラム DIVIDE は,GR3 に商,GR0 に剰余を設定して,主プログラムに戻る。

(3) 副プログラム DIVIDE の実行において,GR1 の内容は保存されない。

〔プログラム〕

 (行番号)
  1  DIVIDE  START
  2          LAD     GR3,0
  3  L1      CPL     GR1,GR2
  4          JMI     FIN
  5          
  6          LAD     GR3,1,GR3
  7          JUMP    L1
  8  FIN     LD      GR0,GR1
  9          RET
 10          END

基本情報技術者試験


設問1  プログラム中の に入れる正しい答えを, 解答群の中から選べ。

解答群

ア ADDL  GR1,GR2    イ ADDL  GR2,GR3

ウ SLL  GR1,0,GR3    エ SLL  GR2,0,GR3

オ SUBL  GR1,GR2    カ SUBL  GR2,GR3

解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問2 GR1 に 32,GR2 に 1 を格納して主プログラムから呼び出したとき, 行番号3の命令を実行する回数として正しい答えを,解答群の中から選べ。

解答群

ア 30    イ 31    ウ 32    エ 33    オ 34

解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問3  元のプログラムと異なるアルゴリズムによって除算を行う副プログラム DIVIDE2 を, 新たに作成した。 プログラム中の に入れる正しい答えを, 解答群の中から選べ。このプログラムの動作は,次のとおりである。

(1) 除数を倍々にしてゆき,被除数以下で最大の値 m(除数×2n)を求め, このときの 2n を商に加える。

(2) 被除数から m を引いたものを新しい被除数とする。

(3) 新しい被除数 < 除数となるまで (1),(2) を繰り返す。 繰返しが終了したときの被除数が,剰余となる。

ここで,副プログラム DIVIDE2 の実行において,GR1,GR4 及び GR5 の内容は保存されない。

(行番号)

  1  DIVIDE2  START
  2           LAD     GR3,0
  3  L1       LAD     GR5,1
  4           
  5  L2       CPL     GR1,GR4       ; 被除数 <(除数×2n)?
  6           JMI     ADJ
  7           SLL     GR5,1         ; GR5 ← 2n 
  8           SLL     GR4,1         ; GR4 ← 除数×2n
  9           JUMP    L2
 10  ADJ      SRL     GR5,1
 11           JZE     FIN
 12           SRL     GR4,1         ; GR4 ← m
 13           ADDL    GR3,GR5
 14              ; 新しい被除数を設定
 15           JUMP    L1
 16  FIN      LD      GR0,GR1
 17           RET
 18           END

a に関する解答群

ア LD   GR2,GR4    イ LD   GR4,GR2    ウ SLL  GR1,0,GR4

エ SUBL  GR1,GR2    オ SUBL  GR1,GR4

b に関する解答群

ア LD   GR1,GR4    イ LD   GR4,GR1    ウ SLL  GR1,0,GR4

エ SUBL  GR1,GR2    オ SUBL  GR1,GR4

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問4 設問3の DIVIDE2 を,GR1に32,GR2 に1を 格納して主プログラムから呼び出したとき,行番号 10 の命令を最初に実行する直前の GR4 の値として正しい答えを,解答群の中から選べ。

解答群

ア 16    イ 32    ウ 48    エ 64    オ 128

解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問5 GR1 に 32,GR2 に1を格納して主プログラムから呼び出したとき, 元のプログラム DIVIDE と設問3の DIVIDE2 の実行される命令数の差に最も近い値を, 解答群の中から選べ。

解答群

ア 70     イ 85     ウ 100     エ 115     オ 130

解答 ←クリックすると正解が表示されます

[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]