
экзамен2
.docxКак происходит вызов функции в C++?
function_name(); . Вызов функции имеет вид имени функции с последующими круглыми скобками. Эти скобки могут быть пустыми, если функция не имеет аргументов. Если же аргументы в самой функции есть, их необходимо указать в круглых скобках.
При вызове функции локальным переменным отводится память в стеке и производится их инициализация. Управление передается первому оператору тела функции и начинается выполнение функции, которое продолжается до тех пор, пока не встретится оператор return или последний оператор тела функции.
Что такое область видимости в C++? Как ее создать?
Область видимости переменных — это те части программы, в которой пользователь может изменять или использовать переменные в своих нуждах.
В C++ существуют отдельные блоки, которые начинаются с открывающей скобки ({) и заканчиваются соответственно закрывающей скобкой (}).
Если переменная была создана в таком блоке, то ее областью видимости будет являться этот блок от его начала (от открывающей скобки — { ) и до его конца (до закрывающей скобки — } ) включая все дочерние блоки созданные в этом блоке.
Глобальными переменными называются те переменные, которые были созданы вне тела какого-то блока. Их можно всегда использовать во всей вашей программе, вплоть до ее окончания работы.
Локальные переменные — это переменные созданные в блоках. Областью видимости таких переменных является блоки ( и все их дочерние ), а также их область видимости не распространяется на другие блоки.
В чем преимущества и недостатки динамически типизированных языков программирования? Приведите примеры таких языков.
Что такое вектор в C++?
Вектор C ++ — это класс шаблона в стандартной библиотеке шаблонов (STL), который функционирует как более совершенный массив. В отличие от массивов, векторы могут автоматически изменять размер при вставке или удалении элементов, поэтому их удобно использовать при работе с постоянно изменяющимися данными.
Что такое компиляция?
Компилятор – программа, переводящая текст, написанный на языке программирования, в набор машинных кодов.
Компиляция – сборка программы, включающая:
1. Трансляцию всех модулей программы, написанных на одном или нескольких исходных языках программирования высокого уровня и/или языке ассемблера, в эквивалентные программные модули на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера) или непосредственно на машинном языке или ином двоичнокодовом низкоуровневом командном языке.
2. Последующую сборку исполняемой машинной программы, в том числе вставка в программу кода всех функций, импортируемых из статических библиотек и/или генерация кода запроса к ОС (операционной системе) на загрузку динамических библиотек, из которых программной функции будут вызываться.
В чем преимущества и недостатки статически типизированных языков программирования? Приведите примеры таких языков.
Что такое проект GNU?
В чем преимущества и недостатки передачи данных на сервер в качестве параметров GET-запроса?
В чем разница мутабельных и иммутабельных объектов в Python? Приведите примеры тех и других.
В чем преимущества интерфейса командной строки перед графическим интерфейсом?
Какого типа данных могут быть значения в документе JSON?
Перечислите несколько операций, которые поддерживает список в Python.
Что такое идентификатор в C++? В чем его отличие от переменной?
Что такое отладка? Перечислите несколько методов отладки.
Отладка – это этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:
- узнавать текущие значения переменных;
- выяснять, по какому пути выполнялась программа.
Отладка – обнаружение причины ошибки.
(Когда программа доходит до точки останова, ее работа приостановится, можно будет просмотреть значения переменных перед выполнением работы в командной строке)
Для отладки программ обычно применяют 3 способа:
- f11 – выполнение одной строки программы. Если эта строка будет методом (цикл), отладчик выполнит одну строку этого метода. «Шаг с заходом»
- f10 – выполнение одной строки программы. Если эта строка будет методом, отладчик выполнит метод целиком. «Шаг с обходом». Позволяет ек выполнять пошаговую отладку метода.
- shift + f11 – выполнение всех действий программы до конца текущего метода и выход из него. «Шаг с выходом»
Что такое доменные имена? Уровень домена?
Что такое список в Python?
Списки в Python — это просто некий набор упорядоченных объектов. Списки могут содержать разные данные: это могут целые и дробные числа, строчки. В списках могут храниться даже сами списки.
Из чего состоит HTTP-ответ?
В чем преимущества вектора перед статическим массивом в C++? Как соотносится GNU и Linux?
В чем преимущества и недостатки компилируемых языков программирования? Приведите примеры таких языков.
Компилируемый язык программирования – язык программирования, исходный код которого преобразуется компилятором в машинный код и записывается в файл с особым заголовком и/или расширением для
последующей идентификации этого файла, как исполняемого операционной системы (в отличие от интерпретируемых языков программирования, чьи программы выполняются программой-интерпретатором).
Языки программирования принято разделять на компилируемые и интерпретируемые в силу типичных различий:
- скорость выполнения программы, скомпилированной в машинный код, превосходит скорость интерпретируемой программы в 10 и в 100 раз.
- в случае использования компилятора, при внесении изменений в исходный код программы, прежде чем эти изменения можно будет увидеть в работе программы, необходимо выполнить компиляцию исходного текста.
Примеры – BASIC, C, C++, PASCAL.
+ и –
+ скорость
+ эффективность
- прежде, чем программу исполнить, ее нужно прежде пропустить через компилятор, что увеличивает количество этапов рабочего процесса
- если в программе нужно что-то корректировать, то после каждой поправки компиляция запускается повторно
- платформенная зависимость языка, т.е. зависимость от той машины, на которой происходят компиляция и исполнение программы.
Что такое стек (область памяти)? Как он работает?
Стек — это область оперативной памяти, которая создаётся для каждого потока.
Каждый раз, когда функция объявляет новую переменную, она добавляется в стек, а когда эта переменная пропадает из области видимости (например, когда функция заканчивается), она автоматически удаляется из стека. Когда стековая переменная освобождается, эта область памяти становится доступной для других стековых переменных.
Чем отличаются компилируемые и интерпретируемые языки программирования?
В чем преимущества языков программирования, использующих байт-код? Приведите примеры таких языков
. Что такое абстракция? Примеры абстракций в информатике.
Что такое JIT-компиляция?
Как представлены исполняемые файлы в Windows?
Перечислите несколько кодов состояния HTTP и их значения.
В чем разница в поведении присваивания с C++ и в Python?
Код на Python
a = 10.1
b = True
c = 10
Код на C++
double a = 10.1;
bool b = true;
int c = 10;
на языке C++ необходимо самому указывать тип переменной при ее создании, стоит запомнить несколько базовых типов:
Что такое функция в C++?
Функции — это блоки кода, выполняющие определенные операции. Если требуется, функция может определять входные параметры, позволяющие вызывающим объектам передавать ей аргументы. При необходимости функция также может возвращать значение как выходное.
Функцию можно вызывать или вызыватьиз любого числа мест в программе. Значения, передаваемые в функцию, являются аргументами, типы которых должны быть совместимы с типами параметров в определении функции.
Как происходит передача параметров в функцию в Python?
Чем отличается объявление функции от определения функции?
1 |
int func(); |
При объявлении переменной, функции или даже класса все, что вы делаете, это говорите компилятору, что есть что-то с определенным именем и определенного типа.
Это объявление функции, оно не включает тело функции, но оно сообщает компилятору, что он может использовать эту функцию, и ожидать, что она будет определена где-то позже.
Определение функции означает предоставление тела функции, определение класса означает предоставление всех методов и полей класса.
Объявление предоставляет основные свойства символа: его тип и его название. Определение предоставляет все детали этого символа — если это функция, что она делает
Для чего нужен протокол HTTP?
Как можно изменить значение строки в Python?
С помощью replace можно заменить часть строки или её всю на другую строку.
Как осуществляется сортировка методом пузырька?
Как в стакане воды пузырёк воздуха поднимается со дна вверх.
Так и в массиве самый маленький элемент перемещается вверх.
Весь массив просматривается несколько раз, причём при каждом просмотре массива, сравниваются значения 2-ух соседних элементов. Если следующий элемент больше предыдущего, то они меняются местами.
Что такое компоновка?
Компоновка (программирование) — сборка исполнимого модуля из одного или нескольких объектных модулей.
Для чего нужен IP-адрес? Чем отличается IPv4 и IPv6?
Что такое автоматическая переменная в C++? Как ее создать?
Для чего нужна служба DNS?
Что такое заголовочный файл в C++?
Когда мы пишем #include <iostream>, мы делаем запрос, чтобы всё содержимое заголовочного файла iostream было скопировано в наш файл. Таким образом, всё содержимое библиотеки iostream становится доступным для использования.
В программировании заголовочный файл или подключаемый файл — файл, содержимое которого автоматически добавляется препроцессором в исходный текст в том месте, где располагается некоторая директива.
В чем заключался принцип работы телетайпа?
Что такое URL? Из чего он состоит?
Как представлены исполняемые файлы в Linux?
Что такое REPL? Для чего используется?
Чем отличаются парадигмы процедурного и функционального программирования?
Как происходит возврат из функции в C++?
Когда функция main() завершает свое выполнение, она возвращает целочисленное значение обратно в операционную систему, используя оператор return.
Функции также могут возвращать значения. Для этого нужно указать тип возвращаемого значения (или «тип возврата»). Он указывается при объявлении функции, перед её именем. тип возврата не указывает, какое именно значение будет возвращаться. Он указывает только тип этого значения.
Перечислите несколько возможных заголовков запроса HTTP и их смысл.
Каковы черты ОС UNIX, которые сделали ее популярной и легли в основу последующих поколений ОС?
Перечислите несколько разделов информатики.
Из чего состоит HTTP-запрос?
Для чего нужны порты в компьютерных сетях?
Что такое выражение в C++? Виды выражений.
Перечислите несколько операций, которые поддерживает строка в C++.
clear
S.clear() - очищает строчку, строка становится пустой.
push_back
S.push_back(c) - добавляет в конец строки символ c, вызывается с одним параметром типа char.
erase
S.erase(pos) - удаляет из строки S с символа с индексом pos и до конца строки.
resize
S.resize(n) - Изменяет длину строки, новая длина строки становится равна n. При этом строка может как уменьшится, так и увеличиться. Если вызвать в виде S.resize(n, c), где c - символ, то при увеличении длины строки добавляемые символы будут равны c.
empty
S.empty() - возвращает true, если строка пуста, false - если непуста.
append
Добавляет в конец строки несколько символов, другую строку или фрагмент другой строки. Имеет много способов вызова.
S.append(n, c) - добавляет в конец строки n одинаковых символов, равных с. n имеет целочисленный тип, c - char.
S.append(T) - добавляет в конец строки S содержимое строки T. T может быть объектом класса string или C-строкой.
Как передаются параметры GET-запроса?
Сколько запросов может сделать браузер при загрузке одной веб-страницы и почему?
В чем преимущества языков программирования, использующих JIT-компиляцию? Приведите примеры таких языков.
Что такое интерфейс loopback и каковы его IP-адреса?
Перечислите несколько возможных заголовков ответа HTTP и их смысл.
Перечислите два основных метода HTTP и разницу между ними.
Чем отличается присваивание от инициализации в C++?
Инициализация - выделение ячейки памяти с меткой, присвоение - запись туда значения int i; // это инициализация i = 5; // это присваивание
Под инициализацией подразумевается первоначальное присваивание значения. В этом и разница. Инициализация выполняется один раз, а присваивание - сколько угодно раз.
Чем отличается параметр-значение от параметра-ссылки в C++?
Что такое байт-код и какова схема запуска программ на языках, которые используют байт-код?
Что такое параметры функции и возвращаемое значение в C++?
Почему программы, собранные под Windows, нельзя запустить в Linux и наоборот?
Ассемблерные инструкции разные для разных ОС
Как соотносятся С и C++?
C++ — это улучшенный C. У этих языков одинаковый на 99% синтаксис и команды, но C — это больше про структурное и процедурное программирование, а C++ — про объектно ориентированное.
Приведите два способа обойти элементы списка в Python.( не точно)
1 способ
a=[1,3,4,2,1,3,4,2,]
for e in a: \
print(e)
2 способ
for i in range(len(a)):
print(a[i])
Что означает оператор return 0 в функции main в C++?
Инструкция return обеспечивает механизм завершения работы функции. Если оператор return сопровождается некоторым значением (в данном примере 0), это значение становится возвращаемым значением функции. В нашем примере возвращаемое значение 0 говорит об успешном выполнении функции main().
Что такое JSON? Для чего используется?
JSON (JavaScript Object Notation) – это текстовый формат, предназначенный для хранения структурированных данных.
используется для передачи данных между сервером и клиентом.
Что такое рекурсия?
рекурсия – это функция, которая сама вызывает себя.
Что такое декомпозиция? Для чего она применяется?
Какова была концепция работы всемирной паутины на момент ее создания?
В чем преимущества и недостатки интерпретируемых языков программирования? Приведите примеры таких языков
. Какой массив называется статическим?
Статические массивы как и другие статические типы данных это объекты размер которых известен на этапе компиляции. То есть до выполнения кода, когда программа запрашивает память у операционной системы она может выделить память в области данных, - по младшим адресам сегмента программы. Такие массивы существуют всё время жизни программы. Размер их неизменен. Данные в них изменять можно. Динамические массивы создаются на этапе исполнения так как размер их во время компиляции неизвестен.
Перечислите несколько операций, которые поддерживает вектор в C++.
После этого vi становится контейнером, поддерживающим набор операций, среди которых: vi.push_back(elem) // добавление элемента elem в конец
vi.pop_back() // удаление последнего элемента
vi.clear() // очистка вектора
vi.size() // текущее количество элементов
vi[N] // доступ к элементу с индексом N
Чем отличаются статически и динамически типизированные языки программирования? Для чего необходимо указание MIME-типа? Перечислите несколько MIME-типов.
Как происходит передача вектора в качестве параметра функции в C++?
По ссылке : void func( vector<string>& words)
Как происходит передача статического массива в качестве параметра функции в C++?
Приведите два способа обойти элементы вектора в C++.
Элементы как вектора, так и строки, удобно обходить циклом for на основе диапазона, который имеет упрощенный синтаксис и не требует проверки границ цикла.
Чем отличается функция в математике и функция в программировании?
В математике функция принимает одно значение и возвращает другое. В программировании — это программа в программе, отдельный участок кода, к которому можно обратиться по имени. Если у вас есть код, который используется несколько раз в рамках программы, то функция позволяет написать код один раз, а потом просто вызывать его при необходимости. Так мы не дублируем код и лучше его структурируем.
Что такое массив? Перечислите свойства массива.
Массив – это конечная последовательность однотипных данных.
Свойства:
Каждый член этой последовательности называется элементом массива.
Доступ к элементам массива производится по их номеру в последовательности, который в этом случае называется индексом.
Количество элементов в массиве называется размерностью массива. Причем важно заметить, что если размерность массива равна n, то индекс этого массива изменяется от 0 до n-1.
При определении массива его можно проинициализировать. Инициализация представляет собой набор начальных значений элементов массива, указанных в фигурных скобках, и разделенных запятыми. Например, int a[3] = {0, 1, 2};
Доступ к элементам массива выполняется при помощи оператора индексирования [ ], результатом выполнения которого является значение элемента массива с заданным индексом.