Це деякі відповіді до тесту, який проводився наприкінці 3 семестру для потоку ІТШІ з дисципліни С#
Какое действие необходимо выполнить для того, чтобы программа скомпилировалась?
namespace Test { class TypeA { public class TypeB:TypeA { public override void MethodA() { Console.WriteLine("TypeB"); } } public virtual void MethodA() { Console.WriteLine("TypeA"); } } class Program { static void Main(string[] args) { TypeA a = new TypeA(); TypeB b = new TypeB(); a.MethodA(); b.MethodA(); Console.ReadLine(); } } }
Ответ: изменить строчку “TypeB b = new TypeB();” на “TypeA.TypeB b = new TypeA.TypeB();”
Какой вариант вызова функции не эквивалентен приведенному в Main?
class Program { static int MyFunc(int p1, int p2 = 2) { return p1 + p2; } static void Main(string[] args) { MyFunc(1, 2); } }
Ответ: MyFunc();
Чему будет равно значение переменной i после выполения вышеприведенного кода?
int i = 0; Circle c1 = new Circle(1, 1, 1); Circle c2 = new Circle(1, 1, 1); if (c1 == c2) i++; else i--; c2 = new Circle(2, 2, 2); c1 = c2; if (c1 == c2) i--; else i++; Console.WriteLine(i);
Ответ: -2.
Чему равно значение x?
int x = 0; int? y = null; x = y ?? 0;
Ответ: 0
Что будет выведено на консоль после выполнения приведенного выше приложения?
Public static void Main(){ Coordinates c1 = new Coordinates(); Coordinates c2 = new Coordinates(); Int x = 30; c1.X=30; c2.X=30; Test(ref c1, c2, x); Console.WriteLine(“C1.X=”+c1.X.ToString()+”,C2.X=”+ c2.X.ToString()+”,X=”+ X.ToString()); Console.Read(); } Public static void Test(ref Coordinates Coord1, Coordinates Coord2, int X){ Coord1= new Coordinates(); Coord2= new Coordinates(); Coord1.X = 0; Coord2.X=0; X=0; }
Ответ: C1.X = 0, C2.X = 30, X = 30
Какой из ниже перечисленных фрагментов кода является примером корректного использования
Ответ:
int i = 0; if(i == 0) { Console.WriteLine(“i is 0”); }
Что напечатает следующий код?
class Program { static void Main(string[] args) { B b = new B(); } public class A { public A() { Console.WriteLine("This is A"); } } public class B : A { public B() { Console.WriteLine("This is B"); } } }
Ответ: This is A This is B
Каким будет результат выполнения следующего кода?
static void Main(string[] args) { string s; s += "string"; Console.WriteLine(s); }
Ответ: Ошибка компиляции
Приняв во внимание код, приведенный выше, как необходимо объявить объект objManager для последующей полиморфной работы с ним?
Ответ: Employee objManager = new Manager();
Что напечатает следующий код?
B b = new B(); A a = b; a.M();
Ответ: This is A
Чему будет равно значение i в результате выполнения кода, приведенного выше?
int i = 5, j = 2, k = 3; i++; i *= k; i = j = k;
Ответ: 3
Какое объявление двумерного массива не является корректным?
Ответ: int[][] matrix = new int[2, 2] { { 10, 20 }, { 30, 40 } };
Каким способом правильно создать и явно инициализировать двумерный массив?
Ответ: int[,] k = new int [2,3]
Что будет результатом выполнения кода, приведенного выше?
int i, j, k = 5; j = 2; j *= k; j += i; System.Console.WriteLine(i);
Ответ: ошибка времени компиляции.
public Circle() : this(0, 0, 1) {}
В данном контексте this это
Ответ: указатель на функцию.
Какой метод класса object не является открытым?
Ответ: Finalize.
Какое утверждение о наследовании не является верным?
Ответ: пользовательский класс может не иметь базового класса.
Какое утверждение о статических конструкторах не является верным?
Ответ: статический конструктор вызывается во время компиляции.
Класс является абстрактным, если.
Ответ: он объявлен с ключевым словом abstract.
Какая операция не может быть перегружена в C#?
Ответ: =.
Какое утверждение об интерфейсах не является верным?
Ответ: Нельзя строить иерархию интерфейсов
Какое ключевое слово дает возможность объявить класс, от которого не возможно получение производного класса?
Ответ: sealed.
Какое утверждение об индексаторе не справедливо?
Ответ: в классе может быть реализован только один индексатор.
Какой тип не относится к ссылочным типам, т.е. к типам, характеризуемым ссылкой?
Ответ: структуры.
Какой из следующих модификаторов не возможен в C#?
Ответ: external.
Какой тип не может иметь неявного “родителя”?
Ответ: интерфейсы.
Что не может иметь отношения к парциальному классу?
Ответ: Объявлен с различными именами класса.
Какое утверждение об интерфейсах является верным?
Ответ: если класс наследует некоторый интерфейс, то он (класс) должен переопределять абсолютно все его члены.