Т.В. Руденко - Сборник задач и упражнений по языку Си, страница 6
Описание файла
PDF-файл из архива "Т.В. Руденко - Сборник задач и упражнений по языку Си", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Описать функцию, вычисляющую значение x0 + x0∗x1 + x0∗x1∗x2 +…+ x0∗x1∗x2 ∗… ∗xm, где xi - элементы вещественного массива x из n элементов,m - индекс первого отрицательного элемента этого массива либо число n-1, еслитакого элемента в массиве нет.5.25. Описать функцию, вычисляющую значение max( x0 + xn-1, x1 + xn-2,x2 + xn-3,…, x(n-1)/2 + xn/2), где xi - элементы вещественного массива x из n элементов.5.26. Описать функцию, вычисляющую значение min( x0 ∗ x1, x1 ∗ x2 ,x2 ∗ x3,…, xn-3 ∗ xn-2, xn-2 ∗ xn-1), где xi - элементы вещественного массива x из nэлементов.5.27.
Описать функцию, вычисляющую значение x0∗y0+x1∗y1+ …+xk∗yk, где xi – отрицательные элементы вещественного массива a из n элементов,взятые в порядке их следования; yi – положительные элементы этого массива,взятые в обратном порядке; k = min(p,q), где p – количество положительных элементов массива a, q – количество отрицательных элементов этого массива.5.28. Описать функцию, которая упорядочивает элементы целочисленного массива по неубыванию, используя следующий алгоритм сортировки:a) сортировка выбором: находится максимальный элемент массива ипереносится в его конец; затем этот метод применяется ко всем элементам массива, кроме последнего (т.к.
он уже находится на своем месте), и т.д.b) сортировка обменом (метод пузырька): последовательно сравниваются пары соседних элементов xk и x k+1 ( k = 0, 1, … ,n-2 ) и, если xk > x k+1, тоони переставляются; в результате наибольший элемент окажется на своем местев конце массива; затем этот метод применяется ко всем элементам, кроме последнего, и т.д.c) сортировка вставками: пусть первые k элементов массива (от 0 доk-1) уже упорядочены по неубыванию; тогда берется xk и рaзмещается средипервых k элементов так, чтобы упорядоченными оказались уже k+1 первыхэлементов; этот метод повторяется при k от 1 до n-1.5.29.
Описать функцию, определяющую индекс первого элемента целочисленного массива из n элементов, значение которого равно заданному числу26x. Если такого элемента в массиве нет, то считать номер равным –1. Элементымассива упорядочены по возрастанию; использовать метод двоичного (бинарного) поиска.5.30.
Программа. Описать функцию f(a, n, p), определяющую, чередуются ли положительные и отрицательные элементы в целочисленном массиве aиз n элементов и вычисляющую целочисленное значение p. Если элементы чередуются, то p - это сумма положительных элементов, иначе p - это произведение отрицательных элементов. С помощью этой функции провести анализ целочисленного массива x [50].5.31. Программа. Описать функцию f(a, n, p), определяющую, упорядочены ли строго по возрастанию элементы в целочисленном массиве a из n элементов, и вычисляющую целочисленное значение p. Если элементы упорядочены, то p - это произведение разностей рядом стоящих элементов, иначе p - этоколичество нарушений порядка в массиве a. С помощью этой функции провестианализ целочисленного массива b [60].5.32.
Программа. Описать функцию f (s, n, x), определяющую, какойсимвол чаще других встречается в строке s и сколько раз он в нее входит. Еслитаких символов несколько, то взять первый из них по алфавиту. С помощьюэтой функции провести анализ строки str.5.33. Программа. Описать функцию f(s, n, x), определяющую, какойсимвол реже других ( но не нуль раз ) встречается в строке s и сколько раз он внее входит. Если таких символов несколько, то взять первый из них по алфавиту. С помощью этой функции провести анализ строки str.5.34. Программа. Для целочисленного массива а, содержащего n элементов, описать функцию f(a, n, last, k, nlast), определяющую last - значение последнего из элементов массива а, значение которого принадлежит диапазону[-k, k], и nlast - индекс этого элемента.
С помощью этой функции вычислить соответствующие значения last и nlast для целочисленных массивов x[20] и y[30].5.35. Программа. Для вещественного массива а, содержащего n элементов, описать функцию G, определяющую значения максимального и минимального элементов этого массива. С помощью этой функции для вещественныхмассивов x[25] и y[40] вычислить соответствующие значения.5.36. Описать функцию, которая изменяет заданную строку следующимобразом: сначала записывает все элементы с четными индексами, а затем всеэлементы с нечетными индексами ( с сохранением их относительного порядка вкаждой группе).Например, abcdefgh => acegbdfh, vwxyz => vxzwy.5.37.
Описать функцию, которая в заданной строке меняет местами еепервую и вторую половины.Например, abcdefgh => efghabcd, vwxyz => yzxvw.275.38. Описать функцию, осуществляющую циклический сдвиг на n позиций вправо элементов целочисленного массива, содержащего m элементов(n<m).5.39. Описать функцию, осуществляющую циклический сдвиг на n позиций влево элементов целочисленного массива, содержащего m элементов(n<m).5.40. Написать программу, обнуляющую каждую четную двоичнуюединицу в коде, размещенном в переменной типа int.
Вывести исходные данныеи полученный результат в виде, удобном для анализа проведенных преобразований.5.41. Написать программу, обнуляющую каждую нечетную двоичнуюединицу в коде, размещенном в переменной типа int. Вывести исходные данныеи полученный результат в виде, удобном для анализа проведенных преобразований.5.42. Описать функцию, которая в каждом элементе беззнакового целочисленного массива заменяет старший байт нулевым кодом, если в этом байтеразмещен код латинской буквы.6. СТРУКТУРЫ, ОБЪЕДИНЕНИЯ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;struct s z;2) typedef struct { int a; float f;} s;s x, y;struct { int a; float f; } z;3) struct s { int a; float f; };typedef struct s new_s;4) struct s { int a; float f; };typedef struct s s1;28struct 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;struct { int a; float f; } z;2) struct { int a; float f; } x, y;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);29printf("++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 ), для мотоциклов тип двигателя ( двух- или четырехтактный )).6.2Структуры и функции. Указатели на структуры.6.9.
Верны ли следующие утверждения:a) к структурам одного типа применима операция присваивания;b) к структурам одного типа, не содержащим вложенных структур,применима операция сравнения ( выполняется почленное сравнение );c) параметром функции может быть указатель на структуру, но не самаструктура;d) параметры функции – структуры передаются по значению;e) результатом работы функции может быть структура;f) результатом работы функции может быть указатель на структуру;g) функция sizeof(struct any) выдает результат, равный сумме длинвсех полей этой структуры;h) к структурам применима операция взятия адреса;6.10.
Перечислить все операции, применимые к структурам.6.11. Пусть точка на плоскости описана следующим образом:struct point { int x; int y;}30Верно ли решена задача: «описать функцию, которая присваивает значение структуре типа struct point »a) void assign_to_point ( struct point p, int a, int b){ p.x = a; p.y = b; }b) void assign_to_point ( struct point ∗p, int a, int b){ (∗p).x = a; (∗p).y = b; }c) void assign_to_point ( struct point ∗p, int a, int b){ ∗p.x = a; ∗p.y = b; }d) void assign_to_point ( struct point ∗p, int a, int b){ p -> x = a; p -> y = b; }6.12. Пусть точка на плоскости описана следующим образом:struct point { int x; int y;}Верно ли решена задача: «описать функцию, которая создает точку издвух целых чисел»a) struct point create_point ( int a, int b){ struct point p;p.x = a; p.y = b; return p;}b) struct point ∗create_point ( int a, int b){ struct point p;p.x = a; p.y = b; return &p;}c) struct point ∗create_point ( int a, int b){ struct point ∗pp;pp -> x = a; pp -> y = b; return pp;}d) struct point ∗create_point ( int a, int b){ struct point ∗pp;pp = (struct point ∗) malloc(sizeof(struct point));pp -> x = a; pp -> y = b; return pp;}6.13.