C#.Net 筆記試験問題 最終試験問題と解答

  1. C# の File クラスの () メソッドは、指定されたファイルが存在するかどうかを確認できます。A
    A:存在( )
    B:コピー( )
    C:移動( )
    D:削除( )

  2. .NET において、.NET Framework に関する次の記述は誤りです ( )。D
    A: .NET Framework は Windows オペレーティング システムにインストールできます
    B: .NET Framework はオペレーティング システム上で実行されます
    C: .NET Framework は C#、VB.NET、C++ およびその他の開発言語をサポートします
    D: 。 NET アプリケーションは Linux では実行できません

  3. C# では、静的メソッドとインスタンス メソッドに関する次の記述は間違っています ( )。C
    A: 静的メソッドは static キーワードを使用して変更する必要があります
    B: 静的メソッドはインスタンス メンバーに直接アクセスできません
    C: インスタンス メソッドは静的メンバーに直接アクセスできません
    D: インスタンス メソッドはインスタンス オブジェクトを使用して呼び出す必要があります

  4. C# では、親クラスのメンバーに親クラスとそのサブクラスではアクセスできるが、他のクラスではアクセスできないことを認識したい場合は、() 修飾子を使用してメンバーを変更する必要があります。D
    A: パブリック
    B: プライベート
    C: ベース
    D: 保護

  5. C# の継承に関して、次の記述は間違っています ( )。A
    A: 親クラスの保護されたメンバーにサブクラスからアクセスすることはできません
    B: クラスの継承により、クラスの機能を拡張し、クラスの機能を再利用できます
    C: パブリック クラス Student : person は、親クラスであることを示しますStudent のクラスは個人
    D である可能性があります: 継承は is-a の関係に準拠する必要があります

  6. C# では、継承に関する次の記述は間違っています ( )。C
    A: サブクラスはサブクラスを派生できます
    B: サブクラスは親クラスの派生クラスです
    C: サブクラスは親クラスのプライベート メンバーを継承し、アクセスできます
    D: サブクラスは複数の親クラスを継承できません

  7. C# では、次の ( ) コレクションはキーと値によって編成されます。BD
    A: 配列リスト
    B: ハッシュテーブル
    C: リスト
    D: 辞書<K,V>

  8. C# では、次の Teacher クラスのコンストラクターを記述する正しい方法は ( ) です。AC
    A:

public Teacher (){
    
      }

B:

private void Teacher (){
    
      }

子:

private Teacher (int id,string name) {
    
      }

D:

public int Teacher (int id,string name) {
    
      }
  1. C# では、ボックス化とボックス化解除に関する次の記述は正しいです ( )。A
    A: 値型を参照型に変換する処理はボックス化と呼ばれ、その逆はアンボックス化になります。
    B: 値型から参照型に変換する処理はアンボックス化と呼ばれ、その逆はボックス化になります。
    C : ボックス化とボックスのアンパックを使用すると、プログラムのパフォーマンスが向上します
    。 D: 値型データはボックス化された後は変更できません。

  2. 次の C# コードを実行し、出力 ( ) を実行します。C

class Student
{
    
    
    public static int id = 1;
    public static void Alter()
    {
    
    
        id++; 
    }
}
class Program
{
    
    
    static void Main(string[] args)
    {
    
    
        Student stu = new Student();
        Student.id++;
        Student.Alter();
        Console.WriteLine(Student.id);
    }
}

A:1
B:2
C:3
D: プログラムが間違って実行され、結果が出力されません

  1. C# では、Student クラスは Person クラスを継承します。stuObj は Student オブジェクト、perObj は Person オブジェクトで、次のコードの型変換は ( ) です。AD
    A:perObj as Student
    B:perObj は生徒
    C:stuObj は個人
    D:(Student) perObj

  2. C#のbaseキーワードに関して、記述が間違っています( )。A
    A:親クラスのbaseキーワードで修飾されたメンバー、サブクラスはbaseを使用してアクセスできます
    B:baseキーワードは親クラスのプロパティを呼び出すことができます
    C:baseキーワードは親クラスのメソッドを呼び出すことができます
    D:baseキーワード親クラスのコンストラクターを呼び出す

  3. 次の C# コードを実行すると、プログラムは ( ) を出力します。B

int num1 = 10;
Object obj = num1;
num1++;
Console.WriteLine("obj={0},num1={1}", (int)obj, num1);

A:obj=11,num1=10
B:obj=10,num1=11
C:obj=10,num1=10
D:obj=11,num1=11

  1. 次の C# コードでは、Book はブック クラスであり、その Name プロパティは Book クラス コンストラクターを通じて初期化でき、次のコードの出力結果は ( ) になります。Dictionary
    <string, Book>books = new Dictionary<string, Book>();
    books.Add(“1001”, new Book(“C#OOP”));
    Console.WriteLine(books[“1001”].Name );
    A: C#OOP
    B: ブック
    C: 1001
    D: プログラム エラー

  2. 次の C# コードを実行します。次のステートメントは正しいです ( )。B

public class Student
{
    
    
    public int age;
}
public class Program
{
    
    
	static void Alter(Student stu) 
	{
    
    
       stu.age++;
    }
	static void Main()
	{
    
    
       Student stu = new Student();
       stu.age = 30;
       Alter(stu);
       Console.WriteLine("age={0} ",stu.age);
    }
}

A: プログラムは正常に動作しています、出力:age=30
B: プログラムは正常に動作しています、出力:age=31
C: プログラムが間違っています、出力: age=31
D: プログラムが間違っています、出力は何も出力されません

  1. コンソール アプリケーションでは、次の C# コードの出力は ( ) です。B
static void Main(string[] args)
{
    
    
    int num1 = 10, num2 = 20;
    fun(num1, ref num2);
    Console.WriteLine("num1:" + num1 + ",num2:" + num2);
}
static void fun(int num1,ref int num2)
{
    
    
    num1 += num2;
    num2 += num1;
    Console.WriteLine("num1:"+num1+",num2:"+num2);
}

答え:

num1:30,num2:50
num1:30,num2:50

B:

num1:30,num2:50
num1:10,num2:50

子:

num1:30,num2:50
num1:10,num2:20

D:

num1:10,num2:20
num1:10,num2:20
  1. C# では、次のコードの実行結果は ( ) になります。
public class Fruit
{
    
    
	public virtual void Show()
	{
    
    
		Console.WriteLine("水果的味道不同!"); 
	}
}
public class Lemon: Fruit 
{
    
    
	public override void Show(){
    
    
		Console.WriteLine("柠檬是酸的!"); 
    }
}
class Program
{
    
    
	static void Main(string[] args)
	{
    
    
		Fruit lemon = new Fruit ();
		lemon. Show();
    }
}

A: 出力「果物の味が違います!」
B: 出力「レモンは酸っぱい!」
C: プログラムはエラーを起こしませんが、何も出力されません
D: プログラムはエラーを起こし、オブジェクトタイプが一致していないことを通知します

  1. 次の C# コードについて、正しい記述は ( ) です。D.
public struct Student
{
    
    
	public int id;
    public int age;
    public void Say()
    {
    
    
		Console.WriteLine("hello!");
    }
}
class Program
{
    
    
	static void Main(string[] args)
    {
    
    
		Student stu;
        stu.id = 1;
        stu.age = 20;
        stu.Say();       
	}
}

A: メソッドは構造体で定義できないため、Student 構造体で Say() メソッドを定義するのは間違いです
B: Student stu; 構造体オブジェクトは新しいキーワードでインスタンス化する必要があるため、このコードは間違っています
C:コードにエラーはありませんが、プログラムは実行されます。 結果は出力されません
D: コードにエラーはなく、プログラムは正常に実行でき、「hello!」が出力されます。

  1. 次の C# コードを実行した結果は ( ) です。D.
public abstract class FaClass
{
    
    
    public void FaClass()
    {
    
    
        Console.Write("1");
    }
    abstract public void ABSMethod();
}
public class SonClass : FaClass
{
    
             
    public SonClass()
    {
    
    
        Console.Write("2");
    }
    public override void ABSMethod()
    {
    
    
        Console.Write("3");
    }
    static void Main()
    {
    
    
        SonClass objB = new SonClass();
        objB.ABSMethod();
    }
}

A:12
B:21
C:13
D:23

  1. 次の C# コードの出力は ( ) です。B
public class Person
{
    
    
    public Person()
    {
    
     
		Console.WriteLine("无名英雄"); 
	}
    public Person(string name)
    {
    
     
		Console.WriteLine("我叫" + name);
	}
}
public class Student : Person
{
    
    
    public Student(string name)
    {
    
     
		Console.WriteLine("我是" + name + "同学"); 
	}
    static void Main(string[] args)
    {
    
     
		Student student = new Student("孙悟空");
		Console.ReadLine();
	}
}

A: 私は孫悟空です
B: 未知の英雄
です 私は孫悟空です
C: 私の名前は孫悟空です
私は孫悟空です
D: 未知の英雄
私の名前は孫悟空です
私は孫悟空です

  1. C# の抽象メソッドに関する次の記述のうち、正しいものはどれですか ( )。B
    A: 変更には virtual を使用します
    B: 抽象メソッドにはメソッド本体がありません
    C: 抽象メソッドは抽象クラスに抽象メソッドが必要です
    D: 非抽象クラスの抽象メソッドはメソッド本体を持つことができます

  2. .NET Framework では、共通言語ランタイム (CLR) は 2 つのコンポーネントで構成されます。BD
    A:MSIL
    B:CLS
    C:FCL
    D:CTS

  3. C# では、次の ( ) は File クラスのメソッドではありません。C
    A: Move() メソッド
    B: Exists() メソッド
    C: Update() メソッド
    D: Delete() メソッド

  4. 次の C# コードを実行すると、出力結果は ( ) になります。D.

List<string> list = new List<string>();
list.Add("张三");
list.Add("李四");
list.Remove("张三"); 
Console.WriteLine(list[0]);

A: null
B: 0
C: Zhang San
D: Li Si

  1. C# プログラムでは、( ) を使用して XML ファイル内の現在のノードの値を取得できます。D
    A: XmlNode の Text プロパティ
    B: XmlNode の ChildNodes プロパティ
    C: XmlNode の Name プロパティ
    D: XmlNode の InnerText プロパティ

  2. 次の C# コードでは、ボックス化を実行する回数は ( ) です。B

static void Main(string[] args)
{
    
    
     int i = 321;
     object o = i;
     float j = (float)o;
     Console.WriteLine(j);
}

A:0
B:1
C:2
D:3

  1. C# では、次のコードはコントロール tvMenu (TreeView コントロール) 上で動作しますが、次のオプションの説明が間違っています ( )。C
this.tvMenu.Nodes.Add("节点"); //代码1
this.tvMenu.SelectedNode.Remove();//代码2
this.tvMenu. SelectedNode.Nodes.Clear();//代码3
this.tvMenu.Nodes.Clear();//代码4

A: 「コード 1」を実行して tvMenu にノードを追加します。
B: 「コード 2」を実行して、tvMenu で現在選択されているノードを削除します。
C: 「コード 3」を実行して、tvMenu で現在選択されているノードとその子ノードをクリアします。
D: 実行します。 「コード 4」は、tvMenu のすべての子ノードをクリアします。

  1. .NET Framework クラス ライブラリでは、ADO.NET にアクセスするために次の () 名前空間が使用されます。B
    A: システム
    B: System.Data
    C: System.Net
    D: System.Collections.Generic

  2. 次の C# コードについて、記述が間違っています ( )。C

Dictionary<string, Student> student = new Dictionary<string, Student>();
student.Add("s001",new Student("Mike"));
student.Add("s002",new Student("张三"));
student.Remove(0);
Console.WriteLine(student.Values.Count);

A: コレクション Student は、キーと値のペアの形式でデータを保存します。
B: 2 つの Student オブジェクトがコレクション Student に保存されます。キーはそれぞれ "s001" と "s002"
C: プログラムにはエラーがなく、出力は次のようになります。 2
D:student.Remove( 0); このコード行にはエラーがあります

  1. 次の C# コードの場合、Personal クラスの ToLive() メソッドを Hero クラスで書き換える必要がある場合は、横線を順番に ( ) で埋める必要があります。D.
public class Person
{
    
    
    public ________ void ToLive()
    {
    
     Console.WriteLine("生下来,活下去");}
}
public class Hero : Person
{
    
    
    public ________ void ToLive()
    {
    
    Console.WriteLine("生当作人杰,死亦为鬼雄");}
}

A:不充填 不充填
B:仮想オーバーライド
C:不充填オーバーライド
D:仮想オーバーライド

  1. 次の C# コードを読んでください。オプションの正しいステートメントは () です。D.
  public class A
    {
    
    
        public int sign1;
    }
    public class B
    {
    
    
        public int sign2;
    }
    public class C : A,B
    {
    
    
        public int sign3;
        static void Main(string[] args)
        {
    
    
            C objC = new C();
            objC.sign1 = 1;
            objC.sign2 = 2;
            objC.sign3 = 3;
            Console.WriteLine(objC.sign1+","+objC.sign2+","+objC.sign3);
        }
    }

A: プログラムを実行すると、1、2、3 が出力されます。
B: クラス C はクラス A とクラス B のサブクラスであるため、クラス C はクラス A とクラス B のすべてのメンバーを継承します。 C:
クラス C はクラス A のメンバーからのみ継承できます。 、クラス B のメンバー D を継承できません
: プログラム コンパイル エラー。C は複数の基本クラス A および B を持つことができないというメッセージが表示されます。

  1. 次の C# コードでは、オプションのサブクラス コンストラクターが親クラス コンストラクターを呼び出していますが、これは正しい ( ) です。D.
public class Person
{
    
    
    public string name;
    public Person(string name)
    {
    
     this.name = name; }
}
public class Hero : Person
{
    
     //需要显式调用父类Person(string name)构造函数 }

答え:

public Hero(string name)
{
    
     Person(name); }

B:

public Hero(string name)
{
    
     base (name); }

子:

public Hero(string name): Person(name){
    
     }

ド:`

public Hero(string name): base(name){
    
     }`
  1. C# では、ファイル操作に関連するクラスに関する正しい記述は ( ) です。AB
    A: FileInfo クラスはファイルを操作するためのインスタンス メソッドを提供します
    B: File クラスはファイルを操作するための静的メソッドを提供します
    C: Directory クラスはディレクトリを操作するためのインスタンス メソッドを提供します
    D: DirectoryInfo クラスはディレクトリを操作するための静的メソッドを提供します

  2. C# では、次の File クラスのメソッド ( ) を使用して、指定されたファイルを新しいパスに移動できます。DA

Delete(string filename1,string filename2)

B:

Copy(string filename1,string filename2)

子:

Exists(string filename1,string filename2)

D:

Move(string filename1,string filename2)
  1. C# では、次の () キーワードを使用して構造を定義します。B
    A: 静的
    B: 構造体
    C: 抽象
    D: 列挙型

  2. 次の C# メソッドでメソッドのオーバーロードを形成できるものは ( ) です。CD

public int Fun(int p)
{
    
    }

答え:

public int Fun(int p2)
{
    
    }

B:プ

blic int Fun2(int p)
{
    
    }

子:

public string Fun(string p)
{
    
    }

D:

public bool Fun(bool p)
{
    
    }
  1. XML の解析に関する次の記述のうち、正しいものはどれですか ( )。B
    A:XML は拡張マークアップ言語と呼ばれ、その構文は HTML と完全に一致しています。
    B:XmlNode は XML 内のノードを表します。
    C:XmlDocument オブジェクトは XML ドキュメント全体を表すことができます。 Save() メソッドを使用して、指定された XML ファイルをXmlDocument オブジェクト
    D:XmlNode オブジェクトのプロパティ ChildNode は、現在のノードのすべての子ノードを表します。

  2. C# では、ジェネリック コレクション Dictionary<K,V> に関する次のステートメントは間違っています ( )。B
    A:Dictionary<K,V> は型変換なしで要素にアクセスします
    B: 値型要素の追加/読み取りにはボックス化解除とボックス化が必要です
    C: 値はキーを通じて取得できます
    D:Dictionary<K,V> はキーと値のペアを介して要素を保存します

  3. C# では、base キーワードに関する次の記述は正しいです ( )。BD
    A:base キーワードは this キーワードとまったく同じように使用されます
    。B: サブクラスでは、base キーワードを使用して親クラスのパブリック プロパティにアクセスできます。構文は次のとおりです:base. 親クラスの属性
    C: サブクラスでは、base キーワードを使用して親クラスのコンストラクターを呼び出し、継承された属性の初期化を実現できます。構文は次のとおりです:base.parent classconstructor ( )
    D: サブクラスでは、base キーワードは親クラスのプライベート フィールドにアクセスできません。

  4. C# では、構造体に関する次の記述は間違っています ( )。AB
    A: 構造体は参照型です
    B: クラスと同様、構造体のオブジェクトを定義するときに new キーワードを使用する必要があります
    C: 構造体を定義するために struct キーワードが使用されます
    D: 構造体にはフィールドまたはメソッドを含めることができます

  5. .NET Framework のコア コンポーネントには ( ) が含まれます。BD
    A:CTS
    B:CLR
    C:CLS
    D:FCL

  6. C# では、XML に関する次のステートメントは正しくありません ( )。A
    A: XML は拡張マークアップ言語と呼ばれ、その構文は HTML と完全に一致しています
    B: XmlNode は XML 内のノードを表します
    C: XmlDocument オブジェクトは XML ドキュメント全体を表すことができ、Load() メソッドを使用して指定された XML ファイルをXmlDocument オブジェクト
    D:XmlNode オブジェクトのプロパティ ChildNodes は、現在のノードのすべての子ノードを表します。

  7. 次の C# コードを実行します。問題が発生する可能性があるコード行は ( ) です。C

class Student
{
    
    
    public static int id =1;  //1
    int age=20;
    public static void Alter()
    {
    
    
        id++;   //2
        age++;  //3
    }
}
class Program
{
    
    
    static void Main(string[] args)
    {
    
    
        Student stu = new Student();     
        stu.Alter();  //4       
    }
}

A:1
B:1、2
C:3、4
D:1、2、3、4

  1. C# では、継承とメソッドの書き換えに関して、次の記述は正しいです ( )。D
    A: 親クラスの仮想メソッドをサブクラスのサブクラスで書き換えることはできません
    B: 親クラスのメソッドをサブクラスで書き換えた後は、親クラスのオブジェクトから呼び出すことはできません
    C: で変更されたメソッドのみvirtual キーワードは書き換え可能
    D: override キーワードを使用してメソッドの書き換えを実装する

  2. C# では、ボックス化とボックス化解除に関する正しい記述は ( ) です。AD
    A: 値型を参照型に変換するプロセスはボックス化と呼ばれ、その逆もまたボックス化と呼ばれます。
    B: ボックス化解除は暗黙的に実行され、明示的な変換は必要ありません。
    C: 実際の開発では、ボックス化とボックス化解除の操作が改善されます。プログラムのパフォーマンス
    D: 汎用コレクション要素を読み取るときに、ボックス化を解除してボックス化する必要はありません。

  3. 次の C# コードを実行すると、出力結果は ( ) になります。B

public class Number
{
    
    
     public int num;
}
public class Program
{
    
    
     static void Change(Number n) 
     {
    
    
          n. num = 17;
     }
     static void Main()
     {
    
    
          Number n = new Number();
          n. num = 7;
          Change(n);
          Console.WriteLine(n. num);
     }
}

A:7
B:17
C:717
D:プログラムコンパイルエラー

  1. C# では、次のコードの実行結果は ( ) になります。B
class Temp
{
    
    
	int _iCnt;
    public Temp(int iName)
	{
    
    
        _iCnt = iName;
    }
    public Temp()
	{
    
    
        _iCnt = 9;
    }
    public void Sum(int iName)
	{
    
    
        _iCnt += iName;
    }
    public void Output()
	{
    
    
        Console.WriteLine(_iCnt);
        Console.ReadLine();
    }
}
class Program
{
    
    
    static void Main(string[] args)
	{
    
    
		Temp temp = new Temp(5);
		temp = new Temp();
		temp.Sum(4);
		temp.Output();
    }
}

A: 18
B: 13
C: 9
D: コンパイルエラー

  1. .NET では、ボックス化とボックス化解除に関する次の説明は正しいです (A)。
    A: int i=32;
    object o = (object) i;
    これはボックス化操作です
    B: double num1=11.49;
    int num2 = (int) num1;
    これはアンボックス化操作です
    C: アンボックス化とは、値の型を次のように変換することです参照タイプ
    D: ボックス化およびボックス化解除操作はプログラムのパフォーマンスに影響を与えません。
  2. C# では、次のコードの間違いは (B) です。
try
{
    
    
}
catch (SqlException ex)
{
    
    
  throw ex;    
}
catch (IOException ex)
{
    
    
   return null;  
}
finally
{
    
     
}

A: 2 つの catch ブロックの順序は逆にすることができますが、例外の処理には影響しません
B: 上記のコードは try ブロック内のあらゆる例外をキャッチできます
C: IO 例外が発生した場合、上記のコードは通常はエラーを報告できません
D: Finally ブロックは最終的に実行されます
50 .NET プラットフォームでは、次の (C) は .NET アセンブリの一部ではありません。
A: アセンブリ リスト
B: 型メタデータ
C: データ構成ファイル
D: MSIL コード
51. C# では、メソッドの書き換えに関して、次の記述は正しいです (BD)。
A: メソッドの書き換えはメソッドのオーバーロードです。両者は同じものですが、単に名前が違うだけです。
B: メソッドの書き換えは、親クラスのメソッドをサブクラスが書き換えることです。
C: virtual キーワードで変更されたメソッドは使用できません。
D: override キーワードを使用してメソッド書き換えを実装する
52. C# では以下の SetData メソッドがあり、以下のオプション (AC) は SetData メソッドのオーバーロードされたメソッドではありません。

public int SetData (int iCnt,double dBnt){
    
    ……//省略具体处理方法}

答え:

public double SetData (int iCnt,double iBnt){
    
    ……}

B:

public int SetData (int iCnt, double dBnt,int iZnt){
    
    ……}  

子:

private int SetData (int iCnt,double dBnt){
    
    ……}

D:

public int SetData (double dBnt, int iCnt){
    
    ……}

おすすめ

転載: blog.csdn.net/u011731544/article/details/129982227