игра брюс 2048
Главная / Программирование / C#: основы / Тест 1

C#: основы - тест 1

Упражнение 1:
Номер 1
Укажите все истинные высказывания из приведенного перечня.
В консольном приложении метод Main

Ответ:

 (1) должен завершаться оператором return 

 (2) должен быть статическим методом 

 (3) может принимать аргументы 

 (4) должен возвращать код возврата 

 (5) должен находиться внутри статического класса 


Номер 2
В консольном приложении метод, являющийся точкой входа,

Ответ:

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

 (2) должен быть единственным методом в своем классе 

 (3) должен определять тип возвращаемого значения void 

 (4) должен выводить информацию в консоль 

 (5) в качестве источника ввода данных может использовать только клавиатуру 


Номер 3
Консольное приложение компилируется в

Ответ:

 (1) программу на байт-коде 

 (2) машинные команды 

 (3) язык ассемблера фирмы Microsoft 

 (4) программу на промежуточном языке MSIL 


Номер 4
  

В консольном приложении точкой входа в программу является метод,


Ответ:

 (1) который может иметь любое имя, а его определение в исходном коде класса Program должно быть первым 

 (2) который имеет имя Main и должен быть определен в классе Program 

 (3) который имеет имя Main и может быть определен в любом классе 

 (4) который имеет имя main и может быть определен в любом классе 

 (5) имя которого указывает пользователь при запуске приложения 


Номер 5
  

Метод, определяющий точку входа в программу на языке C# должен иметь имя


Ответ:

 (1) main 

 (2) WinMain 

 (3) MAIN 

 (4) Main 

 (5) ApplicationRun 


Номер 6
  

Исполняемый модуль в .NET Framework представлен


Ответ:

 (1) на промежуточном языке MSIL 

 (2) в виде команд операционной системы Windows 

 (3) в виде команд операционной системы, установленной на компьютере 

 (4) в виде операторов языка Java 

 (5) в виде операторов языка C# 


Упражнение 2:
Номер 1
Общеязыковая исполняющая среда CLR - это

Ответ:

 (1) компилятор языка C# 

 (2) центральная часть .NET Framework 

 (3) система, осуществляющая компоновку программ на разных языках 

 (4) система, осуществляющая компиляцию и выполнение управляемого кода 

 (5) система, которая предоставляет средства для визуального проектирования программ  


Номер 2
Среда Visual Studio .NET - это

Ответ:

 (1) неотъемлемая компонента .NET Framework  

 (2) одна из подсистем среды исполнения CLR 

 (3) компилятор языка C# 

 (4) интегрированная среда разработки программ для платформы .NET Framework 

 (5) вспомогательная система для разработки программ для платформы .NET Framework 


Номер 3
Платформа .NET Framework обеспечивает:

Ответ:

 (1) независимость от платформы 

 (2) повышенную безопасность 

 (3) управление базами данных 

 (4) управление версиями 

 (5) управление ресурсами вычислительной системы 


Номер 4
  

"Сбор мусора" (Garbage Collection) - это


Ответ:

 (1) одно из устройств ЭВМ, на которой функционирует среда исполнения CLR 

 (2) одна из функций среды исполнения CLR 

 (3) удаление из файловой системы временных файлов, созданных при выполнении программы 

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

 (5) принудительное освобождение ресурсов, ранее выделенных программе, при возникновении исключительной ситуации 


Номер 5
  

К функциям среды исполнения CLR относится:


Ответ:

 (1) объединение всех исходных модулей на языке С# в один исходный модуль 

 (2) препроцессорная обработка текста на языке MSIL 

 (3) сборка мусора 

 (4) трансляция кода MSIL в коды на языке машинных команд процессора 

 (5) обработка исключений 


Номер 6
  

Результатом трансляции исходной программы на языке C# может быть


Ответ:

 (1) исполняемый модуль на языке машинных команд процессора 

 (2) динамически компонуемая библиотека на языке машинных команд процессора  

 (3) динамически компонуемая библиотека на языке MSIL и метаданные 

 (4) исполняемый модуль на языке MSIL и метаданные 

 (5) программа на языке Visual Basic 


Упражнение 3:
Номер 1
Для вывода на консоль сообщения "Первая программа" разработана программа, код которой полностью приведен ниже:
class Test {
    public void Main()  {   System.Console.Write("Первая программа");    } }
 Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы: 
  

Ответ:

 (1) для вызова метода Write должен быть создан объект класса Console 

 (2) не указана директива using System для фиксации используемого пространства имен 

 (3) процедура Main обязана возвращать значение в виде целого числа 

 (4) процедура Main должна быть определена как статический метод 

 (5) в процедуре Main не указаны параметры 


Номер 2
Для вывода на консоль сообщения "Первая программа" разработана программа, код которой полностью приведен ниже:
class Test {
    static int main()
    {   System.Console.Write("Первая программа");    return  0;} }
Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:

Ответ:

 (1) в процедуре main не указаны параметры 

 (2) не указана директива using System для фиксации используемого пространства имен 

 (3) процедура main обязана возвращать значение в виде целого числа, отличного от 0 

 (4) точка входа в программу не может иметь имя main 

 (5) для вызова метода Write должен быть создан объект класса Console 


Номер 3
Для вывода на консоль сообщения "Первая программа" разработана программа, код которой полностью приведен ниже:
class Test {
    static int Main()  {   System.Console.Write("Первая программа");    } }
Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы

Ответ:

 (1) в функции Main не указаны параметры 

 (2) не указана директива using System для фиксации используемого пространства имен 

 (3) функция Main для завершения программы обязана использовать оператор return 

 (4) функция Main должна быть определена вне класса, так как она является точкой входа 

 (5) для вызова метода Write должен быть создан объект класса Console 


Номер 4
Для вывода на консоль сообщения "Проба пера" разработана программа, код которой полностью приведен ниже:
  
static void Main()
    {   System.Console.Write("Проба пера");    }
  
  Трансляция программы завершена неудачно. Какое из приведенных ниже высказываний раскрывает причину некорректности программы:
  

Ответ:

 (1) в процедуре Main не указаны параметры 

 (2) не указана директива using System для фиксации используемого пространства имен 

 (3) процедура Main обязана возвращать значение в виде целого числа 

 (4) процедура Main должна быть определена как метод класса 

 (5) метод Write принадлежит не классу, а объекту, и его вызов должен выполняться через предварительно созданный объект класса Console 


Номер 5
Для вывода на консоль сообщения "Изучаем C#" разработана программа, код которой полностью приведен ниже:
  
class MyClass
{
  static int Main()
  { Console.Write("Изучаем C#");  return 0; }
}
  
  Трансляция программы завершена неудачно. Какое из приведенных ниже высказываний раскрывает причину некорректности программы:
  

Ответ:

 (1) не указано пространство имен, в котором определен тип Console 

 (2) метод Main обязан возвращать значение 1 

 (3) метод Main может возвращать только тип void 

 (4) метод Main не может быть статическим методом 

 (5) метод Main может быть определен только в классе Program 


Номер 6
Для вывода на консоль сообщения "Что-то получается" разработана программа, код которой полностью приведен ниже:
  
using System;
class MyClass
{
  private void Main()
  { Console.Write("Что-то получается"); }
}
  
  Трансляция программы завершена неудачно. Какое из приведенных ниже высказываний раскрывает причину некорректности программы:
  

Ответ:

 (1) не указано пространство имен, в котором определен тип Console 

 (2) метод Main обязан возвращать значение целого типа 

 (3) метод Main может быть только общедоступным (public

 (4) метод Main должен быть статическим методом 

 (5) процедура Main должна определяться как глобальная процедура, а не как метод класса 


Упражнение 4:
Номер 1
Программа предназначена для вывода на консоль значения Y=Sn: 
class Program
{  static void Main() { 
        double S = 13, n = 7, Y;
        Y = ____; System.Console.Write(Y); 
}}
Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:

Ответ:

 (1) Math.Pow(s, n) 

 (2) S^n 

 (3) S**n 

 (4) System.Math.Exp(S, n) 

 (5) System.Math.Pow(S, n) 


Номер 2
Программа предназначена для вывода на консоль значения случайного вещественного числа в интервале [0,100): 
using System;
class Program
{   static void Main() { Random rnd = new Random();  Console.Write( ___ );  } }
Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:

Ответ:

 (1) rnd.NextDouble(0,99) 

 (2) Random.NextDouble()*99.0 

 (3) rnd.NextDouble()*100.0 

 (4) NextDouble(100) 

 (5) rnd.NextDouble(0,100) 


Номер 3
Программа предназначена для вывода на консоль значения случайного целого числа в интервале [50,100): 
using System;
class Program
{  static void Main() { Random rnd = new Random();  Console.Write( ___ );  } }
Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:

Ответ:

 (1) rnd.Next(50,100) 

 (2) rnd.Next() + 50 

 (3) Random.Next(50, 100) 

 (4) NextDouble()*50+50 

 (5) rnd.Next(50,99) 


Номер 4
Программа предназначена для вывода на консоль значения случайного вещественного числа в интервале [0,1): 
  
using System;
class Program
{  
   static void Main() { Random rnd = new Random();  Console.Write( ___ );  }
}
  
  Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:
  

Ответ:

 (1) rnd 

 (2) rnd.NextDouble() 

 (3) Random.NextDouble() 

 (4) NextDouble() 

 (5) rnd.NextDouble 


Номер 5
Программа предназначена для вывода на консоль значения числа "пи;":
  
class Program
{
    static void Main() { System.Console.Write( _________ ); }
}
  
  Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:
  

Ответ:

 (1) System.Math.PI() 

 (2) PI 

 (3) Math.PI 

 (4) System.Math.PI 

 (5) PI.Math. System 


Номер 6
Программа предназначена для вывода на консоль значения |-2|:
  
using System;
class Program
{
    static void Main() { Console.Write( _____ ); }
}
  
  Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей  поставленную задачу:
  

Ответ:

 (1) Abs(-2) 

 (2) Math.Abs(-2) 

 (3) Abs(-2).Math 

 (4) new Math().Abs(-2) 

 (5) Math.Abs.-2 


Упражнение 5:
Номер 1
Укажите все ключевые слова из приведенного перечня, которые определяют целочисленные типы данных:

Ответ:

 (1) sbyte 

 (2) ulong 

 (3) void 

 (4) decimal 

 (5) float 


Номер 2
Укажите все ключевые слова из приведенного перечня, которые определяют вещественные типы данных:

Ответ:

 (1) decimal 

 (2) sbyte 

 (3) ushort 

 (4) bool 

 (5) float 


Номер 3
Укажите все ключевые слова из приведенного перечня, которые не определяют вещественные и целочисленные типы данных:

Ответ:

 (1) void 

 (2) sbyte 

 (3) string 

 (4) bool 

 (5) float 


Номер 4
Укажите  из приведенного перечня тип, который может использоваться только в небезопасных (unsafe) участках кода на C#:

Ответ:

 (1) byte 

 (2) ulong 

 (3) void 

 (4) указатели(pointer


Номер 5
В приведенном перечне укажите все типы, соответствующие целым числам без знака:

Ответ:

 (1) byte 

 (2) long 

 (3) char 

 (4) decimal 

 (5) uint 


Номер 6
В приведенном перечне укажите все типы, соответствующие целым числам со знаком:

Ответ:

 (1) char 

 (2) double 

 (3) decimal 

 (4) int 

 (5) short 


Упражнение 6:
Номер 1
Для хранения значения типа decimal в C# необходима память, объем которой

Ответ:

 (1) определяется длиной машинного слова процессора 

 (2) 16 байт 

 (3) 4 байта или 8 байт в зависимости от значения 

 (4) спецификацией языка не определен и зависит от конкретной реализации транслятора 

 (5) 8 байт 


Номер 2
Для хранения значения типа ushort в C# необходима память, объем которой

Ответ:

 (1) 2 байта 

 (2) 4 байта 

 (3) 8 байт 

 (4) спецификацией языка не определен и зависит от конкретной реализации транслятора 

 (5) определяется длиной машинного слова процессора 


Номер 3
Для хранения значения типа char в C# необходима память, объем которой

Ответ:

 (1) спецификацией языка не определен и зависит от конкретной реализации транслятора 

 (2) 2 байта 

 (3) для ASCII – 1 байт, для Unicode – 2 байта 

 (4) 1 байт 

 (5) зависит от числа символов в константе 


Номер 4
  

Для хранения значения типа double в C# необходима память, объем которой


Ответ:

 (1) спецификацией языка не определен и зависит от конкретной реализации транслятора 

 (2) определяется длиной машинного слова процессора 

 (3) 4 байта 

 (4) 4 байта или 8 байт в зависимости от значения 

 (5) 8 байт 


Номер 5
  

Литерал 25E1 определяет константу типа:


Ответ:

 (1) float 

 (2) decimal 

 (3) double 

 (4) int 

 (5) uint 


Номер 6
  

Литерал 126m определяет константу типа:


Ответ:

 (1) float 

 (2) decimal 

 (3) ulong 

 (4) byte 

 (5) char 


Упражнение 7:
Номер 1
В теле метода Main() содержится следующий небезопасный код:
  class Program
  { unsafe static void Main() {
          int* A, B;
          int C=10, D=10;
          A = &C; B = &D;
          System.Console.Write(A == B);
   } }
Выполнение небезопасного кода разрешено. Укажите результат вывода на консоль после выполнения метода Main():

Ответ:

 (1) True 

 (2) False 

 (3) 1 

 (4) A == B 

 (5) 0 


Номер 2
В теле метода Main() содержится следующий код:
Random d1, d2;
d1 = new Random(1);   d2 = new Random(1);
System.Console.Write(d1 != d2);
Укажите результат вывода на консоль после выполнения метода Main():

Ответ:

 (1) False 

 (2) True 

 (3) 1 

 (4) System.Random 

 (5) d1 != d2 


Номер 3
В теле метода Main() содержится следующий код:
object d1 = new object();
object d2 = new object();
System.Console.Write(d1 == d2);
Укажите результат вывода на консоль после выполнения метода Main():

Ответ:

 (1) 1 

 (2) d1 == d2 

 (3) 0 

 (4) True 

 (5) False 


Номер 4
В теле метода Main() содержится следующий код:
  
        Random d1 = new Random(777);
        Random d2 = new Random(777);
        System.Console.Write(d1 == d2);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) True 

 (2) False 

 (3) 1 

 (4) System.Random 

 (5) либо True, либо False, но конкретный результат определить невозможно, так как неизвестны значения переменных d1 и d2 


Номер 5
В теле метода Main() содержится следующий код:
  
     Random d1 = new Random(555);
     Console.Write(d1);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) Random 

 (2) null 

 (3) System.Random 

 (4) 555 

 (5) текущее значение таймера в тиках 


Номер 6
В теле метода Main() содержится следующий код:
  
     Object a = 10 + 5;
     Object b =  9 + 6;
     Console.Write(a == b);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 15 

 (2) 0 

 (3) 1 

 (4) True 

 (5) False 


Упражнение 8:
Номер 1
В теле метода Main() содержится следующий код:
long a = new long();
ushort b = new ushort();
System.Console.Write(a == b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) программа не корректна, так как переменные a и b имеют разные типы 

 (2) программа не корректна, так как переменные a и b имеют неопределенное значение 

 (3) False 

 (4) True 

 (5) a == b 


Номер 2
В теле метода Main() содержится следующий код:
char a = new char();
int b = new int();
System.Console.Write(a == b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) программа не корректна, так как переменные a и b имеют несовместимые типы 

 (2) программа не корректна, так как переменные a и b имеют неопределенное значение 

 (3) True 

 (4) False 

 (5) a == b 


Номер 3
В теле метода Main() содержится следующий код:
float a = new float();
int b = new int();
System.Console.Write(a == b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

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

 (2) True 

 (3) False 

 (4) 0 

 (5) программа не корректна, так как переменные a и b имеют несовместимые типы 


Номер 4
В теле метода Main() содержится следующий код:
  
        int a = new int();
        int b = new int();
        System.Console.Write(a == b);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) System.Int32 

 (2) метод Main не выполняется: программа содержит ошибки 

 (3) True 

 (4) False 

 (5) 0 


Номер 5
В теле метода Main() содержится следующий код:
  
       long a = long.MaxValue;
       long b;
        System.Console.Write(a == b);    
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) True 

 (2) False 

 (3) либо True, либо False, но конкретный результат определить невозможно, так как неизвестно значение переменной b 

 (4) метод Main не выполняется: программа содержит ошибки 

 (5) System.Int64 


Номер 6
В теле метода Main() содержится следующий код:
  
      byte A = new byte();
      byte B = 0;
      System.Console.Write(A == B); 
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) True 

 (2) False 

 (3) либо True, либо False, но конкретный результат определить невозможно, так как неизвестно значение переменной A 

 (4) метод Main не выполняется: программа содержит ошибки 

 (5) 1 


Упражнение 9:
Номер 1
Требуется вывести на консоль максимально возможное значение типа ushort. Для решения этой задачи разработана программа: 
class Program
     { static void Main()    {   ushort a = 255;    System.Console.WriteLine( ___ );   }}
Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, решающую  поставленную задачу:

Ответ:

 (1) a.MaxValue 

 (2) ushort.MaxValue 

 (3) 65535 

 (4) a.ToString() 

 (5) a.MaxValue() 


Номер 2
Требуется вывести на консоль минимально возможное значение типа sbyte. Для решения этой задачи разработана программа: 
using System;
class Program
{
     static void Main()    {   sbyte a = 0;    Console.WriteLine( ___ );   }
}
Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, решающую  поставленную задачу:

Ответ:

 (1) sbyte.MinValue 

 (2) a.MinValue 

 (3) a.ToString() 

 (4) -128 

 (5) a.MinValue() 


Номер 3
Требуется вывести на консоль минимально возможное значение типа float. Для решения этой задачи разработана программа: 
using System;
class Program
{
     static void Main()    {   float  a = -0.0f;    Console.WriteLine( ___ );   }
}
Среди приведенных ниже кодов укажите код, подстановка  которого вместо знаков подчеркивания позволяет получить корректную программу, решающую  поставленную задачу:

Ответ:

 (1) a.MinValue 

 (2) a.ToString() 

 (3) -0.0 

 (4) a.MinValue() 

 (5) float.MinValue 


Номер 4
Требуется вывести на консоль максимально возможное значение типа short. Для решения этой задачи разработана программа:
  
using System;
class Program
{
     static void Main()    {   short a = 255;    Console.WriteLine( ___ );   }
}
  
  Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, решающую  поставленную задачу:
  

Ответ:

 (1) short.MaxValue 

 (2) 32767.ToString() 

 (3) a.MaxValue 

 (4) a.ToString() 

 (5) a.MaxValue() 


Номер 5
Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, которая выведет на консоль True:
  
using System;
class Program
{
    static void Main() { byte A = _______;  Console.WriteLine(A == Byte.MaxValue); }
}
  
  

Ответ:

 (1) new byte(255) 

 (2) 255 

 (3) 256 

 (4) 127 

 (5) byte.MaxValue 


Номер 6
Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, которая выведет на консоль True:
  
using System;
class Program
{
    static void Main() {  short A = ________ ;       Console.WriteLine(A == short.MinValue); }
}
  
  

Ответ:

 (1) -32768 

 (2) UInt16.MinValue 

 (3) Int16.MinValue 

 (4) 0 

 (5) -256 


Упражнение 10:
Номер 1
Отметьте среди перечисленных все случаи, в которых осуществляется неявное  (автоматическое) преобразование типа

Ответ:

 (1) double d = 5.6; 

 (2) double d = 128; 

 (3) float f = 5.6; 

 (4) long l = 250; 

 (5) long l = 250L 


Номер 2
Отметьте среди перечисленных одно условие, при выполнении которого осуществляется неявное  (автоматическое) преобразование типа переменной при ее присвоении переменной другого типа:

Ответ:

 (1) обе переменные содержат целочисленные данные 

 (2) обе переменные содержат вещественные данные 

 (3) тип приемника больше, чем тип источника 

 (4) тип приемника совместим с типом источника 

 (5) тип приемника больше, чем тип источника, и эти два типа совместимы 


Номер 3
Отметьте среди перечисленных все случаи, при выполнении которых возникает потеря информации:

Ответ:

 (1) int i = 256; byte b = (byte)i; 

 (2) int i = 255; byte b = (byte)i; 

 (3) uint u = 32000; short s = (short)u; 

 (4) uint u = 64000; short s = (short)u; 

 (5) float f = 456.5f; long l = (long)f; 


Номер 4
Отметьте среди перечисленных все случаи, в которых может возникать необходимость в явном преобразовании ссылки одного типа в ссылку другого типа (если это не ссылки на строки):

Ответ:

 (1) при выполнении арифметических операций 

 (2) при выполнении операции присваивания 

 (3) при подстановке аргумента вместо параметра 

 (4) при выполнении операции "упаковки" (boxing

 (5) при выполнении операции "распаковки" (unboxing


Номер 5
Отметьте среди перечисленных все случаи, в которых явное преобразование типа может привести к побочным эффектам потери точности или значимости:

Ответ:

 (1) преобразование byte в int 

 (2) преобразование uint в int 

 (3) преобразование byte в sbyte 

 (4) преобразование double в float 

 (5) преобразование short в double 


Номер 6
Отметьте среди перечисленных все случаи, в которых явное преобразование типа может привести к побочным эффектам потери точности или значимости:

Ответ:

 (1) преобразование double в long 

 (2) преобразование ulong в long 

 (3) преобразование byte в float 

 (4) преобразование int в long 

 (5) преобразование decimal в short 


Упражнение 11:
Номер 1
Укажите среди перечисленных все варианты оператора присваивания, в которых преобразование типа источника (правая часть оператора присваивания) к типу приемника (левая часть оператора присваивания), может быть только явным:

Ответ:

 (1) uint <---- byte 

 (2) byte <---- char 

 (3) decimal <---- float 

 (4) decimal <---- long 

 (5) decimal <---- double 


Номер 2
Укажите среди перечисленных все операторы присваивания, для которых будет выдано сообщение об ошибке преобразования типа:

Ответ:

 (1) uint b=10; b=b+b; 

 (2) int a=10; a=a*a; 

 (3) float f=10.0f; f=f+f; 

 (4) short s=10; s=s*s; 

 (5) ushort u=10; u=u*u; 


Номер 3
Укажите среди перечисленных  оператор присваивания, для которого будет выдано сообщение об ошибке преобразования типа:

Ответ:

 (1) byte b=10; b=b+b; 

 (2) int a=10; a=a*a; 

 (3) float f=10.0f; f=f+f; 

 (4) long s=10; s=s*s; 

 (5) uint u=10; u=u*u; 


Номер 4
Укажите среди перечисленных все варианты операции присваивания, в которых преобразование типа источника (правая часть оператора присваивания) к типу приемника (левая часть оператора присваивания), может быть только явным:

Ответ:

 (1) int <---- byte 

 (2) int <---- uint 

 (3) decimal <---- int 

 (4) long <---- double 

 (5) double <---- float 


Номер 5
Укажите среди перечисленных все варианты операции присваивания, в которых преобразование типа источника (правая часть оператора присваивания) к типу приемника (левая часть оператора присваивания), может быть только явным:

Ответ:

 (1) int <---- long 

 (2) decimal <---- short 

 (3) decimal <---- float 

 (4) double <---- int 

 (5) int <---- char 


Номер 6
Укажите среди перечисленных все варианты операции присваивания, в которых преобразование типа источника (правая часть оператора присваивания) к типу приемника (левая часть оператора присваивания), может быть только явным:

Ответ:

 (1) int <---- short 

 (2) short <---- long 

 (3) decimal <---- byte 

 (4) byte <---- sbyte 

 (5) char <---- int 


Упражнение 12:
Номер 1
В теле метода Main() содержится следующий код:
object box = 125;
short original;
original = _____;
Среди указанных ниже кодов укажите  код, подстановка которого вместо знаков подчеркивания позволяет присвоить переменной original значение 125:

Ответ:

 (1) (short)box 

 (2) (int)box 

 (3) box 

 (4) (short)(char)box 

 (5) (long)box 


Номер 2
В теле метода Main() содержится следующий код:
object box = 'A';
short original;
original = _________; 
Среди указанных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет присвоить переменной original значение 65:

Ответ:

 (1) (short)box 

 (2) (char)box 

 (3) box 

 (4) (object)box 

 (5) (short)(char)box 


Номер 3
В теле метода Main() содержится следующий код:
object box = 65;
char original;
original  = ____;  
Среди указанных ниже кодов укажите  код, подстановка которого вместо знаков подчеркивания позволяет присвоить переменной original символ А, имеющий код 65:

Ответ:

 (1) (char)box 

 (2) (char)(int)box 

 (3) (int)box 

 (4) box 

 (5) (object)box 


Номер 4
В теле метода Main() содержится следующий код:
  
object box = 5.125;
float original;
original  = ____;  
  
  Среди указанных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет присвоить переменной original значение 5.125:
  

Ответ:

 (1) (float)(double)box 

 (2) (float)box 

 (3) (double)box 

 (4) box 

 (5) (long)box 


Номер 5
В теле метода Main() содержится следующий код:
  
        object box = 44.5f;
        double original;
        original = ______ ;
  
  Среди указанных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет присвоить переменной original значение 44.5:
  

Ответ:

 (1) (float)(double)box 

 (2) (float)box 

 (3) (double)box 

 (4) box 

 (5) (double)(float)box 


Номер 6
В теле метода Main() содержится следующий код:
  
        object box = 127;
        ulong    original;
        original = _________ ;
  
  Среди указанных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет присвоить переменной original значение 127:
  

Ответ:

 (1) (uint)box 

 (2) (uint)(byte)box 

 (3) (uint)(int)box 

 (4) box 

 (5) (ulong)(int)box 


Упражнение 13:
Номер 1
В теле метода Main() содержится код, предназначенный для вычисления площади S круга, радиус R которого равен 12.
____  R=12;
double S = System.Math.PI*R*R;
Среди перечисленных ниже типов укажите все типы, подстановка каждого из которых вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:

Ответ:

 (1) char 

 (2) int 

 (3) double 

 (4) sbyte 

 (5) decimal 


Номер 2
В теле метода Main() содержится код, предназначенный для вычисления площади S круга, радиус R которого равен 12.
_______ R = 12;
float S = (float)System.Math.PI * (float)(R * R);
Среди перечисленных ниже типов укажите все типы, подстановка кажого из которых вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:

Ответ:

 (1) decimal 

 (2) long 

 (3) float 

 (4) sbyte 

 (5) char 


Номер 3
В теле метода Main() содержится код, предназначенный для вычисления радиус R круга,  площадь S которого равна 452,4.
____  S=452.4f;
double R = System.Math.Sqrt(S/ System.Math.PI);
Среди перечисленных ниже типов укажите все типы, подстановка каждого из которых вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:

Ответ:

 (1) long 

 (2) int 

 (3) double 

 (4) decimal 

 (5) float 


Номер 4
В теле метода Main() содержится код, предназначенный для вычисления расстояния от начала координат до точки с координатами x=3,y=4:
  
____  x=3,y=4;
double d;
d = System.Math.Sqrt(x*x + y*y);
  
  Среди перечисленных ниже типов укажите все типы, подстановка кажого из которых вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:
  

Ответ:

 (1) long 

 (2) char 

 (3) float 

 (4) sbyte 

 (5) decimal 


Номер 5
В теле метода Main() содержится код, предназначенный для вычисления большего из двух значений:
  
      double d;
      d = System.Math.Max( _________ );
  
  Среди перечисленных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу:
  

Ответ:

 (1) 3, 4M 

 (2) 3F, 4 

 (3) 3.0, 4UL 

 (4) "3","4" 

 (5) 3, 4 


Номер 6
В теле метода Main() содержится код, предназначенный для вычисления меньшего из двух значений:
  
      double d;
      d = System.Math.Min( _________ );
  
  Среди перечисленных ниже кодов укажите все коды, подстановка кажого из которых вместо знаков подчеркивания позволяет получить корректную программу:
  

Ответ:

 (1) 2E2, 15F 

 (2) 200, 15M 

 (3) 200F, 15L 

 (4) '200', '15' 

 (5) 200.0, 15 


Упражнение 14:
Номер 1
Память в стеке, выделенная для хранения локальной переменной, освобождается:

Ответ:

 (1) в процессе упаковки переменной в объектный образ 

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

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

 (4) на этапе исполнения программы при входе во вложенный блок 

 (5) в процессе распаковки переменной из объектного образа 


Номер 2
Укажите истинные высказывания из приведенного перечня:

Ответ:

 (1) локальная переменная, объявляемая в блоке, должна иметь имя, не совпадающее с другими именами локальных переменных этого блока 

 (2) локальная переменная, объявляемая в блоке, может иметь любое имя, не совпадающее с именами полей класса и с другими именами локальных переменных этого блока 

 (3) локальная переменная, объявляемая в блоке, должна иметь имя, не совпадающее с формальными параметрами метода 

 (4) локальная переменная, объявляемая в блоке, должна иметь уникальное имя в программе 


Номер 3
Укажите истинное высказывание из приведенного перечня:
Если имя локальной переменной, объявленной в блоке, совпадает с именем поля, то:

Ответ:

 (1) поле в блоке перекрывается переменной, то есть поле становится невидимым 

 (2) переменная в блоке перекрывается полем, то есть переменная становится невидимой 

 (3) будет выдана синтаксическая ошибка 

 (4) для доступа к полю необходимо использовать полную квалификацию имени 

 (5) будет сгенерировано исключение на этапе исполнения программы 


Номер 4
Укажите варианты всех истинных высказываний из приведенного перечня:
  

Область памяти для хранения локальной переменной выделяется:


Ответ:

 (1) в процессе перевода исходного кода в код на языке MSIL 

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

 (3) на этапе исполнения программы, причем каждый раз, когда выполняется блок, в котором эта переменная объявлена 

 (4) на этапе исполнения программы при входе в метод, в котором эта переменная объявлена 

 (5) на этапе исполнения программы при достижении точки объявления этой переменной 


Номер 5
Укажите истинное высказывание из приведенного перечня:
  

Модификатор public в объявлении локальной переменной означает что


Ответ:

 (1) переменная будет доступна во всех методах этого класса 

 (2) переменная будет доступна во всех блоках этого метода 

 (3) переменная будет доступна во всех классах с модификатором public 

 (4) переменная будет доступна во всех методах с модификатором public 

 (5) это объявление ошибочно 


Номер 6
Укажите истинное высказывание из приведенного перечня:
  

Модификатор static в объявлении локальной переменной типа int означает что


Ответ:

 (1) переменная будет создаваться при запуске программы 

 (2) это объявление ошибочно 

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

 (4) переменная не будет уничтожаться при выходе из метода, в котором она объявлена 

 (5) значение этой переменной после ее создания изменить нельзя 


Упражнение 15:
Номер 1
Укажите все варианты, относящиеся к недопустимому назначению начального значения (инициализации) локальной  переменной х:

Ответ:

 (1) int x = 56; 

 (2) int x = new int(56); 

 (3) int x = new int(); 

 (4) int y, x=y; 

 (5) int y=0, x=y; 


Номер 2
Укажите варианты, относящийся к допустимому назначению начального значения (инициализации) локальным  переменным:

Ответ:

 (1) float x = 56.5; 

 (2) char x = 'A'; 

 (3) char x = 65; 

 (4) byte x = new byte(0); 

 (5) byte y=287; 


Номер 3
Укажите все варианты, относящиеся к допустимому назначению начального значения (инициализации) локальным  переменным:

Ответ:

 (1) double x = -36.5; 

 (2) ushort x = -35; 

 (3) short x = 65500; 

 (4) decimal x = 56.34; 

 (5) float y=0.24E5f; 


Номер 4
Укажите все истинные утверждения, относящиеся к назначению начального значения (инициализации) локальных  переменных:

Ответ:

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

 (2) для переменных, у которых предусмотрен инициализатор, начальным значением является значение инициализирующего выражения, а для остальных локальных переменных - значение по умолчанию в соответствии с типом переменной 

 (3) для переменных, у которых предусмотрен инициализатор, начальным значением является значение инициализирующего выражения, а для остальных локальных переменных начальное значение не назначается 

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

 (5) для локальной переменной инициализатор может быть любым совместимым с типом переменной выражением, значение которого может быть вычислено на момент выполнения объявления 


Номер 5
Укажите все истинные утверждения из приведенного перечня:
  

Локальная переменная - это переменная,


Ответ:

 (1) объявленная в заголовке метода 

 (2) имя которой обязательно имеет префикс Local 

 (3) объявленная в теле метода 

 (4) объявленная в одном из блоков внутри метода 

 (5) объявленная с модификатором protected 


Номер 6
Укажите все истинные утверждения из приведенного перечня:
  

Локальная переменная доступна (видна)


Ответ:

 (1) в методе, в котором она объявлена 

 (2) только в том блоке, в котором она объявлена 

 (3) в том блоке, в котором она объявлена и во вложенных в него блоках 

 (4) во всех методах своего класса 

 (5) только в тех методах своего класса, которые имеют модификатор public 


Упражнение 16:
Номер 1
В теле метода Main() содержится следующий программный код:
short  a = 10, b = 4;
double c;
c = (double)((a % 4) / (b % 10));
System.Console.Write(c);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) 0,5 

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

 (4) 0,9 


Номер 2
В теле метода Main() содержится следующий программный код:
int  a = 5, b = 10, c;
c = a+b * a-b / a;
System.Console.Write(c);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) 13 

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

 (4) 53 


Номер 3
В теле метода Main() содержится следующий программный код:
short a = 1, b = 4, c;
c = (short)((a << 8 )+b);
System.Console.Write(c);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 12 

 (2) 516 

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

 (4) 260 


Номер 4
В теле метода Main() содержится следующий программный код:
  
short  a = 10, b = 4;
double c;
c = (double)(a%4) / (double)(b%10);
System.Console.Write(c);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 0 

 (2) 0,5 

 (3) метод Main не выполняется: программа содержит ошибки 

 (4) 0,9 


Номер 5
В теле метода Main() содержится следующий программный код:
  
        int x,y;
        x = int.Parse(System.Console.ReadLine());
        y = x<10 ? 55 : x<20? 35 : 45;
        System.Console.Write(y);
  
  Укажите результат вывода на консоль после выполнения метода Main(), если пользователь ввел символы 10 и нажал клавишу ENTER:
  

Ответ:

 (1) 45 

 (2) 55 

 (3) 3545 

 (4) 35 


Номер 6
В теле метода Main() содержится следующий программный код:
  
        int x;
        string y;
        x = int.Parse(System.Console.ReadLine());
        y = x<40 ? "Куда?" : x<60? "Куда глаза глядет" : "В гости";
        System.Console.Write(y); 
  
  Укажите результат вывода на консоль после выполнения метода Main(), если пользователь ввел символы 55 и нажал клавишу ENTER:
  

Ответ:

 (1) Куда глаза глядет 

 (2) В гости 

 (3) Куда? 

 (4) Куда? Куда глаза глядет 


Упражнение 17:
Номер 1
В теле метода Main() содержится следующий программный код:
int  a, b=4;
a = 5%3 + 5 * ++b;
System.Console.Write(a);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 27 

 (2) 35 

 (3) метод Main() не может быть выполнен: трансляция программы завершается неудачно 

 (4) 34 


Номер 2
В теле метода Main() содержится следующий программный код:
int  a ,b=4;
a = 5%3 + 5 * b++;
System.Console.Write(a);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 27 

 (2) 22 

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

 (4) 28 


Номер 3
В теле метода Main() содержится следующий программный код:
int a;
float b = 4.5f;
a = (int)b++;
b = b - a;
System.Console.Write(++b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 1,5 

 (2)

 (3) метод Main() не может быть выполнен: трансляция программы завершается неудачно 

 (4) 2,5 


Номер 4
В теле метода Main() содержится следующий программный код:
  
short  a ,b=4;
a = 5%3 + 5 * ++b;
System.Console.Write(a);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 27 

 (2) 22 

 (3) метод Main не выполняется: программа содержит ошибки 

 (4) 20 


Номер 5
В теле метода Main() содержится следующий программный код:
  
        char a='B',c;
        int b = 0;
        c = (char)(++a+b++);
        System.Console.Write(c);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) D 

 (2) C 

 (3) метод Main не выполняется: программа содержит ошибки 

 (4) B 


Номер 6
В теле метода Main() содержится следующий программный код:
  
        char a='B',c;
        int b = 2;
        c = (char)(++a  -  --b);
        System.Console.Write(c);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) B 

 (2) C 

 (3) A 

 (4) D 


Упражнение 18:
Номер 1
В теле метода Main() содержится приведенный ниже программный код:
byte a = 0x8, b, maska =_____;
b = (byte)(a & maska);
System.Console.WriteLine(b);
Среди приведенных ниже инициализаторов укажите один инициализатор, подстановка которого вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 8:

Ответ:

 (1) 0x0 

 (2) 0x1 

 (3) 0xF 

 (4) 0x7 


Номер 2
В теле метода Main() содержится приведенный ниже программный код:
byte a = 0x8, b, maska =____;
b = (byte)(a++ | maska);
System.Console.WriteLine(b);
Среди приведенных ниже инициализаторов укажите один инициализатор, подстановка которого вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 24:

Ответ:

 (1) 0x10 

 (2) 0x7 

 (3) (byte)~a 

 (4) 0xF 


Номер 3
В теле метода Main() содержится приведенный ниже программный код:
byte a = 0x8, b, maska =____;
b = (byte)(a ^ maska++);
System.Console.Write(b);
Среди приведенных ниже инициализаторов укажите один инициализатор, подстановка которого вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 6:

Ответ:

 (1) 0xF 

 (2) 0x7 

 (3) (byte)~a 

 (4) 0xE 


Номер 4
В теле метода Main() содержится приведенный ниже программный код:
  
byte a=0x8C,  b,  maska=_____;
b = (byte)(a ^ maska); 
System.Console.WriteLine(b);
  
  Среди приведенных ниже инициализаторов укажите все инициализаторы, подстановка каждого из которых вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 255:
  

Ответ:

 (1) 0x73 

 (2) ~a 

 (3) 115 

 (4) 0x8C 


Номер 5
В теле метода Main() содержится приведенный ниже программный код:
  
        sbyte a = 0x7B, b, maska = _____;
        b = (sbyte)(a & maska);
        System.Console.WriteLine(b);
  
  Среди приведенных ниже инициализаторов укажите все инициализаторы, подстановка каждого из которых вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 11:
  

Ответ:

 (1) 0x0F 

 (2) 15 

 (3) 14 

 (4) 0xF 

 (5) 0xD 


Номер 6
В теле метода Main() содержится приведенный ниже программный код:
  
        byte a = 0xC3, maska =______;
        sbyte b;
        b = (sbyte)(a ^ maska);
        System.Console.WriteLine(b);
  
  Среди приведенных ниже инициализаторов укажите все инициализаторы, подстановка каждого из которых вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение  (-1):
  

Ответ:

 (1) ~a 

 (2) 0xF 

 (3) 0x3C 

 (4) (byte)~a 

 (5) 0 


Упражнение 19:
Номер 1
В теле метода Main() содержится следующий программный код:
int a = 2, b;
b = (byte)a==2?(a << 2 + 1 ):0; 
System.Console.WriteLine(b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

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

 (3) 16 

 (4)


Номер 2
В теле метода Main() содержится следующий программный код:
int a=2, b;
b = (sbyte)(a >> 1);
System.Console.WriteLine(b==1?1:0);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
В теле метода Main() содержится следующий программный код:
int a = 2, b;
b = (byte)a++ == 3 ? 0 : (a << 1 + 2);
System.Console.WriteLine(b);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) 24 

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

 (4)


Номер 4
В теле метода Main() содержится следующий программный код:
  
sbyte a=-1, b;
b = (sbyte)(a + 1);
System.Console.WriteLine(b);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 0 

 (2) -1 

 (3) 128 

 (4) 63 


Номер 5
В теле метода Main() содержится следующий программный код:
  
        byte  a = 0xFF;
        sbyte b;
        b = (sbyte)(a >> 4);
        System.Console.WriteLine(b);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) -1 

 (2) FF 

 (3) -15 

 (4) 15 


Номер 6
В теле метода Main() содержится следующий программный код:
  
        sbyte  a = -128;
        sbyte b;
        b = (sbyte)(a >> 4);
        System.Console.WriteLine(b);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) -16 

 (2) 16 

 (3) -8 

 (4) 8 


Упражнение 20:
Номер 1
Из приведенных ниже фрагментов кода укажите все фрагменты, соответствующие объявлению ссылки на массив массивов:

Ответ:

 (1) byte[,] a; 

 (2) float[][] a; 

 (3) string[] a; 

 (4) char** a; 

 (5) int *a[]; 


Номер 2
Из приведенных ниже фрагментов кода укажите все фрагменты, соответствующие объявлению ссылки на одномерный массив, элементами которого являются символы:

Ответ:

 (1) char[] a; 

 (2) char[][] a; 

 (3) string[] a; 

 (4) char** a; 

 (5) char *a; 


Номер 3
Из приведенных ниже фрагментов кода укажите  фрагмент, соответствующий объявлению ссылки на двухмерный массив, элементами которого являются строки:

Ответ:

 (1) string [][] a; 

 (2) char[] a; 

 (3) string ** a; 

 (4) char *a[]; 

 (5) string [,] a; 


Номер 4
Из приведенных ниже фрагментов кода укажите  фрагмент, соответствующий объявлению ссылки на двухмерный массив, элементами которого являются символы:

Ответ:

 (1) char[,] a; 

 (2) char[][] a; 

 (3) string[] a; 

 (4) char** a; 

 (5) char *a[]; 


Номер 5
Из приведенных ниже фрагментов кода укажите все фрагменты, соответствующие объявлению ссылок A,B на одномерный массив, элементами которого являются целые числа:

Ответ:

 (1) int[]A,B; 

 (2) int []A,[]B; 

 (3) int[]A; int[]B; 

 (4) int A[],B[]; 

 (5) int A[]; int B[]; 


Номер 6
Из приведенных ниже фрагментов кода укажите все фрагменты, соответствующие объявлению ссылок A,B на массив, элементами которого являются массивы вещественных чисел:

Ответ:

 (1) float[ [] ]A,B; 

 (2) float[,]A; float[,]B; 

 (3) float[,] A,B; 

 (4) float[][] A,B; 

 (5) float[][]A; float[][]B; 


Упражнение 21:
Номер 1
В теле метода Main() содержится следующий программный код:
int[] a, b, c;
a = new int[] { 44, 55 };
b = new int[] { 44, 55 };
c = new int[] { 88, 89 }; 
c = a;
System.Console.Write((a == b) + ":" + (a == c));
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) метод Main() не может быть выполнен: трансляция программы завершается неудачно 

 (2) True:False 

 (3) False:False 

 (4) True 

 (5) False:True 


Номер 2
В теле метода Main() содержится следующий программный код:
int[] a, b, c;
a = new int[] { 44, 55 };
b = new int[] { 44, 55 };
c = a;
c = new int[] { 88, 89 }; 
System.Console.Write((a == b) + ":" + (a == c));
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

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

 (2) False:False 

 (3) True:False 

 (4) False 

 (5) False:True 


Номер 3
В теле метода Main() содержится следующий программный код:
int[] a, b, c;
a = new int[] { 44, 55 };
b = new int[] { 44, 55 };
c = a;
c = new int[] { 88, 89 }; 
System.Console.Write((a = b) + ":" + (a = c));
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) метод Main() не может быть выполнен: трансляция программы завершается неудачно 

 (2) True: True 

 (3) 44, 55:88, 89 

 (4) System.Int32[]:System.Int32[] 

 (5) True: False 


Номер 4
В теле метода Main() содержится следующий программный код:
  
int[] a,b,c;
a = new int[] { 55, 77 };
b = new int[] { 55, 77 };
c = new int[] { 88, 89 };
System.Console.Write(a == b);
System.Console.Write(":");
System.Console.Write(a == c);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) True:False 

 (3) False:False 

 (4) True:System.Int32[] 


Номер 5
В теле метода Main() содержится следующий программный код:
  
        int[] a, b, c;
        a = new int[0];
        b = new int[0];
        c = new int[1];
        System.Console.Write(a == b);
        System.Console.Write(":");
        System.Console.Write(a == c);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) False:True 

 (2) метод Main не выполняется: программа содержит ошибки 

 (3) True:False 

 (4) False:False 


Номер 6
В теле метода Main() содержится следующий программный код:
  

Укажите результат вывода на консоль после выполнения метода Main():

int[] a, b, c; a = new int[1] {5}; b = new int[1] {9}; c = new int[0]; System.Console.Write(a.ToString() == b.ToString()); System.Console.Write(":"); System.Console.Write(a.ToString() == c.ToString());

Ответ:

 (1) True:False 

 (2) метод Main не выполняется: программа содержит ошибки 

 (3) True:True 

 (4) False:False 


Упражнение 22:
Номер 1
Следующий фрагмент метода Main() содержит одну или несколько ошибок синтаксиса:
int[,] A = new int[,] { {55, 77},
            {34, 85}  };
int[,] B = new int[,] { { 11, 22 } };
int[] C = new int[3];
C = A;
System.Console.Write(C);
Из приведенных высказываний укажите  высказывание, которое раскрывает причины некорректности фрагмента:

Ответ:

 (1) в объявлении массива В не задана инициализация других строк 

 (2) в объявлении массивов А и В должна быть задана размерность 

 (3) массив С содержит меньше элементов, чем массив А, поэтому операция присваивания недопустима 

 (4) ссылка на массив А не может быть преобразована в ссылку на массив С 

 (5) метод System.Console.Write не допускает использование в качестве аргумента имени массива 


Номер 2
Следующий фрагмент метода Main() содержит одну или несколько ошибок синтаксиса:
 int[,] A =  { {55, 77, 66},   {34, 85, 66}  };
 int[,] B = new int[2,3] { { 11, 22 }, { 33, 44 } };
 int[] C = new int[7];
 C = (int[])A;
 System.Console.Write(C);
Из приведенных высказываний укажите все высказывания, которые раскрывают причины некорректности фрагмента:

Ответ:

 (1) в объявлении массива В не задана инициализация третьей строки  

 (2) в объявлении массива А пропущены ключевые слова: new int[,] 

 (3) после выполнения выражения C=(int[])A; у массива С последний элемент не получит значения, поэтому операция присваивания недопустима 

 (4) ссылка на массив А не может быть преобразована в ссылку на массив С 

 (5) метод System.Console.Write не допускает использование в качестве аргумента имени массива 


Номер 3
Следующий фрагмент метода Main() содержит одну или несколько ошибок синтаксиса:
 int[2,3] A =  { {55, 77, 66},   {34, 85, 66}  };
 int[,] B = new int[2,2] { { 11, 22 }, { 33, 44 } };
 int[] C = new int[];
 A = B;
Из приведенных высказываний укажите все высказывания, которые раскрывают причины некорректности фрагмента:

Ответ:

 (1) в объявлении массива А недопустимо в данном месте указывать размерность 

 (2) в объявлении массива А пропущены ключевые слова: new int[,] 

 (3) в объявлении массива В недопустимо указывать размерность, если задана инициализация 

 (4) ссылка на массив В не может быть преобразована в ссылку на массив А, так как массивы имеют разную размерность 

 (5) в объявлении массива С должна быть указана размерность 


Номер 4
Для поэлементного сложения массива A и B и запоминания результата в массиве С разработан приведенный ниже исходный код, который размещен в методе Main():
  
int[] A,B,C;
A = new int[] { 55, 77 };
B = new int[] { 11, 22, 33, 44 };
C = new int[A.Length];
C = A + B;
System.Console.Write(C);
  
  Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

 (1) переменные B и C не являются ссылками на массив 

 (2) массивы A и B имеют разное количество элементов 

 (3) область памяти, выделенная под массив C, недостаточна по объему 

 (4) операция + не определена для ссылок на массив 

 (5) метод System.Console.Write не допускает использование в качестве аргумента ссылок 


Номер 5
Для перестановки местами первого и последнего элемента массива A разработан приведенный ниже исходный код, который размещен в методе Main():
  
        int[] A, B;
        int C;
        A = new int[] { 55, 77, 99 };
        B = A;
        C = B[0]; B[0] = B[B.Length]; B[B.Length] = C
  
  При выполнении программы возникло исключение. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

 (1) переменная B не является ссылкой на массив 

 (2) память под массив B не выделена 

 (3) ссылка B не инициализирована 

 (4) ссылки A и B не могут ссылаться на одну и ту же область памяти 

 (5) значение индекса при обращении к элементу массива выходит за границы массива 


Номер 6
Для перестановки элементов массива A в обратном порядке разработан приведенный ниже исходный код, который размещен в методе Main():
  
        short[] A;
        short[] B; 
        A = new short[] { 1, 2, 3 };
        B = new short[2]; 
        B = A; 
        System.Array.Reverse(B,1,3);
  
  При выполнении программы возникло исключение. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

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

 (2) попытка обратиться ячейке памяти за границами памяти, выделенной для массива A 

 (3) элементы массива B не инициализированы 

 (4) количество элементов в массиве A не определено 

 (5) ссылки A и B указывают на массивы с разным количеством элементов 


Упражнение 23:
Номер 1
Программа предназначена для заполнения матрицы и вывода в консоль двух элементов матрицы:
class Program
{
    static void Main()
    {
        int[,] a;
        a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
        System.Console.Write("{0} {1} ", ______);
    }
}
Среди приведенных кодов укажите  код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения: 2  8

Ответ:

 (1) a[2,1], a[2,3] 

 (2) a[0,1], a[2,1] 

 (3) a[1,0], a[1,2] 

 (4) a[1,2], a[3,2] 


Номер 2
Программа предназначена для заполнения матрицы и вывода в консоль двух элементов матрицы:
class Program
{
    static void Main()
    {
        int[,] a;
        a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        System.Console.Write("{0} {1} ", _______);
    }
}
Среди приведенных кодов укажите  код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения: 3  7

Ответ:

 (1) a[1,3], a[3,1] 

 (2) a[2,0], a[0,2] 

 (3) a[0, 2], a[2, 0] 

 (4) a[3,1], a[1,3] 


Номер 3
Программа предназначена для заполнения матрицы и вывода в консоль двух элементов матрицы:
class Program
{
    static void Main()
    {
        int[,] a;
        a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        System.Console.Write("{0} {1} ", _______);
    }
}
Среди приведенных кодов укажите код, подстановка  которого вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения: 4  8

Ответ:

 (1) a[1,0], a[2,1] 

 (2) a[2,1], a[3,2] 

 (3) a[0, 1], a[1, 2] 

 (4) a[1,2], a[2,3] 


Номер 4
Программа предназначена для заполнения и вывода элементов матрицы:
  
using System;
class Program
{
    static void Main()
    {
        int[,] a;
        a = new int[2,2] { {22,33}, {44,55} };
        Console.Write( ____ );
    }
}
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения: 22  44  33  55
  

Ответ:

 (1) "{0} {2} {1} {3}", a[0,0], a[0,1], a[1,0], a[1,1] 

 (2) "{0} {3} {2} {1}", a[0,0], a[1,1], a[0,1], a[1,0] 

 (3) "{0} {1} {2} {3}", a[0,0], a[0,1], a[1,0], a[1,1] 

 (4) "{0} {1} {3} {2}", a[0,0], a[1,0], a[0,1], a[1,1] 


Номер 5
Программа предназначена для вывода сообщения ОГО:
  
using System;
class Program
{
    static void Main()
    {
        char[,] a;
        char a = new char[3, 3] { { 'Н', 'О', 'С' }, { 'Г', 'О', 'Д' }, { 'C', 'О', 'Н' } };
        Console.Write( _____________ );
    }
}
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, решающей эту задачу
  

Ответ:

 (1) "{0}{1}{2}", a[1,0], a[0,1], a[1,2] 

 (2) "{0}{1}{2}", a[1,2], a[2,1], a[2,2] 

 (3) "{0}{1}{2}", a[0,1], a[1,0], a[1,1] 

 (4) "{2}{1}{0}", a[0,1], a[1,0], a[0,1] 


Номер 6
Программа предназначена для заполнения и вывода элементов матрицы:
  
using System;
class Program
{
    static void Main()
    {
        int[,] a;
        int B = 4;
        a = new int[2, 2] { _________ };
        Console.Write("{0},{1},{2},{3}", a[1,1], a[1,0], a[0,0], a[0,1]);
    }
}
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения: 1, 2, 3, 4
  

Ответ:

 (1) {3,2}, {4,1} 

 (2) {3,4}, {2,1} 

 (3) 3, 4, 2, 1  

 (4) {3,B},{2,1} 


Упражнение 24:
Номер 1
В теле метода Main() содержится следующий код:
int s = 0;
int[,] a;
a = new int[,] { { 0, 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11 } };
s += a[0, 0]; s += a[2, 1] + a[2, 2];
System.Console.Write("{0} {1} {2} {3}", s, a.GetLength(0), a.GetLength(1), a.Rank);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (2) 16 4 3 1 

 (3) 16 4 3 0 

 (4) 19 3 4 2 


Номер 2
В теле метода Main() содержится следующий код:
int s = 1;
int[,] a;
a = new int[,] { { 0, 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11 } };
s += a[1, 1] + a[2, 1]; s += a[1, 2];
System.Console.Write("{0} {1} {2} {3}", s, a.GetLength(0), a.GetLength(1), a.Rank);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (2) 16 4 3 1 

 (3) 16 4 3 0 

 (4) 21 3 4 2 


Номер 3
В теле метода Main() содержится следующий код:
int s = 1;
int[] b = new int[13]; 
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11  };
a.CopyTo(b, 1);
s += a[4] + a[7]; s += b[10];
System.Console.Write("{0} {1} {2} ", s, a.Length, a.GetUpperBound(0));
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) программа завершается аварийно из-за ошибки в приведенном фрагменте 

 (2) 22 12 11 

 (3) 21 12 11 

 (4) 22 11 0 


Номер 4
В теле метода Main() содержится следующий код:
  
int[,]  a, b;
a = new int[2, 2] { { 22, 33 }, { 44, 55 } };
b = new int[1, 1] { { 10 } };
b = a;
a[0, 0] = a[1, 1] = 77;
System.Console.Write("{0} {1}",b[0,0],b[0,1]);
System.Console.Write("{0} {1}",b[1,0],b[1,1]);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) 22 33 44 55 

 (3) 10 33 44 55 

 (4) 77 33 44 77 


Номер 5
В теле метода Main() содержится следующий код:
    
        int[,] A, B;
        A = new int[2, 2];
        B = new int[2, 3]{{11,12,13},{14,15,16}};
        B = A;
        A[0, 0] = ++A[1, 1];
        System.Console.Write("{0} {1} ", B[0, 0], B[0, 1]);
        System.Console.Write("{0} {1} ", B[1, 0], B[1, 1]);
  
Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) 1 0 0 1 

 (3) 0 0 0 1 

 (4) 1 0 0 0 


Номер 6
В теле метода Main() содержится следующий код:
  
        int[,] A, B;
        A = new int[2, 2];
        B = new int[2, 3] { { 11, 12, 13 }, { 14, 15, 16 } };
        A = B;
        B[0,1] = ++B[1, 0];
        System.Console.Write("{0} {1} ", A[0, 0], A[0, 1]);
        System.Console.Write("{0} {1} ", A[1, 0], A[1, 1]);
  
Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 11 12 13 14 

 (2) 11 12 14 15 

 (3) 11 12 15 15 

 (4) 11 15 15 15 


Упражнение 25:
Номер 1
Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
using System;
class Program
{
    static void Main()
    {
        int[][] a;
        int[] b;
        a = new int[2][];
        b = a[0] = new int[] { 1, 2 };
        a[1] = new int[] { 3, 4 };
        a[0] = a[1];  a[1]= b;
        Console.Write("{0} {1} ", a[0][0], a[0][1]);
        Console.Write("{0} {1} ", a[1][0], a[1][1]);
    }
}

Ответ:

 (1) программа выдает синтаксическую ошибку, так как ссылки a и b являются ссылками разных типов 

 (2) 4 3 2 1 

 (3) 3 4 1 2 

 (4) 3 2 1 4 


Номер 2
Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
using System;
class Program
{
    static void Main()
    {
        int t;
        int[][] a;
        int[] b = { 1, 2 };
        a = new int[2][];
        a[1] = new int[] { 3, 4 };
        t = a[1][0];  a[1][0] = b[1]; b[1] = t;
        t = a[1][1];  a[1][1] = b[0]; b[0] = t;
        a[0] = b;
        Console.Write("{0} {1} ", a[0][0], a[0][1]);
        Console.Write("{0} {1} ", a[1][0], a[1][1]);
    }
}

Ответ:

 (1) программа выдает синтаксическую ошибку, так как ссылки a и b являются ссылками разных типов 

 (2) 4 3 2 1 

 (3) 2 1 4 3 

 (4) 3 2 1 4 


Номер 3
Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
using System;
class Program
{
    static void Main()
    {
        int[][] a;
        int[] b1 = { 1, 2 }, b2 ={3,4};
        a = new int[2][];
        a[1] = b1;
        a[0] = b2;
        a[0][0]=7; a[0][1] = 5; a[1][1]=0; 
        Console.Write("{0} {1} ", b1[0], b1[1]);
        Console.Write("{0} {1} ", b2[0], b2[1]);
    }
}

Ответ:

 (1) программа выдает синтаксическую ошибку, так как ссылки a и b являются ссылками разных типов 

 (2) 7 5 3 0 

 (3) 1 2 3 4 

 (4) 1 0 7 5 


Номер 4
Проанализируйте программу и определите результат вывода.
  
using System;
class Program
{
   static void Main()
   {
      int[][] a;
      int[] b;
      a = new int[2][];
      a[0] = new int[]{22, 33};  
      a[1] = new int[]{44, 55};
      b = a[0];        b[0] = 77; 
      b = a[1];        b[1] = 88;
      Console.Write("{0} {1}", a[0][0], a[0][1]);
      Console.Write("{0} {1}", a[1][0], a[1][1]);
   }
}
  
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) 22 33 44 55 

 (3) 77 33 44 88 

 (4) 77 33 88 55 


Номер 5
Проанализируйте программу и определите результат вывода.
  
class Program
{
    public static void Main()
    {
        int[][] A = new int[2][];
        int[] B = new int[2];
        B[0] = 3;
        A[0] = B;
        B[0] = 5; B[1] = 7;
        A[1] = B;
        System.Console.Write("{0} {1} ", A[0][0], A[0][1]);
        System.Console.Write("{0} {1} ", A[1][0], A[1][1]);
    }
}
  
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) 5 7 5 7 

 (3) 3 0 5 7 

 (4) 5 5 7 7 


Номер 6
Проанализируйте программу и определите результат вывода.
  
class Program
{
    public static void Main()
    {
        int[][] A=new int[2][] {new int[]{}, new int[]{2,3}};
        System.Console.Write(A.Length + A[0].Length + A[1].Length);
    }
}
  
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) 6 

 (3) 5 

 (4) 4 


Упражнение 26:
Номер 1
Из приведенного перечня укажите все истинные утверждения, относящиеся к строкам:

Ответ:

 (1) строка – это ссылочный тип данных 

 (2) строка – это значимый тип данных 

 (3) строка – это массив символов типа char 

 (4) строка – это последовательность символов, заканчивающаяся нулем 

 (5) строка – это объект класса System.String 


Номер 2
Из приведенного перечня укажите все истинные утверждения, относящиеся к строкам:

Ответ:

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

 (2) строка не может быть изменена 

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

 (4) для того чтобы модифицировать строку, нужно создать новую строку как новый экземпляр 


Номер 3
Из приведенного перечня укажите все истинные утверждения, относящиеся к строкам:

Ответ:

 (1) строка может быть создана конструктором по умолчанию (без параметров) класса String 

 (2) каждый символ строки имеет код, соответствующий кодировке ASCII 

 (3) строка может быть создана конструктором класса String с параметром в виде массива символов 

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

 (5) каждый символ строки имеет тип char 


Номер 4
Из приведенного перечня укажите все истинные утверждения, относящиеся к строкам:

Ответ:

 (1) каждый символ строки имеет код, соответствующий кодировке UNICODE 

 (2) каждый символ строки имеет код, соответствующий кодировке ASCII 

 (3) код каждого символа строки имеет длину 1 байт 

 (4) код каждого символа строки имеет длину 2 байта 

 (5) код символа строки имеет длину 1 байт, если это стандартный символ ASCII, или 2 байта, если это нестандартный символ ASCII 


Номер 5
Из приведенного перечня операций укажите все операции, определенные для строк:

Ответ:

 (1)

 (2) sizeof 

 (3) == 

 (4)

 (5) >= 


Номер 6
Из приведенного перечня операций укажите все операции, определенные для строк:

Ответ:

 (1) ++ 

 (2) += 

 (3) <= 

 (4)

 (5) != 


Упражнение 27:
Номер 1
Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
class Program
{
    static void Main()
    {
        int     a=12, b=34;
        string  s = "Сумма=";   s += a + b;    System.Console.Write(s);
    }
}

Ответ:

 (1) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (2) сумма=1234 

 (3) сумма=46 

 (4) сумма=12+34 

 (5) 1234 


Номер 2
Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение.
 Код символа 0 равен 48.
using System;
class Program
{
    static void Main()
    {
        int     a=12, b=34;
        string  s = "Сумма=";   s +="0"+ a + b;     Console.Write(s);
    }
}

Ответ:

 (1) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (2) сумма=01234 

 (3) сумма=46 

 (4) сумма=0+12+34 

 (5) 01234 


Номер 3
Проанализируйте программу и определите результат вывода. Код символа 0 равен 48.
using System;
class Program
{
    static void Main()
    {
        int     a=12, b=34;
        string  s = "Сумма=";   s += '0'+ a + b;     Console.Write(s);
    }
}

Ответ:

 (1) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (2) сумма=01234 

 (3) сумма=94 

 (4) сумма=0+12+34 

 (5) 01234 


Номер 4
Проанализируйте программу и определите результат вывода.
  
using System;
class Program
{
    static void Main()
    {
        string  s = "Сумма=";   s = s + 22 + 33;     Console.Write(s);
    }
}
  
  

Ответ:

 (1) Сумма=2233 

 (2) Сумма=55 

 (3) Сумма=22+33 

 (4) Сумма=+22+33 


Номер 5
В теле метода Main() содержится следующий код:
  
            string S = null;
            int    B = 30;
            S += B + 10;
            System.Console.Write(S);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 30+10 

 (2) B10 

 (3) 3040 

 (4) 40 


Номер 6
В теле метода Main() содержится следующий код:
  
            string S = null;
            int    B = 5;
            S = S + 20 + B;
            System.Console.Write(S);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 25 

 (2) 20B 

 (3) 205 

 (4) 20+B 


Упражнение 28:
Номер 1
В теле метода Main() содержится следующий код:
string s = "?234", s2 = "56";
s = '1' + s[1] + s[2] + s[3];
s = s + s2;
System.Console.Write(s);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение, если код символа 1 равен 49:

Ответ:

 (1) 112356 

 (2) 21 

 (3) 69 

 (4) 123456 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
В теле метода Main() содержится следующий код:
string word = new string("1234");
string s = "5" + word[3] + word[2] + word[1];
System.Console.Write(s);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 5321 

 (2) 54532 

 (3) 14 

 (4) 11 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
В теле метода Main() содержится следующий код:
string s = "0?234";
s[1]='1';
s = "-"+s[1]+ s[2] + s[3];
System.Console.Write(s);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) -123 

 (2) -012 

 (3) -6 

 (4) -3 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 4
В теле метода Main() содержится следующий код:
  
string[] words = new string[] { "ИНФОРМАТИКА", "МОСКВА" };
string s="";
s = s + words[1][0] + words[0][8] + 'Р';
System.Console.Write(s);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) метод Main не выполняется: программа содержит ошибки 

 (2) МИР 

 (3) ИР 

 (4) ИНФОРМАТР 


Номер 5
В классе Program определен единственный метод, имеющий следующий код:
  
public static void Main(string[] par)
{
     string s = string.Join("+",par);
     System.Console.Write(s);
}
  
  После трансляции исполняемый модуль программы сохранен в файле C:\P.EXE.
  
C:\P.EXE  10  20  30
  
Укажите результат вывода на консоль после запуска программы из командной строки:
  

Ответ:

 (1) C:\P.EXE+10+20+30 

 (2) 10+20+30 

 (3) 60 

 (4) C:\P.EXE60 


Номер 6
В классе Program определен единственный метод, имеющий следующий код:
  
public static void Main(string[] par)
{
     char[] sep = new char[]{':'};
     string[] s = par[0].Split(sep);
     System.Console.Write(s.Length);
}
  
  После трансляции исполняемый модуль программы сохранен в файле C:\P.EXE.
  
C:\P.EXE   10:20::30
  
Укажите результат вывода на консоль после запуска программы из командной строки:
  

Ответ:

 (1) 2 

 (2) 3 

 (3) 4 

 (4) 5 


Упражнение 29:
Номер 1
В теле метода Main() содержится следующий код:
string str = "whfirk";
char[] chars = str.ToCharArray();
chars[1] = 'o';
str = new string(chars);
System.Console.Write(str);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) whfirk 

 (2) ohfirk 

 (3) wofirk 

 (4) owhfirk 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
В теле метода Main() содержится следующий код:
string str = "whfirk";
str = str.Remove(1, 2);
str = str.Insert(1,"o");
System.Console.Write(str);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) whoirk 

 (2) wofirk 

 (3) woirk 

 (4) hofirk 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
В теле метода Main() содержится следующий код:
string str = "wofirf";
str = str.Replace('f', 'o'); 
str = str.Substring(0,3)+str.Substring(4);
System.Console.Write(str);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) wooro 

 (2) wffrf 

 (3) wir 

 (4) wofwofi 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 4
Для преобразования строки КОШКА в строку МЫШКА разработан приведенный ниже исходный код, который размещен в методе Main():
  
string s = "КОШКА";
s[0]='М';
s[1] = 'Ы';
Console.Write(s);
  
  Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

 (1) строка не может содержать символы русского алфавита 

 (2) строка в языке С# относится к типам значений, а для типов значений операция индексации элемента не имеет смысла и не определена 

 (3) строка в языке C# относится к ссылочным типам, но в виде исключения для строк не определена операция индексации 

 (4) неверно записан литерал в правой части операторов присваивания: правильной записью должно быть s[0]="М"; s[1] = "Ы" 

 (5) в языке C# присваивание значения элементу строки не допускается 


Номер 5
Для преобразования строки КОШКА в строку МЫШКА разработан приведенный ниже исходный код, который размещен в методе Main():
  
        string str = "КОШКА";
        char[] s = ______________  ;
        s[0] = 'М';
        s[1] = 'Ы';
        str = new string(s);
        System.Console.Write(str);
  
  Среди приведенных кодов укажите код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, решающей эту задачу
  

Ответ:

 (1) str.Substring(0,str.Length) 

 (2) str 

 (3) str.ToCharArray() 

 (4) (char[])str 


Номер 6
Для преобразования строки ГОД в строку ДОГ разработан приведенный ниже исходный код, который размещен в методе Main():
  
        string str = "ГОД";
        char[] s = str.ToCharArray();
        System.Array.Reverse(s);
        str = ______ ;
        System.Console.Write(str);
  
  Среди приведенных кодов укажите код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, решающей эту задачу
  

Ответ:

 (1) s 

 (2) new string(s) 

 (3) s.ToString() 

 (4) new s 


Упражнение 30:
Номер 1
Программа Program.exe, исходный код которой указан ниже, запускается на выполнение командой 
Program.exe банан
class Program
{
    static void Main(string[] str)
    {
        string s = "ан";
        int i = 0;
        i = str[0].IndexOf("ан", 0); System.Console.Write(i + " ");
        i = str[0].IndexOf(s, i + s.Length); System.Console.Write(i + " ");
        i = str[0].IndexOf(s, i + s.Length); System.Console.Write(i);
    }
}
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) 1 3 1 

 (2) 2 4 2 

 (3) 0 0 0 

 (4) 1 3 -1 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
В теле метода Main() содержится следующий код:
string str = "Москва - город герой!"; 
string[] s;      
s = str.Split(' ', '-');
Console.WriteLine(s[0]+"*"+s[1]+"*"+s[2]+"*"+s[3]);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) Москва***город 

 (2) Москва**город*герой! 

 (3) Москва*город*герой*! 

 (4) Москва**город*герой 

 (5) программа выдает сообщение об аварийном завершении, по причине выхода за границы массива 


Номер 3
В теле метода Main() содержится следующий код:
string[] s = @"a\tb c! \td".Split(' ', '!');
System.Console.WriteLine(s[0]+"*"+s[1]+"*"+s[2]+"*"+s[3]);
Укажите результаты вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) a b*c** d 

 (2) a b*c* d* 

 (3) a\tb*c**\td 

 (4) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 

 (5) программа выдает сообщение об аварийном завершении, по причине выхода за границы массива 


Номер 4
Приведенный фрагмент исходного кода размещен в теле метода Main и разрабатывался для проверки цифр телефонного номера на принадлежность некоторому множеству цифр. Укажите результат проверки, который выведет программа, если пользователь ввел с консоли символы 777-45-12 и нажал клавишу ENTER.
  
string s = System.Console.ReadLine();
bool f1,f2,f3;
f1 = s[0] > '3' && s[0] < '8';
f2 = s[s.Length-1] == '3' || s[s.Length-1] == '4';
f3 = !(f1 || f2);
System.Console.Write("{0} {1} {2}",f1,f2,f3);
  
  

Ответ:

 (1) True True False 

 (2) True False False 

 (3) 1 0 0  

 (4) True True True 


Номер 5
Требуется сформировать строку путем объединения двух исходных строк. Исходные строки объединяются в порядке убывания по алфавиту. Для решения этой задачи разработан приведенный ниже исходный код, который размещен в методе Main():
  
        string[]s = new string[2];
        string str;
        bool p;
        s[0]=System.Console.ReadLine();
        s[1]=System.Console.ReadLine();
        p = ____________ ;
        str = p? s[1]+s[0] : s[0]+s[1];
  
  Среди приведенных кодов укажите код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, решающей эту задачу
  

Ответ:

 (1) s[0] < s[1] 

 (2) s[0].CompareTo(s[1]) < 0 

 (3) s[0].CompareTo(s[1]) > 0 

 (4) s[0] > s[1] 


Номер 6
Требуется сформировать строку путем объединения двух исходных строк. Исходные строки объединяются в порядке возрастания по алфавиту. Для решения этой задачи разработан приведенный ниже исходный код, который размещен в методе Main():
  
        string[]s = new string[2];
        string str;
        bool p;
        s[0]=System.Console.ReadLine();
        s[1]=System.Console.ReadLine();
        p = ____________ ;
        str = p? s[0]+s[1] : s[1]+s[0];
  
  Среди приведенных кодов укажите код, подстановка которого вместо знаков подчеркивания приведет к корректной программе, решающей эту задачу.
  

Ответ:

 (1) s[0] < s[1] 

 (2) s[1].CompareTo(s[0]) < 0 

 (3) s[0].CompareTo(s[0]) > 0 

 (4) s[1].CompareTo(s[0]) > 0 


Упражнение 31:
Номер 1
Из приведенного перечня укажите все утверждения, соответствующие семантике оператора foreach:

Оператор foreach используется


Ответ:

 (1) для перебора значений любой стандартной коллекции 

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

 (3) для перебора значений, возвращаемых индексатором объекта 

 (4) для перебора значений любого контейнера 

 (5) для перебора значений многомерного массива 


Номер 2
Из приведенного перечня укажите все утверждения, соответствующие семантике оператора goto. 

Оператор goto можно использовать:


Ответ:

 (1) для перехода к другой ветви оператора switch 

 (2) для выхода из цикла 

 (3) для входа в тело цикла 

 (4) для выхода из блока finaly 

 (5) для выхода из класса 


Номер 3
Из приведенного перечня укажите все утверждения, соответствующие семантике оператора return.

Оператор return используется


Ответ:

 (1) для выхода из метода 

 (2) для выхода из цикла и продолжения метода 

 (3) для возврата значения вызываюшему методу 

 (4) для выхода из оператора switch на следующий оператор 

 (5) для выхода из текущего блока во внешний блок 


Номер 4
Оператор continue используется

Ответ:

 (1) в качестве пустого оператора 

 (2) для перехода к следующей итерации цикла 

 (3) для выхода из цикла 

 (4) для продолжения перебора case-ветвей в операторе switch 

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


Номер 5
Оператор break используется

Ответ:

 (1) для перехода к следующей итерации цикла  

 (2) в качестве пустого оператора 

 (3) для выхода из метода 

 (4) для прекращения выполнения цикла 

 (5) для прекращения перебора case-ветвей в операторе switch 


Номер 6
Оператор goto default используется

Ответ:

 (1) для возврата в метод Main 

 (2) для завершения выполнения программы 

 (3) для перехода в операторе switch на ветвь по умолчанию 

 (4) для возврата в точку вызова 

 (5) для перехода на оператор с меткой default, расположенный в другом методе 


Упражнение 32:
Номер 1
Приведенный фрагмент исходного кода размещен в теле метода Main:
int[] Массив = { 4, 5, 6, 8, 7 };
for (int s=0, i=0; i < Массив.Length;)
{
    if (i % 3 == 0) continue;
    if (Массив [i] % 3 == 0) break;
    s += Массив[i++];
}
System.Console.WriteLine(s);
Трансляция программы завершена неудачно. Из приведенных высказываний укажите  высказывание, которое раскрывает причину некорректности программы:

Ответ:

 (1) при объявлении массива пропущены ключевые слова new int[] 

 (2) имя локальной переменной Массив содержит символы русского алфавита 

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

 (4) в заголовке цикла пропущен элемент "итерация" 

 (5) не объявлена переменная i 


Номер 2
Приведенный фрагмент исходного кода размещен в теле метода Main:
int[] Массив = { 4, 5, 6, 8, 7 };
int  i;
for (int s=0, i=0; i < Массив.Length; i++)
{
    if (i % 3 == 0) continue;
    if (Массив [i] % 3 == 0) break;
    s += Массив[i];
    System.Console.WriteLine(s);
}
Трансляция программы завершена неудачно. Из приведенных высказываний укажите  высказывание, которое раскрывает причину некорректности программы:

Ответ:

 (1) при объявлении массива пропущены ключевые слова new int[] 

 (2) имя локальной переменной Массив содержит символы русского алфавита 

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

 (4) в заголовках условных операторов операция == некорректна, вместо нее необходимо использовать операцию = 

 (5) переменная i объявлена дважды 


Номер 3
Приведенный фрагмент исходного кода размещен в теле метода Main:
int[] Массив = { 4, 5, 6, 8, 7 };
int  s=0, i=0;
for (; i < Массив.Length(); i++)
{
    int s = 6;
    if (i % 3 == 0 && Массив[i] % 3 != 0) continue;
    s = Массив[i];
    System.Console.WriteLine(s);
}
Трансляция программы завершена неудачно. Из приведенных высказываний укажите все высказывания, которые раскрывают причину некорректности программы:

Ответ:

 (1) объект Массив не имеет метода Length() 

 (2) имя локальной переменной Массив содержит символы русского алфавита 

 (3) в заголовке цикла пропущен элемент "инициализация" 

 (4) в заголовках условных операторов операция && некорректна, вместо нее необходимо использовать операцию & 

 (5) в данном контексте переменная s не может быть объявлена повторно 


Номер 4
Приведенный фрагмент исходного кода размещен в теле метода Main и разрабатывался для проверки попадания точки на числовой оси в интервал [1,4]:
  
double Точка;
string msg;
Точка = double.Parse(System.Console.ReadLine());
if (Точка < 1) msg = "Слева";
if (Точка >=1 & Точка <=4) msg = "Внутри";
if (Точка > 4) msg = "Справа";
System.Console.WriteLine(msg);
  
  Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

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

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

 (3) имя локальной переменной Точка содержит символы русского алфавита 

 (4) операция & не корректна в контексте выражения Точка >=1 и Точка <=4, вместо нее необходимо использовать операцию && 

 (5) во всех операторах ветвления отсутствует альтернативная ветвь else 


Номер 5
Приведенный фрагмент исходного кода размещен в теле метода Main и разрабатывался для проверки попадания точки на числовой оси в интервал (1,4):
  
        double Точка;
        string msg;
        Точка = double.Parse(System.Console.ReadLine());
        if (Точка <= 1) msg = "Слева";
        else if (1 < Точка < 4) msg = "Внутри";
        else msg = "Справа";
        System.Console.WriteLine(msg);
  
  Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

 (1) не парное количество ключевых слов if и else 

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

 (3) имя локальной переменной Точка содержит символы русского алфавита 

 (4) выражение 1 < Точка < 4 некорректно: в нем пропущен знак логической операции  

 (5) выражение Точка <= 1 не корректо: в нем сравнивается вещественное и целое значение 


Номер 6
Приведенный фрагмент исходного кода размещен в теле метода Main и разрабатывался для вывода сообщения о том, к какой категории относиться день недели, введенный пользователем:
  
        string day, msg;
        day = System.Console.ReadLine();
        switch (day)
        {
            case "6":  case "Суббота": msg = "Выходной"; break;
            case "7":  case "Воскресенье": msg = "Выходной"; break;
            default: msg = "Рабочий"; 
        }
        System.Console.WriteLine(msg);
  
  Трансляция программы завершена неудачно. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:
  

Ответ:

 (1) строка не может использоваться в качестве переключателя 

 (2) ветвь должна иметь только один маркер 

 (3) начальное значение переменной msg не определено 

 (4) в ветви с маркером default должен быть указан оператор break 

 (5) не выделена память под хранение значения переменной msg 


Упражнение 33:
Номер 1
В теле метода Main() содержится следующий код:
double a=5;
string msg = "не определено";
if (a > 1)
     if (a < 4) msg = "внутри";
     else; else msg = "снаружи";
System.Console.WriteLine(msg);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) внутри 

 (2) снаружи 

 (3) не определено 

 (4) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
В теле метода Main() содержится следующий код:
double a=5;
string msg="не определено";
if (a > 1)
    if (a < 4); 
   msg = "внутри";
    else msg = "снаружи";
System.Console.WriteLine(msg);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) внутри 

 (2) снаружи 

 (3) не определено 

 (4) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
В теле метода Main() содержится следующий код:
double a=0;
string msg="не определено";
if (a > 1)
    if (a < 4) 
    msg = "внутри";;
    else  msg = "снаружи"; 
   System.Console.WriteLine(msg);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) внутри 

 (2) снаружи 

 (3) не определено 

 (4) программа не выполняется, так как обнаружена синтаксическая ошибка, связанная с лишней точкой с запятой 


Номер 4
В теле метода Main() содержится следующий код:
  
int[] a = new int[]{ 4, 3, 6, 8, 7 };
int s = 0, i;
for (i = 0; i < a.Length; i++)
        {
            if (i % 2 == 0) continue;
            if (a[i] % 2 == 0) break;
            s += a[i];
        }
System.Console.WriteLine(s);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 11 

 (2) 0 

 (3) 3 

 (4) при выполнении программы фиксируется исключение: нарушение границ массива 


Номер 5
В теле метода Main() содержится следующий код:
  
        int[] a = new int[] { 30, 12, 5, 11, 3 };
        int s = 0, i;
        for (i = 0; i < a.Length-1; i++)
        {
            if (a[i] % 2 == 0) continue;
            s += a[i];
        }
        System.Console.WriteLine(s);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 16 

 (2) 19 

 (3) 42 

 (4) при выполнении программы фиксируется исключение: нарушение границ массива 


Номер 6
В теле метода Main() содержится следующий код:
  
       int[] a = new int[] { 3, 7, 1 };
        int s = 0, i;
        for (i = 0; i <= a.Length; i++)
        {
            if (a[i] % 2 == 0) break;
            s += a[i];
        }
        System.Console.WriteLine(s);
  
  Укажите результат вывода на консоль после выполнения метода Main():
  

Ответ:

 (1) 0 

 (2) 11 

 (3) 10 

 (4) при выполнении программы фиксируется исключение: нарушение границ массива 


Упражнение 34:
Номер 1
В теле метода Main() содержится следующий код:
uint НОД, a=9, b=6;
for (НОД = (a < b) ? a : b; ; НОД--)
    if ((a % НОД == 0) && (b % НОД == 0)) break;
System.Console.WriteLine(НОД);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5) программа не выполняется, так как обнаружена синтаксическая ошибка, связанная с тем, что пропущено условие в операторе for 


Номер 2
В теле метода Main() содержится код, написанный для определения наибольшего общего делителя:
uint НОД, a=9, b=6;
for (НОД = (a < b) ? a : b; ; НОД--);
    if ((a % НОД == 0) && (b % НОД == 0)) break;
System.Console.WriteLine(НОД);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2)

 (3)

 (4)

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


Номер 3
В теле метода Main() содержится следующий код:
int[,] a = { { 1,2 }, { 3,4 }, {5,6} };
int s, j; s=j=0;
for(int i = 0; i<3; i++, j=0)
    while (j <= 1)
        s += a[i, j++];
System.Console.WriteLine(s);
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) 12 

 (3) 21 

 (4) при выполнении программы фиксируется исключение: нарушение границ массива 

 (5) программа не выполняется, так как обнаружена синтаксическая ошибка 


Номер 4
В теле метода Main() содержится следующий код:
  
int a;
a = int.Parse(System.Console.ReadLine());
if (a <= 12)
System.Console.Write("Как погода? ");
if (a < 9)
System.Console.Write("Солнце! ");
else
System.Console.Write("Дождь! ");
  
  Укажите из приведенных ниже вариантов вводимых данных все варианты, при которых будет выведено сообщение: "Как погода? Дождь!"
  

Ответ:

 (1) 11 

 (2) 15 

 (3)

 (4) 12 

 (5)


Номер 5
В теле метода Main() содержится следующий код:
  
        int a = int.Parse(System.Console.ReadLine());
        if (a > 9)
            System.Console.Write("Как дела? ");
        if (a < 12)
            System.Console.Write(" Плохо! ");
        else
            System.Console.Write(" Хорошо! ");
  
  Укажите из приведенных ниже вариантов вводимых данных все варианты, при которых будет выведено сообщение: "Как дела? Хорошо!"
  

Ответ:

 (1) 11 

 (2) 15 

 (3)

 (4)

 (5) 12 


Номер 6
В теле метода Main() содержится следующий код:
  
        int a = int.Parse(System.Console.ReadLine());
        if (a > 9)
            System.Console.Write("Как дела? ");
            if (a < 12)
        	System.Console.Write("Хорошо! ");
	    else
            	System.Console.Write("Плохо! ");
  
  Укажите из приведенных ниже вариантов вводимых данных все варианты, при которых будет выведено сообщение: "Как дела? Плохо!"
  

Ответ:

 (1) 11 

 (2) 12 

 (3)

 (4)

 (5) 15 


Упражнение 35:
Номер 1
Проанализируйте приведенный код, определенный в методе Main(): 
int i, смена=3;
string d;
if ((i = int.Parse(System.Console.ReadLine())) < 6)
    смена = int.Parse(System.Console.ReadLine());
switch (i)
{   case 6:  case 7: d = "Выходной"; goto case 8;
     default: d = "Работаю";
        switch (смена)
        {  case 1:  System.Console.WriteLine(d + " в первую смену"); break;
    case 2:  System.Console.WriteLine(d + " во вторую смену"); break;
    default: System.Console.WriteLine("Не работаю");  break;
        }
        break;
    case 8: System.Console.WriteLine("Отдыхаю"); return;
}
Укажите результат вывода, если после успешного запуска программы на компиляцию и выполнение пользователь ввел с клавиатуры 1, а затем 2.

Ответ:

 (1) не работаю  

 (2) работаю в первую смену 

 (3) работаю во вторую смену 

 (4) отдыхаю 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
Проанализируйте приведенный код, определенный в методе Main():
int i, смена=3;
string d;
if ((i = int.Parse(System.Console.ReadLine())) < 6)
    смена = int.Parse(System.Console.ReadLine());
switch (i)
{   case 6:  case 7: d = "Выходной"; goto case 8;
     default: d = "Работаю";
        switch (смена)
        {   case 1:
                System.Console.WriteLine(d + " в первую смену"); break;
                    case 2:
                System.Console.WriteLine(d + " во вторую смену"); break;
            default: System.Console.WriteLine("Не работаю");  break;
        }
        break;
    case 8: System.Console.WriteLine("Отдыхаю"); return;
}
Укажите все варианты ввода с клавиатуры в случае успешного запуска программы на выполнение, чтобы в консоль было выведено Отдыхаю

Ответ:

 (1) 3 и 1 

 (2)

 (3) 4 и 2 

 (4)

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
Проанализируйте приведенный код, определенный в методе Main(): 
int i, смена=3;
string d;
if ((i = int.Parse(System.Console.ReadLine())) < 6)
    смена = int.Parse(System.Console.ReadLine());
switch (i)
{   case 6:  case 7: d = "Выходной"; goto case 8;
     default: d = "Работаю";
        switch (смена)
        {
    case 1:
                        System.Console.WriteLine(d + " в первую смену"); break;
            case 2:
                System.Console.WriteLine(d + " во вторую смену"); break;
            default: System.Console.WriteLine("Не работаю");  break;
        }
        break;
    case 8: System.Console.WriteLine("Отдыхаю"); return;
}
Укажите результат вывода, если после успешного запуска программы на компиляцию и выполнение пользователь ввел с клавиатуры 4, а затем 0.

Ответ:

 (1) не работаю 

 (2) работаю в первую смену 

 (3) работаю во вторую смену 

 (4) отдыхаю 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 4
Проанализируйте приведенный код, определенный в методе Main(), и укажите результат вывода, если после запуска программы пользователь набрал символы Пятница и нажал клавишу ENTER.
  
string day,msg="0";
day = System.Console.ReadLine();
switch(day)
   {
      case "1":   case "Понедельник": msg = msg + "1"; break;
      case "2":   case "Вторник": msg = msg + "2"; break;
       default: msg = msg + "3";  break;
    }
System.Console.WriteLine(msg);
  
  

Ответ:

 (1) 123 

 (2) 0123 

 (3) 03 

 (4) 3 

 (5) Пятница 


Номер 5
Проанализируйте приведенный код, определенный в методе Main(), и укажите результат вывода, если после запуска программы пользователь набрал символ 4 и нажал клавишу ENTER.
  
    string day, msg = "Лишний день";
    day = System.Console.ReadLine();
     switch (day)
        {
            case "1": case "5":
                switch(day)
                {
                   case "1":  msg="Начало недели";   break;
                   default: msg="Середина недели"; break;
                } break;  
            case "6": case "7": msg = "Окончание недели"; break;
            default: msg = "Нет такого дня"; break;
        }
        System.Console.WriteLine(msg);
  
  

Ответ:

 (1) Нет такого дня 

 (2) Начало недели  

 (3) Середина недели 

 (4) Окончание недели 

 (5) Лишний день 


Номер 6
Проанализируйте приведенный код, определенный в методе Main(), и укажите результат вывода, если после запуска программы пользователь набрал символ 1 и нажал клавишу ENTER.
  
        double X;
        string msg;
        X = double.Parse(System.Console.ReadLine());
        if (X < 1) msg = "Слева";
        else if (X > 1 &&  X < 4) msg = "Внутри";
        else msg = "Справа";
        System.Console.WriteLine(msg);
  
  

Ответ:

 (1) Слева 

 (2) Внутри 

 (3) ВнутриСлева 

 (4) Справа 

 (5) ВнутриСправа 


Упражнение 36:
Номер 1
Процедура, определяемая как метод класса,

Ответ:

 (1) должна содержать в заголовке модификатор static 

 (2) должна содержать тело метода 

 (3) должна иметь описание прототипа 

 (4) должна иметь в заголовке как минимум один параметр 

 (5) может иметь в заголовке параметры с модификатором ref 


Номер 2
Процедура, определяемая как метод класса,

Ответ:

 (1) должна содержать в заголовке модификатор public 

 (2) может содержать в заголовке ключевое слово int в качестве типа возвращаемого значения 

 (3) может содержать пустое тело метода 

 (4) может иметь заголовок без параметров 

 (5) может иметь в заголовке параметры как с модификатором ref, так и с модификатором out 


Номер 3
Функция, определяемая как метод класса,

Ответ:

 (1) должна содержать в заголовке модификатор function 

 (2) должна содержать в заголовке тип возвращаемого значения, отличный от void 

 (3) в обязательном порядке должна содержать в теле оператор return 

 (4) должна иметь в списке параметров как минимум один параметр 

 (5) может иметь в списке параметров модификатор params 


Номер 4
Укажите все истинные высказывания из приведенного перечня:
  

Процедура, определяемая как метод класса,


Ответ:

 (1) должна содержать в заголовке модификатор procedure 

 (2) должна содержать в заголовке ключевое слово void в качестве типа возвращаемого значения 

 (3) в обязательном порядке должна содержать в теле оператор return 

 (4) должна иметь в заголовке как минимум один параметр 

 (5) может иметь в заголовке параметры с модификатором out 


Номер 5
Укажите истинное высказывание из приведенного перечня.

Функция, определяемая как метод класса,


Ответ:

 (1) должна содержать в заголовке модификатор function 

 (2) должна содержать в заголовке ключевое слово void в качестве типа возвращаемого значения 

 (3) должна содержать в заголовке тип возвращаемого значения, отличный от void 

 (4) должна содержать в заголовке строго один параметр 


Номер 6
Укажите все истинные высказывания из приведенного перечня:
  

Процедура, определяемая как метод класса,


Ответ:

 (1) должна вызываться с помощью оператора вызова Call 

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

 (3) может не иметь ни одного параметра 

 (4) может иметь в заголовке параметры с модификатором ref 

 (5) должна иметь в имени префикс Procedure 


Упражнение 37:
Номер 1
Укажите из перечисленного все истинные высказывания:

Ответ:

 (1) с помощью ключевого слова ref можно передать аргумент по ссылке 

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

 (3) если параметр метода имеет модификатор ref или out, то и соответствующий ему аргумент должен иметь такой же модификатор 

 (4) если параметр метода имеет модификатор ref, то соответствующий ему аргумент может иметь модификатор out, как частный случай 

 (5) параметр-массив может располагаться в любом месте списка параметров метода 


Номер 2
Укажите из перечисленного все истинные высказывания:

Ответ:

 (1) значения аргументов размещаются в динамической памяти (в хипе) 

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

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

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

 (5) вызов функции может не входить в выражение, а представлять собой самостоятельный оператор 


Номер 3
Укажите из перечисленного все истинные высказывания:

Ответ:

 (1) в операторе вызова метода аргументы должны иметь имена, совпадающие с именами параметров метода 

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

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

 (4) после выполнения процедуры управление всегда возвращается на оператор, следующий за вызовом 

 (5) вызов функции должен быть частью выражения 


Номер 4
Укажите из перечисленного все, что входит в сигнатуру метода:

Ответ:

 (1) модификатор доступа к методу 

 (2) имена параметров метода 

 (3) имя метода 

 (4) тип возвращаемого значения 

 (5) типы параметров 


Номер 5
Укажите  истинное высказывание из приведенного перечня:
  

Заголовок метода содержит три параметра. Каждый параметр представляет собой одномерный массив. Модификатор params может быть указан


Ответ:

 (1) для всех массивов, содержащих элементы типа int 

 (2) для всех массивов, содержащих элементы типа object 

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

 (4) только для последнего массива 

 (5) для всех массивов независимо от типа элементов 


Номер 6
Укажите все истинные высказывания из приведенного перечня:
  

При вызове метода на месте параметра - одномерного массива чисел типа long c модификатором params, может быть указан аргумент, представляющий собой


Ответ:

 (1) одномерный массив типа long 

 (2) одномерный массив типа int 

 (3) список выражений типа int 

 (4) список констант типа int 

 (5) список выражений типа long 


Упражнение 38:
Номер 1
Приведенные ниже процедуры и функции определены как методы одного класса. 
static void Main()
{
    string a = "строка";
    P(F(a));    P(a);
}
static string F(string a)
{
    string b="";
    for (int i = 0; i < a.Length; i++)
       b = b + a[i];
    b.Replace('о', 'а');
    b.Replace('к', 'н');
    return b;
}
static void P(string a)
{
    System.Console.Write("{0} ", a);
}
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) строка страна  

 (2) строка строка 

 (3) страна страна 

 (4) при выполнение программы фиксируется исключение: нарушение границ массива 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
Приведенные ниже процедуры и функции определены как методы одного класса. Укажите результат вывода на консоль после выполнения программы.
static void Main()
{
    string a = new string(new char[] {'с', 'т', 'р', 'о', 'к', 'а'});
     P(F(a)); P(a);
  }

  static string F(string a)
  {
     string b="";
     for (int i = 0; i 7< a.Length; i++)
         b = b + a[i];
     a = b.Replace('о', 'а');
     a = b.Replace('к', 'н');

      return b;
  }

 static void P(string a)
 {
     System.Console.Write("{0} ", a);
}
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) строка страна 

 (2) страна страна 

 (3) строка строка 

 (4) при выполнение программы фиксируется исключение: нарушение границ массива 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
Приведенные ниже процедуры и функции определены как методы одного класса. Укажите результат вывода на консоль после выполнения программы.

    static void Main()
    {
        char[] ch = {'с', 'т', 'р', 'о', 'к', 'а'};
        string a = new string(ch);
        P(F(a)); P(a);
    }

    static string F(string a)
    {
        string b="";
        for (int i = 0; i < a.Length; i++)
            b = b + a[i];
        b=b.Replace('о', 'а');
        b=b.Replace('к', 'н');
        a.Replace('о', 'а');
        a.Replace('к', 'н');
        return b;
    }

    static void P(string a)
    {
        System.Console.Write("{0} ", a);
    }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1) страна строка 

 (2) страна страна 

 (3) строка строка 

 (4) при выполнение программы фиксируется исключение: нарушение границ массива 

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 4
Приведенные ниже процедуры и функции определены как методы одного класса.
  
    static void Main()
    {
        int[] a = new int[]{ 4, 3, 6 };
        P(F(a));        P(a);
    }

   static int[] F(int[] a)
    {
        int[] b = new int[a.Length / 2];
        for (int i = 0; i < b.Length; i++)    {    b[i] = a[i];        a[i]++;     }
        return b;
    }

    static void P(int[] a)
    {
        for (int i = 0; i < a.Length; i++) System.Console.Write("{0} ", a[i]);
    }
  
  Укажите результат вывода на консоль после выполнения программы.
  

Ответ:

 (1) 4 4 3 6 

 (2) 4 5 3 6 

 (3) 5 3 6 4 

 (4) при выполнение программы фиксируется исключение: нарушение границ массива 


Номер 5
Приведенные ниже процедуры и функции определены как методы одного класса.
  
public static void Add(string s)
{ 
   string word = "Май!";
   s = s + word +"Дружба!"; 
}
public static void Main()
{
   string s = "Мир!";
    Add(s);
    System.Console.Write(s);
}
  
  Укажите результат вывода на консоль после выполнения программы.
  

Ответ:

 (1) Мир! 

 (2) Мир!Май!Дружба! 

 (3) Мир!Дружба! 

 (4) метод Main не выполняется: программа содержит ошибки 


Номер 6
Приведенные ниже процедуры и функции определены как методы одного класса. 
  
public static void Add(out string s)
{ 
     string word = "Солнце!";
     s = s + word +"День чудесный!"; 
}
public static void Main()
{
    string s = "Мороз!";
    Add(out s);
    System.Console.Write(s);
}
  
  Укажите результат вывода на консоль после выполнения программы.
  

Ответ:

 (1) Мороз! Солнце! День чудесный! 

 (2) Солнце!День чудесный! 

 (3) Мороз! День чудесный! 

 (4) метод Main не выполняется: программа содержит ошибки 


Упражнение 39:
Номер 1
Приведенные ниже процедуры и функции определены как методы одного класса.

   public static void Main()
    {
        string nameOld = "Петр Ильич Чайковский", nameNew;
        Console.WriteLine("После попытки удалить отчество: {0}",
            RemoveName2(nameOld, out nameNew) ? nameNew : nameOld);
    }

    static bool RemoveName2(string s1, out string s2)
    {
        ________________
        int found1 = s1.IndexOf(" ");
        int found2 = s1.IndexOf(" ", found1 + 1);
        if (found1 > 0 && found2 >0)
        {
            s2 = s1.Remove(found1 + 1, found2 - found1);   return true;
        }
        return false;
    }
Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей на консоль строку Петр Чайковский 

Ответ:

 (1) string s2=null; 

 (2) s2 = " "; 

 (3) s2 = ""; 

 (4) string s2; 

 (5) s2 = s1; 


Номер 2
Приведенные ниже процедуры и функции определены как методы одного класса.

   public static void Main()
    {
      _______________
      string nameOld = "Петр Ильич Чайковский";
        Console.WriteLine("После попытки удалить отчество: {0}",
            RemoveName2(nameOld, out nameNew) ? nameNew : nameOld);
    }

    static bool RemoveName2(string s1, out string s2)
    {
        
        int found1 = s1.IndexOf(" ");
        int found2 = s1.IndexOf(" ", found1 + 1);
        if (found1 > 0 && found2 >0)
        {
            s2 = s1.Remove(found1 + 1, found2 - found1);   return true;
        }
        s2 = "";  return false;
    }
Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей на консоль строку Петр Чайковский 

Ответ:

 (1) string nameNew=null; 

 (2) string nameNew = ""; 

 (3) string nameNew; 

 (4) string nameNew= nameOld; 


Номер 3
Приведенные ниже процедуры и функции определены как методы одного класса.

    public static int minVal( ___________ )
    {
        int m = param[0];
        for (int i = 1; i < param.Length; i++)
            if (param[i] < m) m = param[i];
        return m;
    }
    public static void Main()
    {
        int min1 = minVal(5, 3);
        int[] args = { 45, 67, 34, 9, 112, 8 };
        int min2 = minVal(args);
        Console.WriteLine(min1 + " " + min2);
    }
Среди приведенных кодов укажите код, подстановка  которогг вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль цифры 3 8

Ответ:

 (1) int[] param; 

 (2) params int[] param 

 (3) int param 

 (4) int param[] 

 (5) ref int param 


Номер 4
Приведенные ниже процедуры и функции определены как методы одного класса.
  
     static void F(ref string s1, string[] s2) { s1 = string.Join(" ", s2); }
    
    static void Main()
    {
        string[] word = { "ОСТАП", "БЕНДЕР" };
        ______________
        F(ref s, word);
        System.Console.Write(s);
    }
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль строку ОСТАП БЕНДЕР
  

Ответ:

 (1) string s=null; 

 (2) string s; 

 (3) string s="Балаганов"; 

 (4) string s=""; 

 (5) string s = ' '; 


Номер 5
Приведенные ниже процедуры и функции определены как методы одного класса.
  
static void Print(int[] a)
{  for(int i=0; i<a.Length; i++) System.Console.Write("{0} ",a[i]);   }
static int[] F(int[] a, ref int[] b)
{     b = a;    System.Array.Reverse(a);      return a;    }
static void Main()
{
   int[] a = new int[] { 3,5,7 };
   int[] b = new int[] { 7,5,3 };
   F(a,ref b);
   Print( ____ );
}
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения 3 5 7
  

Ответ:

 (1) a 

 (2) b 

 (3) F(a,ref b) 

 (4) F(b,ref a) 


Номер 6
Приведенные ниже процедуры и функции определены как методы одного класса.
  
static void Print(int[] a)
{   for(int i=0; i<a.Length; i++) System.Console.Write("{0} ",a[i]);   }
static int[] F(int[] a, ref int[] b)
{      b = a;    System.Array.Reverse(a);      return b;    }
static void Main()
{
    int[] a = new int[] { 3,5,7 };
    int[] b = new int[] { 3,5,7 };
   F(a,ref b);
   Print( ______ );
}
  
  Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей  на консоль значения 7 5 3
  

Ответ:

 (1) a 

 (2) b 

 (3) F(a,ref b) 

 (4) F(a,out b) 


Упражнение 40:
Номер 1
Приведенные ниже процедуры и функции определены как методы одного класса.
static double Func (int a, int b)        { return a * b; }   
static double Func (double a, double b) { return a - b; } 
static double Func (short  a, float b)   { return a + b; }   
static double Func (short a, int b)     { return b %  a; }   
static void Main()
 {
     int a = 2;
     System.Console.Write(F(a, 3.5));
 }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) -1,5 

 (3) 5,5 

 (4)

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 2
Приведенные ниже процедуры и функции определены как методы одного класса.
static double Func(int a, int b) { return a * b; }
static double Func(double a, double b) { return a - b; }
static double Func(long a, float b) { return a + b; }
static double Func(short a, int b) { return b % a; }
static void Main()
{
    int a = 2;
    System.Console.Write(Func(a, 3.5f));
} 
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2) -1,5 

 (3) 5,5 

 (4)

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 3
Приведенные ниже процедуры и функции определены как методы одного класса.
static double Func(byte a, int b) { return a * b; }
static double Func(long a, double b) { return a - b; }
static double Func(long a, float b) { return a + b; }
static double Func(short a, int b) { return b % a; }
static void Main()
{
    byte a = 2;
    System.Console.Write(Func(a+1, 3));
}
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5) программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок 


Номер 4
Приведенные ниже процедуры и функции определены как методы одного класса.
  
      static double F(int a, int b)       { return a + b; }   //Вариант 1
      static double F(double a, double b) { return a + b; }   //Вариант 2
      static double F(short  a, double b) { return a + b; }   //Вариант 3
      static double F(short a, int b)     { return a + b; }   //Вариант 4
      static void Main()
       {
           int a = 2;
           System.Console.Write(F(a, 3.5));
       }
  
  Укажите  истинное утверждение, относящееся к вызову функции  F:
  

Ответ:

 (1) будет вызвана функция: Вариант 1 

 (2) будет вызвана функция: Вариант 2 

 (3) будет вызвана функция: Вариант 3 

 (4) будет вызвана функция: Вариант 4 

 (5) нет ни одного варианта реализации функции F, который соответствует вызову 


Номер 5
Приведенные ниже процедуры и функции определены как методы одного класса.
  
      static double F(int a, int b)       { return a + b; }   //Вариант 1
      static double F(double a, double b) { return a + b; }   //Вариант 2
      static double F(short  a, double b) { return a + b; }   //Вариант 3
      static double F(short a, int b)     { return a + b; }   //Вариант 4
      static void Main()
       {
           decimal a = 2m;
           System.Console.Write(F(a, 3.5));
       }
  
  Укажите  истинное утверждение, относящееся к вызову функции  F:
  

Ответ:

 (1) будет вызвана функция: Вариант 1 

 (2) будет вызвана функция: Вариант 2 

 (3) будет вызвана функция: Вариант 3 

 (4) будет вызвана функция: Вариант 4 

 (5) нет ни одного варианта реализации функции F, который соответствует вызову 


Номер 6
Приведенные ниже процедуры и функции определены как методы одного класса.
  
    static double F(int a, int b)       { return a + b; }   //Вариант 1
    static double F(double a, double b) { return a + b; }   //Вариант 2
    static double F(short a, double b)  { return a + b; }   //Вариант 3
    static double F(short a, int b)     { return a + b; }    //Вариант 4
    static void Main()
    {
        short b = 5;
        System.Console.Write(F(3, b));
    }
  
  Укажите истинное утверждение, относящееся к вызову функции  F:
  

Ответ:

 (1) будет вызвана функция: Вариант 1 

 (2) будет вызвана функция: Вариант 2 

 (3) будет вызвана функция: Вариант 3 

 (4) будет вызвана функция: Вариант 4 

 (5) нет ни одного варианта реализации функции F, который соответствует вызову 




Главная / Программирование / C#: основы / Тест 1