Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


аписи и объединения, их массивы и инициализация, перечисления (enum), поля бит, открытие файлов




a) Навести декларацію змінної Data, структурного типу S_TYPE, яка має 3 поля: – поле char*, – поле long, – поле double. Поля структурної змінної в декларації повинні бути ініційовані наступними значеннями, відповідно, - “Old_Story”, 12L, 23.4e8.

struct S_TYPE

{

char* a;

long b;

double c;

};

main()

{

struct S_TYPE data;

Data.a="Old_Story";

Data.b=12L;

Data.c=23.4e8;

}

b) Навести декларацію шаблону структури ST_R, яка має 3 поля: – вказівник на структуру ST_R, – вказівник на дані типу long, – бітове поле на 3 розряди типу signed int. Скільки байт буде виділено в пам'ті комп'ютера для розміщення будь-якої змінної типу struct ST_R, якщо вказівники потребують по 4 байти для їх розміщення?

struct ST_R

{

struct ST_R *p1;

long *p2;

signed int p3:3;

};

10 байт

c) Навести декларацію „перечислимого” типу LEXEMA з елементами id, operator, cont, ssymbol, tab, та змінних l і t цього типу. Чи можна записати у С-програмі наступний оператор l = t = cont;?

enum lexeme {id,operator,cont,ssymbol,tab} l,i,t;

Да можна, они будут содержать индекс перечислителя сont (2);

d) Навести декларацію змінної Y структурного типу W_T, який включає в собі 2 елементи: - бітове поле на 4 розряди типу unsigned та об'єднання, яке об'єднує 2 елементи: – дані типу double та дані типу long. Скільки байт буде виділено в пам'яті комп'ютера для розміщення будь-якої змінної типу struct W_T?

struct W_T

{

unsigned:4;

union

{

double a

long b

}c;

}Y;

14 байт

e) Навести декларацію змінної F, структурного типу T_TYPE, яка має 4 поля: – поле char [12], – поле long, – поле double, – бітове поле на 5 розрядів типу signed. Поля структурної змінної в декларації повинні бути ініційовані наступними значеннями, відповідно, - “Butter”, 17843l, 234.89e5, та значенням 1010 у вигляді 16-річної константи.

f) Навести декларацію шаблону об'єднання MY_U, яке об'єднує 3 елементи: – дані типу char [4], – дані типу double та дані типу unsigned. Скільки байт буде виділено в пам'ті комп'ютера для розміщення будь-якої змінної типу union MY_U?

g) Наведіть ім'я стандартног потоку вводу та виводу.

стандартными потоками для ввода и вывода являются, соответствено, stdin и stdout.

h) Наведіть повністю опис режиму відкриття файлу “r”?

“r" – только для чтения и для существующего файла,

позиционирование в начало. Если файл не существует, то NULL.

FILE* file_ptr;

if((file_ptr = fopen(“cdirfile.txt”, ”r”))!= NULL)

{

/* действия, связанные с успешным открытием файла*/

}

else

{

/* действия по неудаче открытия файла, например анализ флага ошибок*/

}

i) Наведіть повністю опис режиму відкриття файлу “w”?

”w” - только для записи; если файл не существует, то он создается; позиционирование в начало и если файл уже существует, то старое содержимое затрется.

j) Наведіть повністю опис режиму відкриття файлу “a+”?

“a+” – для обновления (чтения/записи); после закрытия усечения не происходит;

позиционирование в конец файла.

k) Наведіть повністю опис режиму відкриття файлу “r+b”?

l) Наведіть повністю опис режиму відкриття файлу “w+t”?э

8) Звернути увагу, що деякі функції можуть мати параметром вказівник на вказівник для того, щоб можна було б змінювати значення головного або хвостового вказівника списку, тому необхідно правильно вибирати операції * або **.

- Дана декларація елементу однонаправленого списку:

struct ELT { struct ELT *next;

double M;

};

Навести реалізацію функції void add_to_list(struct ELM **head, struct ELM *elm), яка забезпечує включення елементу elm до голови списку head, де head головний вказівник списку (використовується список з одним головним вказівником).

{

*elm->next = *head;

*head = elm;

}

 

- Дана декларація елементу двонаправленого списку:

struct ELT { struct ELT *next;

struct ELT *pred;

long M;

};

Навести реалізацію функції long Length(struct ELM *head), яка забезпечує підрахунок кількості елементів у списку head, де head головний вказівник списку. (Список з одним вказівником головного елемента).

{

struct ELM wp = head;

long tmp=0;

while (wp!= nil)

{

wp:=*wp->next;

tmp++;

}

return tmp;

}





Поделиться с друзьями:


Дата добавления: 2017-02-11; Мы поможем в написании ваших работ!; просмотров: 362 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

2355 - | 2039 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.