База ответов ИНТУИТ

C#: ООП и классы

<<- Назад к вопросам

Проанализируйте приведенную ниже программу и укажите результат после попытки запустить программу на компиляцию и выполнение:
using System;class Program{    static int[] a = new int[] { 10, 30, 20 };    public delegate void F();    public static void R() { Array.Reverse(a); }    public static void S() { Array.Sort(a); }    public static void M() { int buf = a[0]; a[0] = a[a.Length - 1]; a[a.Length - 1] = buf; }    static void Main()    {      F f = new F(R); f += S; f -= R; f -= S;  f();      for (int i = 0; i < a.Length; i++) Console.Write(a[i]+" ");    }}  

(Отметьте один правильный вариант ответа.)

Варианты ответа
10 30 20
20 30 10
возникает исключение при попытке обращения по null-ссылке(Верный ответ)
30 20 10
10 20 30
Похожие вопросы
Проанализируйте приведенную ниже программу и укажите результат после попытки запустить программу на компиляцию и выполнение:
using System;class Program{    static int[] a = new int[] { 10, 30, 20 };    public delegate void F();    public static void R() { Array.Reverse(a); }    public static void S() { Array.Sort(a); }    public static void M() { int buf = a[0]; a[0] = a[a.Length - 1]; a[a.Length - 1] = buf; }    static void Main()    {      F f = new F(S); f += R; f += M; f -= S;  f();      for (int i = 0; i < a.Length; i++) Console.Write(a[i]+" ");    }}  
Проанализируйте приведенную ниже программу и укажите результат после попытки запустить программу на компиляцию и выполнение:
public delegate void Выдать(ref int a);class Начисление{    int s = 100;    public event Выдать Зарплата;    public void Начислить() { Зарплата(ref s);  }    public void Получите()  { System.Console.Write(s); }}class БумТрест {  public static void OnЗарплата(ref int s) { s = s + 10; } }class БумСтрой {  public static void OnЗарплата(ref int s) { s = s - 30; } }class Совместитель{  static void Main(string[] args)  {    Начисление нач = new Начисление();    нач.Зарплата += new Выдать(БумТрест.OnЗарплата);    нач.Зарплата += new Выдать(БумСтрой.OnЗарплата);    нач.Начислить();   нач.Получите(); } }  
Проанализируйте приведенную ниже программу и укажите результат после попытки запустить программу на компиляцию и выполнение:
public delegate void Выдать(ref int a);class Начисление{    int s = 100;    public event Выдать Зарплата;    public void Начислить() { Зарплата(ref s);  }    public void Получите()  { System.Console.Write(s); }}class БумТрест {  public static void OnЗарплата(ref int s) { s = s + 10; } }class БумСтрой {  public static void OnЗарплата(ref int s) { s = s - 30; } }class Совместитель{    static void Main(string[] args)  {    Начисление нач = new Начисление();    нач.Зарплата += new Выдать(БумТрест.OnЗарплата);    нач.Зарплата += new Выдать(БумСтрой.OnЗарплата);    нач.Зарплата -= new Выдать(БумТрест.OnЗарплата);    нач.Зарплата -= new Выдать(БумСтрой.OnЗарплата);    нач.Начислить();   нач.Получите(); } }  
Проанализируйте приведенную ниже программу и укажите результат после попытки запустить программу на компиляцию и выполнение:
public delegate void Выдать(ref int a);class Начисление{    int s = 100;    public event Выдать Зарплата;    public void Начислить() { Зарплата(ref s);  }    public void Получите()  { System.Console.Write(s); }}class БумТрест {  public static void OnЗарплата(ref int s) { s = s + 10; } }class БумСтрой {  public static void OnЗарплата(ref int s) { s = s - 30; } }class Совместитель{    static void Main(string[] args)  {    Начисление нач = new Начисление();    нач.Зарплата += new Выдать(БумТрест.OnЗарплата);    нач.Зарплата += new Выдать(БумСтрой.OnЗарплата);    нач.Зарплата += new Выдать(БумТрест.OnЗарплата);    нач.Зарплата -= new Выдать(БумСтрой.OnЗарплата);    нач.Получите(); нач.Начислить();} }  
Проанализируйте приведенный код.
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. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
В классе 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;  }  
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
В классе Test определен приведенный ниже код:
    public delegate int CallBackMethod(int a1, int a2);    public static void Main()    {  int s = 0;        if (System.Console.ReadLine() == "1")            s = CallMethod(new CallBackMethod(CBMethod1));        else s = CallMethod(new CallBackMethod(CBMethod2));        System.Console.WriteLine(s);    }    public static int CallMethod(CallBackMethod cbMethod)    {   return cbMethod(33, 22);  }    public static int CBMethod1(int a1, int a2)  {   return a1 + a2;  }    public static int CBMethod2(int a1, int a2)  {   return a1 - a2;   }  
Пользователь собирается после запуска программы ввести цифру 2. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
В классе Test определен приведенный ниже код:
    public delegate int CallBackMethod(int a1, int a2);    public static void Main()    {  int s = 0;        if (System.Console.ReadLine() == "1")            s = CallMethod(new CallBackMethod(CBMethod1));        else s = CallMethod(new CallBackMethod(CBMethod2));        System.Console.WriteLine(s);    }    public static int CallMethod(CallBackMethod cbMethod)    {   return cbMethod(33, 22);  }    public static int CBMethod1(int a1, int a2)  {   return a1 + a2;  }    public static int CBMethod2(int a1, int a2)  {   return a1 - a2;   }  
Пользователь собирается после запуска программы ввести цифру 1. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
Проанализируйте приведенный код.
struct Структура{  public string имя = "Без имени";    static public int курс=1;    public Структура(string и) { имя=и; }    public string Метод()    { return string.Format("Студент {0} учится на курсе {1}", имя, курс); }}class Test{   public static void Main()    {  Структура c2 = new Структура();        Структура c1 = new Структура("Зайцев");   c2 = c1;        System.Console.WriteLine(c2.Метод());}  }  
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
Проанализируйте приведенный код.
class Круг{  protected double r = 5;    public Круг(double r) { this.r = r; }    public virtual int Фигура() { return (int)(3.14*r*r); }}class Цилиндр : Круг{  double h = 10;    public Цилиндр(double r, double h) : base(r) { this.h = h; }    public override int Фигура() { return (int)(3.14*r*r*h); }}class Конус : Круг{  double h = 10;    public Конус(double r, double h) : base(r) { this.h = h; }    public override int Фигура() { return (int)(3.14*r*r*h/3.0); }}class Program{   static void Param(Круг fig)  { System.Console.Write(fig.Фигура()+" "); }    static void Main()    {    Param(new Конус(1, 2));    }}  
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение: