Справедливо ли утверждение каждый файл си программы обязательно содержит хотя бы одну функцию

Содержание

Препроцессор является обязательным компонентом компилятора языка Си. Вообще весь процесс компиляции программы на языке Си разбивается на три этапа:

  1. Препроцессор
  2. Компиляция
  3. Линковка

Препроцессор обрабатывает исходный текст программы до ее непосредственной компиляции. Результатом работы препроцессора является полный текст программы, который передается на компиляцию в исполняемый файл.

Затем компилятор компилирует обработанный препроцессором исходный код в объектные файлы.

И на последнем этапе линкер (линковщик) объединяет (линкует) объектные файлы в один исполняемый файл или файл динамической библиотеки.

Для управления препроцессором применяются директивы, каждая из которых начинается с символа решетки # и располагается на отдельной строке. Препроцессор просматривает текст программы, находит эти директивы и должным образом обрабатывает их.

Задание 5 — Работа с файлами (лабораторная по Си)

Лабораторная работа для школ и вузов по решению задач по работе с файлами на языке C (Си). Перечень задач лабораторной работы (клик по ссылке направляет на решение задачи, если таковое имеется):

Заголовочные файлы (хедеры) и ключевое слово extern

  1. Распечатать все строки данного файла, содержащие заданную строку в качестве подстроки. Строка запрашивается у пользователя.
  2. Определить, какой символ чаще других встречается в данном файле.
  3. Определить, сколько строк, состоящих из одного, двух, трех и т.д. символов, содержится в данном файле. Считать, что длина каждой строки – не более 30 символов. Имя файла задает пользователь.
  4. Даны два непустых файла. Определить номер строки и номер первого символа в этой строке, отличающего содержимое одного файла от другого. Если содержимое файлов полностью совпадает или один файл является началом другого, то вывести соответствующие сообщения.
  5. В файле записана непустая последовательность целых чисел (целое число – это последовательность десятичных цифр, возможно начинающаяся знаком + или -). Определить, сколько четных положительных чисел содержится в файле.
  6. Создать файл, являющийся результатом конкатенации (слияния) других файлов. Имя файла-результата и имена соединяемых файлов задаются пользователем.
  7. Дан файл f. Создать файл newf, полученный из файла f заменой всех его прописных букв соответствующими строчными.
  8. Дан файл и две строки. Все вхождения первой строки в файл (в том числе в качестве подстроки) заменить второй строкой.
  9. В данном файле символы каждой строки упорядочить по алфавиту.
  10. В файле записана непустая последовательность целых чисел (целое число – это последовательность десятичных цифр, начинающаяся знаком + или -). Создать новый файл, где все отрицательные числа заменены нулем.
  11. В файле записана непустая последовательность целых чисел, являющихся числами Фибоначчи. Приписать еще n чисел Фибоначчи. Число n спросить у пользователя (предварительно сообщив, сколько чисел уже имеется в файле).
  12. В файле подсчитать количество строк, которые начинаются и оканчиваются один и тем же символом.
  13. Считая, что файл разбит на строки, длина каждой из которых не превосходит 50 символов, написать программу, которая, дополняя короткие строки исходного файла пробелами справа, формирует новый файл, все строки в котором имеют длину 50.
  14. Написать программу, которая, игнорируя исходное деление файла на строки, переформатирует его, разбивая строки так, чтобы каждая строка оканчивалась точкой, либо содержала ровно 60 литер, если среди них нет точки. Результат записать в другой файл.
  15. В файле записаны числа. Создать новый файл, содержащий длины всех убывающих подпоследовательностей элементов исходного файла (длина – количество элементов в последовательности). Напр., исходный файл 1.7 4.5 3.4 2.2 8.5 1.2, результат – 3 2, где 3 – длина последовательности 4.5 3.4 2.2, а 2 — длина последовательности 8.5 1.2.
  16. Даны три файла разного размера (имена файлов вводит пользователь). Заменить содержимое самого длинного файла на содержимое самого короткого.
  17. Даны два файла, содержащие элементы прямоугольных матриц (по строкам), причем первый элемент каждого файла содержит количество столбцов соответствующей матрицы. То есть файл имеет вид:
    kolvo_stolb
    a11 a12 a13…
    a21 a22 a23…
    Создать новый файл, содержащий произведение этих матриц.
  18. В файле содержится ненулевая часть верхнетреугольной матрицы (вид содержимого файла – как в задаче 17). Создать новый файл, содержащий все элементы данной матрицы (по строкам).
  19. Имеются два файла (размеры файлов могут не совпадать). Переписать элементы первого файла во второй, второго – в первый. Использовать вспомогательный файл.
  20. Определить, какая строка является самой длинной в заданном файле.
  21. В файле записана непустая последовательность целых чисел. Определить, сколько чисел этой последовательности являются точными квадратами, и «подчеркнуть» их в данном файле (т.е. поставить минусы в соответствующих позициях следующей строки).
Читайте также:
Как повысить приоритет программы в диспетчере задач

Язык Си для начинающих / #9 — Работа с файлами

Работоспособность всех программ проверена в CodeBlocks 16.01 (MinGW, Windows 10). Свои решения нерешённых программ и пожелания по улучшению существующих можете давать в комментариях внизу страницы.

Скачать файл лабораторной и все исходные коды программ в архиве:

Њои услуги на Kwork

Также вы можете заказать решение своих лабораторных работ на Языке C++ и многих других:

№1: Распечатать все строки данного файла, содержащие заданную строку в качестве подстроки. Строка запрашивается у пользователя.

#include #include #include int main() < FILE* txt; char strtxt[80], str[80]; int i = 0; if (!(txt = fopen(«test.txt», «r»)))< printf(«Error opening file!»); return 0; >printf(«Enter the string:n»); gets(str); printf(«Line with this substring:n»); while (fgets(strtxt, 80, txt)) < i++; if (strstr(strtxt, str)) printf(«%d | %s», i, strtxt); >fclose(txt); return 0; >

№9: В данном файле символы каждой строки упорядочить по алфавиту.

#include #include #include int main() < FILE* txt; char strtxt[80][80], d[1]; int i, j, k, count = 0, len, max = 0; if (!(txt = fopen(«test.txt», «r»)))< printf(«Error opening file!»); return 0; >while (fgets(strtxt[count], 80, txt)) count++; fclose(txt); txt = fopen(«test.txt», «w»); for (k = 0; k < count; k++) < len = strlen(strtxt[k]) — 1; for (i = 0; i < len; i++)< for (j = 0; j < len-i; j++) if ((int)strtxt[k][j] >(int)strtxt[k][max]) max = j; d[0] = strtxt[k][max]; strtxt[k][max] = strtxt[k][len-i-1]; strtxt[k][len-i-1] = d[0]; max = 0; > fputs(strtxt[k], txt); > printf(«OK!»); fclose(txt); return 0; >

№12: В файле подсчитать количество строк, которые начинаются и оканчиваются один и тем же символом.

#include int main() < FILE* txt; char strtxt[80]; int count = 0; if (!(txt = fopen(«test.txt», «r+»)))< printf(«Error opening file!»); return 0; >while (fgets(strtxt, 80, txt)) if (strtxt[0] == strtxt[strlen(strtxt)-2]) count++; printf(«Number of lines: %d», count); fclose(txt); return 0; >

№16: Даны три файла разного размера (имена файлов вводит пользователь). Заменить содержимое самого длинного файла на содержимое самого короткого.

#include int main() < FILE *txt1, *txt2, *txt3, *txtB, *txtM; char strtxt[80], str1[80], str2[80], str3[80]; int count1 = 0, count2 = 0, count3 = 0; printf(«Enter the file name 1:n»); gets(str1); printf(«Enter the file name 2:n»); gets(str2); printf(«Enter the file name 3:n»); gets(str3); if (!(txt1 = fopen(str1, «r»)))< printf(«Error opening file 1!»); return 0; >if (!(txt2 = fopen(str2, «r»))) < printf(«Error opening file 2!»); return 0; >if (!(txt3 = fopen(str3, «r»))) < printf(«Error opening file 3!»); return 0; >while (fgetc(txt1) != EOF) count1++; while (fgetc(txt2) != EOF) count2++; while (fgetc(txt3) != EOF) count3++; fclose(txt1); fclose(txt2); fclose(txt3); if (count1 < count2 count1 < count3) < txtB = fopen(str1, «r»); if (count2 < count3) txtM = fopen(str3, «w»); else txtM = fopen(str2, «w»); >else if (count2 < count1 count2 < count3) < txtB = fopen(str2, «r»); if (count1 < count3) txtM = fopen(str3, «w»); else txtM = fopen(str1, «w»); >else if (count3 < count1 count3 < count2) < txtB = fopen(str3, «r»); if (count1 < count2) txtM = fopen(str2, «w»); else txtM = fopen(str1, «w»); >while (fgets(strtxt, 80, txtB)) fputs(strtxt, txtM); fclose(txtB); fclose(txtM); printf(«OK!»); return 0; >

№19: Имеются два файла (размеры файлов могут не совпадать).

Переписать элементы первого файла во второй, второго – в первый. Использовать вспомогательный файл.
#include int main() < FILE* txt1, *txtP, *txt2; char strtxt[80]; if (!(txt1 = fopen(«test1.txt», «r»)))< printf(«Error opening file 1!»); return 0; >if (!(txtP = fopen(«testP.txt», «w»))) < printf(«Error creating intermediate file!»); return 0; >if (!(txt2 = fopen(«test2.txt», «r»))) < printf(«Error opening file 2!»); return 0; >while (fgets(strtxt, 80, txt1)) fputs(strtxt, txtP); fclose(txt1); fclose(txtP); txt1 = fopen(«test1.txt», «w»); while (fgets(strtxt, 80, txt2)) fputs(strtxt, txt1); fclose(txt1); fclose(txt2); txtP = fopen(«testP.txt», «r»); txt2 = fopen(«test2.txt», «w»); while (fgets(strtxt, 80, txtP)) fputs(strtxt, txt2); fclose(txtP); fclose(txt2); printf(«OK!»); return 0; >

№20: Определить, какая строка является самой длинной в заданном файле.

#include int main() < FILE* txt; char strtxt[80]; int i = 0, max = 0, maxLen = 0; if (!(txt = fopen(«test.txt», «r+»)))< printf(«Error opening file!»); return 0; >while (fgets(strtxt, 80, txt)) < if (strlen(strtxt) >maxLen) < maxLen = strlen(strtxt); max = i+1; >i++; > printf(«The longest line: %d», max); fclose(txt); return 0; >

Читайте также:
Что можно удалить из программ и компонентов

Источник: xn--90aihhxfgb.xn--p1ai

Помощь в дистанционном обучении

Решение тестов, помощь в закрытии сессии студентам МТИ, Синергии, ГТЕП, Московской Академии Предпринимательства

Основы алгоритмизации и программирования тест Синергии

Основы алгоритмизации и программирования тест Синергии

Тест Синергии «Основы алгоритмизации и программирования» Цена 200р.

1. Общий вид определения указателей выглядит следующим образом: *char p; *тип *p; *тип* имя_указателя; *int *имя_указателя;

2. Последовательность символов, заключенная в двойные кавычки называется *управляющая последовательность *символ *идентификатор *строковая константа

3. Константа NULL определена в залоговочном файле: *stdlib.h *alloc.h *include.h *stdio.h

4. Допустимо ли применение оператора безусловного перехода goto в программах, написанных на языке C? да нет

5. Одним из последних языков программирования, разработанных компанией Microsoft, является *Pascal *C# *C++ *Java

6. Сколько байт занимает в памяти ЭВМ следующая строка: «Я стану лучшим в мире программистом!» *43 *37 *36 *40

7. Что из ниже перечисленного не является языком программирования: *С++ *Basic *Java *Flash

8. Операция, состоящая из одного операнда и предшествующего ему знаку унарной операции называется … *унарная операция *бинарная операция *тернарная операция

9. Какие действия не допустимы с указателями? *присваивание *получение адреса самого указателя *унарные операции изменения его значения *вычисление логарифма сложение и вычитание

10. Декомпозиция в объектно-ориентированном программировании – это: *разделение алгоритмов, при котором каждый модуль системы выполняет собственный процесс *разделение алгоритмов, при котором каждый модуль системы выполняет один из этапов общего процесса *процесс сборки программы в объектно-ориентированной среде *процесс разработки одного программного комплекса в различных объектно-ориентированных средах программирования

11. В объектно-ориентированном программировании переопределение – это: *передача управления от одного объекта другому *модификация унаследованных методов *один из видов наследования

12. Найдите ошибку в строке cout>>”Hello”>>endl; и укажите правильный ответ: *cout > Hello >> endl; *cout >> Hello >> endl

13. Какое расширение обычно имеют файлы с текстом программ в Visual C++? *dsw *ico *exe *prog *cpp

14. Какое значение имеет именованная константа «PINK» следующего перечисления: enum COLOR ;? *6 *4 *5 *3

15. Единица текста программы, которая при компиляции воспринимается, как единое целое и по смыслу не может быть разделена на более мелкие элементы, называется: *константа *лексема *мантисса *транслятор

16. Что такое указатель в С++? *метка в программе *переменная, в которой хранится целое число *переменная, в которой хранится адрес области памяти *переменная, которая указывает на принадлежность к определенному классу

17. Набор ключевых слов и система правил для конструирования программ, состоящих из групп или строк чисел, букв, знаков препинания и других символов, с помощью которых люди могут сообщать компьютеру набор команд называется … *компилятор *ассемблер *лексема *язык программирования

18. Можно ли открыв для просмотра файл exe в шестнадцатиричном представлении точно воспроизвести последовательность машинных команд, из которых он состоит? *можно без применения специальных программ *нельзя *можно с использованием специальных программ-отладчиков

19. Какой результат будет выведен на экран после выполнения данной программы: #include < stdio.h >void main( ) < int n=10,k=2; printf(«%d»,n+++k); >*12 *11 *13

20. Чему равно значение величин А, В и С после выполнения приведенных операций присваивания, если до начала этих действий А=100, В=200, С=300. А := 1000; С := 50; В := А/С; С := B; В := А/С; С :=А; *А=1000, В=50, С=1000 *А=100, В=20, С=50 *А=1000, В=20, С=50 *А=100, В=200, С=20

21. Что считается методом в объектно-ориентированном программировании? *стиль программирования *функция программы *функция, объявленная в классе

22. Равносильны ли формулы ¯A+¯B=¯AB? *да *нет

23. Определите значение, которое будет присвоено величине «С», если «А» и «В» имеют значение «истина»: C := A V (-B) *С= «истина» *С= «ложь»

24. Модификатор доступа — это: *функция, управляющая доступом к программе *ключевое слово, регламентирующее тип доступа к определенному члену класса *настройка интерфейса VC ++ *служебная функция, регламентирующая тип доступа к классу

25. Совокупность однотипных элементов, расположенных в определенном порядке, различающихся индексами и имеющая единое имя называется ……. правильная последовательность *массив *функция *класс

26. Какие языки программирования были созданы специально для обучения людей программированию? *Basic *Assembler *Cobol *Fortran *C++

Читайте также:
Программа для сведения двух треков

27. Для чего нужен деструктор в С++? *для освобождения области памяти, выделенной для всей программы *для обнуления переменной *для уничтожения функции *для возвращения системе области памяти, выделенной при выполнении конструктора, а также для закрытия файлов перед окончанием работы с объектом, открывшим этот файл

29. Чему равно i, при следующих условиях: x=4, y=8, z=56. z=x+y*5; x= z–39; i= x+y+z%x; *16 *21 *19

30. В объектно-ориентированном программировании, данные, называемые параметрами передаются: *переменным программы *функциям в виде переменных *настройкам интерфейса программы

31. Оператор ……… предназначен для организации выбора одного из многих вариантов хода выполнения программы, выполняя проверку совпадения заданного выражения с одной из заданных констант и осуществляя ветвление на основе этой проверки. *GOTO *SWITCH *BREAK *WHILE

32. Содержать буквы любого алфавита, цифры, специальные знаки может … *идентификатор *комментарий *оператор *функция

33. Определите значение, которое будет присвоено величине «С», если «А» и «В» имеют значение «истина»: C:= A v B *C = истина *С = ложь

34. В какой момент программы Си выполняется функция с именем main()? *когда ее вызовет другая функция *в конце программы *при запуске программы (если определена как стартовая) *после открытия консольного приложения Win32

35. Верно ли утверждение «имя статического массива является указателем-константой на первый байт первого элемента массива»? да нет

36. Для чего используется наследование в объектно-ориентированном программировании? *для копирования программ *для обращения к библиотекам данных *для изменения функциональности классов *для возможности одному классу наследовать функциональность другого класса

37. Какой язык программирования был создан специально для обработки коммерческих данных? *C *C# *C++ *Cobol

38. Что из ниже перечисленного не является языком программирования *C++ *Cobol *Assembler *HTML

39. Если компонентами массива являются массивы, то такой массив называется *множественный *многомерный *сложный *ассоциативный

40. Для чего используется переменные типа int в С++: *Для хранения числовых значений. *Для хранения буквенных значений. *Для хранения числовых и буквенных значений. *Для работы с циклами.

41. Инициализация данных в С++ представляет собой: *присвоение начального значения переменной *проверка правильности данных переменной *поиск данных переменной

42. Что из ниже перечисленного используется для создания web-сайтов *С++ *Assembler *Basic *PhP

43. Языки программирования можно разделить на языки *высокого и низкого уровня *переходного уровня *среднего уровня

44. Какая ошибка допущена в данной программе: #include < stdio.h >main( ) < printf («\n Hi, world!\n») >*отсутствует точка с запятой в функции *не определена переменная *нет точки в конце тела функции

45. Определите значение, которое будет присвоено величине «С», если «А» и «В» имеют значение «истина»: С=AvB *С= «истина» *С= «ложь»

46. Какой язык программирования был придуман раньше других? *C *Fortan *Assembler *Pascal

47. Какие из следующих утверждений неверны по отношению к конструктору класса С++? *конструктор класса – специальный метод, который выполняется в программе при создании объекта данного класса *конструктор возвращает значения, но ему нельзя передавать параметры *имя конструктора идентично имени класса *конструктор не возвращает никакого значения, но ему можно передать любое количество параметров.

48. …….. – это программа, переводящая текст инструкций для компьютера с какого-либо языка программирования на машинный язык. *система программирования *компилятор *кодировщик *язык программирования

49. Переменная типа содержит адрес размещения участка динамической памяти *указатель *функция *константа

50. Найдите в списке все слова, для которых истинно выражение: ЧастьРечи = «глагол»Время = «будущее» *был *истина *красный *кружка *подойдет *ревущие *столб *тихо

51. Функция объявлена как int Func1(const int . Что означает ключевое слово const в объявлении формального параметра? *в качестве аргумента могут передаваться только константы целого типа *внутри функции не производится изменение значения аргумента arg *внутри функции не производится приведение arg к другому типу

52. При выполнении операций инкремента и декремента значение указателя увеличивается или уменьшается на *произвольное количество бит *количество элементов массива *длину типа, на который ссылается используемый указатель *длину int

53.Равносильны ли формулы A→B=B ̅→A ̅? да Нет

54. Значение величин, которые занимают место в памяти, имеют имя и определенный тип, и их значение никогда не меняется, называется *переменная *постоянная *константа *целая величина

55. Первым разработанным языком программирования высокого уровня является *Basic *C *Fortran *Assembler *Pascal

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

57. Вычислите значение выражения i=(a++*7)+(++b)–( – –с/7), если a=3, b=7, c=15 *42 *27 *24

Источник: reshenie-testov-mti.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru