Ператори управління ходом обчислень та макро...
1) Чи можна в програмі використати оператор наступного вигляду і що він виконує for (; ;) {…} ?
да, это бесконечный цикл. Из такого цикла необходимо выходить, например, операторами break, goto или return.
2) Скільки разів буде виконано тіло do-while-оператора, якщо до його виконання змінна Х (типу int) мала значення 10: do {…} while (X--);
11
3) Призначення операторів break, goto, return, default та case!
Break –выход из блока программы; goto–метка на которую переходит программа; return – необходимо либо для немедленного выхода из функции, либо для передачи возвращаемого значения; default - Оператор выбора default будет выполняться, если ни один из операторов выбора case не содержит нужного числа. Т.е. если ничего не совпало с "определенным значением", то будет выполняться оператор по умолчанию – default; case - операторов выбора case может быть очень много, так как это просто различные варианты значений. Но работать будет именно тот оператор case, который будет равен нашему "определенному значению"
4) Чи можна в for-операторі ініціювати одночасно декілька параметрів циклу?
Можно
5) Різниця у виконанні #include “myfile.h”, #include <myfile.h>?
1- файл буде шукатись в поточній папці(у поточному проекті), 2- бібліотека буде шукатись у папці TC\INCLUDE.
6) За допомогою #define навести реалізацію макрокоманди.....
DEF(X,Y), яка обчислює X-Y, якщо X>=Y, та Y-X, якщо Y>X. ( Можливе рішення #define DEF(X,Y) (((X)>=(Y))?(X)-(Y):(Y)-(X)) )
7) Дані якого типу можна використовувати після ключового символу case?
имвольні масиви та їх ініціювання...
1) Чи можна записати у програмі наступну декларацію: char a = “bc”; ?
нет, так как “ bc ” массив
2) Скільки байт буде виділено під символьний масив при ініціюванні його символьним літералом?
на каждый по 1 байту + 1 под терминальный ноль
3) Виконайте в одному операторі - декларацію вказівника pp на тип char та ініціювання його адресою літералу “Data_string”!
Char*p=” Data_string”
4) Що означає наступна декларація: char (* pp) [20]; ?
Массив из указателей (20 элементов указателей)
аписи та об’єднання, їх масиви, тип enum, його особливості, поля біт...
1. Навести декларацію шаблону структури ST, яка має 4 поля: – вказівник на структуру ST, – вказівник на дані типу double, – бітове поле на 3 розряди типу signed та бітове поле на 5 розрядів типу unsigned. Скільки байт буде виділено в пам'ті комп'ютера для розміщення будь-якої змінної типу struct ST, якщо вказівники потребують по 2 байти для їх розміщення?
Template <class type> struct ST
{
struct ST* a;
double* b;
byte c;
unsigned byte d;
}
2+4+1+1=8байт
2. Навести декларацію „перечислимого” типу Days з елементами mn, th, wdn, та змінної Y цього типу. Чи можна записати у С-програмі наступний оператор Y = sun; ?
enum {mn=1; th=2; wdn=3}
Days;
Days Y;
Y = sun – записать нельзя будет ошибка
3. Навести декларацію змінної X структурного типу TN, який включає в собі 2 елементи: - бітове поле на 5 розрядів типу unsigned та об'єднання, яке об'єднує 2 елементи: – дані типу unsigned та дані типу long. Скільки байт буде виділено в пам'ті комп'ютера для розміщення будь-якої змінної типу struct TN?
Struct TK {unsigned int b; long v;}
Struct TN {int k; TK z}
TN Х
12 байт
рограмування функцій для роботи з масивами, списками...
Звернути увагу на те що у функціях у деяких випадках передається вказівник на вказівник, що стосується головного чи хвостового вказівника списка, тому що в деяких ситуаціях треба змінити його значення, а не значення параметра.
1. Дана декларація елементу однонаправленого списку:
struct ELM { struct ELM *succ;
char M[80];
};
Навести реалізацію функції void add(struct ELM **head, struct ELM *elm), яка забезпечує включення елементу elm до голови списку head, де head головний вказівник списку, список з одним головним вказівником.
2. Функції можуть включати, виключати елементи різних видів списків – однонапрвлених, двонаправлених, обчислювати кількість елементів, виконувати пошук по ключу.