Тесты для самоконтроля знаний по курсу «Программирование на языках высокого уровня». Часть 2. Алгоритмический язык С++, страница 2

Ответы:

          1. char str1[40]=”Hello World!”,str[];

              strncpy(str,str1,40);

ν        2. char str1[]=”Hello World!”,str[40];

              strcpy(str,str1);

Глава 6. Функции.

Вопрос 6.1. Какое объявление функции является Неправильным?

Ответы:

          1. float step(int n, float os)

              {   float s=1;

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

                        s*=os;

                   return s;

              }

          2. void step(int n,float os, float *s)

              {   *s=1;

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

                       *s*=os;

               }

          3. float *step(int n,float os)

              {   float *s; s=new float;

                   *s=1;

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

                       *s*=os;

                   return s;

               }

ν        4. float step(int n, float os);

              {   float s=1;

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

                        s*=os;

                   return s;

              }

Вопрос 6.2. Как можно передать результат (тип float) выполнения функции типа void?

Ответы:

          1. Через имя функции.

          2. Через формальный параметр типа float.

ν        3. Через формальный параметр типа указатель на float.         

Вопрос 6.3. Как отличить глобальную переменную от локальной?

Ответы:

ν        1. Глобальная переменная объявляется в главной программе и не объявляется в вызываемой функции.

          2. Глобальная переменная объявляется в главной программе и   в вызываемой функции.

          3. При завершении функции глобальная переменная уничтожается.

          4. Глобальная переменная объявляется в функции и не объявляется в главной программе.

Глава 7. Рекурсии.

Вопрос 7.1. Какая функция является рекурсивной?

Ответы:

          1. Результат передаётся через имя функции.

          2. Результат передаётся через формальный параметр-указатель.

ν        3. В теле функции имеется оператор вызова этой же функции.

          4. В теле функции присутствует оператор return.

Вопрос 7.2. Какой оператор должен обязательно присутствовать в рекурсивной функции?

Ответы:

          1. Оператор передачи управления.

          2. Оператор цикла.

          3. Оператор return;

ν        4. Оператор проверки окончания рекурсии.

Вопрос 7.3. Как изменяются локальные и глобальные объекты в рекурсиях?

Ответы:

          1. Глобальные объекты не сохраняют свои значения после окончания рекурсии.

ν        2. При повторных вызовах рекурсивной функции создаётся новое множество локальных объектов.

          3. Локальные объекты сохраняют свои значения после окончания рекурсии.

Глава 8. Структуры.

Вопрос 8.1. Какого типа могут быть элементы (поля) структуры?

Ответы:

          1. Поля структуры должны быть  одного и того же типа.

          2. Полями структуры не могут быть массивы.

          3. Полями структуры могут быть файлы.

ν        4. Полями структуры могут быть другие структуры. 

Вопрос 8.2. В состав каких типов данных  не может входить структура как компонент?

Ответы:

          1. Массив.

          2. Файл.

ν        3. Extended.

          4. Структура.

Вопрос 8.3. Как можно обратиться к полю Year объекта Student типа структуры Person?

Ответы:

ν        1. Student.Year.

          2. scanf(“%d”,&Person.Year).

          3. Person.Year.

Глава 9. Программные средства для работы с файлами.

Вопрос 9.1. В каких случаях целесообразно использовать файл?

Ответы:

          1. Для математических вычислений.

          2. Для сортировки данных.

          3. Для быстрого поиска по заданным критериям.

ν        4. Для длительного хранения больших объёмов данных.

Вопрос 9.2. Как открыть бинарный файл для изменения в нём информации?

Ответы:

          1. f=fopen(“file1.dat”,”r+”);

          2. f=fopen(“file1.dat”,”wb+”);

ν        3. f=fopen(“file1.dat”,”rb+”);

          4. f=fopen(“file1.dat”,”ab”);

Вопрос 9.3. Как считать из файла строку str , состоящую из слов, разделённых пробелами?

Ответы:

ν        1. fgets(str,80,f);

          2. fscanf(f,”%s”,str);

          3. str=fgetc(f);

          4. fread(str,sizeof(str),1,f);

Вопрос 9.4. Чем отличается файл от массива?

Ответы:

ν        1. Файл может храниться на диске, а массив – только в оперативной памяти.

          2. К элементам массива возможен прямой доступ по индексу, а к компонентам файла – только последовательный.

          3. Компонентом массива может быть файл, а компонентом файла не может быть массив.

Глава 10. Обработка бинарных файлов.

Вопрос 10.1. Как записать в бинарный файл file *f массив из 10-ти чисел

 int ar[10] ?

Ответы:

          1. f=fopen(“array.dat”,”w”);

              fwrite(ar,sizeof(ar),1,f);

          2. f=fopen(“array.dat”,”wb”);

              fwrite(&ar[0],sizeof(ar[0]),1,f);

          3. f=fopen(“array.dat”,”w”);

              fwrite(&ar[0],sizeof(ar[0]),10,f);

ν        4. f=fopen(“array.dat”,”wb”);

              fwrite(ar,sizeof(ar),1,f);

Вопрос 10.2. В бинарном файле записан массив из 10-ти целых чисел            int ar[10]. Как считать 5-й элемент массива в переменную n?

Ответы:

ν        1.  int n;

               f=fopen(“array.dat”,”rb”);

               fseek(f,sizeof(ar[0])*4,0);

               fread(&n,sizeof(n),1,f);

          2.  int n;

               f=fopen(“array.dat”,”rb”);

               fseek(f,sizeof(ar[0])*5,0);

               fread(&n,sizeof(n),1,f);

          3.  int n;

               f=fopen(“array.dat”,”rb+”);

               fseek(f,2*4,0);

               fread(n,sizeof(n),1,f);

          4.  int n;

               f=fopen(“array.dat”,”rb+”);

               fseek(f,sizeof(ar[0])*5,0);

               fread(n,sizeof(n),1,f);

Вопрос 10.3. В бинарном файле записан  массив из 10-ти целых чисел            int ar[10]. Как заменить 3-й элемент массива ?

Ответы:

          1.   int n=11;

               f=fopen(“array.dat”,”rb”);

               fseek(f,sizeof(ar[0])*2,0);