Содержание

Слайд 2

2. Пусть описаны структура и класс: struct S { int x,y; } class

2. Пусть описаны структура и класс: struct S { int x,y; }
C { int x,y; } Какой вариант использования их выдаст синтаксическую ошибку?

1.
class Class1
{ static void Main()
{ C c = new C();
S s = new S();
}
}

2.
class Class1
{ static void Main()
{ C c;
S s = new S();
}
}

3.
class Class1
{ static void Main()
{ C c;
S s;
}
}

4.
class Class1
{ static void Main()
{ C c = new C();
S s;
}
}

Слайд 3

3. Чему будет равняться значение переменной b? Считаем, что класс C описан.

ObjTest

3. Чему будет равняться значение переменной b? Считаем, что класс C описан.
c1 = new С();
ObjTest c2 = c1;
object o = c2;
bool b = o.Equals(c1);

True
False
Синтаксическая ошибка
Ошибка времени выполнения

Слайд 4

4. Отметьте только совместимые с CLS типы данных C#

sbyte
byte
short
ushort
int
uint
long
ulong

4. Отметьте только совместимые с CLS типы данных C# sbyte byte short

Слайд 5

5. Какие описание класса правильные?

1.
class Class1
{ int n = 1;
static

5. Какие описание класса правильные? 1. class Class1 { int n =
void Main()
{ int n;
Console.WriteLine(n);
}
}

2.
class Class1
{ int n = 1;
static void Main()
{ int n = 2;
Console.WriteLine(n);
}
}

3.
class Class1
{ int n = 1;
static void Main()
{ int k = 2;
Console.WriteLine(n);
}
}

4.
class Class1
{ int n = 1;
static void Main()
{ int k;
Console.WriteLine(n);
}
}

Слайд 6

6. Что выведет на экран данная программа?

class Class1
{
static void Main()
{

6. Что выведет на экран данная программа? class Class1 { static void
for (int i=0; i<10; i++);
Console.WriteLine(i);
}
}

Ничего не выведет – синтаксическая ошибка
Ничего не выведет – ошибка времени выполнения
0
9
10
Числа от 0 до 9
Числа от 0 до 10

Слайд 7

7. Что выведет на экран данная программа?

class C
{ public static double f(double

7. Что выведет на экран данная программа? class C { public static
x) { return x*x; }
public static float f(float x) { return 0.5f*x; }
}
class Class1
{ static void Main()
{ Console.WriteLine(C.f(2.0));
}
}

Ничего не выведет – синтаксическая ошибка
Ничего не выведет – ошибка времени выполнения
4.0
1.0
C.f

Слайд 8

8. Что выведет на экран данная программа?

class C { public static void

8. Что выведет на экран данная программа? class C { public static
p(ref int x) { x = –x; }
}
class Class1 { static void Main()
{ int n = 1;
C.p(n);
Console.WriteLine(n);
}
}

Синтаксическая ошибка в описании функции p класса С
Синтаксическая ошибка при вызове функции
Ошибка времени выполнения
1
–1

Слайд 9

9. Что выведет на экран данная программа?

class Class1
{ public static

9. Что выведет на экран данная программа? class Class1 { public static
void Add(int x, int y, out int ans)
{ ans = x + y; }
static void Main()
{ int x;
Add(2,3,out x);
Console.WriteLine(x);
}
}

Синтаксическая ошибка в описании функции Add
Синтаксическая ошибка при вызове функции Add
Неинициализированная переменная x в Main
5
Ошибка времени выполнения

Слайд 10

10. Что выведет на экран данная программа?

class Class1 { public static void p(params

10. Что выведет на экран данная программа? class Class1 { public static
object [ ] L)
{
foreach (object o in L)
Console.WriteLine(o);
}
static void Main()
{ p(1,"abc");
}
}

Синтаксическая ошибка в описании функции p
Синтаксическая ошибка при вызове функции p
1 abc
System.Int32 System.String
System.object System.object

Слайд 11

11. Какие из описаний массива являются недопустимыми?

string[ ] z = new string[100];
string[

11. Какие из описаний массива являются недопустимыми? string[ ] z = new
] z; z= new string[10];
string[ ] z = { "abc", "abcd", "abcde" };
string[3] z = { "abc", "abcd", "abcde" };
string[ ] z = string[3] { "abc", "abcd", "abcde" };

Слайд 12

12. Что выведет на экран данная программа?

class Class1 { static void Main()
{

12. Что выведет на экран данная программа? class Class1 { static void

string s = "abc";
string t = s.ToUpper();
Console.WriteLine(s);
Console.WriteLine(t);
} }

В программе есть синтаксические ошибки
abc abc
abc ABC
ABC ABC
ABC abc

Слайд 13

13. Что выведет на экран данная программа?

class A { public A() {

13. Что выведет на экран данная программа? class A { public A()
Console.Write("0"); }
public A(int n) : this()
{ Console.Write("1");
}
}
class B { static void Main()
{ A a = new A(1);
}
}

Синтаксическая ошибка в описании одного из конструкторов
Синтаксическая ошибка в описании объекта a
0
1
01
10

Слайд 14

14. Что выведет на экран данная программа?

class A { public A() {

14. Что выведет на экран данная программа? class A { public A()
Console.Write("0"); }
public A(int n) : this()
{ Console.Write("1");
}
}
class B : A { public B(int n) { Console.Write("2"); }
}
class C { static void Main()
{ B b = new B(1);
}
}

0
1
2
02
012
20
210

Слайд 15

15. Что выведет на экран данная программа?

class A { public A() {

15. Что выведет на экран данная программа? class A { public A()
Console.Write("0"); }
public A(int n) : this()
{ Console.Write("1");
}
}
class B : A { public B(int n) : base(n) { Console.Write("2"); }
}
class C { static void Main()
{ B b = new B(1);
}
}

0
1
2
02
012
20
210

Слайд 16

16. Что выведет на экран данная программа?

class A
{
public static int

16. Что выведет на экран данная программа? class A { public static
n;
static A() { Console.Write("A");
n=1;
}
}
class Class1
{
static void Main() { Console.WriteLine(A.n);
}
}

0
1
A0
A1
Ошибка компиляции
Ошибка времени выполнения

Слайд 17

17. В каких местах программы можно задать значение обычных полей «только для

17. В каких местах программы можно задать значение обычных полей «только для
чтения»?

Инициализация непосредственно при описании
В private методе класса
В статическом конструкторе
В обычном конструкторе
В статическом методе класса
В любом методе класса

Слайд 18

18. Пусть имеется следующее описание

C c = new C(); c.p();
C c =

18. Пусть имеется следующее описание C c = new C(); c.p(); C
new C(); (IA) c.p();
C c = new C(); ((IA) c).p();
C c = new C(); c. (IA) p();

interface IA { void p(); }
class C : IA { public void p() { Console.WriteLine("P"); } }

Какие способы вызова функции p() являются допустимыми?

Слайд 19

19. Пусть имеется класс A, который не поддерживает интерфейс IB. Что произойдет

19. Пусть имеется класс A, который не поддерживает интерфейс IB. Что произойдет
в следующем коде?

A a = new A();
IB b = a as IB;

Синтаксическая ошибка во второй строке
Произойдет исключение при выполнении програмы
Переменная b будет иметь значение null
Объект b будет иметь все свойства класса A и поддерживать интерфейс IB
Объект b будет ссылкой на объект a

Слайд 20

20. Пусть в классе A есть массив строк s. Как правильно организовать индексатор

20. Пусть в классе A есть массив строк s. Как правильно организовать
в классе A, возвращающий эти строки?

public string this[int i] { get { return s[i];} }
public string A[int i] { get { return s[i]; } }
public string this[int i] { return s[i]; }
public string A[int i] { return s[i]; }

Слайд 21

21. Как правильно должен выглядеть заголовок перегруженного оператора + класса A?

A operator

21. Как правильно должен выглядеть заголовок перегруженного оператора + класса A? A
+ (A a1, A a2) { … }
public A operator + (A a1, A a2) { … }
static A operator + (A a1, A a2) { … }
public static A operator + (A a1, A a2) { … }

Слайд 22

22. Пусть определены два класса A и C следующим образом

A.Q(new D(C.W));
a.Q(new D(C.W));
A.Q(new

22. Пусть определены два класса A и C следующим образом A.Q(new D(C.W));
A.D(C.W));
a.Q(new A.D(C.W));
a.Q(C.W);
a.Q((A.D)(C.W));
a.Q(new C.W);

class A { public delegate void D();
public void Q(D x) { x(); }
}
class C { public static void W() { Console.WriteLine("W"); }
}

А в функции Main создан объект A a = new A(); Какой вызов метода Q допустим?

Слайд 23

23. Пусть определены два класса A и C следующим образом

A.D d

23. Пусть определены два класса A и C следующим образом A.D d
= new A.D(C.W); a.Q(d);

class A { public delegate void D();
public void Q(D x) { x(); }
}
class C { public static void W() { Console.WriteLine("W"); }
}

А в функции Main создан объект A a = new A(); Какой вызов метода Q допустим?

A.D d = A.D(C.W); a.Q(d);

A.D d = A.D(C.W); a.Q(new d);

D d = D(C.W); a.Q(d);

A.D d = new A.D(C.W); a.Q(new d);

A.D d = new C.W; a.Q(d);

Слайд 24

24. Пусть определен класс A

public void p(bool b) { if (b)

24. Пусть определен класс A public void p(bool b) { if (b)
E("Buh!"); }
public void p(bool b) { if (b) Evn("Buh!"); }
public void p(bool b) { if (b) new Evn("Buh!"); }
public void p(bool b) { if (b) new E("Buh!"); }

class A { public delegate void E(string s);
public static event E Evn;
}

Мы хотим добавить в него метод p, который бы вызывал событие Evn. Какой вариант метода правильный?

Слайд 25

25. Пусть определен класс A и класс C

A.Evn +=new A.E(C.S);

25. Пусть определен класс A и класс C A.Evn +=new A.E(C.S); a.Evn
a.Evn +=new A.E(C.S);
A.Evn += A.E(C.S);
a.Evn += A.E(C.S)

class A { public delegate void E(string s);
public static event E Evn;
public void p(bool b) { if (b) Evn("Buh!"); }
}
class C { public static void S(string s) { Console.WriteLine(s); }}

В методе Main создан объект A a = new A(); Как подключить прослушивание события?

A.Evn += C.S;
a.Evn += C.S;
A.Evn += new C.S;
a.Evn += new C.S;

Слайд 26

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

Ничего не

26. Что произойдет если при возникновении события не установлен обработчик события? Ничего
произойдет
Событие будет обработчиком по умолчанию
Произойдет исключение

Слайд 27

27. Как запустить вторичный поток? Под c.proc подразумевается метод некоторого класса

Thread t

27. Как запустить вторичный поток? Под c.proc подразумевается метод некоторого класса Thread
= new Thread(new ThreadStart(c.proc)); t.Start();
Thread t = new Thread(c.proc); t.Start();
ThreadStart t = new ThreadStart(c.proc); t.Start();
ThreadStart t = new ThreadStart(new Thread(c.proc)); t.Start();

Слайд 28

28. Какие варианты получения объекта Type допустимы, если объект а создан следующим образом

28. Какие варианты получения объекта Type допустимы, если объект а создан следующим
A a = new A(); ?

Type T = a.GetType();
Type T = A.GetType();
Type T = typeof(a);
Type T = typeof(A);
Type T = Type.GetType(A);
Type T = Type.GetType("A");

Слайд 29

29. Что выведет следующий фрагмент кода? A a = new A(); Type T

29. Что выведет следующий фрагмент кода? A a = new A(); Type
= a.GetType(); Console.WriteLine(T.BaseType);

A
object.A
System.Object
System.A
System.Object.A