Помогите определить. Какая функция, описанная в заголовочном файле читает строку символов из файла?
если я правильно понял, ты имеешь в виду язык программирования, но какой? ! Для C++ -это fgets.
Простой код будет примерно такой:
int main()
FILE * ptrFile = fopen(«file.txt» , «r»);
char mystring [100];
if (ptrFile == NULL) perror(«Ошибка открытия файла»);
else
if ( fgets(mystring, 100, ptrFile) != NULL ) // считать символы из файла
puts(mystring); // вывод на экран
fclose (ptrFile);
>
return 0;
>
C_Kurs_Lekt / C_II_семестр / 10_Файлы_потоки
Только сегодня: скидка до 20% в подарок на первый заказ.
Какую работу нужно написать?
Другую работу
Помощник Анна
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 1 |
ПОТОКОВЫЙ ВВОД-ВЫВОД На уровне потокового ввода-вывода обмен данными производится побайтно. Такой ввод-вывод возможен как для собственно устройств побайтового обмена (печатающее устройство, дисплей), так и для файлов на диске, хотя устройства внешней памяти, строго говоря, являются устройствами поблочного обмена, т.е. за одно обращение к устройству производится считывание или запись фиксированной порции данных. Чаще всего минимальной порцией данных, участвующей в обмене с внешней памятью, являются блоки в 512 байт или 1024 байта. При вводе с диска (при чтении из файла) данные помещаются в буфер операционной системы, а затем побайтно или определенными порциями передаются программе пользователя. При выводе данных в файл они накапливаются в буфере, а при заполнении буфера записываются в виде единого блока на диск за одно обращение к последнему. Буферы операционной системы реализуются в виде участков основной памяти. Поэтому пересылки между буферами ввода-вывода и выполняемой программой происходят достаточно быстро в отличие от реальных обменов с физическими устройствами. Функции библиотеки ввода-вывода языка Си, поддерживающие обмен данными с файлами на уровне потока, позволяют обрабатывать данные различных размеров и форматов, обеспечивая при этом буферизованный ввод и вывод. Таким образом, поток — это файл вместе с предоставляемыми средствами буферизации. При работе с потоком можно производить следующие действия. − открывать и закрывать потоки (связывать указатели на потоки с конкретными файлами); − вводить и выводить: символ, строку, форматированные данные, порцию данных произвольной длины; − анализировать ошибки потокового ввода-вывода и условие достижения конца потока (конца файла); − управлять буферизацией потока и размером буфера; − получать и устанавливать указатель (индикатор) текущей позиции в потоке. Для того чтобы можно было использовать функции библиотеки ввода-вывода языка Си, в программу необходимо включить заголовочный файл stdio.h (#include ), который содержит прототипы функций вводавывода, а также определения констант, типов и структур, необходимых для работы функций обмена с потоком. Открытие и закрытие потока Прежде чем начать работать с потоком, его необходимо инициализировать, т.е. открыть. При этом поток связывается в исполняемой программе со структурой предопределенного типа FILE. Определение структурного типа FILE находится в заголовочном файле stdio.h. В структуре FILE содержатся компоненты, с помощью которых ведется работа с потоком, в частности: указатель на буфер, указатель (индикатор) текущей позиции в потоке и другая информация. При открытии потока в программу возвращается указатель на поток, являющийся указателем на объект структурного типа FILE. Этот указатель идентифицирует поток во всех последующих операциях. Указатель на поток, например fp, должен быть объявлен в программе следующим образом: #include FILE *fp; Указатель на поток приобретает значение в результате выполнения функции открытия потока: fp = fopen (имя_файлата, режим_отêрытия); Параметры имя_файла è режим_открытия являются указателями на массивы символов, содержащих соответственно имя файла, связанного с потоком, и строку режимов открытия. Однако эти параметры могут задаваться и непосредственно в виде строк при вызове функции открытия файла: fp = fopen(«t.txt», «r»);
| где t. txt — имя некоторого файла, связанного с потоком; | |
| r — обозначение одного из режимов работы с файлом (тип доступа к потоку). | |
| Стандартно файл, связанный с потоком, можно открыть в одном из следующих шести режимов: | |
| «w» | новый текстовый (см. ниже) файл открывается для записи. Если файл уже существовал, то предыдущее |
| содержимое стирается, файл создается заново; | |
| «r» | существующий текстовый файл открывается только для чтения; |
| «à» | текстовый файл открывается (или создается, если файла нет) для добавления в него новой порции инфор- |
| мации (добавление в конец файла). В отличие от режима «w» режим «а» позволяет открывать уже сущест- | |
| вующий файл, не уничтожая его предыдущей версии, и писать в продолжение файла; | |
| «w+» | новый текстовый файл открывается для записи и последующих многократных исправлений. Если файл уже |
| существует, то предыдущее содержимое стирается. Последующие после открытия файла запись и чтение из | |
| него допустимы в любом месте файла, в том числе запись разрешена и в конец файла, т.е. файл может уве- | |
| личиваться («расти»); | |
| «r+» | существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла; однако |
| в этом режиме невозможна запись в конец файла, т.е. недопустимо увеличение размеров файла; | |
| «à+» | текстовый файл открывается или создается (если файла нет) и становится доступным для изменений, т.е. |
| для записи и для чтения в любом месте; при этом в отличие от режима «w+» можно открыть существующий | |
| файл и не уничтожать его содержимого; в отличие от режима «r+» в режиме «а+» можно вести запись в ко- | |
| нец файла, т.е. увеличивать его размеры. | |
Поток можно открыть в текстовом либо двоичном (бинарном) режиме. В текстовом режиме прочитанная из потока комбинация символов CR (значение 13) и LF (значение 10), то есть управляющие коды «возврат каретки» и «перевод строки», преобразуется в один символ новой строки ‘\n’ (значение 10, совпадающее с LF). При записи в поток в текстовом режиме осуществляется обратное преобразование, т.е. символ новой строки ‘\n’ (LF) заменяется последовательностью CR и LF. Если файл, связанный с потоком, хранит не текстовую, а произвольную двоичную информацию, то указанные преобразования не нужны и могут быть даже вредными. Обмен без такого преобразования выполняется при выборе двоичного или бинарного режима, который обозначается буквой b. Например, «r+b» или «wb». В некоторых компиляторах текстовый режим обмена обозначается буквой t, т.е. записывают «a+t» или «rt».
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 2 |
Если поток открыт для изменений, т.е. в параметре режима присутствует символ «+», то разрешены как вывод в поток, так и чтение из него. Однако смена режима (переход от записи к чтению и обратно) должна происходить только после установки Указателя потока в нужную позицию. При открытии потока могут возникнуть следующие ошибки: указанный файл, связанный с потоком, не найден (для режима «чтение»); диск заполнен или диск защищен от записи и т.п. Необходимо также отметить, что при выполнении функции fopen( ) происходит выделение динамической памяти. При ее отсутствии устанавливается признак ошибки «Not enough memory» (недостаточно памяти). В перечисленных случаях указатель на поток приобретает значение NULL. Заметим, что указатель на поток в любом режиме, отличном от аварийного, никогда не бывает равным NULL. Приведем типичную последовательность операторов, которая используется при открытии файла, связанного с потоком: if ((fp = fopen(«t.txt», «w»))== NULL) < perror("ошибêа при отêрытии файла t.txt \n"); exit(O); >ãäå NULL — нулевой указатель, определенный в файле stdio.h. Для вывода на экран дисплея сообщения об ошибке при открытии потока используется стандартная библиотечная функция perror( ), прототип которой в stdio.h имеет вид: void perror (const char * s); Функция perror( ) выводит строку символов, адресуемую указателем s, за которой размещаются: двоеточие, пробел и сообщение об ошибке. Содержимое и формат сообщения определяются реализацией системы программирования. Текст сообщения об ошибке выбирается функцией perror( ) на основании номера ошибки. Номер ошибки заносится в переменную int errno (определенную в заголовочном файле errno.h) рядом функций библиотеки языка Си, в том числе и функциями ввода-вывода. После того как файл открыт, с ним можно работать, записывая в него информацию или считывая ее (в зависимости от режима). Открытые на диске файлы после окончания работы с ними рекомендуется закрыть явно. Для этого используется библиотечная функция int fclose (óêазатель_на_потоê); Открытый файл можно открыть повторно (например, для изменения режима работы с ним) только после того, как файл будет закрыт с помощью функции fclose(). Иногда, перед критическими операциями имеет смысл сбросить данные, хранящиеся в буферах обмена потоков на диск. Для этого предназначены функции принудительной записи данных из буфера (прототипы хранятся в : int fflush(óêазатель_на_потоê); — записывает информаццию хранящуюся в буфере в файл, поток при этом не закрывается. Возвращает 0 в случае успеха и EOF если ошибка. Не работает с небуферизированными потоками. fflush(stdin) – очистить входной поток. int flushall(void); — записывает информаццию хранящуюся в буферах обмена открытых потоков в соответствующие им файлы. Потоки после этой операции остаются открытыми. Возвращает число открытых потоков ввода/вывода. Для управления размерами буфера можно использовать следующие функции (вместо автоматической установки буфера): void setbuf(FILE *stream, char *buf) — устанавливает буферизацию потока int setvbuf(FILE *stream, char *buf, int type, size_t size) — назначает буферизацию потока Стандартные потоки Когда программа начинает выполняться, автоматически открываются пять потоков, из которых основными являются: − стандартный поток ввода (на него ссылаются, используя предопределенный указатель на поток stdin); − стандартный поток вывода (stdout); − стандартный поток вывода сообщений об ошибках (stderr). По умолчанию стандартному потоку ввода stdin ставится в соответствие клавиатура, а потокам stdout è stderr соответствует экран дисплея. Для ввода-вывода данных с помощью стандартных потоков в библиотеке языка Си определены следующие функции: − getchar( )/putchar( ) — ввод-вывод отдельного символа; − gets( )/puts() — ввод-вывод строки; − scanf( )/printf( ) — ввод-вывод в режиме форматирования данных. Ввод-вывод отдельных символов в стандартные потоки. Ввод-вывод одного символа осуществляется с помощью библиотечных функций getchar() и putchar(). Прототи- пы функций : int getchar(void); int putchar(int с); Функция getchar() осуществляет ввод одного символа. При обращении она возвращает в вызвавшую ее функцию один введенный символ. Функция putchar( ) выводит в стандартный поток один символ, при этом также возвращает в вызвавшую ее функцию только что выведенный символ. Функция getchar( ) вводит очередной байт информации (символ) в виде значения типа int ,что гарантирует успешность распознавания ситуации «достигнут конец файла». Если при чтении из файла с помощью функции getchar() может быть достигнут конец файла. В этом случае операционная система в ответ на попытку чтения символа передает функции getchar() значение EOF (End of File). Константа EOF определена в заголовочном файле stdio.h и в разных операционных системах имеет значение 0 или -1. Применение константы EOF вместо конкретных целых значений, возвращаемых при достижении конца файла, делает программу мобильной (не зависимой от конкретной операционной системы). В случае ошибки при вводе функция getchar() также возвращает EOF.
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 3 |
Функции getchar() считывает очередной байт информации из стандартного ввода лишь в том случае, если буфер операционной системы окажется пустым. Если буфер не пуст, то в программу пользователя будет передан оче- редной символ из буфера. При наборе текста на клавиатуре коды символов записываются во внутренний буфер операционной системы. Одновременно они отображаются на экране дисплея. Набранные на клавиатуре символы можно редактировать (удалять и набирать новые). Фактический перенос символов из внутреннего буфера в программу происходит при нажатии клавиши . При этом код клавиши также заносится во внутренний буфер. Таким образом, при нажатии на клавишу ‘А’ и клавишу (завершение ввода) во внутреннем буфере оказываются: код символа ‘А’ и код клавиши . Это необходимо учитывать при вводе функцией getchar( ) одиночного символа. Приведем фрагмент программы, в которой функция getchar(.) используется для временной приостановки работы программы с целью анализа промежуточных значений контролируемых переменных.
| #include | |
| int main() | |
| printf(«a»); | |
| getchar(); | /* #1 */ |
| printf(«b») ; | |
| getchar(); | /* #2 */ |
| printf(«c»); | |
| return 0; > | |
Сначала на экран выводится символ ‘а’, и работа программы приостанавливается до ввода очередного (в данном случае — любого) символа. Если, как это делается обычно, нажать, например, клавишу и затем клавишу (для завершения ввода), то на следующей строке появятся символы bc, и программа завершит свою работу. Первая (в программе) функция getchar() (#1) прочитала из внутреннего буфера код символа ‘q’, и следующая за ней функция printf( ) вывела на экран символ ‘q’. Остановки работы программы не произошло, потому что вторая функция getchar() (#2) прочитала код клавиши из внутреннего буфера, а не очередной символ с клавиатуры. Произошло это потому, что к моменту вызова функции getchar () внутренний буфер не был пуст. Приведенная программа будет работать правильно, если в момент остановки программы нажимать только клавишу . Функция putchar( ) служит для вывода на устройство стандартного вывода одного символа, заданного в каче- стве параметра. Ниже приведены примеры задания выводимого символа: int c ; c = getchar(); putchar(c); putchar <'A'); putchar('\007'); putchar('\t'); В строке 2 фрагмента программы на экран дисплея выводится символ, введенный в предыдущей строке функцией getchar( ). В строке 3 выводится символ 'А', в строке 4 выводится управляющий символ, заданный кодом 007 (звуковой сигнал). В последней строке выводится неотображаемый (управляющий) символ табуляции, перемещающий курсор в следующую позицию табуляции. Обычно эти позиции задаются следующим числовым рядом: 1,9,17,25. Приведем в качестве примера применения функций getchar() è putchar( ) программу копирования данных из стандартного ввода в стандартный вывод, которую можно найти практически в любом пособии по программированию на Си: #include int main() < int c; while <(c = getchar()) != EOF) putchar(c); return 0; >Для завершения приведенной выше программы копирования необходимо ввести с клавиатуры сигнал прерывания Ctrl+C (одновременно нажать клавиши и ). Ввод-вывод строк в стандартные потоки В библиотеку Си для обмена данными через стандартные потоки ввода-вывода включены функции вводавывода строк gets() è puts( ), прототипы которых имеют следующий вид:
| char * gets (char * s); | /* | Фóнêция | ввода */ |
| int puts (char * s); | /* | Фóнêция | вывода */ |
Обе функции имеют только один аргумент — указатель s на массив символов. Если строка прочитана удачно, функция gets() возвращает адрес того массива s, в который производился ввод строки. Если произошла ошибка, то возвращается NULL. Функция puts() в случае успешного завершения возвращает последний выведенный символ, который всегда является символом ‘\n’. Если произошла ошибка, то возвращается EOF. Пример использования этих функций. #include char strl[ ] = «Введите фамилию сотрóдниêа:»; int main() < char name[80]; puts(strl); gets(name); return 0; >Напомним, что любая строка символов в языке Си должна заканчиваться нуль-символом ‘\0’. В последний элемент массива strl нуль-символ будет записан автоматически во время трансляции при инициализации массива. Для функции puts( ) наличие нуль-символа в конце строки является обязательным. В противном случае, т.е. при отсутствии в символьном массиве символа ‘\0’, программа может завершиться аварийно, так как функция puts() в поисках нуль-символа будет перебирать всю доступную память байт за байтом, начиная в нашем примере с адреса strl. Об этом необходимо помнить, если в программе происходит формирование строки для вывода ее на экран дисплея. Функция gets() завершает свою работу при вводе символа ‘\n’, который автоматически передается от клавиатуры в ЭВМ при нажатии на клавишу . При этом сам символ ‘\n’ во вводимую строку не записывается. Вместо него
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 4 |
в строку помещается нуль-символ ‘\0’. Таким образом, функция gets() производит ввод «правильной» строки, а не просто последовательности символов. Здесь следует обратить внимание на следующую особенность ввода данных с клавиатуры. Функция gets( ) на- чинает обработку информации от клавиатуры только после нажатия клавиши . Таким образом, она «ожидает», пока не будет набрана нужная информация и нажата клавиша . Только после этого начинается ввод данных в программу. В приведенную выше программу вкралась неявная ошибка: Длина строки на которую ссылается указатель name = 80 символов (последний – ‘\0’). Если длина вводимой строки будет превышать 80 символов, то строка «выйдет» за пределы, выделенные для нее памяти и испортит участок памяти следующий далее. Это приведет к непредсказуемым последствиям. Избежать этого можно используя функцию fgets() (прототип: char *fgets(char *s, int n, FILE *stream). Например: fgets( strl, 80 stdin ); fgets( strl, strlen(strl)+1, stdin ); или в данном примере вводимая строка усекается до 79 символов и к ней добавляется 80й -‘\0’ ( в случае если вводимая строка превышает 79 символов). РАБОТА С ФАЙЛАМИ НА ДИСКЕ Аналогичным образом (так же как это делается при работе со стандартными потоками ввода-вывода stdin è stdout) можно осуществлять работу с файлами на диске. Для этой цели в библиотеку языка Си включены следующие функции: fgetc(), getc() — ввод (чтение) одного символа из файла; fputc(), putc() — запись одного символа в файл; fprintf() — форматированный вывод в файл; fscanf() — форматированный ввод (чтение) из файла; fgets() — ввод (чтение) строки из файла; fputs() — запись строки в файл; fwrite() — пересылает в файл заданное число байт, начиная с указанного адреса памяти; fread() пересылает заданное число байт из файла в массив в памяти. Как было указано выше – поток (файл) можно открыть в текстовом либо двоичном (бинарном) режиме. В текстовом режиме прочитанная из потока комбинация символов CR (значение 13) и LF (значение 10), то есть управляющие коды «возврат каретки» и «перевод строки», преобразуется в один символ новой строки ‘\n’ (значение 10, совпадающее с LF). При записи в поток в текстовом режиме осуществляется обратное преобразование, т.е. символ новой строки ‘\n’ (LF) заменяется последовательностью CR и LF. Обычно в текстовом режиме с файлом работают функциями fprintf(), fscanf(), fgets(), fputs(), fgetc(), fputc(). В двоичном режиме применяют fgetc(), fputc(), fwrite(), fread() . В С не предусмотрено возможности задания структуры файла. Другими словами, не существует никаких операций с записями в файле, реализованных как часть языка С. Поэтому программист должен сам позаботиться о создании структуры файла, отвечающей требованиям конкретного приложения. Для файлов, чьи записи имеют разную длину, обычно организовывают последовательный доступ. Т.е. когда записи обрабатываются последовательно друг за другом, начиная с начала файла. И напротив, отдельные записи в файле с произвольным доступом обычно имеют фиксированную длину, что позволяет получить к ним непосредственный (и следовательно, быстрый) доступ без поиска по всем записям, т.е. можно вычислить точное положение записи относительно начала файла. Двоичный режим обмена с файлами. Двоичный (побайтный) режим обмена организуется с помощью функций getc( ) è putc( ), обращение к которым имеет следующий формат: с= getc(fp); putc(c, fp); где fp — указатель на поток; с — переменная типа int для приема очередного символа из файла или для записи ее значения в файл. Прототипы функции: int getc (FILE * stream ); int putc (int c, FILE *stream ); Программа ввода читает символы с клавиатуры и записывает их в файл. Пусть признаком завершения ввода служит поступивший от клавиатуры символ ‘0’. Имя файла запрашивается у пользователя. Если при вводе последовательности символов была нажата клавиша , служащая разделителем строк при вводе с клавиатуры, то в файл записываются управляющие коды «Возврат каретки» (CR — значение 13) и «Перевод строки» (LF — значение 10). Код CR в дальнейшем при выводе вызывает перевод маркера (курсора) в начало строки экрана дисплея. Код LF служит для перевода маркера на новую строку дисплея. Значения этих кодов в тексте программы обозначены соответственно идентификаторами CR и LF, т.е. CR и LF — именованные константы. Запись управляющих кодов CR и LF в файл позволяет при последующем выводе файла на экран отделить строки друг от друга или читать построчно функцией fgets(). В приводимых ниже программах используются уже рассмотренные выше функции getchar(), putchar( ) для посимвольного обмена со стандартными потоками stdin, stdout. #include /* Проãрамма ввода символов */ int main() < FILE *fp; /* Уêазатель на потоê */ char с; const char CR='\13'; const char LF = '\10';
| char fname[20]; | /* Массив для имени файла */ | |||
| puts(«Введите имя файла: \n»); gets(fname); /* Запрос имени файла: */ | ||||
| if ((fp = fopen(fname,»w»)) = NULL) | /* Отêрыть | файл для Записи: */ | ||
| while | ((c = getchar()) != ‘0’) < /* | Циêл ввода | и записи в файл символов: */ | |
| if | (с == ‘\n’) | |||
| else putc(c, | fp); > | |||
| fclose(fp); /* | Циêл ввода завершен; | заêрыть файл: */ | ||
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 5 |
return 0; > Следующая программа читает поток символов из ранее созданного файла и выводит его на экран дисплея: #include int main() < FILE *fp; /* Уêазатель на потоê */ char с; char fname[20]; /* Массив для имени файла */ puts("введите имя файла: \n "); gets(fname); if ((fp = fopen(fname,"r")) = = NULL) /* Отêрыть файл для чтения: */ < perror(fname); return 1; >while ((c = getc(fp)) != EOF) /* Циêл чтения из файла и вывода символов на эêран: */ putchar
| for (n=1; | n | n++) fprintf(fp, «%d | %d\n», n, | n*n); |
| fclose(fp); | return | 0; > | ||
| Программа,форматного чтения данных из файла : | ||||
#include int main() < FILE *fp; /* Уêазатель на потоê */ int n, nn, i; if ((fp = fopen("int.dat","r")) == NULL) < perror("int.dat") ; return 1; >while (!feof(fp)) < fscanf(fp,' "%d %d", &n, &nn); printf(" %d %d \n",n, nn); >fclose(fp); return 0; > Строка while (!feof(fp)) использует функцию feof, чтобы определить, установлен ли индикатор конца файла, на который ссылается fp. Индикатор конца файла сообщает программе, что чтение данных закончено( если пользователь вводит данные с клавиатуры, то индикатор конца файла для стандартного ввода устанавливается, когда пользователь вводит соответствующую комбинацию клавиш). Аргумент, передаваемый функции feof, — указа-
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 6 |
тель на файл, для которого необходимо проверить индикатор конца файла . Функция возвращает ненулевое значе- ние, (true), если индикатор конца файла установлен, в противном случае возвращается нуль. В данной программе цикл while, включающий в себя вызов feof, будет продолжать выполняться, пока не будет установлен индикатор конца файла. 1. Комбинации клавиш для конца файла в различных популярных системах
| Компьютерные системы | Комбинация клавиш | |
| UNIX | d | |
| IBM PC и совместимые | z | |
| Macintosh | d | |
| VAX(VMS) | z | |
Позиционирование в потоке. Рассмотреные выше — посимвольный, построчный и форматный обмены с файлами, организованными в виде потока байтов Эти средства позволяли записать в файл данные и читать из него информацию только последовательно. Операция чтения (или записи) для потока всегда производится, начиная с текущей позиции в потоке. Начальная позиция чтения/записи в потоке устанавливается при открытии потока и может соответствовать начальному или конечному байту потока в зависимости от режима открытия потока. При открытии потока в режимах «r» и «w» указатель текущей позиции чтения/записи в потоке устанавливается на начальный байт потока, а при открытии в режиме «а» — в конец файла (за конечным байтом) При выполнении каждой операции ввода-вывода указатель текущей позиции в потоке перемещается на новую текущую позицию в соответствии с числом прочитанных (записанных) байтов. Рассмотрим средства позиционирования в потоке, позволяющие перемещать указатель (индикатор) текущей позиции в потоке на нужный байт. Эти средства дают возможность работать с файлом на диске, как с обычным массивом, осуществляя доступ к содержимому файла в произвольном порядке. В библиотеку языка Си включена функция fseek() для перемещения (установки) указателя текущей позиции в потоке на нужный байт потока (файла). Она имеет следующий прототип: int fseek (óêазателъ_на_потоê, смещение, начало_отсчета); Смещение задается переменной или выражением типа long и может быть отрицательным, т.е. возможно перемещение по файлу в прямом и обратном направлениях. Начало отсчета задается одной из предопределенных констант, размещенных в заголовочном файле stdio.h: SEEK_SET (имеет значение 0) — начало файла; SEEK_CUR (имеет значение 1) — теêóщая позиция; SEEK_END (имеет значение 2) — êонец файла. Функция fseek( ) возвращает 0, если перемещение в потоке (файле) выполнено успешно, в противном случае возвращается ненулевое значение. Приведем примеры использования функции fseek(). Перемещение к началу потока (файла) из произвольной позиции: fseek(fp, 0L, SEEK_SET) ; Перемещение к концу потока (файла) из произвольной позиции: fseek(fp, 0L, SEEK_END) ; В обоих примерах смещение задано явно в виде нулевой десятичной константы 0L типа long. При использовании сложных типов данных (таких, как структура) можно перемещаться в потоке (файле) на то количество байтов, которое занимает этот тип данных. Пусть, например, определена структура: struct str <..>st; Тогда следующее обращение к функции fseek() переводит указатель текущей позиции в потоке на одну структуру вперед относительно текущей позиции: fseek(fp, (long)Sizeof(st), SEEK_CUR); Кроме рассмотренной функции fseek( ), в библиотеке функций языка Си находятся следующие функции для работы с указателями текущей позиции в потоке: long ftell(FILE *) — получить значение указателя текущей позиции в потоке; void rewind(FILE *) — установить указатель текущей позиции в потоке на начало потока. Необходимо иметь в виду, что недопустимо использовать функции работы с указателем текущей позиции в потоке для потока, связанного не с файлом, а с устройством. Поэтому применение описанных выше функций с любым из стандартных потоков приводит к неопределенным результатам. Файлы произвольного доступа Рассмотрим некоторые функции и приемы, применяемые к файлам произвольного доступа. Функция fwrite() пересылает в файл заданное число байт, начиная с указанного адреса памяти. Данные записываются с того места в файле, которое обозначено указателем позиции файла. Функция fread() пересылает заданное число байт из места в файле, определенного указателем позиции файла, в массив в памяти, начинающийся с указанного адреса. Теперь при записи целого числа вместо оператора fprintf (fPtr, «%d», number); который может напечатать от одной до одиннадцати цифр (десять цифр плюс знак, требующие по одному байту памяти каждый) для четырехбайтного целого, мы можем применить оператор fwrite(&number, sizeof(int), 1, fPtr); который всегда записывает четыре байта (или два байта для систем с двухбайтовым целым) из переменной number в файл, определяемый fPtr . В дальнейшем, вызвав fread, можно прочитать эти четыре байта в переменную number. Õîòÿ fread è fwrite считывают и записывают данные, такие как целые числа, в формате с фиксированным, а не переменным, размером, данные, с которыми они оперируют, обрабатываются в форме “сырых данных” (то есть в виде байтов), а не в привычном для человека века формате, с которым оперируют printf è scanf. Функции fwrite è fread дают возможность чтения и записи массивов данных с диска и на диск. Третий аргумент как в fread, òàê è â fwrite — это число элементов массива, которые необходимо считать с диска или записать на диск. Представленный выше вызов функции fwrite записывает на диск одно целое поэтому третий аргумент равен 1 (как если бы записывался один элемент массива).
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 7 |
Программы обработки файлов редко записывают в файл единственное поле. Обычно они записывают за один раз переменную типа struct. Мы уже говорили, что отдельные записи в файле с произвольным доступом обычно имеют фиксированную длину. Это позволяет получить к ним непосредственный (следовательно, быстрый) доступ без поиска по всем записям, т.е. можно вычислить точное положение записи относительно начала файла. Размер одной записи, обычно, вычисляется оператором sizeof(struct type), в случае если все записи имеют фиксированную длину и не содержат ссылок. Вычислить число записей в файле можно, используя следующий прием – вычисляем объем файла в байтах и делим его на размер одной записи:
| while(1) | ||
| fgetc(cfPtr); | /* cfPtr – óêазатель на потоê связанный с файлом */ | |
| if(feof(cfPtr)) break; /* если данные исчерпаны – то выход */ | ||
| j++; > | /* переменная-счетчиê для подсчета размера файла */ | |
| Таêже, можно подсчитать объем сразó в записях: | ||
| while(1) | ||
| if (fread(&its, sizeof(student), 1, cfPtr) == | NULL) break; | |
| j++; > /* , ãде its – стрóêтóра типа student | */ | |
Приведенные выше фрагменты теряют свою актуальность, если размер файла во время исполнения программы изменяется другим процессом. В этом случае можно использовать второй фрагмент, который обрабатывает записи последовательно, начиная с текущей позиции в файле и заканчивая последней. while(1) < if (fread(&its, sizeof(student), 1, cfPtr) == NULL) break; < /* обработêа записей */ >> Для перехода к произвольной записи можно использовать оператор fseek. Например: fseek(cfPtr, (Num -1) * sizeof(student), SEEK_SET); Этот оператор устанавливает указатель позиции файла, на который ссылается cfPtr на байт, определяемый выражением (Num-1) * sizeof(struct student); ( значение этого выражения называется смещением), т.е. перед записью с номером Num , которую мы хотим обрабатывать. Таким образом, для первой записи указатель позиции файла устанавливается на байт 0 файла. Рассмотрим пример: Создать программу для работы со списком студентов, способную хранить данные на диске и выводить их на печать, предусмотреть возможность добавления и корректировки данных. Для удобства разобьем программу на несколько функций: Create_File – создает файл, заданного размера; Udate_stud – позволяет обновлять данные указанных записей; Print_stud – считывает данные с диска и выводит на печать. #include #include #include void Create_File(char *, int); void Udate_stud(char *, int); void Print_stud(char *); typedef struct < int number; char name[15]; char surname[15]; long n_book; >student; main () < char *fn="stud.dat"; int kol_stud=5; /* первоначальное êоличество стóдентов */ clrscr(); Create_File( fn, kol_stud); /* создаем файл из пóстых записей */ Udate_stud(fn, kol_stud); /* редаêтирóем сóществóющие записи или добавляем новые*/ Print_stud(fn); /* распечатываем данные из файла */ return 0; >/* Последовательное создание файла с произвольным достóпом */ void Create_File(char *name, int kol) <
| int i; | |
| student its | = < 0,"","",0>; |
| FILE *cfPtr; | |
| if ((cfPtr = | fopen(name, «w»)) == NULL) perror(name); |
else < for (i = 1; i > void Udate_stud(char *name, int kol) < FILE *cfPtr; student its; if ((cfPtr = fopen(name, "r+")) == NULL) perror(name); else < printf("Введите номер стóдента (1 to %d, 0 - заêончить ввод)?\n", kol); scanf("%d", &its.number); while (its.number !=0) < printf("Введите имя, Фамилию, номер зачетêи ?\n"); scanf("%s%s %ld", &its.name, &its.surname, &its.n_book);
| Лысый Д.А. Основы программирования. Ввод, вывод, потоки, файлы. часть2 | 8 | |
| fseek(cfPtr, (its.number-1)*sizeof(student), SEEK_SET); | ||
| fwrite(&its, sizeof(student), 1, cfPtr); | ||
| printf(«Введите номер стóдента ?\n «); | ||
| scanf(«%d», &its.number); | ||
| > | ||
| > | ||
| fclose (cfPtr); | ||
| > | ||
| void Print_stud(char *name) | ||
| FILE *cfPtr; | ||
| student | its; | |
| int n,j=0; | ||
| if ((cfPtr = fopen(name, «r»)) == NULL) perror(name); | ||
| printf(« | Списоê стóдентов ãрóппы?\n»); | |
while (1)) < if (fread(&its, sizeof(student), 1, cfPtr) == NULL) break; if (its.number !=0) printf("%5d%17s%17s%10ld\n",its.number, its.name, its.surname, its.n_book); >fclose (cfPtr); >
Тест по дисциплине «Основы алгоритмизации и программирования» Раздел: «Программирование на языке СИ/СИ++» специальности 230401 «Информационные системы (по отраслям)»
тест на тему
По теме: методические разработки, презентации и конспекты
Итоговые тесты по дисциплине «Основы маркетинга»
Методическое пособие по проведению итогового тестирования по дисциплине «Основы маркетинга».

Календарно-тематический план по английскому языку для специальности Информационные системы (по отраслям)
Календарно-тематический план составлен на основе Рабочей программы, разработанный на основе Федерального компонента государственного стандарта общего образования по дисциплине английский язык , .

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

конспект урока по дисциплине Основы алгоритмизации и программирования
На данном уроке используется язык программирования Паскаль.

Рабочая программа для специальности «Информационные системы» (по отраслям)
Рабочая программа для специальности «Информационные системы» (по отраслям) для 2-4 курсов.

ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ СЕТЕВОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PHP для специальности 09.02.05 Прикладная информатика (по отраслям)
Программа учебной дисциплины разработана на основе Федерального государственного образовательного стандарта (далее – ФГОС) по специальности среднего профессионального образования (далее СПО) 09.

Программа внеурочной деятельности по дисциплине «Основы алгоритмизации и программирования»
Изучение основ программирования связано с развитием целого ряда таких умений и навыков, которые носят общеинтеллектуальный характер и формирование которых – одна из приоритетных задач. Изу.
Клуб студентов «Технарь». Уникальный сайт с дипломами и курсовыми для технарей.
Описание:
Наследование — это .
О механизм, посредством которого производный класс получает элементы родительского и может дополнять либо изменять их свойства и методы
О механизм переопределения методов базового класса
О механизм, посредством которого производный класс получает все поля базового класса
О механизм, посредством которого производный класс получает элементы родительского, может их дополнить, но не может переопределить
Такой режим работы с потоком, как создание нового файла для записи и чтения, обозначается в языке С (C++) как …
О а+
О wb
О w+
О w+b
Ограничение доступа к составляющим объект компонентам (методам и переменным) — это …
Константы могут содержать в себе .
О только строки и символы
О только целые и дробные числа
О строки, символы, дробные числа и целые числа
Прототипом функции называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О описание функции, включая ее имя, тип возвращаемого значения, имена и типы параметров
О описание функции, включая ее имя, тип возвращаемого значения и типы параметров
О имя функции и тип возвращаемого значения
О описание функции, включая ее имя, тип возвращаемого значения, имена и типы параметров, тело функции
К основным принципам объектно-ориентированного программирования можно отнести .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О инкапсуляцию, абстракцию, полиморфизм
О повторное использование кода, принцип разделения интерфейса
О инкапсуляцию, наследование, полиморфизм
О принцип единственной ответственности, принцип инверсии зависимостей
Поименованная часть программы, содержащая определенный набор операций, называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О инкапсуляцией
О абстракцией
О подпрограммой
О функцией
Полиморфизм реализован через механизмы .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О перегрузки функций, виртуальных функций, шаблонов
О перегрузки функций, наследования методов, шаблонов
О наследования методов, виртуальных функций, шаблонов
О перегрузки функций, наследования методов, виртуальных функций
Неверно, что алгоритм может быть записан .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О с помощью псевдокода
О с помощью схемы
О графически, с помощью блок-схем
О с помощью программного кода
Полиморфизм — это средство, позволяющее .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О использовать одно имя для обозначения действий, общих для родственных классов
О в одном классе использовать методы с одинаковыми именами
О в одном классе использовать методы с разными именами для выполнения одинаковых действий
О перегружать функции для работы с разными типами или разным количеством аргументов
Понятие «парадигма программирования» включает в себя . (указать 3 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию)
□ способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером
□ написание корректно работающих компьютерных программ для электронно-вычислительных машин
□ стиль написания программ, который подчиняется определенным идеям и правилам
Модульное программирование — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования
О программирование, в котором процедуры разнесены по нескольким отдельным файлам (модулям) — данные внутри модуля защищены от изменений в другой части программы
О программирование, в котором возможно создание своих типов данных, в том числе сложные
О разделение всей массы программного кода на отдельные блоки (подпрограммы, процедуры, функции), которые выполняют конкретную задачу — дают возможность отладки отдельных частей кода
Под областью видимости функции следует понимать .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О переменные, объявленные значением аргумента
О часть программы, в которой пользователь может изменять или использовать переменные в своих нуждах
О части программы, которые входят в область видимости с точки объявления
О часть программы, в которой пользователь не может изменять или использовать переменные, а может только их видеть
. — это такой способ определения функции, при котором результат возврата из функции для данного значения аргумента определяется на основе результата возврата из той же функции для предыдущего (меньшего или большего) значения аргумента
Говоря о передаче параметра по ссылке, можно утверждать, что .
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
когда параметр передается по ссылке, вызывающая сторона и вызываемая сторона имеют две независимые переменные с одинаковым значением
когда параметр передается по ссылке, вызывающая сторона и вызываемая сторона используют одну и ту же переменную для этого параметра
если вызываемая сторона изменяет переменную параметра, эффект не виден вызывающей стороне
если вызываемая сторона изменяет переменную параметра, эффект виден в переменной вызывающей стороны
Параметр (переменная), указываемый при объявлении или определении, — это . параметр
Функция — это некоторая часть программы.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О содержащая описание переменных и констант основной программы
О которая имеет собственное имя и может вызываться из основной программы
О которая содержит вредоносный код и блокирует определенные действия системы
О в которой происходит начальная инициализация всех полей структур, массивов, переменных
Поименованная часть программы, содержащая определенный набор операций, называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О инкапсуляцией
О абстракцией
О подпрограммой
О функцией
При составлении подпрограмм с параметрами надо соблюдать определенные правила, в частности. (укажите 2 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ подпрограмма всегда должна иметь собственные параметры
□ процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя
□ каждая подпрограмма должна иметь свое имя и список формальных параметров
□ подпрограмм всегда должно быть не менее трех
. алгоритм — это алгоритм, решающий задачу путем решения одного или нескольких более узких вариантов той же задачи
Функциями называют подпрограммы.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О которые после выполнения заданных действий возвращают вызвавшему их коду некое значение
О принадлежащие какому-то классу или объекту
О возникающие в различных точках исполняемого кода при выполнении определенных условий
О изменяющие состояние объекта в ответ на какое-либо действие
Под объектами следует понимать .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О сообщение, которое возникает в различных точках исполняемого кода при выполнении определенных условий
О некоторую абстрактную сущность, заданную набором имен атрибутов и имен методов поведения
О уникальный идентификатор события
О данные, которые переносятся от одного объекта к другому
Конструктором называется метод, имя которого .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О совпадает с именем класса и который вызывается автоматически при создании объекта класса
О совпадает с именем класса и который вызывается автоматически при объявлении класса (до создания объекта класса)
О не обязательно совпадает с именем класса и который вызывается при создании объекта класса
О совпадает с именем класса и который необходимо явно вызывать из головной программы при объявлении объекта
класса
При создании класса программист создает описание таких переменных, как . (укажите 2 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ функция
□ метод
□ поле класса
□ атрибут
Говоря о конструкторах, можно утверждать, что . (укажите 3 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ у конструктора могут быть параметры
□ конструктор должен явно вызываться всегда перед объявлением объекта
□ конструктор вызывается автоматически при объявлении объекта
□ объявление каждого класса должно содержать свой конструктор
□ если конструктор не создан, компилятор создаст его автоматически
Говоря о конструкторах, можно утверждать, что . (укажите 2 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ конструкторы класса не наследуются
□ конструкторов класса может быть несколько, их синтаксис определяется программистом
□ конструкторов класса может быть несколько, но их синтаксис должен подчиняться правилам перегрузки функций
□ конструктор возвращает указатель на объект
Специализированный метод класса, предназначенный для уничтожения существующего экземпляра, — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О деструктор
О конструктор
О конструктор копирования
О интерфейс
Тело цикла . всегда будет выполнено хотя бы один раз, независимо от истинности условия
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
о while
О Do While
О For
Модель процесса разработки программного обеспечения, жизненный цикл которой выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О программной
О циклической
О каскадной
О спиральной
Логическое выражение может возвращать результат типа .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О integer
О boolean
О logical
О char
Изменение состояния объекта в ответ на какое-либо действие называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О событием
О методом
О атрибутом
О классом
Возможность и способ обращения производного класса к элементам базового определяются . класса
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ключами доступа private, public, protected в теле производного
О только ключом доступа protected в заголовке объявления производного
О ключами доступа private, public, protected в заголовке объявления производного
О ключами доступа private, public, protected в теле базового
Алгоритмы . используются для того, чтобы упорядочить элементы массива по убыванию или возрастанию
Тип данных «. » — это класс, входящий в стандартную библиотеку языка и инкапсулирующий строку как массив символов
Размер массива М после выполнения кода charM[]=»\\nGoodlive».
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О будет равен 10
О будет равен 8
О будет равен 9
О не может быть определен
Если размер массива 21, то порядковый номер последнего элемента массива — .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О 20
О 21
О 22
О определяется программистом
Класс с методами и переменными для организации работы со строками в языке программирования C++ называется
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О implements
О parent
О extend
О string
Массивом называют .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О функцию, которые могут выполнять какие-либо действия над данными (свойствами) класса
О сложный тип данных, состоящий из множества одинаковых элементов
О совокупность средств, методов и правил взаимодействия между элементами системы
О упорядоченные в памяти элементы одного и того же типа, имеющие общий адрес
Символьные массивы в C++ используются для .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О хранения символьной информации
О упорядочивания элементов
О хранения строк
О упорядочивания элементов, хранения символьной информации и строк
Говоря про определение максимальной длины строки, можно утверждать, что .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О максимальная длина строки определяется в процессе работы и может быть изменена в любой момент
О строки хранят символьные данные, а не числовые, поэтому нет необходимости определять их длину
О максимальная длина строки определяется при создании переменной
О максимальная длина строки не должна превышать 20 элементов
Если дан массив int L[3][3] = , < 3, 4, 8 >, >;. то значение элемента этого массива L[1][2] будет равно .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О 2
о 3
О 4
О 8
Сложный тип данных, состоящий из множества одинаковых элементов, — это …
Перегрузка операторов языка C++ необходима для . (укажите 3 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ того, чтобы применять встроенные операторы языка к разным типам, в том числе и пользовательским
□ переопределения стандартного поведения чего угодно или формирования своего собственного уникального поведения
□ реализации полиморфизма
□ реализации инкапсуляции
В языке C++ встроенный тип данных int предназначен для хранения .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О положительных и отрицательных целых чисел
О символов
О вещественных чисел
О положительных и отрицательных целых чисел, вещественных чисел, а также символов
Оператор return в теле функции необходимо использовать .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О во всех случаях
О если необходимо, чтобы функция вернула значение
О если необходимо обеспечить выход из функции в произвольном месте
О если указан тип возвращаемого значения, в том числе и void
Оператор namespace предназначен для .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О использования классов, переменных и функций из других модулей программы без использования заголовочных файлов
О заключения в группу объявлений классов, переменных и функций в отдельный контекст со своим именем
О заключения в группу объявлений классов, переменных и функций для использования только в текущем модуле
Ключевое слово . языка C+ + используется для описания структурированного типа данных, все элементы которого в памяти начинаются с одного байта
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
о Struct
О union
О enum
О template
Две формы использования перегруженных операторов.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ложная и истинная
О инфиксная и бинарная
О бинарная и функциональная
О инфиксная и функциональная
Перегрузке поддаются . операции
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О унарные и бинарные
О только бинарные
О только унарные
Если после выражения стоит точка с запятой, то .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О выражение вычисляется, а его значение запоминается в специальной переменной, которую можно использовать в следующем операторе
О это оператор-выражение, действие которого заключается в вычислении выражения
О выражение вычисляется только если первой стоит операция присваивания
Полиморфизм в объектно-ориентированном программировании реализуется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны
О только через механизмы перегрузки (функций и операций) и шаблоны
О только через виртуальные функции и шаблоны
О только через механизмы перегрузки (функций и операций) и виртуальные функции
Перегрузка операторов происходит с помощью операторных .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О методов
О функций
О интерфейсов
О алгоритмов
Тип int для 32-разрядных вычислительных систем имеет диапазон значений от .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О о до 255
О -32 768 до 32 767
О 0 до 65 535
О 0 до 4 294 967 295
Согласно общим правилам выбора перегружаемого оператора. (укажите 2 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ необходимо учитывать приоритет и ассоциативность операторов: они при перегрузке не меняются и должны соответствовать ожиданиям пользователя
□ операторы можно перегружать только в одном варианте — как функцию-член
□ при перегрузке операторов надо стараться, чтобы смысл перегруженного оператора был очевиден для пользователя
□ при перезагрузке оператора смысл перегруженного оператора не всегда очевиден для пользователя
Переменная вещественного типа float имеет размер в байтах, равный .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
Указателем называется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О переменная, хранящая в качестве значения какой-либо адрес в памяти машины
О любая локальная переменная
О любая глобальная переменная
О переменная, хранящая в качестве значения ссылку на какой-либо адрес в памяти
Для определения указателя необходимо использовать запись.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О тип_указателя * имя_указателя
О тип-указателя * имя-указателя
О тип указателя * имя указателя
О тип_указателя_имя_указателя
Целое, которое может быть присвоено указателю, является .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О 1
О 0
О положительным числом
О отрицательным числом
Для инициализации указателя можно использовать .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О адрес
О 0
О null
О адрес, 0 или null
В языке C++ в функцию в качестве параметров .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О нельзя передавать указатели на переменные
О можно передавать указатели на переменные
О можно передавать указатели на переменные, только если это массивы
О можно передавать указатели на переменные, только если это не массивы
Для доступа к элементам объекта при обращении через имя объекта используют .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О точку, при обращении через указатель — операцию «->»
О два двоеточия, при обращении через указатель — точку
О точку, при обращении через указатель — два двоеточия
О два двоеточия, при обращении через указатель — операцию «->»
. указатель- это указатель, значение которого не может быть изменено после инициализации
При открытии файла выполняется следующее действие.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О физический файл связывается с логическим (файловой переменной)
О устанавливается тип файла (текстовый или бинарный)
О устанавливается вид (режим) использования файла
О функцией открытия файла возвращается результат (ошибка)
Объявление char *buf; соответствует созданию .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О символьной переменной buf
О строковой переменной buf
О указателя buf на символьное значение
О указателя buf на строку
Для объявления дружественной функции используется ключевое слово .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О friend
О virtual
О double
О arr
Выбор функции-члена зависит от .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О типа указателя, а не от класса объекта
О того, на объект какого класса при выполнении программы указывает указатель, но не от типа указателя
О решения программиста
О выбора языка программирования
Виртуальными называются функции .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О базового класса, которые могут быть переопределены в производном классе
О базового класса, которые не используются в производном классе
О базового класса, которые не могут быть переопределены в базовом классе
О производного класса, переопределенные относительно базового класса
Правильное объявление производного класса.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О class MoreDetails:: Details;
О class MoreDetails: public class Details;
О class MoreDetails: public Details;
О class MoreDetails: class(Details);
Функция описанная в заголовочном файле, читает строку символов из файла
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О gets()
О fputs()
О fgets()
О fscanf()
Если элементы класса объявлены как . (укажите 2 варианта ответа)
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ private, то они доступны только наследникам класса, но не внешним функциям
□ private, то они недоступны ни наследникам класса, ни внешним функциям
□ public, то они доступны наследникам класса, но не внешним функциям
□ public, то они доступны и наследникам класса, и внешним функциям
Дружественная функция — это функция.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О принимающая в качестве аргументов другие функции или возвращающая другую функцию в качестве результата
О не выполняющая никакого осмысленного действия и возвращающая пустой результат или входные данные в неизменном виде
О которая имеет доступ к закрытым членам класса, как если бы она сама была членом этого класса
О имеющая частичный доступ к закрытым членам класса
Для объявления виртуальной функции используется ключевое слово .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О int
О print
О virtual
О friend
Отличие виртуальной функции от обычной заключается в том, что для .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О виртуальной функции связывание вызова функции с ее определением осуществляется на этапе ввода
О обычной функции связывание вызова функции с ее определением осуществляется на этапе ввода
О виртуальной функции связывание вызова функции с ее определением осуществляется на этапе компиляции
О обычной функции связывание вызова функции с ее определением осуществляется на этапе компиляции
Если в арифметическом выражении участвуют целый и вещественный операнды, то .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О имеет место ошибка компиляции
О целый тип приводится к вещественному
О вещественный тип приводится к целому
Правильный вариант выделения динамической памяти под переменную X типа float.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О float *ptr = new float; X = *ptr;
О float & ptr = new float; X = & ptr;
О float * ptr = &X; X = new float;
Поток ввода используется для .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О хранения данных, полученных от источника данных (через клавиатуру компьютера, из файла, из Сети и т.д.)
О копирования данных и передачи информации
О сбора данных в потоковых файлах
О синхронизации данных разных типов
Для работы с выходными потоками используется .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О getline
О iostream
О istream
О ostream
Класс, используемый для работы с входными потоками, — .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О iostream
О istream
О ostream
О getline
Класс iostream используется для обработки .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О только ввода данных
О как ввода, так и вывода данных, что позволяет ему осуществлять двунаправленный ввод/вывод
О только вывода данных
О потока цифровой информации
В переменной типа unsigned char можно хранить число .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
о -13
О 1213
о 13
В переменной типа unsigned char можно хранить число .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О -213
О 213
О 1213
В интегрированную среду программирования может входить такой компонент, как .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О наладчик
О доводчик
О отладчик
В интегрированную среду программирования может входить такой компонент, как .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О регулятор
О доминатор
О компилятор
Числовое значение выражения e/2*a-abs(e)*1e0 (при е = 4, а = 2) будет равно .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
о 3
о 0
о 1
Стандартный поток.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О нужен для работы с входным потоком данных
О нужен для работы с выходным потоком данных
О предоставляется программе ее окружением (подключается предварительно)
О предоставляется программе ее окружением и нужен для работы с входным и выходным потоками данных
Если определена операция вычитания для двух объектов класса А, а операция преобразования к int не определена, А а1,а2,аЗ=5; то при аЗ = al -а2;
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О будет вызвана только операция вычитания
О произойдет ошибка
О будет вызвано преобразование к целому
Не содержит синтаксических ошибок выражение .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О sin(abs(0.6(e*3))
О ((cos(3*a+1.*abs(x))))
О a*exp(t)\\(2t)
Значение выражения (а && ! b || с), где а, b и с — величины типа bool, имеющие значения false, true и true соответственно, равно .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О false
О yes
О true
Результатом вычисления выражения int d = 5; bool b = true, с; c = (!b||(d>3)): будет .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ошибка компилятора
О false
О true
Перескочить на п байт начиная от текущей позиции в файле (по умолчанию) можно с помощью .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ios_base::end
О ios_base::beg
О ios_base::cur
Производить установку текущей позиции в нужную, указываемую числом, можно с помощью метода .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ostream
О seekg
О istream
О offset
Правильно записанный набор перечисляемых значений.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О enum ;
О enum < а, b, 3, 4 >;
О enum ;
В ряду причин использования многофайловых программ — .
Тип ответа: Множественный выбор • с выбором нескольких правильных ответов из предложенных вариантов
□ незаменимость библиотек классов
□ возможность разделения работы над проектом на нескольких программистов
□ полное отсутствие однофайловых программ
□ удобство создания концепции и дизайна программ
Отсчитать новую позицию с начала файла можно с помощью .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ios_base::arr
О ios_base::end
О ios_base::beg
О ios_base::cur
Коллекция классов и функций, написанных на базовом языке, — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О многофайловая библиотека
О библиотека функций
О библиотека классов
О стандартная библиотека
Отсчитать новую позицию с конца файла можно с помощью .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О os_base::arr
О ios_base::end
О ios_base::beg
О ios_base::cur
Говоря о различии в использовании выражений #include <. >и #include «. », можно утверждать, что .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О различие заключается в методе поиска препроцессором включаемого файла
О различие заключается в использовании заголовочных и исходных файлов
О в использовании этих выражений нет различий
При использовании в программе функции scanf требуется разделять числовые значения величин при вводе при помощи .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О пробела или запятой
О по крайней мере одного пробела
О клавиш курсора
Шаблон функции — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О определение функции, у которой типу обрабатываемых данных присвоено условное обозначение
О прототип функции, в котором вместо имен параметров указан условный тип
О определение функции, в котором указаны возможные варианты типов обрабатываемых параметров
О определение функции, в котором в прототипе указан условный тип, а в определении указаны варианты типов обрабатываемых параметров
Переопределение операций имеет вид: имя_класса.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О ключевое слово operator, символ операции, в круглых скобках могут быть указаны аргументы
О ключевое слово operator, список аргументов
О два двоеточия, ключевое слово operator, символ операции
Существуют. виды исключений
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О фрагментарные и программные
О аппаратные и программные
О фрагментарные и аппаратные
О фрагментарные, аппаратные и программные
Не содержит синтаксических ошибок выражение .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О (-0.18)*a)/(r-0.2*t)
О (-0.18)*a)\\(r-0.2*t))
О -0.18*a/r-0.2*t
Шаблоны классов — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О обобщенное описание поведения функций, которые могут вызываться для объектов разных типов
О обобщенное описание пользовательского типа, в котором могут быть параметризованы атрибуты и операции типа
О переменные, описание которых создает программист при создании класса
О особые выражения, позволяющие выполнить один и тот же блок кода несколько раз
Числовое значение выражения sqrt(4)+142/20*2 равно .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О 5
О 16
О 9
Структура данных, которая работает по принципу FILO, — это .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О аргумент
О степ
О стек
О кетч
Шаблоны функций могут принимать .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О только один аргумент
О не более двух аргументов
О несколько аргументов
О не более трех аргументов
При использовании в программе функции scanf требуется разделять числовые значения величин при вводе при помощи .
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О нажатия клавиш TAB или ENTER
О клавиш курсора
О пробела или запятой
Массив — это именованный набор . в одной области памяти
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О переменных, имеющих различные типы данных и располагающихся
О переменных и функций, которые располагаются
О переменных, имеющих один тип данных и располагающихся
О переменных, имеющих символьный тип данных и располагающихся
Чтобы задать многострочный комментарий в языке C++, нужно набрать …
Переменная типа signed char может принимать .
Тип ответа: Одиночный выбор с выбором одного правильного ответа из нескольких предложенных вариантов
О только значения символов английского алфавита, цифр и символа подчеркивания
О значения из первой половины кодовой таблицы
О только значения из алфавита языка C+ +
Обобщенное описание поведения функций, которые могут вызываться для объектов разных типов, — это . функций
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
О классы
О проекции
О шаблоны
О объекты
Комментарии: Тест сдавался в 2023 году. Оценка отлично. Смартфоны могут искажать видение материала, лучше всего файл смотреть на домашнем ПК.
Размер файла: 330,6 Кбайт
Фаил: (.zip)
——————-
Обратите внимание , что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
——————-
Скачано: 8 Сейчас качают: 1 Коментариев: 0