WorksheetsОснови програмування Екз
Total questions: 20
Worksheet time: 10mins
Що таке алгоритм і які його основні властивості?
Нескінченна послідовність чітко визначених кроків для вирішення поставленої задачі, що володіє дискретністю, необмеженістю, визначеністю, масовістю та результативністю.
Скінченна послідовність чітко визначених кроків для розв'язання конкретної задачі, що володіє дискретністю, визначеністю, скінченністю, масовістю та результативністю.
Побудована блок-схема, що характеризується видами блоків, що у ній використані.
Словесний опис кроків, що потрібно виконати для досягнення потрібного результату. Характеризується складністю та результативністю.
Що таке мова програмування, програмний код та компілятор?
Мова програмування – це спосіб спілкування з комп'ютером, програмний код – це слова цієї мови, а компілятор – це програма для запуску коду.
Мова програмування – це набір слів для людини, програмний код – це інструкції для комп'ютера, компілятор – це дешифратор.
Мова програмування – це формальна мова для написання програм, програмний код – це текст програми, написаний певною мовою програмування, компілятор – це програма, що перетворює програмний код на машинний.
Мова програмування – це вид програмного забезпечення, програмний код – це результат використання мови програмування, а компілятор – це програма, що виконує написаний код.
Що таке оператор у мові C? Які типи операторів існують?
Оператор – це функція, яка виконує дію. Існують унарні (один операнд) та бінарні (два операнди) оператори.
Оператор – це операції над змінними. Існує більше 10 різних типів операторів.
Оператор – це символ або комбінація символів, що виконують певну дію. Існують унарні, бінарні та тернарний оператори.
Оператор – це частина компілятора. Існують бінарні (binary) та хексальні (hex) оператори.
Як працює конструкція if?
Виконує блок коду, що йде за ним.
Виконує блок коду, якщо умова хибна.
Виконує блок коду, якщо вказана умова істинна.
Викликає помилку, якщо умова не задана.
Що таке масив та для чого він потрібен?
Масив – це різновид змінних, що з'явився у версії 14 мови C++. Потрібен для зберігання чисел та символів.
Масив – це структура даних, що зберігає послідовність елементів одного типу в суміжних ділянках пам'яті. Потрібен для зберігання та організації великої кількості однотипних даних.
Масив – це набір функцій для обчислень. Потрібен для введення/виведення інформації.
Масив – це вказівник на місце в пам'яті. Потрібен для роботи з динамічною пам'яттю.
Для чого використовуються оператори & та * ?
& для розкриття вказівника, * для взяття адреси.
& для ділення за модулем, * піднесення до степеню.
& (адреса) повертає адресу змінної, * (розіменування) отримує значення за адресою, на яку вказує вказівник.
& використовують для ініціалізації змінних, * для ініціалізації констант.
Яким символом закінчується кожен рядок у C?
. (крапка)
; (крапка з комою)
\n (новий рядок)
\0 (нуль-термінатор)
Що таке файл і які його основні характеристики?
Файл – це змінна в програмі. Характеризується пам'яттю, що на нього виділяється.
Файл – це тип даних. Основні характеристики: ім'я, розмір та тип.
Файл – це іменована область на диску для зберігання даних. Основні характеристики: ім'я, розмір, тип, права доступу, дата створення/зміни.
Файл – це вказівник на область пам'яті, що характеризується кольором кластеру, ім'ям, типом та розміром.
Які функції використовуються для читання з файлу та запису у файл?
printf() та scanf()
main() та return
fprintf(), fscanf(), fread(), fwrite(), fgetc(), fputc(), fgets(), fputs() тощо.
malloc(), calloc(), realloc() та free()
Що таке структура в C/C++?
Структура – це різновид функції, що не повертає результату.
Структура – це простий тип даних, що використовується для простих арифметичних операцій.
Структура – це складений тип даних, що дозволяє групувати змінні різних типів під одним іменем.
Структура – це інша назв зарезервованого слова.
Навіщо потрібне динамічне виділення пам'яті?
Для тонкого управління швидкодією програм.
Щоб програма займала менше місця на диску.
Для виділення пам'яті під дані під час виконання програми, коли розмір даних невідомий заздалегідь.
Для статичного зберігання змінних.
Що таке конструктор та деструктор, і для чого вони використовуються?
Конструктор створює об'єкт, деструктор його копіює.
Конструктор - це спеціальна функція-член класу для отримання значення та деструктор - це спеціальна функція-член класу для встановлення значення.
Конструктор – це спеціальна функція-член класу, яка автоматично викликається при створенні об'єкта для його ініціалізації. Деструктор – це спеціальна функція-член класу, яка автоматично викликається при знищенні об'єкта для звільнення ресурсів.
Конструктор змінює об'єкт, деструктор його створює.
Що таке перевантаження операторів? Які оператори можна перевантажувати в C++? Як перевантажити арифметичний оператор (наприклад, +)?
Перевантаження операторів – це зміна стандартної поведінки операторів для вбудованих типів. Перевантажувати можна всі оператори. Перевантажується за допомогою ключового слова operator.
Перевантаження операторів – це створення нових операторів. Перевантажувати можна будь-які бінарні оператори. Перевантажується за допомогою функції main.
Перевантаження операторів – це можливість визначити власну поведінку для існуючих операторів при роботі з об'єктами користувацьких типів. Майже всі оператори можуть бути перевантажені (крім ., .*, ::, ?:, sizeof). Для перевантаження арифметичного оператора (наприклад, +) використовується ключове слово operator перед символом оператора як функція-член або глобальна функція.
Перевантаження операторів – це різновид помилки компіляції.
Що таке анонімні функції та лямбда-вирази в C++? Вкажіть їх призначення та синтаксис.
Анонімні функції – це функції без назви, лямбда-вирази – це те ж саме, але з іншим синтаксисом. Призначені для створення об'єктів. Синтаксис: [] () {}.
Анонімні функції та лямбда-вирази – це функції, які завжди повертають void. Призначені для друку на екран. Синтаксис: void func() {}.
Анонімні функції (лямбда-вирази) – це неіменовані функції, які можуть бути визначені безпосередньо в місці використання. Призначені для компактного визначення функціональних об'єктів. Синтаксис: [capture_list](parameters) -> return_type { body }.
Анонімні функції – це зарезервовані слова, лямбда-вирази – це назва змінних. Призначені для циклів. Синтаксис: for (...).
Які основні принципи роботи з рекурсією? Поясніть, як працює рекурсія на прикладі обчислення факторіалу.
Рекурсія – це асинхронний процес. Основні принципи: використання goto. Факторіал обчислюється з використанням функції fact().
Рекурсія – це особливий випадок лінійного алгоритму. Основні принципи: послідовне виконання. Факторіал обчислюється однією операцією.
Рекурсія – це техніка програмування, при якій функція викликає сама себе. Основні принципи: базовий випадок (умова завершення) та рекурсивний випадок (виклик функції для спрощеної задачі). Для факторіалу: n=n times(n−1), базовий випадок 0=1.
Рекурсія – це послідовний виклик всіх описаних у програмі функцій. Основні принципи: потребує завершальної функції. Факторіал не може бути обчислений рекурсивно.
Що буде виведено на екран після виконання цього фрагменту коду?
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "5";
string b = "10";
cout << a + b << endl;
return 0;
}
510
5 + 10
15
a + b
Що буде виведено на екран після виконання цього фрагменту коду?
#include <iostream>
using namespace std;
int main() {
int x = 7;
if (x > 5) {
std::cout << "Greater" << std::endl;
} else {
std::cout << "Smaller" << std::endl;
}
return 0;
}
Smaller
Greater
Нічого
Smaller, Greater
Що буде виведено на екран після виконання цього фрагменту коду?
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 4, 5};
cout << arr[2] << endl;
return 0;
}
arr[2]
3
4
5
Що буде виведено на екран після виконання цього фрагменту коду?
#include <iostream>
#include <string>
using namespace std;
int main() {
char str[] = "Hello";
cout << str << endl;
return 0;
}
H
Hello
str
endl
Що буде виведено на екран після виконання цього фрагменту коду?
#include <iostream>
using namespace std;
int main() {
int* ptr;
int value = 100;
ptr = &value;
cout << *ptr << endl;
return 0;
}
&value
*ptr
100
Нічого, виникне помилка на етапі виконання
