Visual Basic 初級講座
VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応

 

Visual Basic 中学校 > 初級講座 >

第53回 卒業試験

今回は今までの内容を元に試験を行います。自分の理解度、到達度を示すものさしとしてご活用ください。なお、問題の内容や回答にご意見や疑義がある場合は掲示板に書き込んでください。

概要

・問題は全部で20問あります。

・出題範囲は 初級講座第46回〜第51回です。

・最後に「採点」ボタンをクリックすると、あなたの総合評価が表示されます。

 

1.諸注意

 

今回は、全部で20問の問題に答えてください。

採点は1問答えるごとにすぐに表示されるので、答えるときは慎重に答えてください。

1度答えた後での回答の変更は禁止します。変更しようと思えば変更できますが、やらないでください。

出題範囲は初級講座第46回〜第51回です。

最後の「採点」ボタンをクリックすると、あなたの総合評価が表示されます。

この試験では、あなたの情報が外部に送信されることはありません。

なお、単純化するためにすべての設問は標準的な環境を前提に作成されています。特定の状況下では答えが異なる場合もありますし、厳密には日本語が不十分でもあります。

 

 

2.試験

 

問題1.

次のうち、コンストラクタの説明として間違っているものはどれか。

コンストラクタはプログラムを開始したときに一番最初に実行されるプロシージャ。

コンストラクタを作成するにはプロシージャの名前を「New」にする。

コンストラクタにも引数を指定することができる。

コンストラクタは多重定義(Overloads)することができる。

 

問題2.

次のうち、デストラクタの説明として間違っているものはどれか。

デストラクタはクラスのインスタンスが破棄されるときに実行されるプロシージャ。

名前がFinalizeであるプロシージャはデストラクタである。

名前がDisposeであるプロシージャはデストラクタである。

デストラクタは必ず自動的に呼び出されるのでプログラマはデストラクタの呼び出しを記述する必要はない。

 

問題3.

次のプログラム中の( A )の位置にあてはまるキーワードは次のうちどれか。( A )は2箇所あるが、2箇所とも同じキーワードがあてはまる。

VB.NET2002対応 VB.NET2003対応 VB2005対応 

Private _Age As Integer

Public
( A ) Age() As
Integer
    Get
        Return
_Age
    End
Get
   
Set(ByVal value As Integer)
        _Age = value
    End
Set
End ( A )

Sub

Function

Property

Overloads

 

問題4.

次の言葉とキーワードの組み合わせのうち適切でないものはどれか。

省略可能引数 - Optional

可変引数 - ParamArray

多重定義 - Overloads

共有メンバ - Static

 

問題5.

次のうちイベントを発生させる時に使用するキーワードはどれか。

Evnet

RaiseEvent

Custom Event

Delegate

 

問題6.

次のイベントプロシージャの引数についての説明のうち、まちがっているものはどれか。

第1引数の名前はsenderにして、イベントを発生させたクラスのインスタンスを渡すようにするのが望ましい。

第2引数の名前はeにして、イベントに関連した追加情報を受け渡しするようにするのが望ましい。

第1引数の型はイベントを発生させたクラスの型にするのが望ましい。

第2引数の型はEventArgsクラスを継承した型にするのが望ましい。

 

問題7.

次のプログラムはビルドエラーになる。この原因と修正方法として正しいものは次のうちどれか。

VB.NET2002対応 VB.NET2003対応 VB2005対応 

Default Public ReadOnly Property Histories() As ArrayList
   
Get
        Return
m_Histories
    End
Get
End Property

原因はDefaultが指定されているのに引数がないこと。修正するにはDefaultキーワードを削除する。

原因はReadOnlyが指定されているのにSet節がないこと。修正するにはGetEnd GetSetEnd Setに直す。

原因はGet節に引数がないこと。修正するにはGetとある行をGet(ByVal value As ArrayList)に直す。

原因はSet節がないこと。修正するには空のSet節を追加する。

 

問題8.

プログラム中のどこからでもアクセスできる機能を記述するために特に用意されている仕組みは次のうちどれか。

構造体

列挙体

モジュール

 

問題9.

次のキーワードのうち、列挙体を宣言するときに使用するものはどれか。

Class

Module

Structure

Enum

 

問題10.

以下のプログラムを完成させるために( A )の部分に当てはまるものは次のどれか。


ListBox1.Items.AddRange(( A ).GetNames(
GetType(DayOfWeek)))
 

Enum

[Enum]

(Enum)

_Enum

 

問題11.

次のクラスと構造体に関する説明のうち、まちがっているものはどれか。

クラスは参照型で、構造体は値型である。

クラスは機能や振る舞いを主眼とし、構造体はデータを主眼としている。

クラスにも構造体にもメソッドやプロパティを記述することができる。

クラスはインスタンスを作成できるが、構造体はインスタンスを作成できない。

 

問題12.

以下のプログラムを見てClassAClassBの間で情報を共有する方法を述べた次の記述のうち適切なものはどれか。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Public Class ClassA

    Public B As New ClassB

    (…中略…)

End Class

ClassAPublicで宣言したメンバはClassBから参照することができる。

ClassBPublicで宣言したメンバはClassAから参照することができる。

ClassAが発生させたイベントをClassBは受け取ることができる。

ClassBで発生させたイベントをClassAは受け取ることができる。

 

問題13.

Overloadsを使ってメソッドを多重定義できる条件についての 次の説明のうち、まちがっているものはどれか。

引数の数・順番・型が異なっていれば同じ名前のメソッドを多重定義できる。

戻り値の型が異なっていれば同じ名前のメソッドを多重定義できる。

Overloadsキーワードを使用しないでメソッドを多重定義することもできる。

 

問題14.

次のプロパティプロシージャの宣言のうち、ありえないものはどれか。

Public Overloads Shared ReadOnly Property Sample1(ByVal Index As Integer)

Public Overloads WriteOnly Property Sample2(ByVal Index As Integer)

Default Public Shared ReadOnly Property Sample3(ByVal Index As Integer)

Default Public Overloads WriteOnly Property Sample4(ByVal Index As Integer)

 

問題15.

クラスライブラリの拡張子は次のうちどれか。

dll

exe

pdb

xml

 

問題16.

クラスライブラリをデバッグするのに最も適している構成は次のうちどれか。

初めはWindowsアプリケーションとして作成し、完成後にクラスライブラリとしてビルドする。

プロジェクト内にテスト用のフォームを作り、そのフォームを使ってデバッグする。完成後にはフォームは消す。

デバッグ情報付きでビルドしておいて、テスト用のWindowsアプリケーションを使ってデバッグする。

おなじソリューション内にテスト用のWindowsアプリケーションを作成し、クラスライブラリに対してプロジェクト参照を設定する。

 

問題17.

以下のプログラムを実行すると、「GetInfoが呼び出されました。」というメッセージが表示されなかった。プログラムにはビルドエラー・実行時エラーはなかった。

メッセージが表示されなかった原因を下記のプログラムだけから推測すると、原因として考えられないものは次のうちどれか。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim Path As
String

   
Path = GetInfo.WindowsPath

    MsgBox(Path)

End
Sub
Private Function GetInfo() As WindowsInformation

    MsgBox(
"GetInfoが呼び出されました。")
    Return New WindowsInformation

End
Function

WindowsInformationクラスでWindowsPathプロパティが共有メンバとして宣言されている。

WindowsInformation構造体でWindowsPathが定数として宣言されている。

WindowsInformationが列挙体である。

WindowsInformationクラスがインスタンス化されていない。

 

問題18.

Button1をクリックしたときにButton1_Clickイベントプロシージャが実行されるプログラムを考える。このとき、フォームに記述されたメソッドからButton1_Clickイベントプロシージャを呼び出す方法は次のうちどれか。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Button1.Click

Button1_Click

Button1_Click(Nothing, Nothing)

 

問題19.

以下のクラスを考える。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Public Class Describer

    Public
Function NextNumber() As
Integer

       
Static Number As Integer

       
Number += 1
        Return Number

    End
Function

End
Class

このクラスを次のように呼び出した場合、何が表示されるか。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Dim Desc As New Describer

MsgBox(Desc.NextNumber)

MsgBox(Desc.NextNumber)
MsgBox(Desc.NextNumber)

「0」が3回表示される。

「1」が3回表示される。

「1」、「2」、「3」と順番に表示される。

 

問題20.

次のうち、Visual Basicでのプログラミングスタイルの説明として最も適切なものはどれか。

Visual Basicは、IfSelect CaseDo, Forなどの制御構文を使ってプログラムを構造化するところに主眼がある言語である。

Visual Basicは、ReturnExit, Continueなどを使って、プログラムの任意の箇所を柔軟に実行できるようにするところに主眼がある言語である。

Visual Basicは、ClassStructureを使って現実世界の「物」をモデルとした、人間にとってわかりやすい「オブジェクト」を組み合わせて1つのプログラムを完成させるところに主眼がある言語である。

 

すべての問題に解答したら、下の「採点」ボタンをクリックしてください。