|
Программирование >> Структурное программирование
4.2. Укажите, верны ли следующие утверждения. Если пет, объясните почему. a) Массив может хранить много различный типов данных. b) Индексы массива обычно должны иметь тип float. c) Если количество начальных значений в списке инициализации меньше чем количество элементов массива, оставшиеся элементы автоматически получают в качестве начальных значений последние значения из списка инициализации. d) Если список инициализации содержит начальных значений больше, чем элементов массива, то это - ошибка. e) Отдельный элемент массива, который передается функции и модифицируется в этой функции, будет содержать модифицированное значение после завершения выполнения вызываемой функции. 4.3. Напишите операторы, реализующие следующие операции с массивом fractions. a) Определите именованную константу arraySize с начальным значением 10. b) Объявите массив с числом элементов arraySize типа float, имеющими нулевые начальные значения. c) Назовите четвертый элемент от начала массива. d) Обратитесь к элементу массива 4. e) Присвойте значение 1.667 элементу массива 9. f) Присвойте значение 3.333 седьмому элементу массива. g) Напечатайте элементы массива 6 и 9 с двумя цифрами справа от десятичной точки и покажите, как будут выглядеть выходные данные, отображаемые на экране. h) Напечатайте все элементы массива, используя структуру повторения for. Определите целую переменную х в качестве переменной, управляющей циклом. Покажите, как будут выглядеть выходные данные. 4.4. Напишите операторы, реализуюпще следующие операции с массивом table. b) Элементы массива связаны тем, что они имеют одно и то же и . c) Число, используемое для обращения к отдельному элементу массива, называется . d) Для объявления размера массива должна использоваться , потому что она делает программу более масштабируемой. e) Процесс упорядоченного размещения элементов в массиве называется . f) Процесс определения значения ключа, содержащегося в массиве, называется . g) Массив, использующий два индекса, называется . a) Объявите массив, который должен быть массивом целых чисел и иметь три строки и три столбца. Полагайте, что определена именованная константа arraySize, равная 3. b) Сколько элементов содержит массив? c) Используйте структуру повторения for для задания начальных значений каждому элементу массива, равных сумме его индексов. Полагайте, что объявлены целые переменные х и у, являющиеся управляющими переменными. d) Напишите фрагмент программы для печати каждого элемента массива table в табулированном формате с тремя строками и тремя столбцами. Полагайте, что массив получил начальные значения в объявлении int table [arraySize] [arraySize] = {{1, 8}, {2,4,6}, {5} } ; И объявлены целые переменные х и у, являющиеся управляющими переменными. Покажите, как будут выглядеть выходные данные. 4.5. Найдите и исправьте ошибку в каждом из следующих фрагментов программ. a) tinclude <iostream.h>; b) arraySize = 10; переменная arraySize бьша объявлена как const c) Допустим, что int b[10] = {0}; for (int i = 0; i <= 10; i++) b[i] = 1; d) Допустим, что a[2][2] = {{1, 2}, {3, 4}}; a[l, 1] = 5; Ответы на упражнения для самопроверки 4.1. а) массивах. Ь) имя, тип. с) индекс, d) именованная константа, е) сортировка, f) поиск, g) двумерный. 4.2. а) Неверно. ]У1ассив может хранить значения только одинакового типа. b) Неверно. Индексы массива обязательно должны быть целыми числами или целыми выражениями. c) Неверно. Оставшиеся элементы автоматически получают нулевые начальные значения. d) Верно. e) Неверно. Отдельные элементы массива передаются вызовом по значению. Только если функции передается массив целиком, любые его модификации будут отражаться на оригинале. 4.3. а) const int arraySize = 10; b) float fractions[arraySize] = {0}; c) fractions[3] d) fractions [4] e) fractions[9] = 1.667; f) fractions[6] = 3.333; g) cout << setiosflags(ios::fixed ios::shiwpoint) << setprecision(2) fractions[6] << << fractions[9] endl; Выходнае данные: 3.33 1.67. h) for (int X = 0; X < arraySize; x++) cout << fractions[ << x << ] = << fractions[x] endl; Выходнив даяние: fractions[0] = 0 fractions[1] = 0 fractions[2] = 0 fractions[3] = 0 fractions[4] = 0 fractions[5] = 0 fractions[6] = 3.333 fractions[7] = 0 fractions[8] = 0 fractions[9] = 1.667 4.4. a) int table[arraySize] [arraySize]; b) Девять. c) for (x =0; X < arraySize; x++) for (y =0; у < arraySize; y++) table[x][y] = x + y; d) cout [0] [1] [2] endl; for (int x = 0; x < arraySize; x++) { cout [ X ] ; for (int у = 0; у < arraySize; y++) cout << setw(3) << table[x] [y] << ; cout << endl; Виходнае данные: [0] [1] [2] [0] 1 8 О [1] 2 4 6 [2] 5 О О 4.5. а) Ошибка: точка с запятой в конце директивы препроцессора #include. Исправление: удалить точку с запятой. b) Ошибка: присваивание значения именованной константе оператором присваивания. Исправление: присвоить значение именованной константе в объявлении const int arraySize. c) Ошибка: ссылка на элемент массива, находящийся за границами массива (Ь[10]). Исправление: сделать конечное значение управляющей переменной равным 9.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |