Исходный модуль содержит код:
internal class Point { public double x,y; public Point(double x, double y) { this.x = x; this.y = y; } public static void Move(double d){ x+=d; y+=d;} } class Program { static void Main() { Point p = new Point(1,1); Point.Move(2); } }
Метод Main разрабатывался для перемещения точки по обеим координатам на 2.
Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
- тип Point не доступен из класса Program
- значение полей x и y не определено
- (Правильный ответ) метод Move не может обращаться к полям объекта
- в классе Point не определен конструктор без параметров
- метод Move должен вызываться как метод объекта, а не метод класса
Исходный модуль содержит определения:
struct Лампочка { public int мощность; public Лампочка(int мощность){this.мощность=мощность;} }class Прибор { public Лампочка[] лам; public Прибор(Лампочка[] лам) { this.лам = лам;} public int Мощность { get { int s=0; for (int i = 0; i < лам.Length; i++) s += лам[i].мощность; return s; } } }
В классе Program определен метод Main, в теле которого находится код:
Лампочка л1 = new Лампочка(50);Лампочка л2 = new Лампочка(100); Лампочка[] лам = new Лампочка[] { л1, л2 }; Прибор пр1=new Прибор(лам); л2 = л1; Прибор пр2=new Прибор(лам); System.Console.WriteLine(пр1.Мощность + пр2.Мощность);
Укажите результат вывода на консоль после выполнения метода Main():
- (Правильный ответ) 300
- 250
- 400
- 100
- 200
Проанализируйте приведенный код.
delegate void MyEventHandler(ref int a); class MyEvent { public event MyEventHandler SomeEvent; public void OnSomeEvent(ref int d) { if (SomeEvent != null) SomeEvent(ref d); } }class EventTest{ static void Handler1(ref int b) { b = 2 * b; } static void Handler2(ref int c) { c = c + 12; Handler1(ref c);} public static void Main() { MyEvent evt = new MyEvent(); int a = int.Parse(System.Console.ReadLine()); if (a > 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler1); else if (a < 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler2); evt.OnSomeEvent(ref a); System.Console.WriteLine(a); } }
Пользователь собирается после запуска программы ввести число -5. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- программа завершится аварийно
- 7
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) 14
- -5
Приведенному ниже коду доступно пространство имен System.
class ExceptA : ApplicationException { } class ExceptB : ExceptA { } public static void Main() { string a = Console.ReadLine(); string b = Console.ReadLine(); try { if (a == «»end»») throw new ExceptA(); else if (b == «»exit»») throw new ExceptB(); else throw new Exception(); } catch (ExceptB) { Console.Write(«» Исключение-1″»); } catch (ExceptA) { Console.Write(«» Исключение-2″»); } catch (Exception){ Console.Write(«» Исключение-3″»); } }
Пользователь собирается запустить программу и ввести cont и exit. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- Исключение-1 Исключение-3
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) Исключение-1
- Исключение-3
- Исключение-1 Исключение-2
Программа предназначена для присвоения переменной t класса B значения 8 :
class A{ static public B b = null; public A() { B b = new B(); } public class B { static public int r; public int t;} }class Test{ public static void Main() { A a = new A(); ___________ }}
Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей поставленную задачу:
- B.t = 8;
- (Правильный ответ) A.b.t = 4;
- a.B.t = 8;
- a.b.t = 8;
- A.B.t = 8;
Проанализируйте приведенный код.
struct Auto { public string марка; public Auto(string m) { марка = m; }}class Водитель{ private string фамилия; private Auto марка; public Водитель(string фам, Auto м) { фамилия = фам; марка = м; } public override string ToString() { return string.Format(«»{0} имеет {1}»»,фамилия, марка.марка) ; } }class Program{ static void Main(string[] args) { Водитель[] водители = new Водитель[2]; Auto auto1 = new Auto(«»Мерседес»»); Auto auto2 = new Auto(«»Тойота»»); auto2 = auto1; водители[0] = new Водитель(«»Иванов»», auto1); водители[1] = new Водитель(«»Петров»», auto2); System.Console.WriteLine(водители[1]);} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- Иванов имеет Мерседес
- Петров имеет Форд
- (Правильный ответ) Петров имеет Мерседес
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- программа завершится аварийно
Исходный модуль содержит определение типов Газета, Журнал и Program:
struct Газета{ public int Страницы; }struct Журнал{ public int Страницы; public override string ToString() { return Страницы.ToString(); }}
В классе Program определен метод Main, в теле которого находится код:
Газета a; Журнал b;a.Страницы=20; b.Страницы =30;System.Console.Write(a.ToString() + «» «» + b.ToString());
Укажите результат вывода на консоль после выполнения метода Main():
- (Правильный ответ) Газета 30
- при запуске программы фиксируется ошибка: в структуре невозможно переопределить метод ToString()
- Газета Журнал
- 20 Журнал
- 50
Программа предназначена для вычисления и вывода квадрата числа 3:
public delegate double F( double x);class A { public int F(int x) { return x * x; } }class B { public static double F(double x) { return x * x; } }class Program{ static void Main() { F f = new F( _____ ); System.Console.WriteLine(f(3)); }}
Среди перечисленных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет получить корректную программу, решающую эту задачу:
- A.F
- (Правильный ответ) B.F
- new A().F
- B.F()
- new B().F
Исходный модуль содержит код:
class Room { private int nom1; public int nom2; public Room(int a, int b){ nom1 = a; nom2 = b; } public int Nom { get { return nom1 * 100 + nom2; } set { if (value<5555) {nom1 = value/100; nom2 = value%100; }} } } class Program { static void Main() { Room r = new Room(12,45); r.Nom = 4431; System.Console.Write(«»{0} «», r.Nom); } }
Укажите результат вывода на консоль после выполнения метода Main():
- 1245
- (Правильный ответ) 4431
- 4445
- 1231
Исходный модуль содержит определения:
interface IСмена { void Сменить(); }class Переключатель: IСмена{ bool s; public Переключатель(bool s){this.s = s;} public void Сменить() { s = !s; System.Console.Write(«» «» + s); }}class Счетчик : IСмена{ int s; public Счетчик(int s) { this.s = s; } public void Сменить() { s—; System.Console.Write(«» «» + s); }}
В этом же модуле определен класс Program c методом Main(), в котором содержится следующий код:
IСмена a = new Переключатель(true);IСмена b = new Счетчик(9),c;c = b; a.Сменить(); b.Сменить(); b = a; b.Сменить(); b = c; b.Сменить();
Укажите результат вывода на консоль после выполнения метода Main():
- при запуске фиксируется синтаксическая ошибка, указывающая на несовместимость типов при объявлении переменных в методе Main()
- False 8 7 6
- 8 7 6 False
- True 8 False 7
- (Правильный ответ) False 8 True 7
Проанализируйте приведенный код.
struct Auto { public string марка; public Auto(string m) { марка = m; }}class Водитель{ private string фамилия; private Auto марка; public Водитель(string фам, Auto м) { фамилия = фам; марка = м; } public override string ToString() { return string.Format(«»{0}у нравится {1}»»,фамилия, марка.марка) ; } }class Program{ static void Main(string[] args) { Водитель[] водители = new Водитель[2]; Auto auto1 = new Auto(«»Мерседес»»); Auto auto2 = new Auto(«»Тойота»»); водители[0] = new Водитель(«»Иванов»», auto1); водители[1] = new Водитель(«»Петров»», auto2); auto2.марка = «»Форд»»; System.Console.WriteLine(водители[1]);} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- программа завершится аварийно
- Петрову нравится Форд
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) Петрову нравится Тойота
- Иванову нравится Мерседес
Исходный модуль содержит код:
class Сотрудник{ private int id; private float зарплата; public Сотрудник(int i, float z) { id = i; зарплата = z; } public float Зарплата(int номер) { return номер < id ? зарплата : -1; } public void Зарплата(int номер, ref float зарпл) { if (номер < id) { float зрпл = зарплата; зарплата = зарпл; зарпл = зрпл; } } }class Program{ static void Main() { Сотрудник Иванов = new Сотрудник(12, 40000.0f); float z = 45000.0f; Иванов.Зарплата(10, ref z); System.Console.Write(«»Зарплата Иванова = «» + z);} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) 40000
- 45000
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- 20000
- -1
Проанализируйте приведенный код.
delegate void MyEventHandler(ref int a); class MyEvent { public event MyEventHandler SomeEvent; public void OnSomeEvent(ref int d) { if (SomeEvent != null) SomeEvent(ref d); } }class EventTest{ static void Handler1(ref int b) { b = 2 * b; } static void Handler2(ref int c) { c = c + 12; Handler1(ref c);} public static void Main() { MyEvent evt = new MyEvent(); int a = int.Parse(System.Console.ReadLine()); if (a > 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler1); else if (a < 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler2); evt.OnSomeEvent(ref a); System.Console.WriteLine(a); } }
Пользователь собирается после запуска программы ввести цифру 0. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) 0
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- программа завершится аварийно
- 24
- 12
Программа предназначена для присвоения переменной r класса B значения 4 :
class A{ public B b = null; public A() { B b = new B(); } public class B { static public int r; public int t;} }class Test{ public static void Main() { A a = new A(); ___________ }}
Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей поставленную задачу:
- B.r = 4;
- a.B.r = 4;
- A.b.r = 4;
- (Правильный ответ) A.B.r = 4;
- a.b.r = 4;
В классе Test определен приведенный ниже код:
public delegate int CallBackMethod(int a1, int a2); public static void Main() { int s = 0; s = CallMethod(new CallBackMethod(CBMethod)); System.Console.WriteLine(s); } public static int CallMethod(CallBackMethod cbMethod) { return cbMethod(11, 22); } public static int CBMethod(int a1, int a2) { return a1 + a2; }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- программа завершится аварийно
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) 33
- Test.CallMethod
- 0;
Приведенному ниже коду доступно пространство имен System.
class ExceptA : ApplicationException { } class ExceptB : ExceptA { } public static void Main() { string a = Console.ReadLine(); string b = Console.ReadLine(); try { if (a == «»end»») throw new ExceptA(); else if (b == «»exit»») throw new ExceptB(); else throw new Exception(); } catch (ExceptB) { Console.Write(«» Исключение-1″»); } catch (ExceptA) { Console.Write(«» Исключение-2″»); } catch (Exception){ Console.Write(«» Исключение-3″»); } }
Пользователь собирается после запуска программы ввести end и cont. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- Исключение-2 Исключение-3
- Исключение-3
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) Исключение-2
- Исключение-1 Исключение-2
Сборка Assembly2.cs, приведенная ниже:
class Test3{ static void Main() { ClassUser user = new ClassUser(); int count = user.count; System.Console.Write(«»count=»» + count); }}
ссылается на подключенную сборку Assembly1.cs, которая имеет следующий код:
internal class ClassUser{ public int count = 10; }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- count=0
- программа не выполнится, так как сборка Assembly2.cs создает объект user, в то время как класс ClassUser не принадлежит сборке Assembly2.cs
- count=10
- (Правильный ответ) будет выдано сообщение об ошибке компиляции, так как класс ClassUser недоступен в соответствии с его модификатором доступа
Исходный модуль содержит код классов ЧЕЛОВЕК,СОТРУДНИК и Program:
class ЧЕЛОВЕК { string фамилия; public ЧЕЛОВЕК(string фамилия) {this.фамилия = фамилия;} public string ФАМ { get {return фамилия; } } } class СОТРУДНИК:ЧЕЛОВЕК { string должность; public СОТРУДНИК(string фамилия, string должность):base(фамилия) { this.должность = должность; } public string ДОЛ() { return должность; } }
В классе Program определен метод Main, в теле которого находится код:
СОТРУДНИК P = new СОТРУДНИК(«»Петров»»,»»Кассир»»); System.Console.Write(«»{0} {1}»», ______________ );
Требуется вывести фамилию и должность сотрудника. Среди перечисленных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:
- P.ФАМ(), P.ДОЛ
- P.фамилия, P.ДОЛ()
- P.ФАМ, ((ЧЕЛОВЕК)P).ДОЛ()
- (Правильный ответ) P.ФАМ, P.ДОЛ()
Проанализируйте приведенный код.
abstract class Rectangle{ public double x=10, y=20; public Rectangle(double x, double y) { this.x = x; this.y = y; } abstract public int Zoom(int d); public double Zoom(double d) { x += d; y += d; return x * y; }}class Параллепипед : Rectangle{ public double z; public Параллепипед(double x, double y, double z) : base (x, y) { this.z = z; }}class Program { static void Main() { Параллепипед парал = new Параллепипед(6, 8, 10); парал.Zoom(-5); System.Console.Write(«»{0} {1} {2}»», парал.x, парал.y, парал.z);} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) будет обнаружена синтаксическая ошибка, связанная с тем, что класс Параллепипед не переопределяет абстрактный метод Zoom
- 1 3 10
- 1 3 5
- 5 15 10
- программа завершится аварийно
Приведенному ниже коду доступны пространства имен System и System.Collections.
public static void Main() { ArrayList al = new ArrayList(); al.Add(«»Иванов»»); al.Add(«»Петров»»); al.Add(3.1415f); al.Add(«»Ларин»»); foreach (string str in al) Console.Write(str + «» «»); }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- Иванов Петров Ларин
- программа завершится аварийно в момент добавления в коллекцию числа вместо фамилии
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) программа завершится аварийно в цикле foreach
- Иванов Петров 3,1415 Ларин
Проанализируйте приведенный ниже код.
class a{ static void Main() { int a = 0; try { a = Devide(a); } catch (System.SystemException) { System.Console.Write(«» Ошибка в данных! «»); goto M; } finally { System.Console.Write(«» Программа завершена!»»); } M: System.Console.WriteLine(«» a=»» + a); } static int Devide(int b) { if (b == 0) throw new System.FormatException(); else b = 100 / b; return b;} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) Ошибка в данных! Программа завершена! a=0
- a=0
- программа не выполняется, так как обнаружена синтаксическая ошибка, связанная с тем, что из блока catch не допускается выход с помощью оператора goto
- Ошибка в данных!
- Ошибка в данных! Программа завершена!
Исходный модуль содержит код:
internal class Rectangle{ public double width, hight; public void Zoom(double d) { width += d; hight += d; } public int Rectangle(double width, double hight) { this.width = width; this.hight = hight; return width * hight;}}class Program{ static void Main() { Rectangle p = new Rectangle(10, 20); p.Zoom(-5); System.Console.Write(«»{0} {1}»», p.width, p.hight);} }
Метод Main разрабатывался для изменения размера прямоугольника.
Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
- тип значения, возвращаемого методом Rectangle, должен быть double
- (Правильный ответ) конструктор не может возвращать значение
- конструктор не может следовать за методами класса
- метод Zoom должен вызываться как метод класса, а не метод объекта
- статический метод Main не может обращаться к полям объекта
Исходный модуль содержит классы A, B и Program:
class A{ public virtual string F1(){ return «»1″»; } public virtual string F2(){ return «»2″»; } }class B:A{ public new string F1() { return «»3″»; } public override string F2() { return «»4″»; } }
В классе Program определен метод Main, в теле которого находится код:
B p = new B();System.Console.Write(p.F1()+ p.F2());
Укажите результат вывода на консоль после выполнения метода Main():
- 23
- 13
- 12
- (Правильный ответ) 34
- 14
Исходный модуль содержит указание используемых пространств имен System, System.Collections и определения классов:
System.Collections и определения классов:class A {public virtual void Show(){Console.Write(«»SOS! «»);}}class B:A {public new void Show(){Console.Write(«»ВСЕМ! «»);} }class C:A {public override void Show(){Console.Write(«»УРА! «»); } }
В классе Program определен метод Main, в теле которого находится код:
ArrayList a = new ArrayList();a.Add(new A()); a.Add(new B()); a.Add(new C());for (int i=0; i<a.Count; i++) if(a[i] is A) ((A)a[i]).Show();
Укажите результат вывода после запуска программы на компиляцию и выполнение:
- (Правильный ответ) SOS! SOS! УРА!
- SOS! ВСЕМ! УРА!
- SOS! ВЕМ! SOS!
- генерируется исключение, так как невозможно преобразовать типы ссылок
- SOS! SOS! SOS!
Исходный модуль содержит определение типов Газета, Журнал и Program:
{ public int Страницы; public override string ToString() { return Страницы.ToString(); } }struct Журнал{ public int Страницы; }
В классе Program определен метод Main, в теле которого находится код:
Газета a; Журнал b;a.Страницы=20; b.Страницы =30;System.Console.Write(a.ToString() + «» «» + b.ToString());
Укажите результат вывода на консоль после выполнения метода Main():
- (Правильный ответ) 20 Журнал
- Газета 30
- 20 30
- 50
- при запуске программы фиксируется ошибка: в структуре невозможно переопределить метод ToString()
Исходный модуль содержит код:
class Студент{ string фамилия; public string Фамилия { get { return фамилия; } } public Студент(string ф) { фамилия = ф; }}class Магистр : Студент{ int курс; public int Курс { get { return курс; } } public Магистр(string фам, int к) : base(фам) { this.курс = к; }} class Test { static void Main() { Студент Иванов = new Магистр(«»Петров»»,4); System.Console.Write(«»{0} {1}»», _______________ ); }}
Требуется вывести фамилию и номер курса студента в виде: Петров 4. Среди перечисленных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:
- (Правильный ответ) Иванов.Фамилия, ((Магистр) Иванов).Курс
- Петров.Фамилия, ((Магистр)Петров).Курс
- Петров.Фамилия, (Магистр)Петров.Курс
- Иванов.Фамилия, ((Студент)Петров).Курс
- Петров.Фамилия, Петров.Курс
Проанализируйте приведенный код.
interface Интерфейс1 { string Метод(); }interface Интерфейс2 { string Свойство { get;} }class Класс1 : Интерфейс1{ public string Метод() { return «»Класс1: есть Интерфейс1 «»; } }class Класс2 : Класс1, Интерфейс2{ public string Метод() { return «»Класс2: есть Интерфейс1 «»; } public string Свойство { get { return «»Класс2: есть Интерфейс2 «»; } }}class Test{ static string GetValue(object ob) { string str = «»Найден интерфейс «»; if (ob is Интерфейс1) str = ((Интерфейс1)ob).Метод(); if (ob is Интерфейс2) { str += ((Интерфейс2)ob).Свойство; } return str; } public static void Main() { Интерфейс1 объект1 = new Класс2(); System.Console.WriteLine(GetValue(объект1));} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) Класс1: есть Интерфейс1 Класс2: есть Интерфейс2
- Класс2: есть Интерфейс2.
- Найден интерфейс
- программа не выполняется, так как обнаружена синтаксическая ошибка, связанная с тем, что посредством интерфейсной ссылки объект1 типа Интерфейс1 нельзя вызвать Свойство, определенное в Интерфейс2
- Класс2: есть Интерфейс1. Класс2: есть Интерфейс2.
Проанализируйте приведенный код.
delegate void MyEventHandler(ref int a); class MyEvent { public event MyEventHandler SomeEvent; public void OnSomeEvent(ref int d) { if (SomeEvent != null) SomeEvent(ref d); } }class EventTest{ static void Handler1(ref int b) { b = 2 * b; } static void Handler2(ref int c) { c = c + 12; } public static void Main() { MyEvent evt = new MyEvent(); int a = int.Parse(System.Console.ReadLine()); if (a > 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler1); else if (a < 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler2); evt.OnSomeEvent(ref a); System.Console.WriteLine(a); } }
Пользователь собирается после запуска программы ввести цифру 5. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- 22
- программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
- (Правильный ответ) 10
- 15
- программа завершится аварийно
Исходный модуль содержит код:
class ЧЕЛОВЕК { class ПАСПОРТ {} class ДОЛЖНОСТЬ {} } class Program { static void Main() { ______ P; } }
В методе Main требуется объявить ссылку P на тип ДОЛЖНОСТЬ. Среди приведенных ниже вариантов ответов укажите истинный вариант:
- вместо знаков подчеркивания укажите ЧЕЛОВЕК
- вместо знаков подчеркивания укажите ДОЛЖНОСТЬ
- вместо знаков подчеркивания укажите ЧЕЛОВЕК.ПАСПОРТ.ДОЛЖНОСТЬ
- вместо знаков подчеркивания укажите ЧЕЛОВЕК.ДОЛЖНОСТЬ
- (Правильный ответ) объявить требуемую ссылку в методе Main невозможно
Проанализируйте приведенный код.
interface Интерфейс1 { string Метод(); }interface Интерфейс2 { string Свойство {get;} }class Класс1 : Интерфейс1{ public string Метод() { return «»Есть Интерфейс1. «»; } }class Класс2 : Интерфейс1, Интерфейс2{ public string Метод() { return «»Есть Интерфейс1. «»; } public string Свойство { get { return «»Есть Интерфейс2. «»; } }}class Test{ static string GetValue(object ob) { string str = «»Найден интерфейс «»; Интерфейс1 I1 = ob as Интерфейс1; if (I1 != null) str = I1.Метод(); Интерфейс2 I2 = ob as Интерфейс2; if (I2 != null) { str += I2.Свойство; } return str; } public static void Main() { Класс2 объект2 = new Класс2(); System.Console.WriteLine( GetValue(объект2));} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- (Правильный ответ) Есть Интерфейс1. Есть Интерфейс2.
- <s
с дистанционным обучением?