Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПиЯП.doc
Скачиваний:
0
Добавлен:
26.09.2019
Размер:
264.7 Кб
Скачать

1)Что такое среда разработки программ? выполнения программы в .NET.

Среда разработки - совокупность средств, с помощью которых программы пишут, корректируют, преобразуют в машинные коды, отлаживают и запускают.Среда разработки обычно содержит: текстовый редактор(предназначенный для ввода и корректировки текста программы),компилятор(с помощью которого программа переводится с языка, на котором она написана, в машинные коды)- средства отладки и запуска программ, общие библиотеки(содержащие многократно используемые элементы программ),справочную систему и другие элементы;

2)Что такое язык IL, из чего он состоит?

В состав платформы входят компиляторы, переводящие программу в промежуточный IL под управлением системы CLR. При выполнении программы CLR вызывает так называемый JIT-компилятор, переводящий код с языка IL в машинные команды.

using System;

namespace ConsoleApplication1

{class Class1

{static void Main(string[ ] args)

{Console.WriteLine(“Любая строка текста”);

}}}

3)Что такое сборка, метаданные?

Метаданные - сведения об объектах, используемых в программе, а также сведения о самой сборке. Они позволяют организовать межъязыковое взаимодействие, безопасность и облегчают развёртывание приложений. Платформа содержит библиотеку классов. На самом нижнем находятся базовые классы среды(стандартные), на верхнем поддерживают разработку распределенных приложений веб- и Windows. Программа может использовать классы любого уровня. Библиотека классов вместе с CLR образуют каркас.

4)Перечислите основные составляющие алфавита

Алфавит С# включает: буквы (латинские и национальных алфавитов) и символ подчеркивания (_) который употребляется наряду с буквами;

цифры; специальные символы, например +, *, { и &;

пробельные символы (пробел и символы табуляции);

символы перевода строки.

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

виды лексем:

имена (идентификаторы);

ключевые слова;

знаки операций;

разделители;

литералы (константы).

double y,x,z;

Console.WriteLine("Введите переменную х1");

y = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Введите переменную у1");

x = Convert.ToDouble(Console.ReadLine());

v = (1 + 2*Math.Sin(x + y)) / Math.Abs(x - (2 * y / 1 + Math.Pow(x, 2) * (Math.Pow(y, 2))) * Math.Pow(x, Math.Abs(y)) + Math.Cos(Math.Atan(1 / 2)));

Console.WriteLine(+z);

5)Что такое лексемы в языке С#? Опишите каждую из лексем.

Лексема (token) - это минимальная единица языка, имеющая самостоятельный смысл. Виды лексем:

  • имена (идентификаторы);

  • ключевые слова;

  • знаки операций;

  • разделители;

  • литералы (константы).

double y,x,z;

Console.WriteLine("Введите переменную х1");

y = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Введите переменную у1");

x = Convert.ToDouble(Console.ReadLine());

w = Math.Abs(Math.Cos(x)- Math.Cos(y)) *Math.Pow(1+2 Math.Sin(x)*y ) ……..

6)Что такое идентификаторы?

Индификатор – имя программы, объекта что бы различать их.В идентификаторе могут использоваться буквы, цифры и символ подчёркивания.

Первым символом идентификатора может быть буква или знак подчёркивания, но не цифра. Длина идентификатора не ограничена. Пробелы внутри имён не допускаются. В идентификаторах C# разрешается использовать помимо латинских букв буквы национальных алфавитов.Более того, в идентификаторах можно применять последовательности Unicode то есть представлять символ в шестнадцатеричном коде. Примеры неправильных имён: 2late, Big gig, Б#г;

7)Что такое литералы?

Литералами или константами, называют неизменяемые величины. В С# есть логические, целые, вещественные, символьные и строковые константы, а также константа null. Правильные константы (целые) 8 0 199226 8u 0Lu 199226L 0хА 0xlB8 0X00FF 0xAU 0xlB8LU 0X00FFl Неправильная 8.2 и тп

8)Что такое управляющие последовательности? Управляющей последовательностью называют определенный символ, предваряемый обратной косой чертой. Управляющая последовательность интерпретируется как одиночный символ и используется для представления:

  • кодов, не имеющих графического изображения (например, \n — переход в начало следующей строки);

  • символов, имеющих специальное значение в строковых и символьных литералах, например, апострофа '.

Правильные 5.7 .001 35 5.7F .001d 35 5F .001f 35m 0.2E6 .11e+3 5E-10 2E6D .11e-3,5E10

9)Что такое дословные литералы, комментарии?

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

@ ”Никто не доволен своей

внешностью, но каждый доволен

своим умом”

@”Издательский дом “Питер” “

Комментарии - 3 вида однострочные //, многострочные /**/, XML комментарии ///.

10) Что определяется типом данных? приведите

Тип данных однозначно определяет:

  • Внутреннее представление данных – множество их значений

  • Допустимые действия над данными (операции и функции)

Классификация типов данных в С# представлена на рисунке

Внутреннее представление величины целого типа – целое число в двоичном коде (001,010);

11) Что такое встроенные типы языка?

Встроенные типы языка - стандартный класса библиотеки .NET определенным в пространстве имен System.

Внутреннее представление величины вещественного типа состоит из двух частей – мантиссы и порядка, каждая часть имеет знак. Длина мантиссы определяет точность числа, а длина порядка – его диапазон. Например, число 0,381*10^4 хранятся цифры мантиссы 381 и порядок 4, для числа 560,3*10^2 – мантисса 5603 и порядок 5.

12) Что такое упаковка и распаковка данных?

Преобразование из типа-значения в ссылочный тип называется упаковкой, обратное преобразование – распаковкой. Если величина значимого типа используется в том месте, где требуется ссылочный тип, автоматически выполняется создание промежуточной величины ссылочного типа – создается ссылка, то есть значение как бы упаковывается в объект. При необходимости обратного преобразования с величины ссылочного типа “снимается упаковка”, и в дальнейших действиях участвует только ее значение.

13) Что такое переменная?

Переменная — это именованная область памяти, предназначенная для хранения данных определенного типа. Во время выполнения программы значение пере­менной можно изменять. Все переменные, используемые в программе, должны быть описаны явным образом. При описании для каждой переменной задаются ее имя и тип.

При инициализации можно использовать не только константу, но и выражение — главное, чтобы на момент описания оно было вычисляемым.

Инициализировать переменную прямо при объявлении не обязательно, но перед тем, как ее использовать в вычислениях, это сделать все равно придется, иначе компилятор сообщит об ошибке.

14) Что такое область видимости переменной? Область видимости переменной - это среда, в которой она определена. Локальная переменная представляет собой переменную, определенную внутри функции. Вы объявляете локальные переменные в начале функции после открывающей фигурной скобки. Глобальные переменные, которые известны на протяжении всей программы. Чтобы объявить глобальную переменную, следует просто поместить объявление переменной в начало вашей программы вне какой-либо функции.

using System;

namespace ConsoleApplicationl

{class Classl

{ static void Main()

{int i = 3;

double у = 4.12;

decimal d = 600m;

string s = "Вася";

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

Console.Write( "y = " ); Console.WriteLine(у );

Console.Write( "d = " ); Console.WriteLine( d );

Console.Write( "s = " ); Console.WriteLine( s ); } } }

15) Что такое именованная константа?

const int b = 1;

const float x = 0.1, у = 0.1f; // const распространяется на обе переменные

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

Именованные константы должны обязательно инициализироваться при описа­нии. При инициализации можно использовать не только константу, но и выра­жение — главное, чтобы оно было вычисляемым на этапе компиляции, например:

const int b = 1, а = 100; const int x = b * а + 25

16) Что такое выражение, операнд, операция? Выражение — это правило вычисления значения. ОперандОперанд - константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операцииОперанд - константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операцииОперанд - константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операции – константа,функции,выражение т.п. Операция – специальный способ записи некоторых действийОперанд - константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операцииОперанд - константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операции

Операции в выражении выполняются в определенном порядке в соответствии с приоритетами, как и в математике.

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

17) Что такое автоматическое и явное преобразование

Автоматическое (неявное) преобразование возможно не всегда, а только если при этом не может случиться потеря значимости. Если неявного преобразования из одного типа в другой не существует, программист может задать явное преобразование типа с помощью операции (тип)х.

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

long b= 300;

int a = (int) b; // данные не теряются

byte d = (byte) a; // данные теряются

18) Что такое операции инкремента и декремента?

Операции инкремента (++) и декремента (--), называемые также операциями увеличения и уменьшения на единицу.. В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется.

19) Перечислите операции отрицания. Опишите отрицание (унарный минус -) меняет знак операнда на проти­воположный (int, long, float, double и decimal).Логическое отрицание (!) определено для типа bool. Результат операции —false,true.

Поразрядное отрицание (~ побитовое) типа int, uint, long или ulong.

using System;

namespace ConsoleApplication1

{ class Classl

{static void Main()

{sbyte a = 3, b = -63, с = 126;

bool d = true;

Console.WriteLine( -a ); // Результат -3

Console.WriteLine( -c ); // Результат -126

Console.WriteLine( !d ); // Результат false

Console.WriteLine( ~a ); // Результат -4

Console.WriteLinet( ~b ); // Результат 62

Console.WriteLine( ~c ); // Результат -127 } } }

20) Перечислите арифметические операции в языке Арифметическое отрицание (унарный минус -) меняет знак операнда на проти­воположный(int, long, float, double и decimal).Операция умножения (*) возвращает результат перемножения двух операндов(int, uint, long, ulong, float, double и decimal). Операция деления (/) вычисляет частное от деления первого операнда на второй(int, uint, long, ulong, float,double и decimal).Операция остатка от деления (%) также интерпретируется по-разному для целых, вещественных и финансовых величин. Операция сложения (+) возвращает сумму двух операндов. Операция вычитания (-) возвращает разность двух операндов.

using System;

namespace ConsoleApplication1

{ class Classl

{ static void Main()

{int x = 11, у = 4;

float z = 4;

Console.WriteLine( z *y ); // Результат 16

Console.WriteLine (z * le308 ); // Результат "бесконечность"

Console.WriteLine( x / у ); // Результат 2

Console.WriteLine( x / z ); // Результат 2,75

Console.WriteLine( x % у ); // Результат 3

Console.WriteLine( le-324 / le-324 ); // Результат NaN – результат не число

21) Перечислите операции сдвига в языке С#.

Операции сдвига (<< и >>) применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. Фактически, учитывается только 5 младших битов второго операнда, если первый имеет тип int или uint, и 6 битов, если первый операнд имеет тип long или ulong.При сдвиге влево (<<) освободившиеся разряды обнуляются. При сдвиге вправо (>>) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа (то есть выполняется логический сдвиг), и знаковым разрядом — в противном случае (выполняется арифметический сдвиг). Операции сдвига никогда не приводят к переполнению и потере значимости. Стандартные операции сдвига определены для типов int, uint, long и ulong.

using System;

namespace ConsoleApplicatlonl

{class Classl

{static »oid Main()

{byte a = 3, b = 9;

sbyte с = 9, d =-9;

Console.WriteLine( a <<1 ); // Результат 6

Console.WriteLine( a << 2 ); // Результат 12

Console.WriteLine( b >> 1 ); // Результат 4

Console.WriteLine( с>> 1 ); // Результат 4

Console.WriteLine( d>>1); // Результат -5

22) Перечислите операции отношения в языке с#.

Операции отношения (<, <=, >, >=, = =, ! =) сравнивают первый операнд со вторым Операнды должны быть арифметического типа. Результат операции — логического типа, равен true или false. Обратите внимание на то, что операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции сравнения.Очень интересно формируется результат операций отношения для особых случаев вещественных значений. Например, если один из операндов равен NaN, результатом для всех операций, кроме !=, будет false (для операции !- результат равен true).

23) Перечислите поразрядные логические операции в.

Поразрядные логические операции (&, |, ^) применяются к целочисленным операндам и работают с их двоичным кодом.При поразрядной конъюнкции, или поразрядном И (операция обозначается &), бит ре­зультата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1.

При поразрядной дизъюнкции, или поразрядном ИЛИ (операция обозначается |), бит результата равен 1 тогда, когда соответствующий бит хотя бы одного из операндов равен 1.При поразрядном исключающем ИЛИ (операция обозначается ^) бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1.

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main() {

Console.WriteLine( 6 & 5 ); // Результат 4

Console.WriteLine( 6 | 5 ); // Результат 7

Console.WriteLineC 6 ^ 5 ); / Результат 3 } } }

24) Перечислите условные логические операции в Условные логические операции И (&&) и ИЛИ (||) чаще всего используются с операндами логического типа. Результатом логической операции является true или false. Операции вычисляются по сокращенной схеме. Результат операции логическое И имеет значение true, только если оба операнда имеют значение true.Результат операции логическое ИЛИ имеет значение true, если хотя бы один из операндов имеет значение true.

25) Что такое тернарная операция? Опишите Условная операция (? :) — тернарная, то есть имеет три операнда. Ее формат:

операнд1 ? операнд2 : операнд3

using System;

namespace ConsoleApplicationl

{ class Classl

{static void Main()

{ int a = 11, b = 4;

int max = b > a ? b : a;

Console.WriteLine( max ); // Результат 11

26) Перечислите операции присваивания в языке С#. Операции присваивания (=, +=, -=, *= и т. д.) задают новое значение переменной. Эти операции могут использоваться в программе как законченные операторы.

а = b + с / 2;b = а;а = b;х = 1;х+ = 0.5;

Результатом операции присваивания является значение, записанное в левый операнд. В сложных операциях присваивания ( +=, *=, /= и т. п.) при вычислении выражения, стоящего в правой части, используется значение из левой части. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, то есть выражение а += b является более компактной записью выражения а = а + b.Результатом операции сложного присваивания является значение, записанное в левый операнд. Операции присваивания выполняются справа налево, в отличие от большинства других операций (а = b = с означает а = (b=c)).

27) Что называется линейной программой? Опишите.

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

  1. Числа вводятся с клавиатуры как строковые константы

  2. Выполняется преобразование из строки в переменную соответствующего типа.

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

  • Класс Convert, имеющий методы преобразования в любой стандартный тип C# - Convert.ToInt32(строковая константа), Convert.ToDouble(строковая константа) и т.д.

  • Метод Parse(строковая константа) – метод, существующий у любого стандартного типа –

29) Что такое составной оператор

С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором{оператор_1 ... оператор_N}.Синтаксически блок воспринимается как единичный оператор и может использоваться всюду в конструкциях, где синтаксис требует одного оператора. Тело цикла, ветви оператора if, как правило, представляются блоком.Пустой оператор - это "пусто", завершаемое точкой с запятой. Он используется когда по синтаксису оператор требуется, а по смыслу- нет.

30) Назовите операторы ветвления в языке C#.

Как в С++ и других языках программирования, в языке C# для выбора одной из нескольких возможностей используются две конструкции - if и switch. Первую из них обычно называют альтернативным выбором, вторую - разбором случаев.

Синтаксис оператора if:

if(выражение_1) оператор_1;

else if(выражение_2) оператор_2

else if(выражение_K) оператор_K

else оператор_N

if(выражение1) if(выражение2) if(выражение3) ...

Семантика оператора if проста и понятна. Выражения if проверяются в порядке их написания.

if (a<0) b=1;

if (a<b&& (a>d||a= =0) ) b=++; else {b*=a;a=0;}

if (a<b) if (a<c) m=a; else m=c; else if (b<c) m=b; else m=c;

Следует избегать проверки ве5щественных величин на равенство, вместо этого лучше сравнивать модуль их разности с некоторым малым числом:

float a,b;

if (a= =b) // не рекомендуется

if (Math.Abs(a-b)<1e-6)…//надежно!

31) Назовите отличия оператора if от оператора switch.

Синтаксис оператора if:

if(выражение_1) оператор_1;

else if(выражение_2) оператор_2

else if(выражение_K) оператор_K

else оператор_N

if(выражение1) if(выражение2) if(выражение3) ...

Семантика оператора if проста и понятна. Выражения if проверяются в порядке их написания. Как только получено значение true, проверка прекращается и выполняется оператор (это может быть блок), который следует за выражением, получившим значение true.

Синтаксис оператора switch(выражение)

{case константное_выражение_1: [операторы_1 оператор_перехода_1]

case константное_выражение_K: [операторы_K оператор_перехода_K]

[default: операторы_N оператор_перехода_N]}

Семантика оператора switch такова. Вначале вычисляется значение switch-выражения. Затем оно поочередно в порядке следования case сравнивается на совпадение с константными выражениями. Как только достигнуто совпадение, выполняется соответствующая последовательность операторов case-ветви. Поскольку последний оператор этой последовательности является оператором перехода (чаще всего это оператор break), то обычно он завершает выполнение оператора switch.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]