Учебные материалы
  • Регистрация

ООП | Вопросы с ответами

Csharp
Вопросы с ответами по дисциплине "Объектно-ориентированное программирование на языке C#".

1. Управляющая последовательности в С# – “\a”?
>> Звуковой сигнал

2. Управляющая последовательности в С# – “\b”?
>> Возврат на одну позицию

3. Управляющая последовательности в С# – “\f”?
>> Перевод страницы (переход на новую страницу)

4. Управляющая последовательности в С# – “\n”?
>> Перевод строки

5. Управляющая последовательности в С# – “\r”?
>> Возврат каретки

6. Управляющая последовательности в С# – “\t”?
>> Горизонтальная табуляция

7. Управляющая последовательности в С# – “\v”?
>> Вертикальная табуляция

8. Целые типы. Диапазон sbyte?
>> От -128 до 127

9. Целые типы. Диапазон byte?
>> От 0 до 255

10. Целые типы. Диапазон short?
>> От -32 768 до 32 767

11. Целые типы. Диапазон ushort?
>> От 0 до 65 535

12. Что следует ожидать на экране
Console.WriteLine("A" + "B" + "C");
Console.WriteLine('A' + 'B' + 'C');?
>> ABC
      198

13. В С# функцию, входящую в состав класса называют?
>> метод

14. Спецификатор доступа public?
>> Доступность откуда угодно

15. Спецификатор доступа private?
>> Доступность только из этого же самого класса (по умолчанию)

16. Спецификатор доступа protected?
>> Доступность только из этого же самого класса или его потомков.

17. Спецификатор доступа internal?
>> Доступность из любого класса той же программы.

18. Спецификатор доступа protected internal?
>> Доступность или из любого класса той же программы или из этого же самого класса или его потомков.

19. Сколько родительских классов может иметь класс в C#?
>> Всегда один

20. Конструкторы?
>> Это методы, используемые для инициализации объектов в процессе их реализации.

21. Что такое средство  доступа?
>> Свойство, oбеспечивающее доступ к внутренним (private) данным объекта

22. Что такое переменная экземпляра?
>> Это атрибут класса

23. Как определить размер класса?
>> Для определения размера класса надо сложить размеры всех его атрибутов

24. Как объявляются переменные экземпляра?
>> Переменная экземпляра объявляется внутри класса с помощью указания типа данных переменной, за котым следует имя переменной.

25. Процедуры и функции, работающие с полями данных класса?
>> Называются методами

26. Объединение полей данных и процедур и функций, работающих с этими данными, в единый пакет, при наличии специальных правил доступа к элементам пакета?
>> Называется инкапсуляцией.

27. Полиморфными объектами или полиморфными переменными называются?
>> Переменные, которым в процессе выполнения программы может быть присвоено значение, ти которого отличается от типа переменной.

28. К изменению свойств объекта возможен только через принадлежащие ему?
>> методы

29. В момент времени объект характеризуется:?
>> Свойствами

30. Деструкторы?
>> Методы освобождающие состояние объекта и/или разрушающие сам объект

31. Формирование представления о качествах или свойствах предмета путем мысленного удаления некоторых частей или материальных объектов – это?
>> Абстракция

32. Строго определенный набор открытых операций, которые можно применять к данному объекту, называется его?
>> Интерфейсом

33. Составной объект, в который входят элементы данных любых типов, за исключением функций, - это?
>> Структуры

34. Сообщение в ООП – это?
>> Понятие, которое представляет выполняемое объектом действие.

35. Со спецификатором доступа public-компонент может быть использован?
>> любой функцией.

36. Реализация операции динамической модели для объектов данного класса называется ее?
>> Методом.

37. Реакция объекта на событие определяется?
>> Его состоянием.

38. Процесс, при котором различный код и данные различных модулей соединяются друг с другом в процессе исполнения, называют компоновкой?
>> Динамической.

39. Программная единица, рассматриваемая как целое в контекстах хранения в наборе данных, трансляции, объединения с другими программными единицами и загрузки в оперативную память для выполнения, называется?
>> Программный модуль.

40. Пользователь абстрактного типа данных не может производить доступ к?
>> представлениям абстрактного типа данных.

41. Определение требуемого количества памяти при ее исходном распределении производится?
>> с использованием типа

42. Объектно-ориентированная программа состоит из?
>> Отдельных фрагментов кода, обрабатывающего данные, которые взаимодействуют друг с другом через определенные интерфейсы.

43. Объект в методологии ООП – это?
>> Инкапсулированная абстракция

44. ООП позволяет программисту моделировать объекты определенной предметной области путем?
>> программирования их содержания и поведения в пределах класса

45. Метод в ООП – это?
>> Реакция объекта на сообщение

46. Между объектами модели можно устанавливать зависимости по данным. Эти зависимости выражают связи или отношения между?
>> классами

47. Концепция объектно-ориентированного программирования подразумевает, что основой управления процессом реализации программы является?
>> передача сообщений объектам.

48. Конструкция "класс" для реализации абстрактных типов данных обеспечивает механизм?
>> Инкапсуляции

49. Ключевое слово this?
>> Обеспечивает доступ к текущему экземпляру класса

50. Операция точки (операция доступа в члену класса) объединяет следующие два элемента (слева направо)?
>> Объект класса и член класса

51. Реализация полиморфизма. Перегрузка? 
>> используется, когда определяется несколько функций с одним именем – одно и то же имя функции может много кратно использоваться в разных местах программы, выбор нужной функции может определяется типами аргументов, областью видимости.

52. Методы, для которых должно реализовываться позднее связывание получили название?
>> Виртуальные

53. Методы, для которых должно реализовываться ранее связывание получили название?
>> Статические методы

54. Абстрактный класс может использоваться для других классов только в качестве класса?
>> Базового

55. Перегрузкой называется определение нескольких функций, имеющих?
>> Одинаковое имя, но разные списки аргументов.

56. Использование одного и того же имени в нескольких смыслах применительно к функции, когда выбранный смысл зависит от типов аргументов функции, - это?
>> Перегрузка

57. Если производный класс был выведен из более чем одного базового класса, такой способ называется наследованием?
>> Множеством

58. Переопределенный атрибут (свойство) или метод?
>> такой атрибут или метод, который объявлен в родителе (или потомке), но заново реализованный в дочернем классе.

59. Новый  метод  или  атрибут?
>> Метод или атрибут, описанный в дочернем классе, но отсутствующий в его предках

60. Рекурсивный (унаследованный) атрибут или метод?
>> Атрибут или метод определен в предке, но не переопределен в потомке

61. Позднее связывание?
>> Это динамическое связывание вызова метода с определением метода, которое осуществляется во время выполнения, если некоторая информация отсутствует на этапе компиляции и становится известной, только когда приложения выполняется.

62. Простое наследование?
>> Появляется, когда один потомок наследуется от одного родителя

63. Многоуровневое наследование?
>> Появляется, когда потомок наследуется от родителя, а затем сам становится родителем.

64. Множественное наследование?
>> Используется, когда отношение включает нескольких родителей и одного потомка

65. Множественное наследование классов поддерживается в языке?
>> Верных ответов нет

66. Альтернатива множественному наследованию классов в C#?
>> Множественное наследование интерфейсов

67. Основная особенность абстрактного класса?
>> Может служить только базовым для других классов. Нельзя создавать его экземпляры.

68. Что происходит, когда класс помечается словом sealed?
>> Его нельзя наследовать

69. class A { }
class B : A { }
class Program {
public static void Main(string[] args)
{      A a = new A();  B b = new B(); Console.WriteLine(a is A);
Console.WriteLine(a is B);  Console.WriteLine(b is A);
Console.WriteLine(b is B); }} что будет в результате?
>> True False True True

70. using System;
public class Test { private static void Main(string[] args) {
A a = new A(); a.PrintFormatted(); System.Console.ReadKey();}}
interface IBase { void Print();}
interface IDerived : IBase { void PrintFormatted();}
class A : IDerived {
public void PrintFormatted() {System.Console.WriteLine("A.PrintFormatted()");}
void Derived.PrintFormatted(){System.Console.WriteLine("IDerived.PrintFormatted()");
}} что будет в результате?
>> Код не скомпилируется

71. using System;
class Base { public String className = "Base";}
class Derived : Base { private new String className = "Derived"; }
class Test{    static void Main(string[] args)
{ Console.WriteLine(new Derived().className);}} что выведется в результате?
>> Base

72. using System;
class App {static System.Collections.Generic.IEnumerable<string> Get()
{yield return "Hello"; Console.Write("Borland "); yield return "World";}
static void Main(string[] args) {foreach (string s in Get())
{Console.Write(s); Console.Write(" C# ");//Console.ReadKey();
}}}что выведется в результате?
>> Hello C# Borland World C#

73. 1) sealed class MyClass
2){ //Методы и переменные класса
3)  int x;
4) ... }
5)  class MyClass2: MyClass
6)  {        ...
7)   } в какой строке ошибка?
>> В 5-й

74. using System;
struct Book { public string author; public string title; public int copyright;
public Book() { author = "aaa"; title = "bbb"; copyright = 50; Console.WriteLine("This is a book"); }}
class Program { static void Main(string[] args) { Book book1 = new Book(); Console.WriteLine("This is not a book"); } } что выведется в результате?
Ошибка компиляции.

75. using System;
class A{public A()  {Console.Write("Создание класса А.");}}
class B:A{ public B(){Console.Write("Создание класса В.");}}
class С:B{public С(){Console.Write("Создание класса С.");}}
class Program
{  static void Main() { С c = new С();}}что выведется в результате?
>> Создание класса А. Создание класса В. Создание класса С.

76. using System;
classMyClass{public int x;}
classClassAssignment{    public static void Main() {
MyClass a = new MyClass();MyClass b = new MyClass();
a.x = 10;b.x = 20;a = b;b.x = 30;
Console.WriteLine("a.x {0}, b.x {1}", a.x, b.x);}}чтовыведетсяврезультате?
>> a.x. 30, b.x. 30

77. Когда вызываются статические конструкторы классов в C#?
>> Один раз при первом создании экземпляра или при первом обращении к статическим членам класса.

78. Каким образом можно перехватить добавление и удаление делегата из события?
>> Для этого существуют специальные ключевые слова add и remove

79. Что произойдет при исполнении следующего кода? int i = 5; object o = i; long j = (long)o;?
>> Средой исполнения будет вызвано исключение InvalidCastException

80. Реализацией какого паттерна (шаблона проектирования) являются события в C#?
>> Издатель-подписчик (Publisher-Subscriber)

81. Чем отличаются константы и доступные только для чтения поля?
>> Константы инициализируются во время компиляции, доступные только для чтения поля — во время выполнения

82. Выберите элементы, которые нельзя пометить атрибутом?
>> Все перечисленное можно пометить атрибутом.

83. Что такое статическая переменная?
>> Переменная, значение которое общее для всех экземпляров класса.

84. Какое утверждение верно?
Значение констант может меняться во время выполнения программы
Константы не являются членами класса
Константы не могут быть инициированы через другие константы
>> Константы не могут определяться со словом static
Верных ответов нет

85. Что такое оператор foreach?
>> Это цикл по всем элементам некой определенной коллекции

86. Какие типы можно использовать в предложении foreach?
>> Массивы, коллекции. Классы в которых реализован интерфейс System.Collections.IEnumerable

87. Что означает модификатор virtual?
>> При наследовании класса. Данный метод м.б. переопределен в производных классах с помощью ключевого слова override.

88. Наследуются ли переменные с модификатором private?
>> Да, но они не являются доступными.

89. Можно ли запретить наследование от своего собственного класса?
>> Да. Для этого служит ключевое слово “sealed”.

90. Можно ли разрешить наследование класса, но запретить перекрытие метода?
>> Да. Указываем класс как public, а метод как sealed.

91. using System;
public class A { }
public class B : A { }
class App {static void Main(string[] args)
{   A a = new A();  B b = new B();
Console.Write(a is A);  Console.Write(a is B);
Console.Write(b is A); Console.WriteLine(b is B);}} Что будет выведено?
>> True false true true

92. using System;
class Point
{  public int X { get; set; }
public int Y { get; set; }
public Point(int xVal, int yVal)
{ X = xVal; Y = yVal; }
public Point()    {  }}
class App {static void Main(string[] args)
{ Point a = new Point(10, 16){ X = 100, Y = 100};    }} Какие значения будут у скрытых полей класса?
>> 100, 100

93. using System;
public interface I
{    void Go(); }
class A:I{ public void Go(){       Console.Write("A.Go()");   }}
class B : A{}
class C : B, I
{   public new void Go()      Console.Write("C.Go()");  }}
class App {static void Main(string[] args)
{ B b1 = new B();  C c1 = new C();
B b2 = c1;  b1.Go(); c1.Go();
b2.Go(); ((I)b2).Go(); }} Что будет выведено?
>> Go()C.Go()A.Go()C.Go()

94. Какое утверждение о реализации интерфейсов справедливо?
>> Реализация интерфейсов бывает явной и неявной

95. using System;
namespace ConsoleApplication6
{ class Program
{static void Main(string[] args)
{ A ab = new A();}
partial class A
{   public A() { Console.WriteLine("A created"); }    }
partial class A
{   static A() { Console.Write("A created ");} } }} Каким будет результат?
>> A created A created

96. using System;
namespace ConsoleApplication6
{  internal class A {  private int i = initA();
public static int initA() { return 2; }
public A() { print(); }
public virtual void print() { Console.Write(i + " "); }   }
internal class B : A  {  private int i = initB();
public static int initB() { return 8; }
public override void print() { Console.Write(i + " "); }  }
class Program
{   static void Main(string[] args)   {  A a = new B();    a.print();    } }}Что напечатает следующий код?
>> 8 8

97. Необходимыми условиями создания пользовательского атрибута являются?
>> Наследование от класса Attribute.

98. namespace Program
{class A{
public int id {get; set;}
public A(int newID){id = newID;}}
static void Main(string[] args)
{A[] arrayOfA = new A[4]; arrayOfA[0] =  new A(103);
arrayOfA[1] =  new A(4); arrayOfA[2] =  new A(58);
arrayOfA[3] =  new A(31); System.Array.Sort(arrayOfA);}}
В ходе выполнения данного кода генерируется исключение при вызове метода Sort(). Выберите одно из решений, реализация которого позволит этому коду отработать корректно?
>> Унаследовать класс от интерфейса IComparable и реализовать его метод CompareTo()

99. using System;
namespace ConsoleApplication6
{  interface IList
{ int Count { get; set; } }
interface ICounter { void Count(int i);}
interface IListCounter : IList, ICounter { }
class Program
{ void Test(IListCounter x) //1
{ x.Count(1); //2
x.Count = 1;  //3     
}
static void Main(string[] args)        {   } }} В какой строке ошибка?
>> 3

100. using System;
namespace ConsoleApplication1
{  class Program
{  static void Main(string[] args)
{ A ab = new B("quizful"); A ac = new C();        } }
class A { public A() { Console.WriteLine("A created"); } }
class B : A { private B() { Console.WriteLine("B created"); }
public B(string parameter) {
Console.WriteLine("B created with parameter: {0}",parameter); }}
class C : B { public C() { Console.WriteLine("C created"); } }} Какой будет результат?
>> Произойдет ошибка компиляции

101. Какое ключевое слово используется в производном классе для вызова конструктора класса-предка?  
>> base

102. using System;
namespace ConsoleApplication1
{  class Program
{ static void Main(string[] args)
{   B b = new B();   A a = b;   a.M();   } }
public class A
{ public virtual void M() { Console.WriteLine("This is A"); } }
public class B : A
{ public new void M() { Console.WriteLine("This is B"); } }}Что напечатает этот код?
This is A

103. Переменная типа А присваивается переменной типа В. В каком случае происходит упаковка (boxing)?
>> A = char, B = object.

104. Классификация форм наследования по Тимоти Бадду. Специализация?
>> Класс-наследник является специализированной формой родительского класса — в наследнике просто переопределяются методы.

105. Классификация форм наследования по Тимоти Бадду. Спецификация?
>> Дочерний класс реализует поведение, описанное в родительском классе. В С# эта форма реализуется наследованием от абстрактного класса.

106. Классификация форм наследования по Тимоти Бадду. Конструирование?
>> Класс-наследник использует методы базового класса, но не является его подтипом.

107. Классификация форм наследования по Тимоти Бадду. Расширение?
>> В класс-потомок добавляют новые методы, расширяя поведение родительского класса.

Нравится



Комментарии:

Добавить комментарий

Защитный код
Обновить