Главная /
Программирование /
Основы программирования на С# 3.0: ядро языка - Visual Studio 2008
Основы программирования на С# 3.0: ядро языка - Visual Studio 2008 - ответы на тесты Интуит
Правильные ответы выделены зелёным цветом.
Все ответы: Курс посвящен основам объектного программирования. В качестве языка программирования выбран язык C# - его версия 3.0, в качестве среды разработки программных проектов – Visual Studio 2008 Professional Edition и Framework .Net в версии 3.5.
Все ответы: Курс посвящен основам объектного программирования. В качестве языка программирования выбран язык C# - его версия 3.0, в качестве среды разработки программных проектов – Visual Studio 2008 Professional Edition и Framework .Net в версии 3.5.
Создателем языка C# является:
(1) Дональд Кнут
(2) Никлас Вирт
(3) Андреас (Андерс) Хейлсберг
(4) Бертран Мейер
В каком алгоритмическом языке впервые появилось понятие класса:
(1) Фортран
(2) Алгол
(3) Симула
(4) С++
(5) Кобол
Назовем выражением последовательность констант, переменных, функций, объединенных знаками операций и скобок. Правда ли, что:
(1) любое выражение, соответствующее этому определению, по правилам языка C# является синтаксически корректным
(2) ошибки синтаксиса в записи выражения обнаруживаются на этапе компиляции
(3) любое синтаксически корректное выражение может быть вычислено на этапе выполнения, не приводя к появлению ошибок
В результате выполнения фрагмента кода
int p = 1, q = 2, r = 3;
p += q *= r-= p+q+r;
переменные
p, q, r
примут значения:
(1) p = 1, q = 2, r = 6
(2) p = 6, q = 6, r = 6
(3) p = -5, q = -6, r = -3
(4) p = 5, q = 6, r = 3
Отметьте истинные высказывания:
(1) процедуры и функции связываются с классом, они обеспечивают требуемую функциональность класса и называются методами класса
(2) процедуры и функции могут существовать вне класса
(3) для сложных методов класса допустима декомпозиция, позволяющая выделить подзадачи в процедурах и функциях
При объявлении массива с инициализацией
" int [] x = new int [3] "
происходит ли задание значений элементов массива, и если да, то какими значениями:
(1) нет, не происходит
(2) да, заполняется " 0 "
(3) да, заполняется " 1 "
(4) да, заполняется произвольными значениями
Множество возможных значений типа char - это:
(1) множество строчных и заглавных букв в латинице
(2) множество цифр и букв, как в латинице, так и в кириллице
(3) множество из 256 различных символов в кодировке ASCII
(4) множество из различных символов в кодировке Unicode
Среда разработки Visual Studio 2008 позволяет:
(1) открывать существующие проекты и работать с ними
(2) открывать существующие файлы и редактировать их
(3) создавать новые проекты;
(4) включать новые языки программирования и их компиляторы
Определение класса в C# и других объектных языках содержит:
(1) поля
(2) равнины
(3) вершины
(4) методы
(5) события
(6) приключения
Отметьте истинные высказывания:
(1) круглые скобки позволяют задать нужный порядок выполнения операций
(2) расстановка скобок при записи выражения разумна и тогда, когда скобки не меняют порядок выполнения операций, но облегчают его понимание
(3) если в синтаксически корректном выражении убрать круглые скобки, оставляя выражение синтаксически корректным, то значение выражения не изменится
Присваивание является ссылочным присваиванием, если:
(1) источник присваивания относится к ссылочному типу, а тип цели может быть любым
(2) цель присваивания относится к ссылочному типу, а тип источника может быть любым
(3) ни цель, ни источник присваивания не относятся к ссылочному типу
Укажите свойство метода, которым обладают процедуры, но не обладают функции:
(1) методу доступны поля класса, как для чтения, так и для записи
(2) метод имеет возвращаемое значение, тип которого отличен от void
(3) метод имеет возвращаемое значение типа void
(4) метод может быть вызван в выражениях
(5) метод может быть вызван как оператор языка
Укажите свойства, которыми обладают статические массивы, но которых нет у динамических массивов:
(1) нижняя граница равна нулю, а верхняя задается константным выражением
(2) нижняя граница равна нулю, а верхняя задается выражением, зависящим от переменных
(3) память для них распределяется в "куче"
(4) допустимо объявление массива с инициализацией
(5) инициализация задается с использованием константного массива
Отметьте корректные объявления:
(1)
char a = new char("a")
(2)
char b = "b"
(3)
Char[] c = new char[5]
(4)
char[] d = {'a','b','c','d'}
Язык C# в версии 3.0:
(1) предлагает новые типы проектов
(2) обладает чертами функционального языка программирования, допуская построение лямбда-выражений и анонимных типов и функций
(3) позволяет использовать инструмент LINQ (Language Integrated Query) для построения запросов к базам данных
Типы данных в языке C# принято классифицировать как:
(1) изощренные
(2) фигурные
(3) статические
(4) динамические
(5) ссылочные
(6) значимые (развернутые)
В сигнатуру метода входит:
(1) подпись метода
(2) знаки операндов метода
(3) список типов формальных аргументов метода
При выполнении фрагмента кода
for (int i = 0, j =1; i < 2; i++)
{
i--; j = -j;
}
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) при выполнении произойдет зацикливание
(4) ошибки не возникнет, и переменная
j
будет иметь значение 1
(5) ошибки не возникнет, и переменная
j
будет иметь значение -1 Отметьте правильную синтаксическую формулу, задающую заголовок метода:
(1)
[атрибуты][модификаторы]{void| тип_результата_функции} имя_метода([список_формальных_аргументов])
(2)
[атрибуты][модификаторы] имя_метода([список_формальных_аргументов]) : {void| тип_результата_функции}
(3)
{void| тип_результата_функции} имя_метода([список_формальных_аргументов])
(4)
[атрибуты][модификаторы] имя_метода([список_формальных_аргументов])
Объявление:
int[] A = new int[5], B= new int[5], C= new int[5];
означает, что:
(1) задаются три одномерных массива типа int с пятью элементами, значения которых равны 0
(2) задаются три одномерных массива, в каждом из которых по одному элементу со значением, равным 5
(3) задается трехмерный массив, с элементами, равными 0
(4) задаются три пятимерных массива
Константу типа char можно задавать:
(1) символом, заключенным в двойные кавычки
(2) символом, заключенным в одинарные кавычки
(3) escape - последовательностью, начинающейся с символа обратной косой черты "\"
(4) Unicode - последовательностью, задающей Unicode код символа
В Visual Studio 2008 число языков программирования, поставляемых корпорацией Microsoft:
(1) увеличилось
(2) осталось прежним
(3) уменьшилось
Отметьте истинные высказывания:
(1) значения переменных значимого типа нельзя изменять
(2) память, отводимая переменной значимого типа, принадлежит переменной и ни с какой другой переменной не разделяется
(3) память, отводимая переменной ссылочного типа, принадлежит переменной и ни с какой другой переменной не разделяется
(4) для ссылочных типов значение задается ссылкой на некоторый объект, расположенный в динамической памяти - "куче"
(5) несколько ссылочных переменных могут ссылаться на один и тот же объект и разделять его значения
Для безопасного преобразования типа справедливо выполнение следующих условий:
(1) тип и значение источника преобразования преобразуется к типу и значению цели преобразования
(2) тип источника преобразуется к типу цели, а значение остается без изменения
(3) при преобразовании значения не происходит потери точности
(4) для любой пары источника преобразования возможно выполнить преобразование и вычислить пару
Отметьте истинные высказывания:
(1) счетчик цикла в операторе цикла
for
можно изменять в теле цикла, но это может приводить к зацикливанию и другим серьезным ошибкам в момент выполнения
(2) изменение счетчика цикла в теле оператора цикла
for
приводит к ошибке, обнаруживаемой на этапе компиляции
(3) счетчик цикла должен быть объявлен в заголовке оператора цикла
for
Укажите, какие свойства выполняются для аргументов из списка формальных аргументов метода:
(1) число аргументов фиксировано
(2) число аргументов может быть произвольным
(3) аргументы могут сопровождаться ключевыми словами -
ref, out
(4) явно задается тип аргумента
(5) аргумент может быть только именем
(6) аргумент может быть выражением
Правда ли, что:
(1) массивы C# могут быть динамическими
(2) объявление
T[,,] t
означает, что переменная t задает трехмерный массив с элементами типа T
(3) массивы всегда объявляются с инициализацией
Над строками определены операции:
(1) "+"
(2) "*"
(3) ">"
(4) "!="
Каркас Framework .Net это:
(1) надстройка над операционной системой
(2) транслятор JIT, выполняющий трансляцию модулей, написанных на языке IL
(3) библиотека классов, используемая компилятором
(4) набор классов, используемых при построении самой Visual Studio
К ссылочным типам относятся:
(1) массивы
(2) строки
(3) классы, описание которых начинается с ключевого слова
class
(4) тип double
Правда ли, что преобразование типа:
(1) всегда может быть выполнено, используя приведение типа (кастинг)
(2) всегда может быть выполнено, используя методы класса
Convert
(3) всегда может быть выполнено, используя метод
Parse
(4) не всегда выполнимо
Отметьте истинные высказывания:
(1) тело цикла
foreach
выполняется столько раз, сколько элементов находится в контейнере
(2) цикл
foreach
работает только на чтение, но не на запись элементов
(3) оператор
yield
позволяет заполнить контейнер элементами
(4) для всех видов цикла тело цикла выполняется хотя бы один раз
Какие из приведенных функций являются функциями с побочным эффектом:
(1)
int p1(int x, out int y){y = x +1; return x +y;}
(2)
int p2(int x, int y){y = x +1; return x +y;}
(3)
int p3(ref int y){ return y++;}
(4)
int p4(int y){ return y++;}
Отметьте верные утверждения:
(1) в C# многомерный массив и массив массивов принадлежат разным типам массивов
(2) константные массивы можно использовать только при инициализации массивов
(3) при инициализации массива нужно задавать нижнюю и верхнюю границу изменения индексов
Какое утверждение верно для констант 'C', "C", @"C" :
(1) все три константы принадлежат разным типам
(2) все три константы принадлежат одному типу
(3) первая константа принадлежит типу char, вторая и третья - типу string
(4) первая константа принадлежит типу char, вторая - типу string, третья - StringBuilder
Сборщик мусора Garbage Collector это:
(1) компонент компилятора
(2) компонент Visual Studio
(3) компонент Framework .Net
Выражение, инициализирующее переменную:
(1) может быть константой
(2) может быть константным выражением
(3) может быть выражением, зависящим от переменных, получивших значение
(4) может содержать вызов конструктора класса
(5) может быть выражением, зависящим от еще не инициализированных переменных
В результате выполнения фрагмента
double x = 1, y = Math.Sin(x), z = Math.Cos(x);
double w = (y < z) ? (x -1)/(x+1) : (x + 1) /(x - 1);
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) ошибок не будет и переменная w получит значение 0
(4) ошибок не будет и переменная w получит значение Infinity
Отметьте истинные высказывания:
(1) любое выражение может использоваться в качестве оператора
(2) оператор
if
может быть эквивалентен по своему действию пустому оператору
(3) оператор
foreach
не применим при работе с массивами
(4) каждая case-ветвь оператора
switch
должна заканчиваться оператором break
Отметьте истинные высказывания:
(1) только первый формальный аргумент метода может сопровождаться ключевым словом
out
или ref
(2) только последний формальный аргумент метода может сопровождаться ключевым словом
out
или ref
(3) только первый формальный аргумент метода может сопровождаться ключевым словом
params
(4) только последний формальный аргумент метода может сопровождаться ключевым словом
params
Пусть в методе M один из аргументов объявлен следующим образом:
double [,] mas
Какое свойство (метод) следует вызвать для определения размерности массива, переданного методу:
(1)
int n = mas.Rank;
(2)
int n = mas.Length;
(3)
int n = mas.GetLength();
(4)
int n = mas. GetLength(0);
(5)
int n = mas.GetLength(1);
Изменить значение объекта класса string:
(1) можно, используя статические методы класса
(2) можно, используя динамические методы класса
(3) невозможно
Отметьте истинные высказывания:
(1) для Visual Studio 2008 разработано много компиляторов разных языков программирования, и каждый программист при наличии компилятора может добавить его в состав используемой им студии
(2) компилятор C# транслирует исходный текст в код на языке IL
(3) класс, удовлетворяющий спецификациям CLS, называется CLS-совместимым
Пусть разрабатывается проект, предоставляющий конечному пользователю n различных сервисов, каждый из которых требует собственного интерфейса. Отметьте истинные высказывания:
(1) такой проект должен быть разработан как проект с главной кнопочной формой
(2) такой проект может быть разработан как проект с главной кнопочной формой
(3) если такой проект разработан как проект с главной кнопочной формой, то в проект добавляются n интерфейсных классов - наследников класса Form, каждый из которых имеет собственную форму. Каждая такая форма заселяется элементами управления, задавая интерфейс соответствующего сервиса
(4) если такой проект разработан как проект с главной кнопочной формой, то на главной форме располагаются n командных кнопок, каждая из которых связана с соответствующим сервисом
(5) если такой проект разработан как проект с главной кнопочной формой, то обработчик события Click командной кнопки создает объект интерфейсного класса и форму, связанную с объектом. Затем в обработчике вызывается метод Show этого объекта, соответствующая форма открывается, показывается на экране дисплея, и пользователь получает доступ к интерфейсу сервиса
В результате выполнения фрагмента
string s = "2009", s1 = "";
if( s[1] == s[2] ) s1 = "happy number";
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) ошибок не будет и число символов переменной
s1
равно 0
(4) ошибок не будет и число символов переменной
s1
равно 12 Правда ли, что при выполнении фрагмента кода
int j = 0;
for (byte i = 1; i > 0; i++) j = i;
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) при выполнении произойдет зацикливание
(4) ошибки не возникнет, и переменная
j
будет иметь значение 0
(5) ошибки не возникнет, и переменная
j
будет иметь значение 128
(6) ошибки не возникнет, и переменная
j
будет иметь значение 255 При проектировании класса часто возникает дилемма: иметь поле класса, хранящее информацию, или иметь функцию без аргументов, получающую эту информацию динамически. Какое решение этой проблемы является корректным, если известно, что информация объемна и число создаваемых объектов в ходе работы программы может быть велико?
(1) всегда следует создавать поле класса
(2) всегда следует создавать функцию
(3) в такой ситуации, скорее всего, следует экономить память и создавать функцию
(4) в такой ситуации, скорее всего, следует экономить время и создавать поле класса
Пусть в методе M один из аргументов объявлен следующим образом:
double [,] mas
Какое свойство (метод) следует вызвать для определения числа столбцов массива, переданного методу:
(1)
int n = mas.Rank;
(2)
int n = mas.Length;
(3)
int n = mas.GetLength();
(4)
int n = mas. GetLength(0);
(5)
int n = mas.GetLength(1);
Укажите утверждения, истинные для класса
StringBuilder
:
(1) класс
StringBuilder
является изменяемым классом
(2) методы I
nsert, Replace
этого класса реализованы как процедуры в отличие от аналогичных методов класса string
, реализованных как функции, возвращающие новый объект
(3) для строк класса StringBuilder, также как и для класса
string
, нельзя заменить i-й символ строки, используя операцию взятия индекса ( s[i] = 'C';)
Свойство открытости среды разработки Visual Studio 2008 означает:
(1) возможность открытия проектов
(2) возможность открытия файлов
(3) возможность создания новых проектов;
(4) возможность включения в среду разработки новых языков программирования и их компиляторов
Понятие типа данных появилось уже в первом алгоритмическом языке. Какой это был язык:
(1) Фортран
(2) Алгол
(3) Симула
(4) С++
(5) Кобол
Правила вычисления выражения задают:
(1) приоритет операций
(2) приоритет операндов
(3) порядок выполнения операций одного приоритета
(4) преобразование типов операндов и выбор реализации для перегруженных операций
(5) тип и значение результата выполнения операции над заданными значениями операндов определенного типа
К выражениям с побочным эффектом относятся выражения, заданные операциями:
(1) присваивания (
x = expr, x += y *= expr
)
(2) увеличения и уменьшения (
x++, x--, ++x, --x
)
(3) арифметическими (
x + y, x / y
)
(4) сдвига (
x << n, x >> n
) Метод можно описать на уровне:
(1) класса
(2) пространства имен
(3) проекта
(4) решения
Что называется массивом:
(1) упорядоченная совокупность элементов нескольких типов
(2) неупорядоченная совокупность элементов нескольких типов
(3) упорядоченная совокупность элементов одного типа
(4) неупорядоченная совокупность элементов одного типа
Отметьте истинные высказывания:
(1) тип char отображается в тип Char библиотеки FCL
(2) каждому символу типа char однозначно соответствует код - целое число из фиксированного диапазона
(3) код символа задается числом, которое случайным образом выбирается при записи символа в память компьютера
Язык C#:
(1) не имеет ничего общего с языком С++
(2) полностью совпадает с языком С++
(3) унаследовал основные черты С++
Поле класса в языке C# - это:
(1) описание переменной, рассматриваемое как описание свойства объектов класса
(2) описание назначения класса
(3) описание операции, выполняемой над объектом класса
Каково значение переменной
int x = 5, y = 7, z = 12, u = x & y | x & z;
u
в результате выполнения следующего фрагмента программы:
(1) 3
(2) 5
(3) 7
(4) 12
(5) 21
Отметьте истинные высказывания:
(1) операции "упаковать" и "распаковать" (boxing, unboxing) выполняются, когда цель и источник присваивания относятся к разным типам - ссылочным и значимым
(2) переменной ссылочного типа нельзя присвоить значение выражения значимого типа
(3) любой переменной ссылочного типа можно присвоить значение выражения значимого типа
(4) переменной ссылочного типа object можно присвоить значение выражения значимого типа
Отметьте истинные высказывания:
(1) оператор
return
можно появиться только в теле метода, реализованного как функция
(2) функция не может возвращать значение void
(3) функцию нельзя вызывать как оператор
(4) процедуру нельзя вызывать в выражениях
Массив массивов позволяет задать:
(1) многомерный куб
(2) одномерный массив
(3) изрезанную, ступенчатую структуру
(4) таких массивов нет в С#
Для фрагмента программы:
string s = "да";
int x = 0;
if (s[0] >= 'А' && s[0] <= 'Я' && char.IsLetterOrDigit(s[1])) x = 1;
else if (s[0] >= 'а' && s[0] <= 'я' && char.IsLetterOrDigit(s[1])) x = 2;
else if (s[0] >= 'A' && s[0] <= 'Z' && char.IsLetterOrDigit(s[1])) x = 3;
else x = 4;
какое значение получит переменная
x
:
(1) 1
(2) 2
(3) 3
(4) 4
Компонентами каркаса Framework .Net являются:
(1) библиотека классов FCL (Framework Class Library)
(2) библиотека классов MFC (Microsoft Foundation Classes)
(3) общеязыковая исполнительная среда - CLR (Common Language Runtime)
(4) транслятор в байт-код (MSIL)
Типы данных в языке C# принято классифицировать как:
(1) простые
(2) фигурные
(3) сложные (структурные)
(4) встроенные (базисные)
(5) определенные программистом
Преобразования между значимыми и ссылочными типами:
(1) всегда допустимы
(2) никогда не допустимы
(3) должны быть явными
(4) используют операции
boxing
и unboxing
(5) могут быть неявными
Правда ли, что при выполнении фрагмента кода
int j = 0;
for (int i = 1; i < 5; i++)
{
if (i < 2) continue;
j += 2;
if (i < j) break;
}
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) при выполнении произойдет зацикливание
(4) ошибки не возникнет, и переменная
j
будет иметь значение 0
(5) ошибки не возникнет, и переменная
j
будет иметь значение 2
(6) ошибки не возникнет, и переменная
j
будет иметь значение 4
(7) ошибки не возникнет, и переменная
j
будет иметь значение 8 Переменные, появляющиеся в теле метода, могут быть:
(1) полями класса
(2) аргументами метода
(3) глобальными переменными, объявленными на уровне пространства имен
(4) локальными переменными, объявленными в теле метода
Укажите корректные объявления массивов:
(1)
int[3, 5] A, B, C;
(2)
int[, ] A = new int [3, 5], B = new int [5, 3], С= new int [5, 5];
(3)
int[, ] A = new int [3, 3], B = new int [3, 3], С = new int [3, 3];
(4)
int[, ] A, B, C = new int [3, 5];
(5)
int(, ) A = new int [3, 5], B = new int [5, 3], С= new int [5, 5];
Укажите корректные объявления:
(1)
string q = "2 + 2 = 5"
(2)
string q1 = 'Q'
(3)
string q2 = 'Q'.ToString()
(4)
string q3 = new string()
(5)
char[] syms = "string".ToCharArray()
На каких языках программирования можно работать в Visual Studio 2008:
(1) только на языке C#
(2) на трех языках - Visual C++, C#, Visual Basic
(3) число языков теоретически не ограничено
(4) на всех языках программирования, которые фирма Microsoft включит в состав Visual Studio
Какой из перечисленных типов языка C# не относится к значимым:
(1) все арифметические типы
(2) логический тип
(3) тип double
(4) тип, задающий массив
(5) тип, задающий структуру
Явное преобразование типа может быть выполнено:
(1) приведением типа (кастингом)
(2) методами класса
Convert
(3) методом
Parse
(4) методом
ToString
(5) методами класса
Translate
из библиотеки FCL Какие из операторов не относятся к операторам перехода:
(1)
goto;
(2)
break;
(3)
switch;
(4)
continue;
(5)
return;
Укажите, какие свойства выполняются для аргументов из списка фактических аргументов метода:
(1) число аргументов фиксировано
(2) число аргументов может быть произвольным
(3) аргументы могут сопровождаться ключевыми словами -
ref, out
(4) явно задается тип аргумента
(5) аргумент может быть только именем
(6) аргумент может быть выражением
Рассмотрим объявление массивов:
double[] x1 = new double[5], x2 = new double[5], x3 = new double[7];
double[] y1, y2;
int[] z2 = new int[5], z3 = new int[7];
Правда ли, что:
(1) переменные
x1, x2
одного типа
(2) переменные
x1, x2, x3
одного типа;
(3) переменные
x2, y2
одного типа;
(4) переменные
x2, z2
одного типа;
(5) все переменные принадлежат разным типам
Среди конструкторов класса
string
существует:
(1) конструктор без аргументов
(2) конструктор, которому передается массив символов
(3) конструктор, которому передается символ и число его повторений в создаваемой строке
JIT - это:
(1) компилятор одного из языков, включаемых в состав Visual Studio
(2) компонент исполнительной среды CLR
(3) компонент компилятора C#;
(4) компилятор, используемый сборщиком мусора
Какие объявления переменных являются корректными?
(1)
int x, y;
(2)
double y = 1, u = y + 0.5, v = u*u +2, w = u+v;
(3)
int y = 1, double u = y + 0.5, v = u*u +2, w = u+v;
(4)
uint k = new uint(), l = k + 1;
(5)
int x, y = 1, n = y + 1;
(6)
int x, y = 1, m = x + 1;
Для данного фрагмента программы
int n = 4; float u = 5.55f; double v;
v = u + n;
(1) возникнет ошибка на этапе компиляции
(2) при выполнении оператора присваивания будут выполнены явные преобразования типа
(3) при выполнении оператора присваивания будет выполнено одно неявное преобразование типа
(4) при выполнении оператора присваивания будут выполнены два неявных преобразования типа
Отметьте истинное высказывание:
(1) присваивание является операцией языка C#
(2) в теле оператора
foreach
текущий элемент позволяет получать и изменять значения элементов, хранящихся в контейнере
(3) в операторе
if
число ключевых слов if
должно совпадать с числом слов else
(4) case-выражение в операторе
switch
может задавать диапазон значений Для метода
int p(int x, out int y){y = x +1; return x +y;}
(1) первый аргумент вызывается по значению, второй по ссылке
(2) первый аргумент вызывается по ссылке, второй по значению
(3) оба аргумента вызываются по ссылке
(4) оба аргумента вызываются по значению
Отметьте верные утверждения:
(1) элементы константного массива следует заключать в фигурные скобки
(2) если массив объявляется без инициализации, то создается только висячая ссылка со значением null
(3) для динамических массивов можно указать нижнюю и верхнюю границу изменения индексов
Класс называется неизменяемым, если:
(1) в класс нельзя добавлять новые методы
(2) в класс нельзя добавлять новые поля
(3) объекты класса не могут изменять значения, полученные при их создании
(4) имя класса нельзя изменить
Отметьте истинные высказывания:
(1) пространство имен - это модуль, объединяющий группу классов, как правило, близких по функциональности и имеющих уникальные имена внутри пространства имен
(2) пространство имен содержит классы, но не может содержать вложенные в него пространства имен
(3) пространство имен содержит не только классы, но может содержать вложенные в него пространства имен
В результате выполнения фрагмента программы
double x = 0, y = 0, z = x/y;
(1) возникнет ошибка на этапе компиляции программы
(2) возникнет ошибка на этапе выполнения программы
(3) ошибки не будет и значение переменной
z
будет равно 0
(4) ошибки не будет и значение переменной
z
будет равно null
(5) ошибки не будет и значение переменной
z
будет равно NaN
(6) ошибки не будет и значение переменной
z
будет равно Infinity Отметьте истинные высказывания:
(1) вызов объектом X свойства или метода называется квалифицированным, если в вызове явно указано имя объекта
(2) вызов объектом X свойства или метода называется квалифицированным, если X - это текущий объект
(3) любой вызов текущим объектом свойства или метода можно превратить в квалифицированный вызов, добавив имя текущего объекта
(4) у текущего объекта нет имени
(5) this - это имя текущего объекта
(6) при вызове текущим объектом свойства или метода имя текущего объекта можно опускать
В результате выполнения следующего фрагмента кода
int a = 2, b = 3, c = 5, x = 0;
if( a > b)
if(c > a) if(c > a + b) x = a + b + c; else x = 7; else x = 12;
переменная
x
получит значение:
(1) 0
(2) 7
(3) 10
(4) 12
Отметьте истинные высказывания:
(1) только функции являются методами класса
(2) число формальных и фактических аргументов метода должно совпадать
(3) если формальный аргумент объявлен с ключевым словом
out
, то в теле метода ему должно присваиваться значение
(4) перегруженными называются методы с большим числом аргументов
(5) функции с побочным эффектом в языке C# не допускаются
Пусть в методе M один из аргументов объявлен следующим образом:
double [,] mas
Какое свойство (метод) следует вызвать для определения числа элементов массива, переданного методу:
(1)
int n = mas.Rank;
(2)
int n = mas.Length;
(3)
int n = mas.GetLength();
(4)
int n = mas. GetLength(0);
(5)
int n = mas.GetLength(1);
Укажите, как осуществляются преобразования между классами
string
и StringBuilder
:
(1) для преобразования строки класса
StringBuilder
в строку класса string
, следует вызвать метод ToString()
, возвращающий строку класса string
(2) для преобразования строки класса
string
в строку класса StringBuilder
, следует вызвать конструктор класса StringBuilder
, передав ему строку string
в качестве аргумента
(3) для преобразования строки класса
StringBuilder
в строку класса string
, следует вызвать конструктор класса string
, передав ему строку StringBuilder
в качестве аргумента
(4) для преобразования строки класса
string
в строку класса StringBuilder
, следует вызвать метод ToStringBuilder()
, возвращающий строку класса StringBuilder
Спецификации CLS задают:
(1) спецификации, предназначенные для разработчиков трансляторов
(2) спецификации класса, предназначенного для использования в проектах на разных языках программирования
(3) спецификации, которые безусловно должны выполняться программистами, работающими в среде Visual Studio 2008
(4) спецификации для программистов, работающих на языке C#
К ссылочным типам относятся:
(1) массивы
(2) строки
(3) классы, описание которых начинается с ключевого слова
class
(4) тип double
(5) тип, задающий структуру
В каком фрагменте оценка
mark
получит значение 5:
(1)
int mark; if(1 = 1/2 + 1/2) mark = 5; else mark = 2
(2)
int mark; if(1 == 1/2 + 1/2) mark = 5; else mark = 2
(3)
int mark; if(1 == 1.0/2 + 1.0/2) mark = 5; else mark = 2
Отметьте истинные высказывания:
(1) выражения с побочным эффектом могут использоваться в качестве оператора
(2) оператор
switch
по своему действию может быть эквивалентен пустому оператору
(3) в заголовке операторе цикла
for
всегда требуется объявлять переменную, задающую счетчик цикла
(4) в теле оператора
foreach
не допускается присваивание значения текущему элементу При проектировании класса часто возникает дилемма: иметь поле класса, хранящее информацию, или иметь функцию без аргументов, получающую эту информацию динамически. Какое решение этой проблемы является корректным, если известно, что информация не велика по объему, а время отклика играет важную роль?
(1) всегда следует создавать поле класса
(2) всегда следует создавать функцию
(3) в такой ситуации, скорее всего, следует экономить память и создавать функцию
(4) в такой ситуации, скорее всего, следует экономить время и создавать поле класса
Отметьте истинные высказывания:
(1) элементы массива доступны для чтения и записи
(2) после объявления
int[] x = new int[5];
переменная x
навсегда будет связана с массивом из 5 элементов
(3) массивы относятся к ссылочному типу
(4) если у метода формальный аргумент является массивом, то его можно вызывать по значению, опуская ключевые слова
ref
или out
, при условии, что в теле метода изменяются элементы массива, но не меняется сам массив (ссылка) В результате выполнения фрагмента кода
string f = "{0:P} от суммы {1, 10:x} составляют {2, 10:F}";
double p = 0.33, x =12355;
string s1 = string.Format(f, p, x, p * x);
переменная
s1
получит значение:
(1) "33% от суммы 12 355р. составляют 4077,15"
(2) "33,00% от суммы 12 355,00р. составляют 4077,15"
(3) "0,33% от суммы 12 355,00р. составляют 40,77"
Framework Class Library (FCL) - это библиотека классов, которая может быть использована:
(1) только компиляторами среды разработки
(2) только при разработке проектов на языке C#
(3) как компилятором языка C#, так и при разработке проектов на языке C#. Но она не может быть использована при работе с другими языками программирования, включенными в среду разработки
(4) как компиляторами, так и при разработке проектов на всех языках, включенных в среду разработки
(5) только классами этой же библиотеки
Тип данных определяет:
(1) максимальное число возможных переменных этого типа
(2) возможные значения, которые могут принимать переменные этого типа
(3) возможные операции, которые можно выполнять над переменными этого типа
(4) местоположение в программе, где следует определять переменные типа
(5) адрес в памяти компьютера, где будут храниться переменные данного типа
Операндами выражения являются:
(1) константы
(2) переменные
(3) переменные с индексами
(4) события
(5) функции
Выражением с побочным эффектом называется выражение, которое помимо прямого эффекта - вычисления значения и типа выражения:
(1) изменяет стандартный приоритет выполнения операций
(2) случайным образом изменяет значение выражения
(3) изменяет значение некоторой переменной, связанной с выражением
(4) изменяет тип операндов
Отметьте истинные высказывания:
(1) первыми формами модульности, появившимися в языках программирования, были классы
(2) процедуры и функции, а теперь и классы позволяют решать одну из важнейших задач, стоящих перед программистами, - задачу повторного использования программного кода
(3) в объектно-ориентированном программировании класс играет роль архитектурного модуля, поскольку программная система строится из классов
(4) в объектно-ориентированном программировании процедура играет роль архитектурного модуля, поскольку программная система строится из процедур
Выберите правильный вариант объявление массива:
(1)
double[] x;
(2)
double x [];
(3)
double x;
(4)
double [5] x;
(5)
double x [5];
Укажите истинные высказывания:
(1) зная код символа, можно однозначно определить сам символ
(2) зная символ, можно однозначно определить его код
(3) для кириллицы кодировка символов алфавита является плотной без всяких исключений
(4) для кириллицы кодировка символов алфавита является плотной за исключением кодировки буквы "ё"
Язык C#:
(1) является полностью объектно-ориентированным языком
(2) учитывает все возможности Framework .Net
(3) допускает наследование
(4) допускает универсализацию
Метод класса в языке C# - это:
(1) описание переменной, рассматриваемое как описание свойства объектов класса
(2) описание назначения класса
(3) описание определяемой в классе операции
Укажите правильный порядок следования приоритетов бинарных операций:
(1) арифметические, логические, отношения
(2) отношения, логические, арифметические
(3) арифметические, отношения, логические
Присваивание является значимым присваиванием, если:
(1) цель присваивания относится к значимому типу, а тип источника может быть любым
(2) источник присваивания относится к значимому типу, а тип цели может быть любым
(3) ни цель, ни источник присваивания не относятся к значимому типу
Укажите те свойства метода, которыми обладают функции, но не обладают процедуры:
(1) методу доступны поля класса, как для чтения, так и для записи
(2) метод имеет возвращаемое значение, тип которого отличен от void
(3) метод имеет возвращаемое значение типа void
(4) метод может быть вызван в выражениях
(5) метод может быть вызван как оператор языка
Укажите свойство, которым обладают динамические массивы, но которого нет у статических массивов:
(1) нижняя граница равна нулю, а верхняя задается константным выражением
(2) нижняя граница равна нулю, а верхняя задается выражением, зависящим от переменных
(3) память для них распределяется в "куче"
(4) допустимо объявление массива с инициализацией
(5) инициализация задается с использованием константного массива
Для фрагмента программы:
string s = "Yes";
int x = 0;
if (s[0] >= 'А' && s[0] <= 'Я' && char.IsLetterOrDigit(s[1])) x = 1;
else if (s[0] >= 'а' && s[0] <= 'я' && char.IsLetterOrDigit(s[1])) x = 2;
else if (s[0] >= 'A' && s[0] <= 'Z' && char.IsLetterOrDigit(s[1])) x = 3;
else x = 4;
какое значение получит переменная
x
:
(1) 1
(2) 2
(3) 3
(4) 4
Каркас Framework .Net:
(1) используется только при создании проектов на языке Net
(2) является единым для всех языков программирования среды разработки
(3) используется только при создании проектов на языке C#
(4) используется только при создании проектов на языке C++
Отметьте истинные высказывания:
(1) для переменных динамического типа память под данные отводится в момент объявления, требуемый размер данных известен при их объявлении
(2) для переменных статического типа память под данные отводится в момент объявления, требуемый размер данных известен при их объявлении
(3) для динамического типа размер данных в момент объявления не известен и память им выделяется в процессе выполнения программы
(4) для статического типа размер данных в момент объявления не известен и память им выделяется в процессе выполнения программы
Отметьте истинные высказывания:
(1) явные преобразования задаются программистом и явно заданы в программном коде
(2) неявные преобразования задаются программистом и явно заданы в программном коде
(3) неявные преобразования выполняются автоматически
(4) явные преобразования безопасны
(5) неявные преобразования безопасны
Отметьте истинные высказывания:
(1) оператор
return
, позволяет завершить выполнение процедуры или функции
(2) оператор
break
завершает выполнение цикла
(3) оператор
continue
завершает выполнение цикла
(4) оператор
continue
используется только в теле цикла Перегруженные методы класса:
(1) не могут существовать в классе
(2) имеют одно и то же имя
(3) отличаются сигнатурой
(4) при вызове перегруженного метода всегда можно однозначно определить, какая реализация перегруженного метода должна быть вызвана
Укажите те корректные объявления массивов, в которых все массивы заданы с инициализацией:
(1)
int[3, 5] A, B, C;
(2)
int[, ] A = new int [3, 5], B = new int [5, 3], С = new int [5, 5];
(3)
int[, ] A, B, C = new int [3, 5];
(4)
int(, ) A = new int [3, 5], B = new int [5, 3], С = new int [5, 5];
Укажите истинные высказывания для переменных класса
string
:
(1) эквивалентность строк
(s ==s1)
означает совпадение ссылок s
и s1
(2) эквивалентность строк
(s ==s1)
означает совпадение значений s
и s1
(3) операция
(s+s1)
определена только над строками, содержащими числа
(4) нельзя получить i-й символ строки, используя операцию взятия индекса
(char c = s[i])
;
(5) нельзя заменить i-й символ строки, используя операцию взятия индекса
( s[i] = 'C';)
; Отметьте истинные высказывания:
(1) важной частью библиотеки FCL являются классы, задающие примитивные типы, те типы, которые считаются встроенными в язык программирования
(2) типы данных, создаваемые программистом, включаются в состав библиотеки FCL
(3) типы различных языков программирования могут проецироваться на один и тот же тип FCL
(4) частью библиотеки FCL являются структурные типы - строки, массивы, стеки, очереди, списки, деревья
Какие синтаксические правила объявления переменных являются корректными:
(1)
<тип> [<атрибуты>] [<модификаторы>] <список объявителей>;
(2)
[<атрибуты>] [<модификаторы>] <тип> : <список объявителей>;
(3)
[<атрибуты>] [<модификаторы>] <тип> <список объявителей>;
(4)
<список объявителей> : <тип>;
Операция, заданная знаком "точка", в форме X.Y или X.Y()это:
(1) операция вызова - одна из важнейших и часто используемых операций в объектном программировании
(2) такой операции не существует
(3) может использоваться в выражениях
(4) завершаемая знаком "точка с запятой" задает оператор вызова языка C#
Операторами цикла в C# являются:
(1) оператор
for
(2) оператор
foreach
(3) оператор
while
с проверкой условия в начале цикла
(4) оператор
do - while
с проверкой условия в конце цикла
(5) оператор
loop
с проверкой условия в середине цикла В каких вызовах возникнет ошибка, если задано описание
int x=1; int z=0; int p(int x, out int y){y = x +1; return x +y;}
(1)
x = p(out 77,z);
(2)
x = p(77+z, out z);
(3)
p(77+z, out z);
(4)
x = p(77, out (77+z)).
Рассмотрим объявление массивов:
double[,] x1 = { { 2, 4, 8 }, { 3, 5, 15 } }, x2;
double[][] y1 = { new double[] { 2, 4, 8 }, new double[] { 3, 5, 15 } };
double [][]z1 = { new double[] { 2, 4 }, new double[] { 3, 5, 15, 31 } };
Правда ли, что:
(1) переменные
x1
и x2
принадлежат одному типу
(2) переменные
x1
и y1
принадлежат одному типу
(3) допустимо присваивание:
x2 = x1
(4) допустимо присваивание:
y1 = x1
Какие утверждения справедливы для @-констант:
(1) @-константы принадлежат типу string
(2) каждый символ @-константы задает непосредствено сам символ за одним исключением - символа кавычки
(3) любой символ кодировки Unicode может быть задан в @-константе
Отметьте истинные высказывания:
(1) компилятор языка C# создает код на промежуточном языке IL (Intermediate Language)
(2) компилятор JIT (Just In Time), входящий в состав CLR, транслирует IL код в код текущей платформы с учетом ее особенностей
(3) двухэтапная компиляция позволяет улучшить эффективность и надежность создаваемого программного кода
(4) двухэтапная компиляция требует от программиста дополнительных усилий по улучшению кода на промежуточном языке IL
Отметьте истинные высказывания:
(1) в списке объявителей элементы разделяются символом "точка с запятой"
(2) в списке объявителей элементы разделяются символом "запятая"
(3) в списке объявителей все элементы должны быть инициализированы
(4) в списке объявителей все элементы должны быть инициализированы, либо все заданы без инициализации
(5) в списке объявителей некоторые элементы могут быть инициализированы, некоторые - заданы без инициализации
В результате выполнения фрагмента
int n = 1, m = n++ + ++n;
переменные
m
и n
получат значения:
(1) n = 3, m = 3
(2) n = 1, m = 3
(3) n = 3, m = 4
(4) n = 1, m = 4
При выполнении фрагмента кода
int j = 0;
for (int i = 1; i < 5; i++)
{
if (i < 2) continue;
j += 2;
if (i < j) break;
}
(1) возникнет ошибка на этапе компиляции
(2) тело цикла выполнится два раза
(3) тело цикла выполнится три раза
(4) тело цикла выполнится четыре раза
Отметьте истинные высказывания:
(1) если аргумент метода вызывается по значению, то изменение аргумента в теле метода не изменяет значение фактического аргумента в результате вызова метода
(2) если аргумент метода вызывается по ссылке, то изменение аргумента в теле метода не изменяет значение фактического аргумента в результате вызова метода
(3) формальные аргументы значимого типа, представляющие выходные или обновляемые результаты метода, вызываются по ссылке и должны снабжаться ключевыми словами
out
или ref
Отметьте истинные высказывания:
(1) функция может возвращать массив в качестве результата
(2) массив массивов может использоваться для представления структур данных, называемых деревьями
(3) переменные, принадлежащие одному типу массива, могут иметь разную размерность
(4) переменные, принадлежащие одному типу массива, могут иметь разное число элементов
Какие утверждения являются справедливыми? Метод Format:
(1) позволяет форматировать строки string
(2) является перегруженным
(3) имеет произвольное число фактических аргументов
(4) позволяет изменить тип строки
(5) первым аргументом метода является строка, содержащая форматы
Отметьте истинные высказывания:
(1) для языков программирования, входящих в Visual Studio .Net, каждый компилятор использует собственную библиотеку классов FCL
(2) для языков программирования, входящих в Visual Studio .Net, компиляторы используют одну и ту же библиотеку классов FCL
(3) библиотека классов FCL является частью Visual Studio 2008
(4) библиотека классов FCL является частью каркаса Framework .Net, отделенного от Visual Studio 2008
Правда ли, что объявление переменной
int ? x;
x
(1) ошибочно
(2) означает, что переменная
x
может принимать любые значения
(3) означает, что нельзя узнать, какое значение имеет переменная
x
в текущий момент
(4) означает, что переменная
x
может принимать значение null В результате выполнения фрагмента
short u1 = 100, u2 = 200, u3 = u1 + u2;
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) ошибок не будет и переменная
u3
получит значение 300
(4) ошибок не будет и переменная
u3
получит значение 45 Отметьте истинные высказывания:
(1) выражения с побочным эффектом могут использоваться в качестве оператора
(2) оператор
switch
по своему действию может быть эквивалентен пустому оператору
(3) в заголовке операторе цикла
for
всегда требуется объявлять переменную, задающую счетчик цикла
(4) в теле оператора
foreach
не допускается присваивание значения текущему элементу Методы класса могут вызывать друг друга и обмениваться информацией. Пусть метод M1 вызывает метод M2. Метод M1 может передать входные данные методу M2 и получить от него результаты работы, используя:
(1) глобальные переменные, объявленные на уровне пространства имен или на уровне проекта
(2) поля класса
(3) аргументы метода M2
(4) локальные переменные метода M1
(5) локальные переменные метода M2
Пусть в методе M один из аргументов объявлен следующим образом:
double [,] mas
Какое свойство (метод) следует вызвать для определения числа строк массива, переданного методу:
(1)
int n = mas.Rank;
(2)
int n = mas.Length;
(3)
int n = mas.GetLength();
(4)
int n = mas.GetLength(0);
(5)
int n = mas.GetLength(1);
Какое высказывание справедливо для класса
StringBuilder
?
(1) существует неявное преобразование строки
string
в строку StringBuilder;
(2) у класса
StringBuilder
нет конструктора без параметров
(3) у класса
StringBuilder
нет операции "+" - конкатенации
(4) класс
StringBuilder
относится к неизменяемым классам Отметьте истинные высказывания:
(1) значение переменной простого типа неделимо (задается скаляром)
(2) одно значение сложного типа состоит из множества значений данных, организующих сложный тип
(3) базисными типами могут быть только простые типы
(4) программист C# не может определить собственный тип данных
Отметьте истинные высказывания:
(1) перегрузкой операции называется выполнение операции над тяжелыми операндами
(2) перегрузкой операции называется существование нескольких реализаций одной операции, каждая из которых выполняется над операндами соответствующего типа
(3) методы класса в отличие от операций не могут быть перегруженными
(4) имена перегруженных методов совпадают
(5) сигнатура метода однозначно определяется заголовком метода
(6) перегруженные методы и операции отличаются сигнатурой
При выполнении фрагмента кода
object x = 2+3;
(1) возникнет ошибка на этапе компиляции
(2) возникнет ошибка на этапе выполнения
(3) ошибки не возникнет, и переменная
x
будет иметь значение 5
и тип object
(4) ошибки не возникнет, и переменная
x
будет иметь значение 5
и тип int
Заголовок метода позволяет однозначно определить:
(1) сигнатуру метода
(2) состав полей класса, используемых в методе
(3) как реализован метод - процедурой или функцией
Одномерные массивы - это:
(1) частный случай многомерных массивов
(2) массивы, позволяющие задавать матрицы
(3) массивы, позволяющие задавать векторы
(4) массивы, имеющие структуру объявления
<тип>[] <объявители>
(5) массивы, имеющие структуру объявления
<тип>[, … ,] <объявители>
В результате выполнения фрагмента кода
int z = 0;
string s1 = "ABC", s2 = "AB" + 'C'.ToString(), s3 = s2;
if(s1 != s2) z = 1;
else if(s1 != s3) z = 2;
else if (s1.Length == s3.Length) z = 3;
else z = 4;
переменная
z
получит значение:
(1) 1
(2) 2
(3) 3
(4) 4