C#_ основы



Приведенный фрагмент исходного кода размещен в теле метода 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);

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

  • не выделена память под хранение значения переменной msg
  • начальное значение переменной msg не определено
  • строка не может использоваться в качестве переключателя
  • ветвь должна иметь только один маркер
  • (Правильный ответ) в ветви с маркером default должен быть указан оператор break

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

int a = 5, b = 10, c;c = a+b * a-b / a;System.Console.Write(c);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

  • трансляция программы завершается неудачно
  • 0
  • 13
  • (Правильный ответ) 53

Для перестановки элементов массива A в обратном порядке разработан приведенный ниже исходный код, который размещен в методе Main():

short[] A; short[] B; A = new short[] { 1, 2, 3 }; B = new short[2]; B = A; System.Array.Reverse(B,1,3);

При выполнении программы возникло исключение. Из приведенных высказываний укажите высказывание, которое раскрывает причину некорректности программы:

  • количество элементов в массиве A не определено
  • (Правильный ответ) попытка обратиться ячейке памяти за границами памяти, выделенной для массива A
  • элементы массива B не инициализированы
  • массив B имеет размер, недостаточный для хранения копии массива A
  • ссылки A и B указывают на массивы с разным количеством элементов

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

  • (Правильный ответ) decimal
  • float
  • ulong
  • char
  • byte

Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

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]); }}

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

Для вывода на консоль сообщения «Проба пера» разработана программа, код которой полностью приведен ниже:

static void Main() { System.Console.Write(«»Проба пера»»); }

Трансляция программы завершена неудачно. Какое из приведенных ниже высказываний раскрывает причину некорректности программы:

  • (Правильный ответ) процедура Main должна быть определена как метод класса
  • в процедуре Main не указаны параметры
  • не указана директива using System для фиксации используемого пространства имен
  • процедура Main обязана возвращать значение в виде целого числа
  • метод Write принадлежит не классу, а объекту, и его вызов должен выполняться через предварительно созданный объект класса Console

Программа предназначена для вывода на консоль значения случайного целого числа в интервале [50,100):

using System;class Program{ static void Main() { Random rnd = new Random(); Console.Write( ___ ); } }

Среди приведенных ниже кодов укажите код, которым необходимо заменить знаки подчеркивания для получения корректной программы, решающей поставленную задачу:

  • (Правильный ответ) rnd.Next(50,100)
  • NextDouble()*50+50
  • Random.Next(50, 100)
  • rnd.Next(50,99)
  • rnd.Next() + 50

В теле метода Main() содержится следующий код:

byte A = new byte(); byte B = 0; System.Console.Write(A == B);

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

  • (Правильный ответ) True
  • метод Main не выполняется: программа содержит ошибки
  • либо True, либо False, но конкретный результат определить невозможно, так как неизвестно значение переменной A
  • False
  • 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,5
  • 5,5
  • программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
  • 2
  • 7

В теле метода 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():

  • 11 12 14 15
  • (Правильный ответ) 11 15 15 15
  • 11 12 13 14
  • 11 12 15 15

В теле метода Main() содержится следующий код:

double a=0;string msg=»»не определено»»;if (a > 1) if (a < 4) msg = «»внутри»»;; else msg = «»снаружи»»; System.Console.WriteLine(msg);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

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

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

short a ,b=4;a = 5%3 + 5 * ++b;System.Console.Write(a);

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

  • 20
  • (Правильный ответ) метод Main не выполняется: программа содержит ошибки
  • 22
  • 27

Приведенный фрагмент исходного кода размещен в теле метода 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 0 0
  • True True True
  • (Правильный ответ) True False False
  • True True False

В теле метода Main() содержится следующий код:

char a = new char();int b = new int();System.Console.Write(a == b);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

  • (Правильный ответ) True
  • программа не корректна, так как переменные a и b имеют несовместимые типы
  • False
  • a == b
  • программа не корректна, так как переменные a и b имеют неопределенное значение

В теле метода Main() содержится следующий код:

object box = ‘A’;short original;original = _________;

Среди указанных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет присвоить переменной original значение 65:

  • (short)box
  • (char)box
  • (Правильный ответ) (short)(char)box
  • box
  • (object)box

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

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

В теле метода Main() содержится следующий код:

string str = «»whfirk»»;char[] chars = str.ToCharArray();chars[1] = ‘o’;str = new string(chars);System.Console.Write(str);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

  • (Правильный ответ) wofirk
  • owhfirk
  • whfirk
  • ohfirk
  • программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок

Проанализируйте программу и определите результат вывода.

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]); }}

  • метод Main не выполняется: программа содержит ошибки
  • 77 33 88 55
  • 22 33 44 55
  • (Правильный ответ) 77 33 44 88

Проанализируйте программу и определите результат вывода.

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]); }}

  • метод Main не выполняется: программа содержит ошибки
  • 5 5 7 7
  • (Правильный ответ) 5 7 5 7
  • 3 0 5 7

В теле метода Main() содержится следующий код:

string str = «»whfirk»»;str = str.Remove(1, 2);str = str.Insert(1,»»o»»);System.Console.Write(str);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

  • (Правильный ответ) woirk
  • whoirk
  • программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
  • hofirk
  • wofirk

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

  • uint
  • float
  • int
  • decimal
  • (Правильный ответ) double

Среди приведенных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет получить корректную программу, которая выведет на консоль True:

using System;class Program{ static void Main() { short A = ________ ; Console.WriteLine(A == short.MinValue); }}

  • UInt16.MinValue
  • -256
  • (Правильный ответ) Int16.MinValue
  • (Правильный ответ) -32768
  • 0

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

  • (Правильный ответ) long <—- double
  • (Правильный ответ) int <—- uint
  • int <—- byte
  • double <—- float
  • decimal <—- int

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

byte a = 0x8, b, maska =____;b = (byte)(a++ | maska);System.Console.WriteLine(b);

Среди приведенных ниже инициализаторов укажите один инициализатор, подстановка которого вместо знаков подчеркивания позволит получить программу, которая выведет на экран десятичное значение 24:

  • 0x7
  • 0xF
  • (byte)~a
  • (Правильный ответ) 0x10

В теле метода 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:

  • 55
  • 3545
  • (Правильный ответ) 35
  • 45

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

  • (Правильный ответ) строка – это объект класса System.String
  • строка – это значимый тип данных
  • строка – это массив символов типа char
  • строка – это последовательность символов, заканчивающаяся нулем
  • (Правильный ответ) строка – это ссылочный тип данных

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

  • тип приемника больше, чем тип источника
  • тип приемника совместим с типом источника
  • обе переменные содержат вещественные данные
  • обе переменные содержат целочисленные данные
  • (Правильный ответ) тип приемника больше, чем тип источника, и эти два типа совместимы

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

  • (Правильный ответ) 2 байта
  • зависит от числа символов в константе
  • 1 байт
  • для ASCII – 1 байт, для Unicode – 2 байта
  • спецификацией языка не определен и зависит от конкретной реализации транслятора

В теле метода Main() содержится следующий код:

Random d1, d2;d1 = new Random(1); d2 = new Random(1);System.Console.Write(d1 != d2);

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

  • 1
  • d1 != d2
  • (Правильный ответ) True
  • System.Random
  • False

В теле метода Main() содержится код, предназначенный для вычисления меньшего из двух значений:

double d; d = System.Math.Min( _________ );

Среди перечисленных ниже кодов укажите все коды, подстановка кажого из которых вместо знаков подчеркивания позволяет получить корректную программу:

  • 200, 15M
  • (Правильный ответ) 200.0, 15
  • (Правильный ответ) 200F, 15L
  • ‘200’, ’15’
  • (Правильный ответ) 2E2, 15F

В классе 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

Укажите результат вывода на консоль после запуска программы из командной строки:

  • 5
  • 3
  • 2
  • (Правильный ответ) 4

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

  • который может иметь любое имя, а его определение в исходном коде класса Program должно быть первым
  • имя которого указывает пользователь при запуске приложения
  • который имеет имя Main и должен быть определен в классе Program
  • (Правильный ответ) который имеет имя Main и может быть определен в любом классе
  • который имеет имя main и может быть определен в любом классе

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

  • (Правильный ответ) ==
  • (Правильный ответ) +
  • >=
  • sizeof
  • >

Проанализируйте программу и определите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

class Program{ static void Main() { int a=12, b=34; string s = «»Сумма=»»; s += a + b; System.Console.Write(s); }}

  • (Правильный ответ) сумма=46
  • программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
  • сумма=1234
  • 1234
  • сумма=12+34

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

int a;float b = 4.5f;a = (int)b++;b = b — a;System.Console.Write(++b);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

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

Программа 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); }}

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

  • 2 4 2
  • программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
  • (Правильный ответ) 1 3 -1
  • 1 3 1
  • 0 0 0

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

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

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

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

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:

  • будет вызвана функция: Вариант 2
  • будет вызвана функция: Вариант 4
  • будет вызвана функция: Вариант 3
  • (Правильный ответ) нет ни одного варианта реализации функции F, который соответствует вызову
  • будет вызвана функция: Вариант 1

Программа предназначена для заполнения и вывода элементов матрицы:

using System;class Program{ static void Main() { int[,] a; a = new int[2,2] { {22,33}, {44,55} }; Console.Write( ____ ); }}

Среди приведенных кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания приведет к корректной программе, выводящей на консоль значения: 22 44 33 55

  • (Правильный ответ) «{0} {3} {2} {1}», a[0,0], a[1,1], a[0,1], a[1,0]
  • «{0} {1} {3} {2}», a[0,0], a[1,0], a[0,1], a[1,1]
  • (Правильный ответ) «{0} {2} {1} {3}», a[0,0], a[0,1], a[1,0], a[1,1]
  • «{0} {1} {2} {3}», a[0,0], a[0,1], a[1,0], a[1,1]

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

  • для перехода на оператор с меткой default, расположенный в другом методе
  • для возврата в метод Main
  • (Правильный ответ) для перехода в операторе switch на ветвь по умолчанию
  • для завершения выполнения программы
  • для возврата в точку вызова

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

int a = 2, b;b = (byte)a++ == 3 ? 0 : (a << 1 + 2);System.Console.WriteLine(b);

Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:

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

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

  • (Правильный ответ) указатели(pointer)
  • ulong
  • void
  • byte

Для вывода на консоль сообщения «Изучаем C#» разработана программа, код которой полностью приведен ниже:

class MyClass{ static int Main() { Console.Write(«»Изучаем C#»»); return 0; }}

Трансляция программы завершена неудачно. Какое из приведенных ниже высказываний раскрывает причину некорректности программы:

  • метод Main может быть определен только в классе Program
  • метод Main не может быть статическим методом
  • метод Main обязан возвращать значение 1
  • (Правильный ответ) не указано пространство имен, в котором определен тип Console
  • метод Main может возвращать только тип void

Приведенный фрагмент исходного кода размещен в теле метода 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);}

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

  • при объявлении массива пропущены ключевые слова new int[]
  • (Правильный ответ) переменная i объявлена дважды
  • имя локальной переменной Массив содержит символы русского алфавита
  • в программе используется локальная переменная s с неопределенным значением
  • в заголовках условных операторов операция == некорректна, вместо нее необходимо использовать операцию =

В теле метода Main() содержится следующий код:

object box = 127; ulong original; original = _________ ;

Среди указанных ниже кодов укажите все коды, подстановка каждого из которых вместо знаков подчеркивания позволяет присвоить переменной original значение 127:

  • (Правильный ответ) (ulong)(int)box
  • box
  • (Правильный ответ) (uint)(int)box
  • (uint)(byte)box
  • (uint)box

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

  • string ** a;
  • char[] a;
  • string [][] a;
  • (Правильный ответ) string [,] a;
  • char *a[];

Проанализируйте приведенный код, определенный в методе 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.

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

Проанализируйте программу и определите результат вывода.

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); }}

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

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

  • (Правильный ответ) в обязательном порядке должна содержать в теле оператор return
  • должна содержать в заголовке модификатор function
  • (Правильный ответ) может иметь в списке параметров модификатор params
  • должна иметь в списке параметров как минимум один параметр
  • (Правильный ответ) должна содержать в заголовке тип возвращаемого значения, отличный от void

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