игра брюс 2048
Главная / Программирование / Программирование на языке высокого уровня C# / Тест 8

Программирование на языке высокого уровня C# - тест 8

Упражнение 1:
Номер 1
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ только объекты самого класса?

Ответ:

 (1) protected 

 (2) virtual protected 

 (3) private 

 (4) virtual 


Номер 2
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ только объекты самого класса и объекты класса потомка?

Ответ:

 (1) protected 

 (2) virtual protected 

 (3) private 

 (4) virtual 


Номер 3
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ любые объекты?

Ответ:

 (1) protected 

 (2) public 

 (3) virtual protected 

 (4) private 

 (5) virtual 


Упражнение 2:
Номер 1
В чем состоит процесс раннего связывания?

Ответ:

 (1) на место вызова подпрограммы компилятор вставляет переход на ее начало 

 (2) на место вызова подпрограммы компилятор вставляет адрес ее начала 

 (3) на место вызова подпрограммы компилятор вставляет ее код 


Номер 2
Когда происходит динамическое связывание?

Ответ:

 (1) на этапе компиляции программы 

 (2) на этапе компоновки программы 

 (3) на этапе выполнения программы 

 (4) при создании объектов 


Номер 3
Какое из следующих утверждений является примером полиморфизма?

Ответ:

 (1) класс включает данные с одинаковыми именами, но разными типами 

 (2) выражение, в котором ссылка на класс-потомок используется для вызова метода, определенного в базовом классе 

 (3) метод одного класса вызывает метод другого класса 

 (4) выражение, в котором вызывается виртуальный метод 


Упражнение 3:
Номер 1
Какое из следующих утверждений истинно для одноименных виртуальных методов одной иерархии?

Ответ:

 (1) виртуальные методы должны отличаться числом параметров 

 (2) виртуальные методы должны отличаться типом параметров 

 (3) виртуальные методы должны полностью совпадать по типу и числу параметров 

 (4) виртуальные методы должны отличаться типом возвращаемого значения 


Номер 2
Может ли конструктор быть виртуальным?

Ответ:

 (1) да 

 (2) нет 


Номер 3
 Одна таблица виртуальных методов строится для каждого

Ответ:

 (1) класса 

 (2) экземпляра объекта 

 (3) метода объекта 


Упражнение 4:
Номер 1
Можно ли использовать в теле конструктора виртуальные методы?

Ответ:

 (1) да 

 (2) нет 


Номер 2
VMT создается

Ответ:

 (1) компилятором 

 (2) конструктором 

 (3) программистом 

 (4) отладчиком 


Номер 3
Можно ли при переопределении обычного метода в потомке изменить количество его аргументов?

Ответ:

 (1) да 

 (2) нет 


Упражнение 5:
Номер 1
Можно ли при переопределении виртуального метода в потомке изменить количество его аргументов?

Ответ:

 (1) можно в любом случае 

 (2) нет, если используется ключевое слово override 

 (3) да, если используется ключевое слово new 


Номер 2
Преимущества виртуальных методов:

Ответ:

 (1) гибкость 

 (2) увеличение быстродействия программы 

 (3) уменьшение объема исходного текста программы 

 (4) возможность расширения 


Номер 3
Если метод будет выполнять в потомках объекта одни и те же функции, его
следует описать как

Ответ:

 (1) виртуальный 

 (2) обычный 


Упражнение 6:
Номер 1
Можно ли передавать объект в метод в качестве параметра?

Ответ:

 (1) да 

 (2) нет 


Номер 2
Можно ли передать в подпрограмму на место аргумента-объекта объект, 
являющийся его потомком? 

Ответ:

 (1) да 

 (2) нет 


Номер 3
Методы, которые в разных объектах иерархии выполняют одно и то же по смыслу действие разными способами, следует объявлять как

Ответ:

 (1) статические 

 (2) виртуальные 

 (3) обычные 


Упражнение 7:
Номер 1
Что выведет на консоль приведенная программа? 
  
 namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public override void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write A.Write 

 (3) B.Write B.Write 

 (4) A.Write C.Write 


Номер 2
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public override void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }


    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write B.Write 

 (3) A.Write A.Write 

 (4) B.Write B.Write 


Номер 3
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public new void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) A.Write B.Write 

 (2) A.Write A.Write 

 (3) B.Write B.Write 

 (4) A.Write C.Write 


Упражнение 8:
Номер 1
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public new void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write A.Write 

 (3) B.Write B.Write 

 (4) A.Write C.Write 


Номер 2
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public override void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public override void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write A.Write 

 (3) B.Write B.Write 

 (4) A.Write C.Write 


Номер 3
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public virtual void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public override void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public override void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write B.Write 

 (3) A.Write A.Write 

 (4) B.Write B.Write 


Упражнение 9:
Номер 1
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public new void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) A.Write B.Write 

 (2) A.Write A.Write 

 (3) B.Write B.Write 

 (4) A.Write C.Write 


Номер 2
Что выведет на консоль приведенная программа? 
  
namespace ConsoleApplication1{
    class A{
        public void WriteMessage(){
            Console.Write("A.Write ");}
    }
    class B: A{
        public new void  WriteMessage(){
            Console.Write("B.Write ");}
    }
    class C: B{
        public new void WriteMessage(){
                Console.Write("C.Write ");}
    }

    class Program{
        static void Main(string[] args){
            A x = new B();
            x.WriteMessage();
            x = new C();
            x.WriteMessage();
}}}
 
 

Ответ:

 (1) B.Write C.Write 

 (2) A.Write B.Write 

 (3) A.Write A.Write 

 (4) A.Write C.Write 




Главная / Программирование / Программирование на языке высокого уровня C# / Тест 8