最短合格!基本情報技術者試験 午前 過去問&解説(2-2)

当ページの画像,リンクには広告を含みます。
この記事を書いた人
  • 年齢:30代前半
  • 職歴
    • 組込系SE➡機械系SE自動化SE➡自動化PM(現在)
  • 役職:総括
  • 主な保有資格
    • 基本情報技術者試験(FE)
    • 応用情報技術者試験(AP)
    • 一陸特/二海特/アナログ通信2種,1種/ディジタル通信2種,1種/総合通信
目次

テクノロジ系-アルゴリズムとプログラミング(闇コウモリの森)

さめりこ

闇コウモリ・・・まだまだ居るなw
ここで大量に倒してレベル上げしよう!

サブルーチン| 闇コウモリ Lv3

【問題】
サブルーチンへの引数の渡し方のうち、変数を引数として渡しても、サブルーチンの実行後に変数の値が変更されないことが保証されているものはどれか。

(ア)値呼出し

(イ)結果呼出し

(ウ)参照呼出し

(エ)名前呼出し

さめじん

【攻略ヒント】
これは知っていないと解けない問題だね!
しっかり1個ずつ覚えていこう!


【解説】
(ア)正解〇

 値呼び出し
 →関数内で変数を上書きしても引数はコピーであるため元の変数の値に影響することはありません。

(イ)不正解✕

(ウ)不正解✕

 参照呼出し
 →引数として変数のポインタ(メモリアドレス)を渡す方法。呼び出された関数内で引数の内容に直接アクセスすることになるため、変数の値を上書きすると元の変数の値にも反映されます。

(エ)不正解✕

 名前呼び出し
 →引数として未評価の式(値)を渡す方法。関数の内部で必要となった場合に引数の式(値)が評価される。


【答え】(ア)


2分探索| 闇コウモリ Lv3

【問題】2分探索に関する記述のうち、適切なものはどれか。
(ア)2分探索するデータ列は整列されている必要がある。

(イ)2分探索は線形探索より常に速く探索できる。

(ウ)2分探索は探索をデータ列の先頭から開始する。

(エ)n個のデータの探索に要する比較回数は,nlog2nに比例する。

さめじん

【攻略ヒント】
2分探索法は、要素が昇順または降順に整列された集合に対して、探索範囲を1/2に狭めることを繰り返して目的のデータを探索するアルゴリズムのことだよ!


【解説】
(ア)正解〇

 2分探索を適用するにはデータが整列されていることが条件です。

(イ)不正解✕
 
 線形探索より少ない平均比較回数で目的のデータにたどりつけますが、データ列の先頭付近に目的のデータがあるケースでは線形探索のほうが探索が早くなります。

(ウ)不正解✕

 探索範囲の中央に位置する値との比較から開始します。

(エ)不正解✕

 探索対象のデータ範囲がN個のとき、2分探索における平均比較回数は [log2N]です。


【答え】(ア)


Java| 闇コウモリ Lv2

【問題】プログラム言語に関する記述のうち、Javaの説明として適切なものはどれか。
(ア)1970年代に開発されたインタプリタ型のオブジェクト指向言語であり、エディタやデバッガなどの統合開発環境やOSの機能などを含む。

(イ)Cにクラスやインヘリタンスといったオブジェクト指向の概念を取り入れたものであり、Cとの上位互換性をもつ。

(ウ)Webで用いられているマーク付け言語であり、タグによって文書の構造を記述する。テキストや動画などを関連付けたハイパテキストを作成できる。

(エ)ブラウザで動作するアプレットなどを作成できる。このアプレットは、仮想マシンを実装した環境上であれば、どこでも実行できる。

さめじん

【攻略ヒント】
これも知っていないと解けないね。
消去法で知っているものがあるか確認してみよう!


【解説】
(ア)不正解✕

 Smalltalkに関する説明です。

(イ)不正解✕

 C++に関する説明です。

 JavaもC言語の文法をベースにしていますが上位互換性はありません。

(ウ)不正解✕

 HTMLに関する説明です。

(エ)正解〇

 Javaは、コンピュータの機種やOSに依存しないソフトウェアが開発できるオブジェクト指向型の言語です。

 Javaで作成されたアプリケーションのうちブラウザ上(クライアント環境)で動作するものをJavaアプレット、サーバ上で動作するものをJavaサーブレットといいます。


【答え】(エ)


データ構造| 闇コウモリ Lv4

【問題】十分な大きさの配列Aと初期値が0の変数pに対して、関数f(x)とg()が次のとおり定義されている。配列Aと変数pは、関数f(x)とg()だけでアクセス可能である。これらの関数が操作するデータ構造はどれか。

function f(x) {
 p=p+1;
 A[p]=x;
 return None;
}
function g() {
 x=A[p];
 p=p-1;
 return x;
}

(ア)キュー

(イ)スタック

(ウ)ハッシュ

(エ)ヒープ

さめじん

【攻略ヒント】
f(x)は、配列の最後に引数であるxを代入する関数、g()は、配列の最後の要素を返す関数だよ!


【解説】
この2つの関数で使われている変数pは現在の配列の要素数を保持している変数で、このことを踏まえると、f(x)は、配列の最後に引数であるxを代入する関数、g()は、配列の最後の要素を返す関数と考えることができます。

「配列の最後にデータを追加する」および「最後に追加されたデータを取り出す」という2つの操作を合わせるとLIFO(Last In First Out|後入れ先出し)のデータ構造が実現されることになります。

選択肢の中でLIFOのデータ構造はスタックだけなのでこれが正解となります。


【答え】(イ)


アルゴリズム| 闇コウモリ Lv4

【問題】Perlの実行に関する記述のうち、適切なものはどれか。

(ア)動的デバッグは、言語処理系から独立したプログラムを実行して行う。

(イ)UNIX用として開発されており、Windows用の言語処理系はない。

(ウ)実行にWebサーバを必要とする言語であり、CGIの開発に適している。

(エ)プログラムをコンパイルしたファイルを事前に用意する必要はない。

さめじん

【攻略ヒント】
Perl=インタプリタ言語のことだよ!


【解説】
(ア)不正解✕

 付属のPerlデバッガでデバッグ可能です。

(イ)不正解✕

 Windows環境用の言語処理系もあります。

(ウ)不正解✕

 デスクトップアプリケーションも作成できます。

(エ)正解〇

 Perlはインタプリタ言語なので、事前にコンパイルして実行ファイルを作成する必要ありません。


【答え】(エ)


さめりこ

【Lv6 → Lv7】
次はボス戦かな?復習して準備するぞ!

ゲームクリア

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次