Рубрики

Викторина С — 112 | Вопрос 1

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

#include "stdio.h"

  

int main()

{

 struct {int a[2];} arr[] = {{1},{2}};

  

 printf("%d %d %d %d",arr[0].a[0],arr[0].a[1],arr[1].a[0],arr[1].a[1]);

  

 return 0;

}

(A) Ошибка компиляции, потому что arr был определен с использованием типа структуры неправильно. Первый тип структуры должен быть определен с использованием тега, а затем должен быть определен arr с использованием этого тега.
(B) Ошибка компиляции, потому что помимо определения arr, другая проблема заключается в инициализации массива struct т.е. arr [].
(C) Ошибка компиляции из-за инициализации массива struct т.е. arr [].
(D) Нет ошибки компиляции, и она напечатает 1 2 0 0
(E) Нет ошибки компиляции, и она напечатает 1 0 2 0

Ответ: (E)
Объяснение: Здесь определение типа структуры и определение arr с использованием этого типа структуры было сделано в одной строке. Это нормально в соответствии со стандартом C. Даже инициализация тоже правильная. Следует отметить, что размер массива arr [] будет равен 2, то есть 2 элемента этого массива этого типа структуры. Это решено из-за способа, которым это было инициализировано выше. Здесь arr [0] .a [0] будет 1, а arr [1] .a [0] будет 2. Остальные элементы массива будут ZERO. правильный ответ Е.

Тест на этот вопрос

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

Викторина С — 112 | Вопрос 1

0.00 (0%) 0 votes