Студопедия

Главная страница Случайная страница

Разделы сайта

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






Основные сведения. 6.1. Верны ли следующие утверждения:






 

6.1. Верны ли следующие утверждения:

a) описание структуры начинается с ключевого слова struct и содержит список объявлений членов структуры, заключенный в фигурные скобки;

b) за словом struct должен следовать идентификатор, называемый тегом структуры;

c) тег структуры используется в качестве имени типа при описании переменных;

d) имена членов структуры могут совпадать с именами переменных в той же области видимости;

e) имя тега структуры может совпадать с именами переменных в той же области видимости;

f) имя тега структуры может совпадать с именами членов этой структуры;

g) имена членов разных структур могут совпадать;

h) за описанием структуры (после правой закрывающей фигурной скобки) обязательно должен следовать список переменных;

i) переменные x, y, z разных типов

 

1) struct s { int a; float f; } x, y; 2) typedef struct { int a; float f; } s;

struct s z; s x, y;

struct { int a; float f; } z;

 

3) struct s { int a; float f; }; 4) struct s { int a; float f; };

typedef struct s new_s; typedef struct s s1;

struct s x; new_s y, z; typedef struct s s2;

s1 x, y; s2 z;

 

j) переменные x, y, z одного типа

 

1) struct { int a; float f; } x, y; 2) struct { int a; float f; } x, y;

struct { int a; float f; } z; struct { float f; int a; } z;

 

k) для доступа к членам структуры используется операция. (точка);

l) структуры не могут быть вложенными;

m) структурную переменную при ее описании можно инициализировать списком константных выражений, заключенным в фигурные скобки;

 

6.2. Каким образом в Си определяется эквивалентность типов? Какая эквивалентность типов рассматривается: структурная или именная? Чем они отличаются?

 

6.3. Описать в виде структуры следующие понятия:

a) дата (число, месяц, год);

b) адрес (страна, город, улица, дом, квартира);

c) треугольник (две стороны и угол между ними);

d) окружность (радиус и центр);

e) расписание занятий студента 209 группы факультета ВМК (день недели, предметы (с указанием – лекции или семинары), часы занятий, аудитория, фамилия преподавателя)

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

 

6.4. Используя определенный в задаче 6.3 тип, описать переменную этого типа и присвоить ей значение:

a) дата – 16 ноября 1999 года;

b) адрес – Россия, Москва, Ильинка, дом 3, кв. 34;

c) треугольник – 5, 6.7, 35°;

d) окружность – радиус 4.567, центр (1.4, 5.6);

e) расписание занятий студента 209 группы факультета ВМК – понедельник, математический анализ (лекция) –1 пара, П-12, Ломов И.С., математический анализ (семинар) – 2 пара, 706, Григорьев Е.А., программирование (семинар) – 3 пара, 713, Пильщиков В.Н.

 

6.5. Что напечатает программа?

#include < stdio.h>

main()

{ struct data1 { char c[4]; char *s; } d1 = { " abc", " def" };

struct data2 { char * cp; struct data1 inf; } d2 = { " ghi", { " jkl", " mno" } };

printf(" d1.c[0]=%c *d1.s=%c\n", d1.c[0], *d1.s);

printf(" d1.c=%s d1.s=%s\n", d1.c, d1.s);

printf(" d2.cp=%s d2.inf.s=%s\n", d2.cp, d2.inf.s);

printf(" ++d2.cp=%s ++d2.inf.s=%s\n", ++d2.cp, ++d2.inf.s);

}

 

6.6. Верны ли следующие утверждения:

a) описание объединения начинается с ключевого слова union и содержит список объявлений членов объединения, заключенный в фигурные скобки;

b) каждый член объединения располагается в памяти с одного и того же адреса; объем памяти для каждого члена выделяется в соответствии с его размером;

c) для каждого из членов объединения выделяется одна и та же область памяти;

d) все проблемы, связанные с выравниванием, решает компилятор;

e) в каждый момент времени объединение может содержать значение только одного из его членов;

f) все операции, применимые к структурам, применимы и к объединениям;

g) «рассогласованность» при работе с активным вариантом объединения контролируется компилятором.

 

6.7. Можно ли в Си создать аналог вариантных записей Паскаля?

 

6.8. Описать тип, с помощью которого можно организовать хранение данных о различных видах транспорта: грузовиках, автобусах, легковых автомобилях и мотоциклах. Для каждого вида транспорта имеются как общие характеристики (владелец, год производства и модель), так и индивидуальные (для грузовиков - число осей, грузоподъемность, для автобусов - число мест для пассажиров, для легковых автомобилей - число дверей (2 или 4), для мотоциклов - тип двигателя (двух- или четырехтактный)).

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.