Основы программирования на C# | ointuit.ru

Основы программирования на C#

csharp3

Ответы на курс: Основы программирования на C#












В C# универсальными могут быть:

только классы



только классы и структуры

[прав. ответ]

классы и все их частные случаи –
интерфейсы, структуры, делегаты, события














Спецификации
CLS задают:


спецификации, предназначенные для разработчиков трансляторов

[прав. ответ]

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




спецификации, которые безусловно должны выполняться программистами,
работающими в среде Visual Studio .Net



спецификации для программистов, работающих на языке C#













В
родительском классе описан метод public virtual void M(int x) {}.
Какое объявление в классе потомке вызовет ошибку на этапе
компиляции, не допускающую выполнения проекта?

[прав.
ответ]


override void M(int x){}



public override void M(int item){}



public new void M(int x){}













Отметьте
истинные утверждения:

в тексте охраняемого блока
всегда должен присутствовать оператор throw, выбрасывающий
исключение
[прав. ответ]никакая
программа не может быть корректной по отношению к произвольным
спецификациям

вывод, поступающий от методов класса
Debug, может быть направлен только одному, заранее выбранному
слушателю
[прав. ответ]если блок
finally сопровождает охраняемый блок, то он всегда будет выполняться

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












Отметьте
истинное высказывание:

[прав.
ответ]


операции логического и побитового
отрицания определены над данными типа bool и арифметического типа
соответственно




метод Parse позволяет проводить преобразования арифметического типа
в строковый



порядок выполнения всех операций в C# левосторонний













Ключевое
слово new в зависимости от контекста играет роль:

[прав.
ответ] модификатора метода

[прав.
ответ] модификатора переменной

[прав.
ответ] операции













Преобразование
к типу object

[прав. ответ]

всегда возможно и выполняется
автоматически




возможно, но требует явного задания преобразования



возможно только для объектов ссылочного типа













Правда
ли, что:

оператор break должен присутствовать в
каждой ветви оператора разбора случаев switch
[прав.
ответ]можно написать программу с бесконечным циклом

[прав.
ответ]еще на этапе компиляции возникнет ошибка в следующем фрагменте
кода <int x=1, y =1; if (x=y) {…};>













Правда
ли, что:

[прав.
ответ]делегат, задающий тип события, может иметь произвольную
сигнатуру

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













Отметьте
верное утверждение:

[прав.
ответ]


манифест PE-файла включает в себя
описание всех хранимых в нем классов




программисту на C# всегда приходится самостоятельно заниматься
освобождением памяти, не доверяя эту работу сборщику мусора



всякая ошибка в ходе выполнения программы приводит к прерыванию ее
работы













Класс
имеет:


только один конструктор



только конструктор по умолчанию

[прав. ответ]

не более одного статического
конструктора




не более одного закрытого конструктора



несколько конструкторов с одинаковой сигнатурой













Закрытые
методы класса

[прав.
ответ]позволяют клиентам не вникать в детали реализации

составляют
интерфейс класса
[прав. ответ]не могут
быть вызваны клиентами













Для
строки s типа string запись s[i]

[прав.
ответ]


означает символ строки типа char



означает символ строки типа string



не определена













Отметьте
истинные высказывания:

только процедуры являются
методами класса
формальный аргумент метода может быть выражением

[прав. ответ]ключевые слова ref и out
являются частью сигнатуры метода

[прав.
ответ]перегруженными называются методы с одинаковыми именами, но с
разной сигнатурой













Пусть
процедура ItWorks имеет следующий заголовок: public void
ItWorks(int[] A). Какой массив может быть передан ей в качестве
аргумента?

[прав. ответ]

int[] x



byte[] y



string[] s



Person[] p; (Person – класс, определенный пользователем).













Правда
ли, что:

[прав. ответ]класс
Delegate не допускает создания потомков в программах на C#

пара
функций f и g называются функциями обратного вызова, если они
взаимно вызывают друг друга
[прав.
ответ]наследование является альтернативой обратному вызову













Правда
ли, что:

[прав. ответ]метод
MemberwiseClone, наследуемый от прародителя object, не может быть
вызван у клиента

[прав.
ответ]для полного управления процессом сериализации класс должен
наследовать интерфейс ISerializable

класс,
наследующий интерфейс, не обязан реализовать все методы интерфейса













Отметьте
истинные высказывания:

[прав.
ответ]


в рекурсивной процедуре должна
присутствовать нерекурсивная ветвь




многопроцессорный современный компьютер решит задачу "Ханойские
башни" в течение суток



квадратичные методы сортировки, требующие O(n2)
операций всегда работают медленнее, чем сортировки с порядком
операций O(n*log(n))



каждый цикл имеет только один инвариант













Для
событий, допустимых в каркасе Framework .Net, к делегатам
предъявляются следующие ограничения

[прав.
ответ]


сигнатура делегата фиксируется



число возможных событий ограничено



события могут обрабатываться объектами только одного класса













Тег
<summary>, заданный для метода М:

[прав.
ответ] используется в подсказке при вызове метода M

является
комментарием и не используется в других целях
[прав.
ответ] представляет часть документации проекта при построении
XML-отчета













Правда
ли, что:

[прав. ответ]

поле класса может быть объектом
описываемого класса




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



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














Даны
объявления:


string s = "Hello, Dolly!";
const int size =15;
char[] c0 = new char[size], c1= new char[size];
char[] c2 = new char[size], c3= new char[size];
char[] c4 = new char[size];



Группа операторов выполняется после этих
объявлений. Отметьте операторы, не приводящие к ошибке на этапе
выполнения:

[прав. ответ]
c0= s.ToCharArray()

[прав.
ответ] c1=c0

Array.Copy(c0,c2,2*size)
[прав.
ответ] c0.CopyTo(c3,0)

[прав.
ответ] c1[7]=’P’













Правда
ли, что:

[прав. ответ]метод
IndexOf класса Array применим к строкам

[прав.
ответ]в языке C# возможно объявить переменную типа char*

[прав.
ответ]массив char[] позволяет работать со строкой постоянной длины













Оператор
return

[прав.
ответ]обязателен в функциях

[прав.
ответ]возможен в процедурах

[прав.
ответ]завершает выполнение функции или процедуры













Явное
преобразование типа может быть выполнено:

статическим
методом Convert
[прав. ответ]
статическими методами класса Convert

[прав.
ответ] приведением типа

разрешено только для значимых
типов












Глубокое
клонирование


невозможно из-за проблемы зацикливания



возможно только для фиксированного уровня

[прав. ответ]

возможно













Сборщик
мусора Garbage Collector это:


компонент компилятора



компонент Visual Studio

[прав. ответ]

компонент Framework .Net













Пространство
имен – это:


множество имен, включающих имена переменных проекта



множество имен, включающих имена переменных класса

[прав. ответ]

модуль, содержащий встроенные
пространства имен и классы, имена которых уникальны в пространстве
имен














Верно,
что приоритет операций выше:

вычитания чем сложения

[прав. ответ]исключающего ИЛИ чем ИЛИ

логических чем арифметических
[прав.
ответ]эквивалентности чем присваивания













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


присваивание ch =s[i]; где s класса string, а ch – переменная
класса char, недопустимо



константы “\c\x58” и @”\cX” эквивалентны



метод Join всегда позволяет восстановить исходную строку,
расщепленную методом Split

[прав. ответ]

аргументы в методе Format позволяют
задать ширину области для вставляемого объекта














Правда
ли, что:

[прав. ответ]в C#
существуют классы, для которых невозможно изменить значение объекта
при вызове его методов

метод Split разделяет слово на
символы
[прав. ответ]строки класса
StringBuilder имеют собственный буфер













Отметьте
истинные высказывания:


модальное окно нельзя покинуть, не закрыв его

[прав. ответ]

цвет может быть выбран из
специального окна, открывающегося в процессе работы с объектом
класса ColorDialog




у класса Menu нет потомков













Ключевое
слово interface в языке C# задает описание:


пользовательского интерфейса класса



открытой части класса

[прав. ответ]

частного случая класса



абстрактного класса













Имя
локальной переменной может совпадать:

[прав.
ответ]


с именем поля класса



с именем формального аргумента



с именем локальной переменной, объявленной в том же блоке метода













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




public static void L1_V1_Q31(int[] A, int S)
{
S=0;
for(int i =0; i<A.Length; i++) S+=A[i];
}








public static void L1_V1_Q32(ref int[] A, ref int S)
{
S=0;
for(int i =0; i<A.Length; i++) S+=A[i];
}




[прав. ответ]




public void L1_V1_Q33(val int[] A, val int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
return(S);
}








public static int L1_V1_Q34(object[] A)
{
int S=0;
foreach(int i in A) S+=(int)i;
return(S);
}
















В
каком фрагменте возникнет ошибка:

[прав.
ответ]


sbyte sb1=1, sb2= 2, sb3 = sb1+ sb2



ulong ul1 =1, ul2= 2, ul3 = ul1 + ul2



int x; if (5 >4) x= 4



int x=5, y; if(x>4) y=x













Выберите
верное утверждение:

[прав.
ответ]


стандартные атрибуты используются
CLR и влияют на то, как она будет выполнять проект




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



в C# допускаются только однострочные комментарии, начинающиеся парой
символов //













Для
ограничения универсальности


задаются специальные методы класса



задаются специальные поля класса

[прав. ответ]

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














Правда
ли, что:


класс может не быть универсальным, но таковым может быть отдельное
поле класса



делегаты не могут иметь родовых параметров

[прав. ответ]

в библиотеке FCL Visual Studio 2005
существуют универсальные интерфейсы














Правда
ли, что:


выполнение метода Assert всегда прерывает выполнение программы

[прав. ответ]

даже при появлении исключительной
ситуации программа может завершить свою работу в полном соответствии
со своими спецификациями




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













Почему
при ОО-стиле программирования у методов класса мало аргументов:


на число аргументов накладываются ограничения



модификатор params позволяет иметь один формальный аргумент,
которому соответствует неограниченное число фактических аргументов

[прав. ответ]

основная информация передается
методу и возвращается им через поля объекта, вызвавшего метод














Правда
ли, что:

[прав. ответ]

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




функцию нельзя вызывать как оператор



типы формального и фактического аргумента должны быть идентичными













Отметьте
истинные высказывания:

[прав.
ответ]все классы-массивы являются прямыми потомками только одного
родительского класса

[прав.
ответ]все классы-массивы наследуют свойства и методы своих предков -
двух классов и четырех интерфейсов

метод Sort
позволяет сортировать любые массивы
если S и T принадлежат
разным классам – массивам, то присваивание S=T недопустимо













Три
массива: <int[] ar1 = new int[5]; double[] ar2 ={5.5, 6.6, 7.7};
int[,] ar3 = new Int32[3,4]; > принадлежат


одному и тому же классу

[прав. ответ]

разным классам, но у которых есть
общий родительский класс Array




разным классам, общность которых определяется только родительским
классом object













Отметьте
истинное высказывание:


любое выражение может использоваться в качестве оператора

[прав. ответ]

оператор if может быть эквивалентен
по своему действию пустому оператору




оператор foreach не применим при работе с массивами



каждая case-ветвь оператора switch должна заканчиваться оператором
break













Класс
Exception


является абстрактным классом



имеет фиксированное число потомков

[прав. ответ]

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














Какие
программы корректны по отношению к своим спецификациям?

{n=5}int
fact(int n){int f=0; for (int i=0; i< n; i++) f*=i;
return(f);}{result = n!}
[прав. ответ]
{n=5}int fact(int n){return(120);}{result = n!}

[прав.
ответ] {false}int fact(int n){int f=0; for (int i=0; i<n; i++)
f*=i; return(f);}{result = n!}

[прав.
ответ] {(n целое) & (n>0)}int fact(int n){int f=1; for (int
i=2; i<n+1; i++) f*=i; return(f);}{result = n!}













Правда
ли, что:

[прав. ответ]в
процедуре, которой передан массив в качестве аргумента, можно
определить все характеристики этого массива

[прав.
ответ]в C# многомерный массив и массив массивов – это два
разных вида массивов

[прав.
ответ]константные массивы можно использовать только при
инициализации массивов













Отметьте
верные высказывания:

[прав.
ответ] свойства проекта можно установить на странице свойств
Property Pages

[прав. ответ]
в Windows-проекте разрешен вывод методами класса Console

[прав.
ответ] класс Form задает общие свойства форм, появляющихся в
Windows-проекте













Для
классов родителей и потомков справедливо следующее утверждение:

[прав. ответ]

у родительского класса может быть
несколько непосредственных потомков




у класса потомка может быть несколько непосредственных родительских
классов



класс родитель может быть сам себе родитель



класс потомок может быть собственным потомком













Отметьте
истинные высказывания:

[прав.
ответ]класс с модификатором sealed не может иметь потомков

класс
с модификатором abstract не может иметь потомков с таким же
модификатором
если у метода класса не задан специальный
модификатор, то для него по умолчанию применяется динамическое
связывание
[прав. ответ]класс потомок
не наследует конструкторы своего родителя













Операции
упаковки и распаковки (boxing, unboxing)

[прав.
ответ]


преобразуют объекты значимого типа в
ссылочный и обратно




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



задают преобразование строк из кодировки Unicode в кодировку ASCII и
обратно













Правда
ли, что:


метод Join позволяет воссоздать строку в исходном виде, расщепленную
методом Split

[прав. ответ]

метод Format может вызываться с
разным числом параметров




существуют константы класса StringBuilder













Какие
слова принадлежат языку, заданному регулярным выражением:
@“\w\s=\s\w+(\+|\-\w+)+”?

x=y+z
[прав.
ответ] 7 = 5-2

x = 2 + y — 7
[прав.
ответ] x1 = z-x













Отметьте
истинное высказывание:

[прав.
ответ]


присваивание является операцией
языка C#




в теле оператора foreach текущий элемент позволяет получать и
изменять значения элементов, хранящихся в контейнере



в операторе if число ключевых слов if должно совпадать с числом слов
else



case-выражение в операторе switch может задавать диапазон значений













В
проверяемом (checked) блоке проверяется корректность

[прав.
ответ]


всех преобразований типов



преобразований внутри арифметического типа



только преобразований, выполняемых методом Parse



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













Правда
ли, что:

[прав.
ответ]каждому элементу управления формы соответствует поле класса,
задающего форму

[прав.
ответ]каждая проектируемая форма является экземпляром отдельного
класса – наследника класса Form

[прав.
ответ]при открытии формы методом ShowDialog она появляется как
модальное окно













В
классе Math определены методы (функции):

[прав.
ответ] Sin

Tg
Ln
MaxValue
[прав.
ответ] Min













Отметьте
верное утверждение:

[прав.
ответ]


класс может не быть универсальным,
но таковым может быть отдельный метод класса




абстрактный класс не может быть универсальным



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













Каркас
Framework .Net это:

[прав.
ответ]


надстройка над операционной
системой, предназначенная для выполнения управляемого кода, например
сборок, построенных компиляторами Visual Studio .Net




транслятор JIT, выполняющий трансляцию модулей, написанных на языке
MSIL



библиотека классов, используемая компилятором



набор классов, используемых при построении самой Visual Studio .Net













Класс
А является клиентом класса B

если методы и или поля
класса A вызываются в методах класса B
[прав.
ответ]если методы и или поля класса B вызываются в методах класса A

[прав. ответ]если у класса A
есть поле, являющееся объектом класса B













Правда
ли, что:

тип результата операции совпадает с типом
операндов
логическое отрицание ! и побитовое отрицание ~ дают
одинаковые результаты
[прав. ответ]
явное преобразование типа всегда можно выполнить с помощью операции
приведения к типу













Строки
класса StringBuilder создаются тогда, когда


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

[прав. ответ]

требуется изменять значение строки,
не создавая новой строки




длина строки заранее неизвестна













Правда
ли, что:

[прав.
ответ]неявные преобразования выполняются автоматически

[прав.
ответ]от типов фактических аргументов зависит, какой из
перегруженных методов будет вызван

явные
преобразования всегда безопасны












Объект
класса Graphics можно получить

конструктором класса
Graphics
[прав. ответ]статическим
методом класса Graphics

используя статическое
свойство класса Form
[прав.
ответ]методом CreateGraphicsкласса Control

[прав.
ответ]используя аргумент, передаваемый обработчику некоторых событий













Меню
в формах:


создать нельзя



можно создать только вручную



можно создать только программно

[прав. ответ]

можно создать вручную и программно













Интерфейс
ISerializable


автоматически реализует глубокую сериализацию

[прав. ответ]

позволяет управлять процессом
сериализации




имеет два метода, которые должен реализовать класс, наследующий
интерфейс



конфликтует с атрибутом класса Serializable













Правда
ли, что:


элементы константного массива следует заключать в квадратные скобки

[прав. ответ]

если массив объявляется без
инициализации, то создается только висячая ссылка со значением void




для динамических массивов можно указать нижнюю и верхнюю границу
изменения индексов














Пусть
x – объект класса int[]. В вызове x.M роль M может играть:

[прав. ответ] свойство Length

[прав. ответ] метод GetLength

[прав. ответ] метод CopyTo













Отметьте
истинные высказывания:

[прав.
ответ]класс Delegate является наследником интерфейса ICloneable;

[прав. ответ]класс Delegate
является наследником интерфейса ISerializable

[прав.
ответ]операции + и – позволяют оперировать со списком вызова
делегатов

метод Combine возвращает в качестве
результата объект того же типа, что и экземпляр делегата, вызвавшего
метод












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


int x=5;  for(int i =1; i<5; i++);  x+=5;






5

[прав. ответ]

10



25



30



20













Правда
ли, что:

[прав. ответ]

Обычно меню в форме создается
вручную в режиме проектирования




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



линию можно нарисовать с помощью кисти













Отметьте
истинное высказывание:

[прав.
ответ]


незавершающийся метод тотально
корректен




рекурсивным называется метод, в теле которого содержится вызов
другого метода



цикл имеет сколь угодно много инвариантов













Размерность
массива определяется:


числом его элементов

[прав. ответ]

числом его индексов



по максимальному значению элементов













К
специальным случаям присваивания относится:


выражение X=1

[прав. ответ]

выражение X+=1



выражение X==1













Верно
ли, что:

код на C# <byte b = 1; b+=1;>
эквивалентен коду <byte b = 1; b = b+1;>
[прав.
ответ]класс Random имеет несколько конструкторов

[прав.
ответ]операция присваивания выполняется справа налево













Дано
перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3
этого класса. В результате присваиваний: с1 = TC.yellow; c2 =
TC.blue; c3 = c1 | c2; переменная с3 получит значение


red



blue



yellow

[прав. ответ]

ни одно из этих значений













Отметьте
истинные высказывания:

[прав.
ответ] метод Run – это обычно один из первых выполняемых
методов Windows-проекта, включаемый в процедуру Main

процедура
Main консольного проекта содержит вызов метода Run
[прав.
ответ] класс может выступать в роли цели вызова

[прав.
ответ] в каждый момент выполнения проекта существует текущий объект













В
результате объявления: int x=2,y=5,z=((x|y +x++)>=9) ? x|y : ++x
+2 ; переменные x, y, z получат значения


x=3; y=5; z=7

[прав. ответ]

x=4; y=5; z=6



x=2; y=5; z=7



возникнет ошибка на этапе трансляции



возникнет ошибка на этапе выполнения



x=3; y=5; z=8













Правда
ли, что:


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

[прав. ответ]

элемент управления ListBox позволяет
хранить список объектов




при наследовании формы элементы управления не наследуются













В
теле метода может быть

[прав.
ответ]один try-блок и несколько catch-блоков

[прав.
ответ]число try-блоков не больше суммарного числа catch -
finally-блоков

один try-блок и несколько
finally-блоков












Отметьте
истинные высказывания:

операция typeof может
выполняться только в небезопасных блоках
[прав.
ответ]метод Parse определен для всех арифметических типов

[прав.
ответ]метод Parse позволяет преобразовать строковый тип в
арифметический

[прав.
ответ]метод GetType возвращает результат того же типа, что и
операция typeof













Пусть
процедура ItWorks имеет следующий заголовок: public void
ItWorks(Array A). Какой массив может быть передан ей в качестве
аргумента?

[прав.
ответ]int[] x

[прав.
ответ]int [][] y

[прав.
ответ]string[] s

[прав.
ответ]Person[] p; (Person – класс, определенный пользователем

[прав. ответ]Anketa[] a;
(Anketa – структура, определенная пользователем













Делегат
в языке C# задает:

[прав.
ответ]


класс функций с заданной сигнатурой



функцию с заданной сигнатурой и с заданной реализацией



класс, у которого все методы представляют собой функции













Тело
цикла for (int i = 1, j=-10; j<10; i—) j++;


ни разу не выполнится



выполнится 3 раза



произойдет зацикливание

[прав. ответ]

выполнится конечное число раз,
большее 3-х














Отметьте
истинные высказывания:

[прав.
ответ] метод ToString, задающий преобразование в строку, определен
для любого объекта X класса Т, созданного пользователем

[прав.
ответ] объекту базового класса Object можно присвоить объект класса
Т, созданного пользователем

исключения, возникающие в
охраняемом try-блоке, всегда перехватываются catch-блоком,
сопровождающим охраняемый блок












Отметьте
истинные высказывания

для того чтобы объекты
собственного класса сравнивать на «больше» и «меньше»,
необходимо сделать класс наследником интерфейса IComparable
для
того чтобы объекты собственного класса можно было клонировать,
необходимо сделать класс наследником интерфейса ICloneable
для
того чтобы объекты собственного класса можно было сериализовать,
необходимо сделать класс наследником интерфейса ISerializable

[прав. ответ]методы разных интерфейсов
с одинаковой сигнатурой можно «склеивать» в классе
наследнике, назначая им одну реализацию

[прав.
ответ]реализация метода Clone позволяет организовать глубокое
клонирование













Отметьте
истинное высказывание:

[прав.
ответ]


массив массивов позволяет задать
многомерный массив




в языке C# переменные m1 и m2, являющиеся массивами, всегда
принадлежат одному классу



в языке C# для массивов не допускается отложенная инициализация













При
создании объектов перечислений

[прав.
ответ]нельзя вызывать конструктор

требуется их явная
инициализация
[прав. ответ]объекты
получают значение, даже если инициализация не задана













Дано
перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3
этого класса. В результате присваиваний: с1 = TC.yellow; c2 =
TC.blue; c3 = c1 | c2; эти переменные получат следующие значения
базового типа:


0, 1, 2

[прав. ответ]

2, 1, 3



1, 2, 3



2, 1, 0













Если
вызывается метод объекта класса А, то вызываемый метод:


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



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

[прав. ответ]

должен быть динамическим
(экземплярным) методом класса А














В
каких строках кода возникнут ошибки (предупреждения) на этапе
трансляции?

abstract public class A5<T> {
abstract public void M(T x); }
public class SA5<T> : A5<T>
{ public override void M(T x) { T y = x; } }
public class B6 {
SA5<int> obj1 = new SA5<int>(); }
[прав.
ответ] public class B7 { SA5<T> obj1 = new SA5<T>(); }













Если
присваивание x= y; допустимо, то обратное присваивание y=x;


всегда допустимо



всегда допустимо для переменных ссылочных типов



всегда допустимо для переменных значимых типов

[прав. ответ]

может требовать явного
преобразования типов




всегда требует явного преобразования типов













Формальный
аргумент метода должен сопровождаться ключевым словом:


ref – если аргумент принадлежит к ссылочному типу

[прав. ответ]

out – если аргумент является
выходным параметром метода




in – если аргумент является входным параметром метода



inout – если аргумент является обновляемым параметром метода














Отметьте
истинные высказывания:

[прав.
ответ]каждый экземпляр делегата обладает методом GetInvocationList

над делегатами определена операция умножения *
язык
C# позволяет построить делегата непосредственным наследованием от
абстрактного класса Delegate
[прав.
ответ]абстрактный класс Delegate определен в библиотеке FCL













Какие
из процедур корректно вычислят сумму переданного им массива int?


public static void L1_V1_Q31(int[] A, int* S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
}



[прав. ответ]


public static void L1_V1_Q32(ref int[] A, ref int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
}






public void L1_V1_Q33(val int[] A, val int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
return(S);
}






public static int L1_V1_Q34(object[] A)
{
int S=0;
foreach(int i in A) S+=(int)i;
return(S);
}
















Правда
ли, что:


спецификации необходимы только на этапе проектирования системы



константы компиляции задаются в начальной точке проекта –
процедуре Main

[прав. ответ]

методы класса Trace включают два
атрибута Conditional с константами DEBUG и TRACE и действуют в
конфигурациях Debug и Release














В
каких фрагментах возникнет ошибка?

[прав.
ответ] char[] s = new char[3]; s = "abc".ToCharArray();

char[] s = new char[3]; s = "abc";
[прав.
ответ] char[] s = new char[3] {‘b’, ‘c’, ‘d’};













Можно
создать кисть класса:

Brush
[прав.
ответ]SolidBrush

[прав.
ответ]LinearGradientBrush













Все
аргументы события принадлежат


классу EventArgs



классу EventArgs, за исключением аргумента, задающего объект,
зажигающий событие



потомку класса EventArgs



потомку класса EventArgs за исключением аргумента, задающего объект,
зажигающий событие

[прав. ответ]

возможно разным классам













Правда
ли, что:

[прав. ответ]
статический метод IsLetterOrDigit класса char возвращает true, если
символ является буквой или цифрой

[прав.
ответ] большинство статических методов класса char перегружены

все
методы класса char являются статическими












Правда
ли, что:

[прав.
ответ]операция сложения не определена для операндов типа short

вычисление выражения ведется слева направо, начиная с
самой левой операции
[прав.
ответ]выражение C# может обладать побочным эффектом













Статические
методы класса Array

[прав.
ответ]


перегружены



применимы ко всем массивам



позволяют выполнять операции над матрицами – умножение,
обращение, вычисление определителя













Сообщение
о событии получает:


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



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



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

[прав. ответ]

все объекты всех классов, имеющих
обработчики события, присоединенные к событию














На
каких языках программирования можно работать в Visual Studio .Net?


только на языке C#



на четырех языках — Visual C++, C#, Visual Basic, J#

[прав. ответ]

число языков не ограничено













К
значимым типам языка C# относятся:

[прав.
ответ]


все арифметические типы



массивы



строки



все арифметические типы, кроме типа double













К
неявным преобразованиям относятся:


преобразования, указанные программистом

[прав. ответ]

преобразования, выполняемые
автоматически




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













Отметьте
истинные высказывания

[прав.
ответ] элементы массива доступны для чтения и записи

в
массивы C# можно добавлять и удалять элементы
объявления int[] и
double[] задают один и тот же класс-массив
[прав.
ответ] если у метода формальный аргумент является массивом, то его
можно вызывать по значению, опуская описатели ref или out, даже если
его элементы меняются в теле метода, но не меняется сам массив
(ссылка)













В
результате объявления: int x=1,y=2,z=((x|y + ++x)>5)? x|y : ++x
+2 ; переменные x,y,z получат значения


x=1; y=2; z=4



x=2; y=2; z=4

[прав. ответ]

x=3; y=2; z=5



возникнет ошибка на этапе трансляции



возникнет ошибка на этапе выполнения



x=1; y=2; z=3













Метод
можно описать на уровне:

[прав.
ответ]


класса



пространства имен



проекта



решения













Какие
высказывания верны для полей класса:

[прав.
ответ] поля класса используются для передачи информации методам
класса

поле класса всегда можно заменить функцией без
аргументов
[прав. ответ] поле класса
иногда можно заменить функцией без аргументов













Правда
ли, что:

[прав.
ответ]функцией высшего порядка называется такая функция (метод)
класса, у которой один или несколько аргументов принадлежат к
функциональному типу

[прав.
ответ]каждая функция (метод), сигнатура которого совпадает с
сигнатурой делегата, может рассматриваться как экземпляр класса,
заданного делегатом

над делегатами определены четыре
операции (+, -, *, /)












Для
выделения из текста подстроки, в которой x и y разделены знаком
операции + или -, следует использовать шаблон:


@"(x+y)|(x-y)"

[прав. ответ]

@"x[\+|\-]y"



@"x[+|-]y"














Правда
ли, что:

[прав. ответ]
стандартные математические функции представлены статическими методами
класса Math

[прав. ответ]
метод Next класса Random является перегруженным

еще на
этапе компиляции возникнет ошибка в следующем фрагменте кода


int x=1;
int y=2;
if (Math.Sin(x) > 0.5)
y=1;
















Если
метод родительского класса объявлен с атрибутом virtual, то потомок
класса:

обязан переопределить реализацию метода

обязан переопределить сигнатуру метода
[прав.
ответ] может наследовать реализацию класса













Выберите
правильные варианты ответа. Переменная класса char[] может вызывать
следующие методы и свойства

[прав.
ответ] ToString

GetSymbol
[прав.
ответ] CopyTo

[прав. ответ]
GetType

Value












Отметьте
истинные высказывания:

[прав.
ответ] тип double является классом, родителем которого является
класс object

[прав. ответ]
все типы являются наследниками класса object

значимые
типы не входят в иерархию классов языка C#
[прав.
ответ] тип string наследует методы родительского класса object и
определяет собственные методы

[прав.
ответ] тип int наследует методы родительского класса object и
определяет собственные методы













В
каких фрагментах возникнет ошибка компиляции:

[прав.
ответ]


int x=5, y =2*2+1, z; if (y=x)
z=2*x; else z=x+y;




int a=2, b=3,c=5, x;if(a<b)if(c>a)if(c>a+b) x=a+b+c;



int x, y, z; if (5 >4) x=5; y=x; z=y;













Отметьте
верное утверждение:


фрагмент кода if (x = y) всегда приводит к появлению ошибки еще на
этапе трансляции



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

[прав. ответ]

доказано, что без оператора перехода
goto можно обойтись














Отметьте
истинные высказывания:

[прав.
ответ]все методы класса Math являются статическими

[прав.
ответ]для вызова методов класса Random нужно предварительно создать
экземпляр этого класса

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












Правда
ли, что:

[прав. ответ]

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




в качестве базового класса для перечисления можно задать класс char



структура может быть родительским классом для другой структуры













Начальный
Windows-проект содержит:


класс Window



класс Form

[прав. ответ]

класс Form1– наследника класса
Form




пространство имен Form













В
родительском классе описан метод public virtual void M(int x) {}.
Какое объявление в классе потомке вызовет ошибку на этапе
компиляции?


public override void M(int item){}



public new void M(int x){}

[прав. ответ]

public override virtual void M(int
x){}




public virtual void M(int x, int y){}













Если
метод класса снабжен атрибутом Conditional, то метод


будет компилироваться только в конфигурации Debug

[прав. ответ]

будет компилироваться только, если в
активной конфигурации определена константа, заданная в атрибуте




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













Отметьте
правильные объявления:

[прав.
ответ] char[] e = new char[4]{‘a’, ‘b’, ‘c’, ‘d’};

int
n = 4; char[] g = new char[n]{‘a’,'b’,'c’,'d’};
[прав.
ответ] char f1;













Правда
ли, что:


класс Array наследует интерфейс ICompare

[прав. ответ]

возникнет ошибка на этапе компиляции
в следующем фрагменте: <foreach (object item in A) item = 1;>,
где A имеет тип Array




статический метод BinarySearch класса Array применим только к
бинарным массивам булевского типа













Реализация
экземпляра делегата в виде метода-свойства:

позволяет
скрыть его от клиента
иметь один экземпляр вместо нескольких

[прав. ответ]динамически связывать
экземпляр с методом

[прав.
ответ]экономить память













Класс
Regex имеет

открытый конструктор по умолчанию
[прав.
ответ]защищенный конструктор по умолчанию

[прав.
ответ]открытый конструктор с аргументом типа string

защищенный
конструктор с аргументом типа string












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


@"т|к.т|k"

[прав. ответ]

@"[т|к][а-я][т|к]"



@"[т|к]?[т|к]"













Правда
ли, что:

[прав.
ответ]создать объект класса интерфейса обычным путем с
использованием конструктора и операции new нельзя

различают
три типа клонирования: поверхностное (shallow), глубокое (deep) и
сверхглубокое (overdeep)
[прав.
ответ]под десериализацией понимают процесс восстановление состояния
объектов, хранимых в долговременной памяти













Решение
– это:


специальный тип проекта



специальный компонент проекта

[прав. ответ]

модуль, содержащий проекты и другие
ресурсы




стартовый проект на языке C#













Побочным
эффектом могут обладать:

[прав.
ответ]функции

процедуры
[прав.
ответ]выражения













Какие
из трех образцов: @"\s*[а-я]+\s", @"[А-Яа-я]+",
@"\s[А-Яа-я]+\s" включат слово "папа" в
результат найденного соответствия при поиске в строке "папа
мама и я":


все три образца



ни один из образцов



2-й и 3-й

[прав. ответ]

1-й и 2-й













Выберите
верные высказывания:

[прав.
ответ] семантика присваивания для ссылочных и значимых типов
различна

преобразование из типа byte в тип int
относится к явным преобразованиям
[прав.
ответ] исключения являются нормальным способом уведомления об
ошибках, возникающих в процессе выполнения программы













Проект
– это:

[прав. ответ]

модуль, содержащий классы и
являющийся частью решения




спецификация, отвечающая требованиям CLS



компонент пространства имен



набор классов, используемых при построении самой Visual Studio .Net













JIT
- это:


компилятор одного из языков, включаемых в состав Visual Studio

[прав. ответ]

компонент исполнительной среды CLR



компонент компилятора C#



компилятор, используемый сборщиком мусора













Библиотека
FCL — это:


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



набор классов, используемых компиляторами среды и не разрешенных для
непосредственного использования в программах на C#

[прав. ответ]

набор классов, используемых как
компиляторами, так и в программах на C#














Отметьте
истинные высказывания:

каждый объект содержит набор
из всех полей, определенных в классе
[прав.
ответ] создание объекта выполняется операцией new с вызовом
конструктора класса

[прав.
ответ] для реализации стратегии доступа к закрытым полям класса
используются методы-свойства













Чем
отличаются процедуры от функций:

оператор return
можно задавать только в функциях
[прав.
ответ]функция не может возвращать значение void

функцию
нельзя вызывать как оператор
[прав.
ответ]процедуру нельзя вызывать в выражениях













Правда
ли, что:

[прав. ответ]
операция конкатенации (+) не определена над строками класса
StringBuilder

емкость буфера, отводимой строке класса
StringBuilder всегда равна 1Кб
[прав.
ответ] в C# существуют два вида строковых констант













Отметьте
истинное высказывание:


если предусловие равно true , то метод корректен для любого
постусловия

[прав. ответ]

если предусловие равно false , то
метод корректен для любого постусловия




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



нерекурсивный вариант метода всегда предпочтительнее своего
рекурсивного аналога













Правда
ли, что:

[прав. ответ]для
того чтобы рекурсия не приводила к зацикливанию, в тело нормального
рекурсивного метода всегда встраивается оператор выбора, одна из
ветвей которого не содержит рекурсивных вызовов

[прав.
ответ]рекурсивную программу можно заменить программой с циклами

предусловие и постусловие метода должны проверяться в
начале и после завершения метода












Отметьте
истинное высказывание:


класс называется абстрактным, если он не вводит собственных полей
данных



если метод класса А объявлен с модификатором virtual, то для него
применяется статическое связывание



у класса может быть несколько непосредственных родительских классов



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

[прав. ответ]

в проектах на C# контроль типов
выполняется на этапе компиляции














Отладка
позволяет


доказать, что в системе нет ошибок

[прав. ответ]

доказать, что в системе есть ошибки



устранить все ошибки, существующие в системе













В
результате объявления: int x=2, y=3, z= ((x|—y +y)>5) ? x|y :
++x +2 ; переменные x, y, z получат значения


x=1; y=2; z=4



x=2; y=2; z=4

[прав. ответ]

x=2; y=2; z=2



возникнет ошибка на этапе трансляции



возникнет ошибка на этапе выполнения



x=2; y=3; z=3













Класс
object — это

[прав. ответ]
родительский класс для объектов ссылочного типа

[прав.
ответ] родительский класс для объектов значимого типа

[прав.
ответ] родительский класс для объектов классов, создаваемых
программистом













К
статическим свойствам и методам класса Array относятся:

[прав.
ответ] метод Reverse

[прав.
ответ] метод BinarySearch

[прав.
ответ] метод Copy

метод CopyTo












Правда
ли, что:

[прав. ответ]цикл
foreach применим к массивам

[прав.
ответ]допустима такая конструкция <if (a>0) if (b>0)
if(c>0) …>

каждый блок должен
завершаться символом точка с запятой












Классы
Control, Form и ListBox связаны следующими отношениями наследования

класс Control является наследником класса Form

[прав. ответ]класс Form является
наследником класса Control

класс ListBox является
наследником класса Form
[прав.
ответ]класс ListBox является наследником класса Control

классы
Control и Form не связаны отношением наследования













Отметьте
правильные объявления внутри метода:

int x, double y;

[прав. ответ] int x, y, z = 77;
[прав.
ответ] int x =77, y = new int();













Передавать
и получать информацию методу можно

[прав.
ответ]через поля класса

[прав.
ответ]через аргументы метода

через глобальные
переменные, объявленные в пространстве имен












При
инициализации массива задание конструктора обязательно


для одномерных массивов



для многомерных массивов

[прав. ответ]

для массива массивов













Базовый
класс для перечисления


всегда задается по умолчанию

[прав. ответ]

может быть задан по умолчанию



может быть классом string













Для
создания XML-отчета для проекта необходимо:


задать хотя бы один тег <summary>



отчет всегда строится вместе с проектом

[прав. ответ]

включить соответствующее свойство
проекта














В
каких фрагментах кода возникнут ошибки (предупреждения) на этапе
компиляции?

public class B<T> { } public class
S : B<int> { }
[прав.
ответ]public class Test1:IComparable<T> {public T x, y;}

[прав. ответ]public class
B1<T> {public T M<T>(T x) { return x; } }

public
class B2 <T> {public T1 M<T1>(T1 x) { return x; } }













Правда
ли, что:

[прав. ответ] над
массивами определены операции поиска элементов и сортировки

[прав.
ответ] класс Array является абстрактным классом

[прав.
ответ] массив можно рассматривать как коллекцию и использовать для
просмотра цикл foreach













Необходимость
в преобразованиях может возникать:

[прав.
ответ]в выражениях

[прав.
ответ]при присваивании

[прав.
ответ]при замене формальных аргументов фактическими













Методы
P и Q называются взаимно рекурсивными:


если метод P вызывает метод Q



если метод Q вызывает метод P

[прав. ответ]

если метод P вызывает метод Q , а
метод Q вызывает метод P


















Добавить комментарий


Яндекс.Метрика