Рубрики

Викторина С — 111 | Вопрос 4

Выберите лучшее утверждение для программы ниже:

#include "stdio.h"

   

void fun(int n)

{

   int idx;

   int arr1[n] = {0};

   int arr2[n];

   

   for (idx=0; idx<n; idx++)

       arr2[idx] = 0;    

}

   

int main()

{

   fun(4);

   return 0;

}

(A) Определение как arr1, так и arr2 неверно, поскольку переменная используется для указания размера массива. Вот почему ошибка компиляции.
(B) Помимо определения arr1 arr2, инициализация arr1 также неверна. arr1 не может быть инициализирован из-за того, что его размер указан как переменная. Вот почему ошибка компиляции.
(C) Инициализация arr1 неверна. arr1 не может быть инициализирован из-за того, что его размер указан как переменная. Вот почему ошибка компиляции.
(D) Нет ошибки компиляции. Программа будет определять и инициализировать оба массива в ноль.

Ответ: (с)
Объяснение: Нет проблем с определением arr1 и arr2 . В определении этих массивов упоминание размера массива с использованием переменной в порядке согласно стандарту C, но эти типы массивов не могут быть инициализированы во время определения. Вот почему инициализация arr1 неверна. Но инициализация arr2 выполнена правильно. Правильный ответ — C.
Тест на этот вопрос

Рекомендуемые посты:

Викторина С — 111 | Вопрос 4

0.00 (0%) 0 votes