Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

;]] public clss В - {] public clss С - В {protected override string Print {return

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Сколько родительских классов может иметь производный класс?

Не больше двух 5 v Всегда один ® Любое количество Не больше одного

Что выведет на экран код:

static void Main() {

if (false)

{

int i = 1;

>

int i = 2;

Console.Writ e L i ne(i);

® v Код не скомпилируется

public abstract class A {

public string PublicPrintO { return Print Oj

>

protected virtual string Print() { return "A";

>

>

public class В : A { > public class С : В {

protected override string Print() { return "C";

>

>

Каков будет результат при выполнении следующего кода:

А ас = new С();

Console.WriteLine(ас.PublicPrint());

D У с

А

Ошибка компиляции

§) Ошибка выполнения

Ж Какими способами из перечисленных может быть перегружен метод в С#

П другой тип возвращаемого значения 0 другое имя метода [71 v другой тип параметров О v' другое количество параметров

V Скомпилируется ли следующий код?

public class CustomConvertor {

public static string ToDate(out this DateTime dt) {

return dt.ToShortDateString();

>

|>

Да

® ✓ Нет

Пояснение: He будет работать.

  1. Класс содержащий расширяющие методы должен быть статическим.
  2. Модификатор "out" в объявлении расширяющего метода • не нужен.

К Возможно ли иметь/создать статический индексатор в С#?

: ✓ Нет

® Да

#region Constructor

public Name(string name) {

this.Name = name;

}

#endregion

#region Properties

/*!*/ public string Name {

private set; get;

>

#endregion

#region Methods

static void Main(string[] args) {

/*2*/ Name n = new Name("Helo Wrold");

/*3*/ n.Dispose(); // освобождаем память.

>

#endregion >

>

I I Комментарии вида /* */ недопустимы

3 ^ Строка ГУ I Класс Name не может содержать свойство Name 0 Строка Г2*1 : ошибки в фразе "Helo Wrold" 3 * Строка ГУ! - вызов Dispose для переменной п невозможен.


' Что напечатает данный код:

class Test {

static void increment (int p) {

++p;

>

static void Main( ) {

int x = 8;

increment (x);

Операторы и операци

Console. Write Line (x++) ;

У

}

 

4011 / 7731

2425 / 7731

® v 8 9

 

10

858 / 7731

 

424 / 7731

Код не скомпилируется

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


Ж Что напечатает следующий код:

int sum = в;

for (int i = 0; i < 3; i++) {

sum += i;

j >

Console.WriteLine("Sum of " + i + " numbers is " + sum);

(§) Sum of 3 numbers is 3 Sum of 2 numbers is 3 Sum of 3 numbers is 6 v Возникнет ошибка компиляции

Возникнет ошибка времени выполнения

Для инкапсуляции вы хотите определить автосвойство так, чтобы невозможно было вызвать сеттер Общие понятия за пределами класса, но геттер оставить доступным. В каком из заданных вариантов описано нужное свойство?

public int Value { get; set; } 86 / 4756

© v public int Value { get; private set; } 3260 / 4756

int Value { public get; private set; } 654 / 4756

private int Value { public get; set; } 299 / 4756

public int Value { get; } 434 / 4756

Что будет выведено на экран?

class Test {

static void Main(string[] args) {

int i = 1;

Console. WriteLine("i = {0}", i++);

>

® i = 1 i =2 i={0}1 i={0}2

код не скомпилируется

К Что будет выведено на консоль в результате выполнения следующего кода:

namespace ConsoleApplicationl t

class Program

|

static void Main(string[] args) {

Console. Write (Test. Foo (1) +Test. Foo ( 2)*Test. Foo ( 3) ) j Console.ReadLine();

}

>

class Test {

public static int Foo(int o) {

Console.Write(o); return o;

}

>

}

2317 ; ✓ 1237 3217

•<э Возникнет ошибка компиляции, тип int нужно привести к строке

К В каких строках кода допущены ошибки?

using System;

namespace Inheritance {

class A { } interface Inner { }

struct S : A, Inner //1 {

int num = 10; //2

public S() //3

{

>

static S() //4

{

>

}

class Program {

static void Main(string[] args) {

S obj = new S(); //5

}

>

;>

И v 1 □>i 0 v з

0 4

И 5

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

Ваш ответ: (private 1

Правильные ответы: sealed

К Что напечатает следующий код:

static bool Method10

Console.WriteLine("in Method1"); return false;

static bool Method2()

Console.WriteLine("in Method2"); return true;

static void Main(string[] args)

if (Method!() & Method2()) {

Console.WriteLine("inside if");

>

J }

in Methodl in Method2

in Methodl in Method2 inside if

in Methodl

18 Какие из определений для абстрактных классов в С# являются корректными? Классы и объекты

П V Абстрактный класс может включать как абстрактные члены так и виртуальные ^491 /9144

В]

В абстрактных классах нельзя определять поля

1527 / 9144

Абстрактные классы не могут наследовать интерфейсы

1355 / 9144

Абстрактные классы нельзя наследовать

1030 / 9144

Г71 v Нельзя создавать экземпляр абстрактного класса 7800 / 9144

Пояснение: Нельзя создавать экземпляр абстрактного класса по определению абстрактного класса, Абстрактный класс может включать как абстрактные члены так и виртуальные - это не запрещено.

public abstract class A {

public string PublicPrint() { return Print();

>

protected virtual string Print() { return "A"j

>

}

public class В : A { } public class С : В {

protected override string Print() { return "C"j

>

|>

Каков будет результат при выполнении следующего кода

А ас = new С();

Console.WriteLine(ас.PublicPrint());

® V С

Ошибка выполнения Ошибка компиляции

К Какими способами правильно инициализировать двумерный массив? (Выберите все верные ^ варианты)

[71 ✓ int[,]k = {{2,-2},{3,-22},{0,4}}

  1.  int[][] k = new int [2][3]
  2.  intk[][] = newint[2][3]
  3.  int[][] k = new int[2][] 0 int k[,] = new int [2,3] 0 ✓ int[,] k = new int [2,3]

Пояснение: int k[][] = new int [2][3], int[][] к = new int [2][3], int k[,] = new int [2,3] - неправильное объявление массива; int[][] к = new int[2][] - объявление ступенчатого массива, а не инициализация.

Что напечатает следующий код:

public static void Main() {

Int32 v = 5; Object о « vj v = 123;

Console.WriteLine(v + " + (Int32) o);

>

Возникнет ошибка приведения типов 123, 123 ® ✓ 123, 5 5,5


Скомпилируете» ли данный код?

internal sealed class SomeGenericClass<T> {

public static T SomeMethod() {

return new T();

>

|>

® да 3138 / 8650

V ✓ нет 5486 / 8650

Классы и объею

Пояснение: He (компилируется, т.к не указано ограничение (происходит вызов открытого конструктора без параметров, но не у всех ссылочных типов он есть). Для того, чтобы код (компилировался необходимо добавить ограничение, например:


Скомпилируется ли следующий фрагмент кода:

private void GetValues(int a,int b, out int c,out int d) {

d ■ с - a; с ■ a + b;

>

private void SomeMethod() {

int a; int b;

GetValues(l, 2, out a, out b);

|) _

Да

® ^ Нет

Пояснение: He скомпилируется, поскольку переменная с в выражении d - с - а должна быть сначала проинициализирована

К Как могут инициализироваться readonly поля экземпляра класса?

Г~1 с помощью свойств Г71 ✓ при объявлении

в instance методах в статических методах | | v в конструкторе Комментировать вопрос (всего: 1)

(^компилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = "anything"; catch (Exception e)

Console.Write Line(e.Message); catch (IndexOutOfRangeException e) Console.Write Line(e. Message);

® V Нет Да

Что будет выведено на консоль после выполнения следующего кода

static public void Main(string[] args)

{

int i = 1в;

string s = "Hello, world";

Console. WriteLine("i = " + i); Modifylnt(i);

Console. WriteLine("i = " + i);

Console. WriteLine("s = " + s);

ModifyString(s);

Console. WriteLine("s = " + s);

}

static void Modifylnt ( int i) {

i = 99;

}

static void ModifyString(string s) {

s = "Hello, I' ve been modified.";

}

f = 10

i = 10

s = Heto, world s = Heto, I've been modified.

® i -10 i = 99

s = Heto, world s = Heto, I've been modified.

✓ i = Ю i = 10

s = Heto, world s = Heto. world

i Какой будет результат компиляции и выполнения данного кода:

public static void Main(string[] args) {

int k = 1;

Console.WriteLine(k++ + ++k);

>

5 ^ 4 ® 5 2 3

public event Action C;

>

public static class Program {

public static void Main() {

Foo foo = new Foo();

foo.A += () => { }j // 1 foo.A(); // 2

foo.В += () => { }; 11 3 foo.BQj // 4

foo.С += () => { >; It 5 foo.CQ; // б

>

>

Г~1 Код компилируется успешно, в нём нет ошибок 0 1

ЙГ 2

0^3

ГГ 4

0 5

□ V 6

Ж Что выведет данный код?

static void Main(string[] args) {

string s; {

int s = 10;

Console.WriteLine(s);

>

l>

® 10

Пустую строку v Код не скомпилируется

Код скомпилируется, но во время исполнения возникнет Exception

К В какой кодировке хранятся символьные (char) переменные в С#?

✓ UTF-16 Windows1251 Win1252 UTF-4 KOI-8

' Каким будет результат выражения

(х == 5) && ((у == 8) && !(х == у))

если х и у предварительно объявлены как:

int х = 5; int у = 8;

® v true false

в выражении допущена синтаксическая ошибка 1 О

Можно ли разместить объекты разных типов в массиве (System.Array)?

®Vfla нет

К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

[71 int[4] someArray; П У int[] someArray = new int[] {1,2,3,4};

  1. v int[] someArray = new int[4];

Г71 V int[] someArray = new int[4] {1,2,3,4}; [71 int someArray[] - new int[4];

  1. ✓ int[] someArray = {1,2,3,4};

namespace Inheritance

С

class A { > interface Inner { }

struct S : A, Inner //1 {

int num = 10; //2

public S() //3

{

>

static S() //4

{

>

>

class Program {

static void Main(string[] args) {

S obj = new S(); //5

>

}

>

0 V 1 □ 2 □ ✓ 3 0 4 0 5

IS Что напечатает следующий код:

int sum = 0;

for (int i = 0; i < 3; i++) {

sum += i;

>

Console.WriteLine("Sum of " + i + " numbers is " + sum);

(§) Sum of 3 numbers is 3 Sum of 2 numbers is 3 Sum of 3 numbers is 6 ✓ Возникнет ошибка компиляции

Возникнет ошибка времени выполнения Комментировать вопрос (всего: 8)


* Отметьте все верные утверждения о классе SomeClass:

internal sealed class SomeClass {

public void SomeMethod() {

>

| >

G SomeClass является значимым типом (value-type) 387 / 8369

  1. У SomeClass наследуется от System.Object 6769 / 8369 (3 v SomeClass доступен для использования только внутри сборки, в которой он определён 6892 / 8369 0 SomeClass могут наследовать другие классы 907 / 8369 Г~1 SomeClass может использоваться внешними сборками 763 / 8369
  2.  v у SomeClass не может быть наследников 6889 / 8369 {7} экземпляр SomeClass нельзя создать вызовом new SomeClass(), так как у класса не определен открытый конструктор без параметров 845 / 8369

Пояснение: 1) SomeClass неявно наследует System.Object

  1. у SomeClass не может быть наследников (модификатор sealed означает, что класс не может порождать наследников)
  2.  SomeClass доступен для использования только внутри сборки, в которой он определён (модификатор internal определяет класс, как внутренний)
  3. явное определение конструктора без параметров для ссылочного типа необязательно • компилятор создаёт его, если конструктор не определён явно

Классы и объекты

  1.  SomeClass • ссылочный тип, т.к. унаследован от object


К Выберите верные утверждения на счет наследования в С#

0 Класс может наследовать сколько угодно реализаций

  1.  v Класс может наследовать только одну реализацию
  2. * Класс может наследовать сколько угодно интерфейсов
  3. Класс не может наследовать реализацию
  4. Класс не может наследовать интерфейсы

0 Класс может наследовать только один интерфейс

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

try

Console.WriteLine("TRY" ); throw new Exception("EXCEPTION");

catch (Exception)

Console.WriteLine("CATCH");

Нет ® v да

К Что напечатает следующий код:

static bool Methodic) {

Console.WriteLine("in Met hod1"); return false;

>

static bool Method2() {

Console.WriteLine("in Method2"); return true;

>

static void Main(string[] args) {

if (Methodl() && Method2()) {

Console.WriteLine("inside if");

>

>

® in Methodl in Method2

in Methodl in Method2 inside if

: v in Methodl

Пояснение: Правый операнд оператора ftft не нуждается в вычислении, так как Methodl вернул false.

К Выберите успешно компилируемые строки:

int i = "s"; //1

object о = 5; //2

object o2 = "123"; //3

object o3 = delegate() { return 0; > //4

Delegate d = delegate() { return 0; > //5 1

0^2

  1. ^ 3
  2. 4 0 5

К Скомпилируете ли следующий код (как часть некоторого метода):

ArrayList list = new ArrayList()j list .Add(new ObjectO); list.Add(new Exception()); list.Add(new Random().Next(10))j list.Add(new ArrayList())j

✓ Да

@ Нет

К Два последовательных вызова GetHashCode у одного и того же объекта должны возвращать одно и то же значение.

5 * Да 15

@ Нет 3

Комментировать вопрос (всего: 4) Автс

* Какие строки приведут к ошибке компилляции этого кода если он является частью метода?

int jc = 1;

switch (k) {

case 6: //\

case 1: Console.WriteLine("Case Iм); //2 case 2: //3

default: Console.WriteLine("Default"); //4

>

0 1 235/677

  1. * 2 246 / 677 0 3 276 / 677
  2. * 4 182/677 О Код успешно скомпиллируется 233 / 677

Пояснение: 2. ВСЯ в конструкции switch не допускается проход (fall through) в следующий раздел без операторов goto case или goto default. В конце каждого раздела требуется наличие оператора break или другой передачи управления (return, throw, continue). Исключением являются пустые разделы (как 1 и 3). 4. Эти правила также относятся и к последнему разделу.

К в определении каких методов класса допущены ошибки?

public class Foo

{

public void Ml(int[] pi, int[] p2) { > public void N2(int[] plj params int[] p2) { } public void M3(params int[] pi, int[] p2) { } public void pa rams int[] pi, params int p2) { >

>

  1. Ошибок нет, всё определено корректно 107 / 625
  2. М1 27 1 625 й М2 153 / 625 0 У МЗ 387/625
  3. ^ M4 440 / 625

Пояснение: После параметра с ключевым словом params, дополнительные параметры не допускаются. Не допускается использование ключевого слова params в объявлении метода более одного раза http://msdn.microsoft.com/ru-ru/library/w5zay9db(VS.90).aspx

К Может л и этот тест пройти?

var а = new А();

a.GetType().GetField("B"] a.GetType().GetField("С";

Assert.Equal(a.b, a.c);

* ^ Да (§) нет

Пояснение: Может, если А • структура

>.SetValue(a, 83); ) .SetValue(a, 42);

К Какие из определений для абстрактных классов в С# являются корректными? классы i

  1. Абстрактные классы не могут наследовать интерфейсы 136<
  2. * Нельзя создавать экземпляр абстрактного класса 781! 0 v Абстрактный класс может включать как абстрактные члены так и виртуальные 649'
  3. Б абстрактных классах нельзя определять поля 154: 0 Абстрактные классы нельзя наследовать 103*

Пояснение: Нельзя создавать экземпляр абстрактного класса по определению абстрактного класса, Абстрактный класс может включать как абстрактные члены так и виртуальные • это не запрещено.

К Какой конструктор называют конструктором типа?

■ ^ конструктор, отмеченный модификатором static ® конструктор, отмеченный модификатором internal конструктор, отмеченный модификатором protected конструктор, отмеченный модификатором private

конструктор, который не определяется явно - его J IT компилятор объявляет самостоятельно

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

  1.  var someCollection = {1,2, 3}; 0 var myNuU = null;

0 У var mylNt = 1; 0 var dontKnowType;

  1. v var evenNumbers ■ new int [] {2, 4, 6, 8}; 0 v var myString = "Goodbye word";

Пояснение: Смотрим no правой части где явно можно вывести тип

Что будет выведено на экран?

class Test {

static void Main(string[] args) {

int i = 1;

Console.WriteLine("i = {0}", i++)j

>

I >

j V i = 1

i Щ 2 = {0}1 = {0}2 код не скомпилируется

public abstract class A

public virtual string Print(){return "A"j}

public class B:A

public virtual new string Print(){return "B";}

public class C:B

public override string Print(){return "C";}

Каков будет результат при выполнении следующего кода:

А ас = new С();

Console.WriteLine(ac.Print());

О A В

С

® Ошибка компиляции

К Будет ли компилироваться данный фрагмент кода?

try

{

FileStream F = new FileStream("myfile.txt"); string s = F.ReadLine();

>

catch (IOException) { >

finally

{

F.CloseQ;

| >

® Да j ' Нет

Пояснение: Компилятор ругнется на то, что переменная F не определена в месте вызова F.Closef)

* Чем отличаются следующие объявления переменной: 1.

doublet,] myDoubles;

2.

double[][] myOoubles;

v в первом случае объявляется обыкновенный двумерный массив. Во втором случае объявляется "рваный массив", т.е. массив массивов, где каждая строк массива может иметь свою длину. 522 / 7

(3) в первом случае объявляется "рваный массив", т.е. массив массивов, где каждая строка массива может иметь свою длину. Во втором случае объявляете обыкновенный двумерный массив. 63/7

Ничем не отличаются. 104 / 7

В первом случае — объявление двумерного массива. Во втором — трехмерного. 9/7

* Среди перечисленных конструкций С# укажите объявление метода

(§) string this [int i] {get {return "Name";}} string Name {get{return "Name";}} string Name; v sting GetName () {return "Name";} Комментировать вопрос (всего: 4)

К Что выведет на экран данный код?

class Program

| {

static void Main(string[] args)

{

Console.WriteLine(Foo("Original string") );

>

public static string Foo(string str) {

try

{

return str;

>

finally

{

Console.WriteLine("In finally"); str ■ "Somewhere in finally";

>

>

b

(3) in finally Somewhere in finally

Ошибка при компиляции

Э v in finally Original string

Original string

using System;

namespace Q {

class Name {

public string A {

private set; get;

>

private string В

{

public set; public get;

>

private string x;

public string С {

get { return x.ToString(); >

>

public string D {

set { x = value; > private get;

>

>

| >

  1. В

0 ✓ С

  1.  v A

К Что выведется на консоль:

using System;

class MainClass {

static void Main() {

int? i = null;

Console.WriteLine(i ?? Convert.Tolnt32(i.HasValue));

>

>

@ Код не скомпилируется

Код выдаст исключение NullReferenceException null j v О

Комментировать вопрос (всего: 1)

к

public abstract class A

public virtual string Print() { return "A"; }

Dublic class В : A

public override new string Print() { return "B"; }

public class С : В

public string Print() { return "C"; }

Каков будет результат при выполнении следующего кода:

А ас = new С();

Console.WriteLine(ac.Print());

(§) А 84/5

В 73/5

С 163/5

v Ошибка компиляции 235 / 5

Пояснение: Совместное использование модификатора new и модификатора переопределения в одном члене является недопустимым, поскольку два

Что будет выведено на консоль в результате выполнения следующего кода:

nanespace ConsoleApplicationl {

class Program

{

static void Main(string[] args) {

Console.Write(Test.Foo(l)+Test.Foo(2)*Test.Foo(3)); Console.ReadLine();

>

>

class Test {

public static int Foo(int o)

{

Console.Write(o); return o;

>

>

2317 V 1237 3217

Возникнет ошибка компиляции, тип int нужно привести к строке

Какое ключевое слово используется для прекращения выполнения конструкций switch, for, while?

Ваш ответ: (break Правильные ответы: break

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize, который вызывается у этого объекта классы и объекты при сборке мусора?

Да 3837 / 8707

@ V Нет 4858 / 8707

Пояснение: В классе System. Object определён метод Finalize, но CLR его игнорирует, поэтому объекты всех классов, производных от Object (только если в них явно не определён метод Finalize), не считаются подлежащими завершению, т.е. метод Finalize при сборке мусора не вызывается для объектов этих классов.

К Что из перечисленного верно:

  1. v Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в управляемой куче
  2. Переменные ссылочного типа размещаются в управляемой куче 0 Переменные значимого типа размещаются в неуправляемой куче 0 v Переменные значимого типа размещаются в стеке потока
  3. Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в неуправляемой куче

Что напечатает следующий код:

static bool Methodic)

{

Console.WriteLine("in Methodl"); return false;

>

static bool Method2() {

Console.WriteLine("in Method2"); return true;

}

static void Main(string[] args) \i

if (Methodl() & Method2Q) {

Console.WriteLine("inside if");

>

>

® * in Methodl in Method2

in Methodl in Method2 inside if

in Methodl

Скомпилируется ли следующий код:

class Program

{

private static int i;

static Program(int a)

{

this.i ■ a;

Console.WriteLine("In static constructor");

>

static void Main(string[] args) { >

§> Да Г v Нет

Скомпилируете ли данный фрагмент кода успешно?

private int GetID (string inputText) {

if (inputText != "")

return 1; else if (inputText == "") return 0;

| >

® Да Э v нет


^ Что произойдет в результате выполнения следующего кода:

class Test {

static void Main(string[] args) {

char[] vowels = {'a'j'e'j'i'j'o'j'u'}; for (int i = 1; i <= vowels.Length; i++) Console.Write(vowels[i] + " ");

>

>

a e i о u e iou

Возникнет ошибка компиляции a e i о

® ^ Код напечатает "e i о u", а дальше уже возникает ошибка времени выполнения 1

Пояснение: Нумерация элементов массива начинается с О. Для обхода всех символов массива необходимо организовать цикл таким образом: for (int i = 0; i < vowels.Length; i++) (строго меньше vowels.Length).

Масси!

В данном же случае возникнет ошибка IndexOutOfRangeException.


Что будет выведено на консоль в результате выполнения следующего кода:

namespace ConsoleApplicationl {

class Program

{

static void Main(string[] args) {

Console.Write(Test.Foo(l)+Test.Foo(2)*Test.Foo(3)); Console.Read L i ne();

>

>

class Test

{

public static int Foo(int o)

{

Console.Write(o); return o;

>

>

>

2317 D У 1237 3217

(§) Возникнет ошибка компиляции, тип int нужно привести к строке

^ В какой строке кода допущена ошибка:

int а = 0; int b ■ 1; if (а == b) а = а; if (a) b = а;

в третьей: нельзя присвоить переменной ее же значение @ ✓ в четвертой: условие должно возвращать логическое значение в этом коде нет ошибок

К Укажите имя класса, от которого наследуются все исключения.

Ваш ответ: (d

Правильные ответы: Exception,System.Exception public abstract class A {

public string PublicPrintO { return Print();

>

protected virtual string Print() { return "A";

>

>

public class В : A { } public class С : В {

protected override string Print() { return "C";

>

>

Каков будет результат при выполнении следующего кода:

А ас = new С();

Console.WriteLine(ас.PublicPrint());

© А ® / С

Ошибка выполнения

Ошибка компиляции

Какие действия необходимо и достаточно выполнить для того, чтобы программа компилировалась?

nanespace Test {

class TypeA {

class Туреб:TypeA {

public override void HethodA() { Console, wit eLine ( "ТуреБ" )j }

}

public virtual void HethodAQ { Console.writetine( "TypeA" )j }

class Program

{

static void tein(string[] args) {

туреА a = пей туреА(); TypeB b = леи TypeB();

  1.  HethodA();
  2.  HethodA(); Console.ReadLine()j

}

}

}

Добавить в начале программы строчку "using ТуреА" ничего изменять не надо, программа и так компилируется Изменить модификатор доступа класса ТуреА на public v Изменить модификатор доступа класса ТуреВ на public

] v Изменить строчку "ТуреВ b = new ТуреВ ();" на "TypeA.TypeB b = new ТуреА. ТуреВ();"

* Что выведет данный код?

static void Main(string[] args) {

string s;

{

int s = 10;

Console.WriteLine(s);

>

>

Пустую строку ® 10 . v код не скомпилируете

Код скомпилируете, но во время исполнения возникнет Exception

* Скомпилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = "anything"; catch (Exception e)

Console.WriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

I f Нет ® Да

Пояснение: Код не компилируется.

Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

Что будет напечатано в результате выполнения следующего кода?

class Program {

class А {

public virtual void Print() {

Console. WriteLine ("A: : Print");

}

}

class В : A {

public override void Print() {

Console. WriteLine ( " В: : Print" ) ;

}

}

class С : В {

public new void Print() { base.Print();

Console. WriteLine ( " С: : Print" ) ;

static void Main(string[] args) { A a s new A(); A b = new B(); Acs new C();

  1. Print ();
  2. Print();
  3. Print();

Console.ReadKcy();

}

}

Какие типы данных используются для хранения значений с плавающей запятой?

  1. bool (Boolean)
  2. long (Int64)

0 decimal (Decimal) 0 У float (Single)

  1. ^ double (Double)

Пояснение: float - является вещественным типом данных для хранения 32-bit значений и предназначен для хранения дробных чисел double - является вещественным типом данных для хранения 64-bit значений и также предназначен для хранения дробных чисел

шкоитмплоатк onnrw (огагп-

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize, который вызывается у этого объекта при сборке мусора?

® * Нет Да


Что будет выведено на экран?

class Test {

static void Main(string[] args) {

int i = 1;

Console.WriteLine("i = {0}"., i++);

I > <§> У

>

= 1 = 2 = {0}1 = {0}2 код не скомпилируется


к

public abstract class A

public virtual string Print() { return "A"; }

public class В : A

public override new string Print() { return "B"; }

public class С : В

public string Print() { return "C"; }

Каков будет результат при выполнении следующего кода:

А ас = new С();

Console.WriteLine(ас.Print());

А 83

® В 73

С 162

© У Ошибка компиляции 235

Пояснение: Совместное использование модификатора new и модификатора переопределения в одном члене является недопустимым, поскольку два модификатора имеют взаимоисключающие значения.

К Что будет выведено на консоль при выполнении этого кода:

using System;

using System.Collections.ObjectModel;

using ByteCollectionl = System.Collections.ObjectModel.Collection<byte>;

namespace CollectionApplication {

class Program

{

class ByteCollection2 : Collection<byte> { >

static void Main(string[] args) {

Console.WriteLine(typeof(ByteCollectionl) == typeof(Collection<byte>)); Console.WriteLine(typeof(ByteCollection2) == typeof(Collection<byte>));

>

>

False

True

® True True

False

False

Возникнет ошибка компиляции

Э v True False

Можно ли объявить глобальную функцию в программе на С#?

Да

<§) ^ Нет

Я Каким будет результат выражения

(х == 5) && ((у == 8) && !(х == у))

если х и у предварительно объявлены как:

int х = 5; int у = 8;

" v true false

(3) в выражении допущена синтаксическая ошибка 1 О

ivoiwim npaonyiortv; ии омо/icn роииприплцпл Mciu^i

using System;

public static class stringExtension

{

public static string Reverse(super string s)

{

char(] msv s s.ToCharArray(); Array. Reverse( msv) ; return new string(msv);

у

}

using System;

public static class stringExtension

public static string Reverse(base string s)

{

char[] msv = s.ToCharArray (); Array. Reverse (msv) ; return new string(msv);

>

> ) ^

using System;

public static class stringExtension

{

public static string Reverse(this string s)

{

char[] msv = s.ToCharArray(); Array .Reverse(msv); return new string(msv);

>

}

Что напечатает следующий код:

static void Main(string[] args) { int a = 0; decimal b = 0; double с = 0.0;

Console.WriteLine(a == b); Console.WriteLine(a.Equals(b)); Console.WriteLine(a == c); Console.WriteLine(a.Equals(c)); Console.Read L i n e();

>

False

True False False

True

True True False

True

True True True

® v True False True False

Комментировать вопрос (всего: 7)


К Что будет выведено на консоль в результате выполнения следующего метода:

public void TestMethod() { int k = 1;

Console.WriteLine(k++ + ++k); Console.ReadLine();

I >

2 3

5 * 4

<§) Возникнет ошибка компиляции

с

Пояснение: Постинкремент k++ вернет 1 и увеличит к на 1, в результате преинкремент увеличит к=2 на 1 и сумма будет равна 4.


К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

  1. v int[] someArray = new int[4];
  2. v int[] someArray = new int[4] {1,2,3,4};
  3. int[4] someArray;
  4. v int[] someArray = {1,2,3,4};
  5. ^ int[] someArray = new int[] {1,2,3,4}; 0 int someArray[] = new int[4];

Какими способами правильно инициализировать двумерный массив? (Выберите все верные варианты)

  1.  1пЩП k = new int[2][] 0 intk[][] = new int [2] [3] Ш int k[,] = new int [2,3]
  2.  int[][] к = new int [2][3]
  3.  v int[,] к = new int [2,3]
  4.  v int[,] к = {{2,-2},{3,-22},{0,4}}

Пояснение: int k[][] = new int [2][3], int[][] к = new int [2][3], int k[,J = new int [2,3] - неправильное объявление массива; int[][] к = new int[2][] - объявление ступенчатого массива, а не инициализация.

Будет ли компилироваться данный фрагмент кода?

try

{

FileStream F = new FileStream("myfile.txt"); string s = F.ReadLine();

>

catch (IOException) { >

finally

{

F.Close();

>

Да

<§) v нет

Пояснение: Компилятор ругнется на то, что переменная F не определена в месте вызова F.CloseQ

* Что напечатает следующий код:

class MyClass {

static void Main() {

int a = b = 2; Swap(a, b);

Console.WriteLine("a=" + a + b=" + b)j Console.Read Line();

>

private static void Swap(int a, int b)

{

int с = a; a = b; b = c;

}

>

Возникнет ошибка компиляции Возникнет ошибка времени выполнения ® а=2, Ь=1 ; ^ а=1, Ь=2

Скомпилируете^ ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = "anything"; catch (Exception e)

Console.MriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

® v нет Да

Пояснение: Код не компилируется.

Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

С# является регистрозависимым языком.

® ✓ да Нет

С компилируется л и следующий код:

class Program

{

private static int i;

static Program(int a)

{

this.i = a;

Console.MriteLine("In static constructor");

>

static void Main(string[] args) { >

Да

® * Нет

Пояснение: В коде две ошибки:

  1. Статический конструктор класса (конструктор типа) не должен содержать параметров.
  2. Ключевое слово 'this' нельзя использовать в статическом свойстве, методе или инициализаторе статического поля.

* Что будет выведено на консоль в результате выполнения программы

class Program {

static !Enumerable<char> GetLetters() {

yield return 'A'; yield return 'В'; yield return 'G'j

>

static void Main(string[] args) {

foreach(char ch in GetLettersQ) {

Console.Write(ch);

>

>

>

® Программа не скомпилируете 11(

Программа "зациклится" 71

j V ABC ЗЗЕ

A 51

AAA 45

Пояснение: Функция CetLettersf) создает перечисление по объектам типа char.

Оператор yield return показывает компилятору, какое значение возвращает итератор на текущей итерации. На следующей итерации выполнение продолжается со следующего оператора.

Подробнее здесь: http://msdn.microsoft.com/ru-ru/library/dscyy5s0.aspx

Что выведет на экран код:

static void Main() {

if (false) {

int i = 1;

>

int i = 2;

Console.WriteLine(i);

(§> ^ Код не скомпилируется

Скомпилируется ли данный код:

static void Main() {

int a = 16; int b = 20; byte с = a + b; Console.WriteLine(c);

>

® * Нет

Да

К Укажите все правильные способы объявления массива:

0 int кП;

0 int к[3]; ||| Щ] к;

□ ЩЗ] к; 0 ^ Щ] к = new int [3];

Среди перечисленных конструкций укажите объявление индексатора

® v string this [int i] {get {return "Name";}} string Name;

string Name {get{return "Name";}} sting GetName () { return "Name";}

Можно л и разместить объекты разных типов в массиве (System. Array)?

О да

@ нет ^ Можно ли объявить глобальную функцию в программе на С#?

Да

<§) V Нет

Кпмкдритипппатк Rnnnnr (вгргп- Л)

* Что будет напечатано в результате выполнения следующего кода?

class woatt* { class А {

Owblic virtual void {

CO*SOU .M^itC ( • A: * ) ;

>

>

class S : A {

0abliC OvCrtidt vOid WifttO { C0A£0l«.Wit6LiAft( " 6:

)

»

class С S e {

0wbliC *tw void M£«t() {

tasft.wlAtO;

COrt&Ol*.МГ it«L iA*t'СS/it");

>

>

static void RaiA(strt4eC] С

да* Ota А О;

A b • *tw 5 C); Ac* tt« C();

  1.  WiAt();
  2.  rrt«t():

COASOl* . R«adK«y ( ) ;

)

)

Одмбиа to згле* комздггц**

® A:: Pry.:

8::Pf1rvt K:MK C:Pr%*

A::Mt 8::Prtot C:Pr*t

v A::Prmt 8::Rrtot

K6w«<w!voo8aTw вопрос (acefo: 6|

К Что будет выведено на консоль в результате выполнения следующего метода:

public void TestMethod() { int k - 1;

Console.WriteLine(k++ + ++k); Console.Read Line();

I >

2 3

5 V 4

(§) Возникнет ошибка компиляции

Пояснение: Постинкремент k++ вернет 1 и увеличит к на 1, в результате преинкремент увеличит к=2 на 1 и сумма будет равна 4.

Какие из перечисленных ключевых слов используются в конструкции "если"

then elseif ® ✓ if Else

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

int i » 0j

while (++i < 3) {

Console.Writ e(i);

>

код не скомпилируете

  1.  
  2.  

© * 2 3

К Будет ли выведена строка в результате выполненения следующего кода:

object а = 1; object b = 1;

if(b == a) {

Console.WriteLine("equal");

>

@ Да ^ Нет

К Можно л и разместить объекты разных типов в массиве (System. Array)?

О ^ да ® нет

К Какие модификаторы доступа из перечисленных по умолчанию даются классу, описанному в namespace? классы и объект! 0 public 2136 / 8353

0

private

2797 / 8353

protected

793 / 8353

0 V

internal

4354 / 8353

□ Ни один из перечисленных 370 / 8353

Пояснение: Невложенный класс - класс, который находится непосредственно в namespace. Такой класс может иметь 2 модификатора доступа - public и internal. По умолчанию класс имеет модификатор internal.


К Какие из строк вызовут ошибку компиляции?

  1. Туре tl = typeof(System.Int32);
  2. Type t2 = Type.GetType("System.Int32");
  3. Type t3 = Type.GetType(System.Int32);

Классы и объе>

  1. Type t4 = System.Int32.GetType();

□ 1

□ 2 0*3 □ ^ 4

1930 /938 3283 / 938 5565 / 938 4664 / 938

 

Пояснение: У Type есть метод GetType, который принимает в качестве параметра String. А у каждого типа из CLR есть метод CetType, но уже без параметров.


Ж Что из перечисленного верно:

  1. Переменные ссылочного типа размещаются в управляемой куче
  2. Переменные значимого типа размещаются в неуправляемой куче

7] v Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в управляемой куче

Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в неуправляемой куче П v Переменные значимого типа размещаются в стеке потока

Скомпилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = "anything"; catch (Exception e)

Console.WriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

® V нет Да

^ В какой строке кода допущена ошибка:

int а = 0; int b = 1; if (а == b) а = а; if (a) b ■ а;

в третьей: нельзя присвоить переменной ее же значение ® v в четвертой: условие должно возвращать логическое значение в этом коде нет ошибок


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

class Test {

MaccHBt

static void Main(string[] args) {

char[] vowels = {'а2лл'о','u'Jj for (int i = 1; i <= vowels.Length; i++) Console.Write(vowels[i] + " ")j

}

>

е i о и

3

(§) v Код напечатает "е i о и", а дальше уже возникает ошибка времени выполнения

11

Возникнет ошибка компиляции

а е i о

a e i о u

Пояснение: Нумерация элементов массива начинается с О. Для обхода всех символов массива необходимо организовать цикл таким образом:


К Данный код скомпилируется успешно (как часть некоторого метода):

try

Console.WriteLine("TRY"); throw new Exception("EXCEPTION");

catch (Exception)

Console.WriteLine("CATCH");

К Как могут инициализироваться readonly поля экземпляра класса?

  1. в instance методах |7] v при объявлении
  2. ^ в конструкторе
  3. с помощью свойств
  4. в статических методах

public string PublicPrint() { return Print();

>

protected virtual string Print() { return "A";

>

>

public class В : A { > public class С : B {

protected override string Print() {

return "С";

>

}

Каков будет результат при выполнении следующего кода:

А ас = new С();

ш

** public abstract class A {

Console.WriteLine(ас.PublicPrint());

 

' С

® А

5951 / 9224

1053 /9224

 

1804/9224

379 / 9224

Ошибка компиляции Ошибка выполнения

 

Пояснение: Основное правило полиморфизма. Вызывается перегруженный метод определенный в объекте, экземпляр которого был создан. При этом в базовом классе метод должен быть помечен как virtual, а в классе наследнике он должен содержать override


Что напечатает следующий код:

class MyClass | {

static void Main() {

int a = 1, b = 2; Swap(a, b);

Console.WriteLine("a=" + a + b=" + b); Console.ReadLine();

>

private static void Swap(int a, int b)

{

int с = a; a = b; b = c;

>

p

Возникнет ошибка времени выполнения <§) v а»1, Ь=2

Возникнет ошибка компиляции а=2, Ь=1

К Какие ошибки содержатся в представленном коде:

class Test {

static void f(ref int a, out int b)

{

a = 10 + b;

>

static void Main(string[] args)

{

int a;

int b - 5.C; f(ref a, out b);

>

>

0 v Перед вызовом метода f переменная а должна быть проинициализирована.

  1.  v в методе f необходимо обязательно присвоить значение переменной b
  2. Метод f должен быть объявлен как public
  3.  v в методе f переменная b должна быть инициализирована до ее использования
  4. Метод f должен содержать конструкцию return

D ^ Переменная b должна быть проинициализирована целочисленным значением или не инициализирована вовсе

  1. В этом коде нет ошибок

* Укажите имя класса, от которого наследуются все исключения.

Ваш ответ: (Extetnal

Правильные ответы: Exception,System.Exception

Сколько родительских классов может иметь производный класс? классы и ofoei

Любое количество 931 / 932

Не больше одного 2027 / 933

® v Всегда один 6227 / 932

Не больше двух 144 / 932

Пояснение: Всегда один. В С# нет множественного наследования, а любой объявленный класс без явного указания родительского класса автоматически становится производным от System.Object.

Сам System.Object не имеет родительского класса, но в вопросе спрашивается только о производных классах.


Что напечатает программа:

class Program

{

static bool SomeMethod() {

Console.WriteLine("Method was invoked"); return true;

Операторы и операции

>

static void Main(string[] args) {

if (true & false & SomeMethodO) {

 

Console.WriteLine("Inside IF operator");

 

>

 

>

 

664 / 6031

816 / 6031

77 / 6031

1395 / 6031

3059 / 6031

>

(§) Ошибка компиляции Method was invoked

Inside IF operator

Ошибка времени выполнения Ничего не напечатает

S Method was invoked

 

Пояснение: Операция ft в условном операторе позволяет полностью вычислить условие независимо от операндов, даже если очевидно, что результат не зависит от последующих операндов. Эта операция отличается от операции ftft тем, что полностью вычисляет выражение.


Укажите, какие свойства определены неверног

public class Foo { private int a; private int c;

public int A {

get { return a; > set { a = value; >

>

public int В {

get { return 0; >

>

public int С {

set { с = value; >

>

protected int D { get; set; > protected int E { get; private set; > protected int F { public get; set; >

>

gj_ A g_ В gj_ С gj_ D 0 E V F

К Лямбда-выражения на платформе .Net могут существовать в виде:

  1. файла, проецируемого в память
  2.  v кода на промежуточном языке MSIL (в виде делегатов)
  3. исключительной ситуации [7] v дерева выражений

Комментировать вопрос (всего: 0)


Что будет выведено на консоль в результате выполнения кода?

public static void Foo(params string[] lines) {

foreach (string 1 in lines) { Console.Write(1);

>

>

public static void Main() {

string[] data = new string[] { "1"* "2", "3" };

Foo(data);

Foo("A", "C");

}

 

40 / 647

191 / 647

413 / 647

Возникнет ошибка времени выполнения ® Программа не компилируется : ✓ 123АВС

 

Пояснение: Foo • метод, принимающий произвольное количество строк в качестве параметров. Также не запрещено передавать в метод готовый массив строк


К Какими способами правильно инициализировать двумерный массив? (Выберите все верные варианты)

  1.  int[][] k = new int[2][] 0 int к[,] = new int [2,3] 0 v int[,] к = new int [2,3]
  2.  int[][] k = newint[2][3]
  3.  int k[][] = new int [2] [3]

0 v int[,] к = {{2,-2},{3,-22},{0,4}}

Пояснение: int k[][] = new int [2][3], int[][] к = new int [2][3], int k[,] = new int [2,3] - неправильное объявление массива; int[][] к = new int[2][] - объявление ступенчатого массива, а не инициализация.

К Что напечатает следующий код:

static bool Methodic)

I {

Console.WriteLine("in Methodl"); return false;

>

static bool Method2() {

Console.WriteLine("in Method2"); return true;

>

static void Main(string[] args) {

if (Methodl() & Method2()) {

Console.WriteLine("inside if");

>

>

® in Methodl in Method2 inside if

У in Methodl in Method2

in Methodl

Пояснение: Оператор ft всегда вычисляет значение обоих операндов

Какие из перечисленных ключевых слов используются в конструкции "если":

elseif then ® Y if Else

В каких строках содержатся ошибки компиляции?

public class Foo

{

private double field;

public double A

{

get { return field + 16.0; > // 1

set { field = value - 1С.в; > //2

>

public int В { get; private set; } // 3

public static class Program {

public static void Main() {

Foo f = new Foo();

double a = f.A; //4 int b = f.B; // 5

f.B = 10; // 6

>

>

□ 1 □ 2

  1. 3
  2. 4
  3. 5

К Что будет выведено на консоль в результате выполнения следующего кода:

namespace ConsoleApplicationl {

class Program {

static void Main(string[] args) {

Console.WriteLine(Test.Foo().ToString()); Console.Read Line();

>

>

class Test {

public static int Foo() {

return null;

>

>

>

пустая строка @ NULL

System. Null v Возникнет ошибка компиляции

К Напишите название функции, которая является точкой входа в любую программу на С#.

Ваш ответ: fviod Main Правильные ответы: Main

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize, который вызывается у этого объекта классы и объекты при сборке мусора?

® ✓ Нет 4863 / 8712

Да 3837/8712

Пояснение: В классе System.Object определён метод Finalize, но CLR его игнорирует, поэтому объекты всех классов, производных от Object (только если в них явно не определён метод Finalize), не считаются подлежащими завершению, т.е. метод Finalize при сборке мусора не вызывается для о6"ьектпов этих классов.

К Укажите ошибки в коде:

using SystM; nmespace Q

Л

class Кие

<

«region Constructor

public U»e( string nine) i

this .'ISO- = пане;

>

aendregion

«region Properties

/"1"/ public string Usoe {

private set;

)

«endregion

«region Methods

static void Hain(strinjf] args) {

fZ'f Mane n « пей Uane(*Helo wrold");

/'t'/ n.Oispose(); // ©евобахввеи пенять.

)

«endregion

>

12

  1.  ^ Строка /*3*/ - вызов Dispose для переменной п невозможен.

комментарии вида /* V недопустимо!

  1. * Строка /*1*/ класс Name не может содержать свойство Name

Строка /*2*/ : ошибки в фразе "Heto Wrokf

Пояснение: /**/ • вполне себе комментарии

Hello world является строковым выражением, его синтаксис не проверяется*) класс не может содержать членов с именем, совпадающим с именем самого класса. Dispose не объявлен.

Какие ошибки содержатся в представленном коде:

class Test i

static void -F(ref int a, out int b) {

a = 10 + b;

}

static void Main(string[] args) {

int a;

int b = 5.0; f(ref a, out b);

>

>

  1.  v в методе f необходимо обязательно присвоить значение переменной b

G * В методе f переменная b должна быть инициализирована до ее использования

  1.  v Переменная b должна быть проинициализирована целочисленным значением или не инициализирована вовсе 0 В этом коде нет ошибок
  2. Метод f должен содержать конструкцию return

П * Перед вызовом метода f переменная а должна быть проинициализирована. О Метод f должен быть объявлен как public

К Что будет выведено на консоль в результате выполнения следующего кода:

namespace ConsoleApplicationl {

class Program {

static void Main(string[] args) {

string @string = "ABC"; Console.Write L ine(string);

Console.ReadLine();

>

>

>

v Возникнет ошибка компиляции System. String Пустая строка © ABC

Ш Что напечатает следующий код:

static bool Methodl()

Console.WriteLine("in Method1" ) ; return false;

static bool Method2()

Console.WriteLine("in Method2"); return true;

static void Main(string[] args)

if (Methodl() && Method2()) {

Console.WriteLine ( " inside if " );

>

j >

in Methodl in Method2

in Methodl

(§) in Methodl in Methodl inside if

Пояснение: Правый операнд оператора ftft не нуждается в вычислении, так как Methodl вернул false.

18 Можно ли в конструктор передать параметр с ключевым словом ref?

I f Да ® Нет

К Какими способами из перечисленных может быть перегружен метод в С#?

[71 другой тип возвращаемого значения П v другое количество параметров П v другой тип параметров Г71 другое имя метода

^ Что напечатает следующий код:

class MyClass

I

static void Main() {

int a = 1, b = 2; Swap(a, b);

Console.WriteLine("a =" + a + b=" + b); Console.ReadLine();

>

private static void Swap(int a, int b) {

int с = a; a = b; b = c;

>

>

Возникнет ошибка времени выполнения а=2, b=1 <§) v а=1, Ь=2

Возникнет ошибка компиляции

* Какое ключевое слово используется для прекращения выполнения конструкций switch, for, while?

Ваш ответ: [break Правильные ответы: break

Что будет выведено на консоль в результате выполнения следующего метода:

Операторы и опер<

public void TestMethodQ { int k = 1;

Console. WriteLine (k++ + ++k);

Console. ReadLineQ;

>

2

117 / 33

<§) 3

871 / 33

5 ✓ 4

2026 / 33

Возникнет ошибка компиляции 329 / 33

Пояснение: Постинкремент к++ вернет 1 и увеличит к на 1, в результате преинкремент увеличит к-2 на 1 и сумма будет равна 4.

Ш Какие из следующих модификаторов валидны в С#?

П v internal Г~1 external П у/ private П public

[71 protected external Г71 v protected internal

К Укажите имя класса, от которого наследуются все исключения.

Ваш ответ: [Exeption,System. Exeptio] Правильные ответы: Exception,System.Exception

t Скомпилируется ли данный фрагмент кода успешно?

private int GetID (string inputText) {

if (inputText ! = "")

return 1; else if (inputText == "") return 0j

I >

Да

® v Нет

Что напечатает следующий код:

class MyClass {

static void Main() {

int a = 1, b = 2; change(ref a, ref b);

Console.WriteLine("a=" + a + b=" + b); Console.Read Line();

}

private static void change(ref int a, ref int b)

{

int с = a; a « b; b = c;

>

>

a=1, b=2

® 4 a=2, b=1

Возникнет ошибка компиляции Возникнет ошибка времени выполнения

Ш Дана переменная Операторы и от

float пит;

Как можно проинициализировать num , чтобы код

if (num == num)

Console.WriteLine("Equal");

else

Console.WriteLine("Not equal");

Выдал результат Not equal

f71 Такой вариант невозможен 2069 /

  1. 0 399 /
  2.  num = 0/0; 922 /
  3. num = 0 / 0.0F; 273S /

Пояснение: В результате действия оператора 0 / 0. OF получается результат, который не является числом (NAN not a number), поэтому выражение (пит == пит) нельзя рассматривать с логической точки зрения

К Какие модификаторы доступа из перечисленных по умолчанию даются классу, описанному в Классы и об

namespace?

  1.  public 2136/ [3 private 2798 /
  2.  protected 793 /
  3. internal 4354 / П Ни один из перечисленных 370 /

Пояснение: Невложенный класс - класс, который находится непосредственно в namespace. Такой класс может иметь 2 модификатора доступа • public и internal. По умолчанию класс имеет модификатор internal.

Скомпилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = "anything"; catch (Exception e)

Console.WriteLine(e. Message); catch (IndexOutOfRangeException e) Console.WriteLine(e. Message);

Да

<§> v Нет

Пояснение: Код не компилируется.

Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

К Укажите все правильные способы объявления массива:

И int k[]; 0 int k[3];

  1. ✓ int[] k;
  2. int[3] k;

[3 ✓ int[] k = new int [3];

К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

int someArray[] = new int[4]; П int[] someArray = {1,2,3,4}; [Zl ^ int[] someArray = new int[] {1,2,3,4}; Г7| У int[] someArray = new int[4]; I7l int[4] someArray; СИ int[] someAoay = new int[4] {1,2,3,4};

К Что выведет на консоль следующая программа:

using System;

namespace TestCS { class Program {

public delegate void MethodDelegate(string param);

private void privateMethod(string str) { Console. Write ( str );

>

public void GetMeth(out MethodDelegate md) { md = privateMethod;

>

static void Main(string[] args) { MethodDelegate myMethod; Program program » new ProgramQ; program.GetMeth(out myMethod); myMethod("Hello")j Console. Write ( M_world" ); Console. ReadKey ();

}

}

>

HeUo ® _worid : v HeUo.wortd

Ошибка времени выполнения

Ш Задано классы:

class А { int х; } class В : А { int у; >

Какие фрагменты кода выполнятся успешно?

  1. v А а = new В(); а = null;
  2. В Ь = new А();

0 Object а = new В(); В b = a as В;

Object а = new А(); Object b = (В)а;

Ш Что будет выведено в результате работы программы?

#if DEBUG

Console.WriteLine("DEBUG");

«else

Console.WriteLine("RELEASE");

«endif

Возникнет ошибка компиляции, т.к. С# не поддерживает директивы препроцессора (§) Возникнет ошибка во временя выполнения

v При компиляции в debug моде будет выведено "DEBUG", а при release - "RELEASE"(если определенны эти константы)

Пояснение: Ctt поддерживает директивы препроцессора

Ш Что напечатает следующим код:

class MyClass {

static void Main() {

int a = 1, b = 2; change (ref a, ref b);

Console.WriteLine("a =" + a + b=" + b); Console.ReadLine();

}

private static void change (ref int a, ref int b)

{

int с = a j a = b; b = c;

>

>

® a=1, b=2 a=2, b=1

Возникнет ошибка компиляции Возникнет ошибка времени выполнения

К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

0 У int[] someAnay = new int[] {1,2,3,4}; fTl int[] someAnay - new int[4] {1,2,3,4}; ^Jl V int[] someAnay = new intJ4]; □ v int[] someAnay - {1,2,3,4}; П int[4] someAnay;

int someAnay[] = new int[4];

* A::Print B:: Print B:: Print

2 Да ® Нет

Пояснение: В блоке catch не обязательно указывать идентификатор исключения




1. Контрольная работа- Методика проведения аудита денежных средств
2. срезов измерений
3. а претендує на зайняття курсанта Львівського державного університету безпеки життєдіяльностінайменуван
4. В Стодолищенская муниципальная общеобразовательная средняя школа Должностная инструкц
5. темах- технических биологических социальных и др
6. Тема 1 Сущность функции и роль финансов в общественном производстве 1
7. Отношениями с иностранным элементом в международном частном праве называются отношения в которых участву
8. Управление рекламой
9. реферат дисертації на здобуття наукового ступеня кандидата філологічних наук Кіровогра
10. на тему- ДОГОВОР НА ВЫПОЛНЕНИЕ МАРКЕТИНГОВЫХ РАБОТ
11. ВСТУП Процес переходу економіки України на ринкові відносини відбувається у складних умовах спаду виро
12. Технология возведения деревянных сооружений на Руси с 15 18 вв
13. Международное разделение труда в банковском бизнесе
14. Ася Если ты знаешь почему ты когото любишь это значит что ты его не любишь
15. тема состоящая в общем случае из взаимодействующих электрических преобразователей управляющих и информаци
16. Задание- выбрать верныеАбсолютной ликвидностью обладают
17. Лекция 4. Второй закон термодинамики
18. СПИРИДОНОВА аспирант ИСЭПН РАН О
19. Проблемных породахСобака любым другим именемНе анализируйте Глава 4Сила СтаиНатуральнаядикаяСтаяНет
20. истем ИС будут повышаться при незначительном росте их стоимости