- •4. Измерение информации. Единицы измерения информации.
- •5. Свойства информации. Приведите примеры.
- •6. Способы классификации информации. Приведите примеры.
- •7. Формы представления информации. Приведите примеры.
- •8. Способы кодирования данных. Приведите примеры.
- •9. Информационная система. Компоненты информационной системы.
- •10. Система счисления. Позиционная система счисления. Привести примеры представления чисел, записанных в этих системах счисления:
- •11. Система счисления. Непозиционная система счисления. Привести примеры представления чисел, записанных в этих системах счисления:
- •12. Системы счисления, применяемые при создании вычислительной техники. Примеры.
- •13. Представление чисел в двоичной системе счисления. Привести примеры.
- •14. Механические вычислительные устройства. Технические характеристики.
- •15. Принципы работы аналоговых вычислительных машин. Приведите примеры авм. Почему авм не нашли широкого применения в вычислительной технике?
- •16. Назовите первые эвм и их авторов. Какие характеристики имели первые эвм?
- •17.Принципы построения эвм, сформулированные Джоном фон Нейманом. Структурная схема эвм. Назначение узлов эвм
- •18. Поколения эвм. Технические характеристики эвм. Смена поколений эвм.
- •19. Персональный компьютер. Причины появления. Основные узлы.
- •20. Основные характеристики микропроцессоров персональных компьютеров.
- •21. Виды памяти. Технические характеристики.
- •22. Устройства визуально вывода информации. Технические характеристики.
- •23. Основные характеристики внешних запоминающих устройств.
- •24. Способы печати. Технические характеристики принтеров.
- •25. Системные шины. Их назначение и характеристики.
- •26. Способы хранения информации на оптических носителях. Их технические характеристики.
- •27. Программное обеспечение. Классификация по.
- •28. Системное по. Назначение. Классификация. Примеры.
- •29. Инструментальное программное обеспечение. Назначение. Классификация. Примеры.
- •30. Прикладное программное обеспечение. Назначение. Классификация. Примеры.
- •31. Операционная система. Назначение. Состав. Технические характеристики. Примеры.
- •32. Файловая система. Назначение. Технические характеристики. Примеры.
- •33. Антивирусное программное обеспечение. Назначение. Классификация. Примеры.
- •34. Приложения для работы с файлами. Понятие файловый менеджер. Примеры.
- •35. Текстовый процессор. Назначение. Основные операции.
- •36. Табличный процессор. Назначение. Основные операции.
- •37. Понятие алгоритма. Способы записи. Виды алгоритмов.
- •38. Блок-схема. Представления различных алгоритмов с помощью блок-схем.
- •39. Теоретические основы сжатия данных.
- •40. История языка программирования Си. Этапы развития. Привести примеры компиляторов.
- •41. Элементы программы, написанной на языке Си.
- •42. Константы языка Си.
- •43. Система типов языка Си.
- •44. Арифметические операции языка Си. Операции инкремента и декремента.
- •45. Операции отношения и логические операции языка Си.
- •46.Побитовые логические операции языка Си. Операции сдвига
- •47. Условный оператор и оператор выбора языка Си.
- •48. Циклические операторы языка Си.
- •49. Указатели языка Си.
- •51. Многомерные массивы языка Си.
- •52. Структуры языка Си.
- •53. Объединения языка Си.
- •54. Функции языка Си.
- •55. Области видимости переменных в языке Си.
- •56. Способы передачи параметров функций в языке Си.
- •57. Рекурсия в языке Си.
- •58. Указатель на функцию в языке Си.
- •59. Классы хранения переменных языка Си.
- •60. Консольный ввод/вывод данных в языке Си.
- •61. Файловый ввод/вывод данных в языке Си.
55. Области видимости переменных в языке Си.
Время жизни переменной (глобальной или локальной) определяется по следующим правилам.
1. Переменная, объявленная глобально (т.е. вне всех блоков), существует на протяжении всего времени выполнения программы.
2. Локальные переменные (т.е. объявленные внутри блока) с классом памяти register или auto, имеют время жизни только на период выполнения того блока, в котором они объявлены. Если локальная переменная объявлена с классом памяти static или extern, то она имеет время жизни на период выполнения всей программы.
Видимость переменных и функций в программе определяется следующими правилами.
1. Переменная, объявленная или определенная глобально, видима от точки объявления или определения до конца исходного файла. Можно сделать переменную видимой и в других исходных файлах, для чего в этих файлах следует ее объявить с классом памяти extern.
2. Переменная, объявленная или определенная локально, видима от точки объявления или определения до конца текущего блока. Такая переменная называется локальной.
3. Переменные из объемлющих блоков, включая переменные объявленные на глобальном уровне, видимы во внутренних блоках. Эту видимость называют вложенной. Если переменная, объявленная внутри блока, имеет то же имя, что и переменная, объявленная в объемлющем блоке, то это разные переменные, и переменная из объемлющего блока во внутреннем блоке будет невидимой.
4. Функции с классом памяти static видимы только в исходном файле, в котором они определены. Всякие другие функции видимы во всей программе.
Метки в функциях видимы на протяжении всей функции.
Имена формальных параметров, объявленные в списке параметров прототипа функции, видимы только от точки объявления параметра до конца объявления функции.
56. Способы передачи параметров функций в языке Си.
Передача параметра возможна по значению и по ссылке. Иногда также используют выражение «передача параметра по адресу». Ниже приведён пример, иллюстрирующий различия этих способов.
Передача параметра по значению
Передача параметра по значению означает что вызывающая функция копирует в память, доступную вызываемой, (обычно стек) непосредственное значение. Изменение копии переменной, соответственно, оригинал не затрагивает.
Передача параметра по адресу
Если необходимо именно изменить переменную из внешней, по отношению к вызываемой функции, области видимости, можно копировать адрес переменной, подлежащей изменению. Соответственно при вызове функции g(&x) приходится использовать операцию взятия адреса. Эта техническая деталь отвлекает внимание программиста от логики прикладной программы, однако в случаях невозможности передачи по ссылке может оказаться единственным решением.
Можно заметить, что передача параметра по адресу является частным случаем передачи по значению: передаваемым значением является адрес, по которому можно найти другое значение — значение переменной x.
Передача параметра по ссылке
Передача параметра по ссылке означает что копируется не само значение, а адрес исходной переменной (как в случае передачи параметра по адресу), однако синтаксис используется такой, чтобы программисту не приходилось использовать операцию разыменования и он мог иметь дело непосредственно со значением, хранящимся по этому адресу (как в случае передачи параметра по значению).
Передача по ссылке позволяет избежать копирования всей информации, описывающей состояние объекта (а это может быть существенно больше чем sizeof(int)) и является необходимой для конструктора копирования.
Если функция возвращает значение по ссылке (например в виде "return *this;"), то её вызов можно использовать слева от оператора присваивания (смотри также L-выражение).
В случае если передача по ссылке используется именно как средство увеличения быстродействия, но изменение параметра нежелательно, можно использовать передачу по ссылке константного объекта.
Таким образом можно ожидать, что примерная программа напечатает (если закоментировать ошибочную строку) "0010 022 233 333".
Некоторые языки (или их диалекты) не поддерживают передачу по ссылке, некоторые наоборот - передают параметры исключительно по ссылке, что порождает риск непреднамеренного изменения контекста вызывающей функции.