Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП - ПОИТ (Бахтизин) часть 1 редакт.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.76 Mб
Скачать

Вопросы к разделу 10. Файлы

1. Для какого типа файлов характерно следующее представление строки «f c e a r t y н u d н у a» в файле?

f c e a r t y н u d н у a

a) для текстового;

б) для бинарного;

в) и для текстового и для бинарного.

2. Можно ли текстовый файл открыть в двоичном формате и прочитать строку функцией fscanf() ?

а) можно открыть файл и прочитать функцией;

б) нельзя открыть файл;

в) можно открыть файл, но прочитать строку нельзя.

3. Что выполняет данный участок программы

...

char s[25];

FILE *out;

if ((out = fopen("d:\\Ex2.txt", "wb")))

for (int i = 0; i < 3; i++)

{

gets(s);

fprintf(out, "%s \r\n", s);

}

getch();

fclose(out);

...

а) считывает одну строку и заносит ее в файл;

б) считывает три строки и выводит их на экран;

в) считывает три строки и записывает в файл;

г) программа имеет ошибки и работать не будет.

4. В каком файле можно управлять позиционированием?

а) текстовом;

б) в текстовом и двоичном;

в) двоичном.

5. Что будет находиться в строке s после выполнения программы

#include<stdio.h>

#include<conio.h>

void main()

{

FILE *f;

char s[20] = "1";

clrscr();

f = fopen("e:\\tmp.txt", "rb");

if (f)

{

fseek(f, –4, 2);

fscanf(f, "%s", s);

printf("%s", s);

}

}

если в файле содержится следующая информация

fc136902fsw

а) c136902fsw;

б) 2fsw;

в) 02fsw;

г) sw;

д) s.

6. Относительно какого положения можно изменять указатель на текущую позицию в файле?

а) Относительно начала файла.

б) Относительно конца файла.

в) Относительно текущей позиции.

г) Относительно всех вышеперечисленных положений.

7. Что будет находиться в строке s после выполнения программы,

#include<stdio.h>

#include<conio.h>

void main()

{

FILE *f;

char s[20] = "1";

clrscr();

f = fopen("e:\\tmp.txt","rb");

if (f)

{

fseek(f, 1, SEEK_SET);

fscanf(f,"%s", s);

printf("%s", s);

}

}

если в файле содержится следующая информация

fc136902fsw

а) c136902fsw;

б) fc136902fsw;

в) 136902fsw;

г) sw;

д) c.

8. Какое число соответствует EOF?

а) 0;

б) 1;

в) -1;

г) 65534.

9. Для чего используется функция fread()?

а) Без изменений копирует блок данных из файла в память.

б) Без изменений копирует блок данных из памяти в файл.

в) Считывает строку из файла.

г) Записывает строку в файл.

Вопросы к разделу 11. Директивы препроцессора

1. Что такое препроцессор?

а) Это составная часть языка Си, которая обрабатывает исходный текст программы до того, как он пройдет через компилятор.

б) Это составная часть операционной системы, которая запускает программу.

в) Это составная часть языка Си, которая обрабатывает исходный текст, после того, как она прошла компилятор.

2. Для чего предназначена директива #include ?

а) Для включения копии указанного в директиве файла в том месте, где находится эта директива.

б) Для определения символических констант.

в) Для условной компиляции.

3. На что заменяется идентификатор константы или идентификатор макроса, определенный директивой #define ?

а) Заменяются на значение, определенное в стандартном библиотечном файле.

б) Заменяются на функцию с таким же именем, описанную ниже в программе.

в) Автоматически заменяются на указанный в директиве заменяющий текст, расположенный непосредственно справа от него.

4. В чем преимущества использования макроса, определенного директивой #define перед функцией?

а) Уменьшение времени выполнения программы.

б) Экономия памяти.

в) Уменьшение объема программного кода.

5. Для чего используется директива #undef ?

а) Для аннулирования символических констант и макросов, определенных ранее директивой #define.

б) Для переопределения констант и макросов на новые значения.

в) Для условной компиляции.

6. Какие переменные могут использоваться при условной компиляции?

а) Любые переменные, объявленные ранее.

б) Символические константы, определенные директивой #define.

в) Зарезервированные библиотечные константы.

7. В каком случае компилируется условное выражение?

а) Если выражение, расположенное справа от директивы #if, возвращает не 0.

б) Если выражение возвращает 0.

в) Если выражение является строковой константой.

8. В чем отличие директивы #ifdef от #ifndef ?

а) При использовании директивы #ifdef выражение возвращает истинное знчение, если ранее использовалась директива #define, a #ifndef – если не использовалась.

б) При использовании директивы #ifdef выражение возвращает истинно, если ранее не использовалась директива #define, a #ifndef – если использовалась.

в) #ifndef аннулирует #ifdef.

9. Для чего используется директива #error ?

а) Для выдачи ошибок, которые обрабатываются пользователем, после чего компиляция продолжается.

б) Для остановки программы.

в) Для остановки программы и выдачи ошибок, после чего компиляция прекращается.

10. В чем предназначение директивы #pragma ?

а) Вызов действия, зависящие от опции, указанной непосредственно справа от директивы.

б) Выдача сообщения об ошибках.

в) Вызов других директив препроцессора.

11. В чём отличие операции # от операции ## ?

а) Операция # выполняет конкатенацию двух лексем. Операция ## преобразует лексему в строку символов, взятую в кавычки.

б) Операция # преобразует лексему в строку символов, взятую в кавычки. Операция ## выполняет конкатенацию (сцепление, склеивание) двух лексем.

в) Операция # выполняет конкатенацию двух символов, а операция ## – двух строк.

12. Найдите ошибки и скажите, что будет выведено на экран:

#define MAX 10;

void main()

{

int array[MAX];

printf(“Массив: ”);

for(int i = 1; i < MAX; i++)

printf(“%d”, array[MAX]);

}

а) Ошибка: точка с запятой после определения константы.

б) Ошибка: точка с запятой после определения константы. На экран будут выведены значения 1, 2, 3, …, MAX.

в) Ошибок нет. На экран будут выведены неопределённые значения.