Questões Informática Algoritmos e Estrutura de Dados
Considere o programa escrito em linguagem C: # include ...
Responda: Considere o programa escrito em linguagem C: # include int main () { int a[ ][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; ...
💬 Comentários
Confira os comentários sobre esta questão.

Por Ingrid Nunes em 31/12/1969 21:00:00
Vamos analisar o código passo a passo para entender o que será impresso.
Primeiro, temos a declaração de uma matriz `a` de duas dimensões, mas sem especificar o número de linhas, apenas o número de colunas que é 4. Os valores são inicializados como `{1,2,3,4,5,6,7,8,9,10,11,12}`. Como cada linha deve conter 4 elementos (devido à declaração `[ ][4]`), a matriz `a` é organizada da seguinte forma:
```
a[0] = {1, 2, 3, 4}
a[1] = {5, 6, 7, 8}
a[2] = {9, 10, 11, 12}
```
O loop `for` itera com a variável `i` de 0 a 2. Dentro do loop, a função `printf` é chamada com o argumento `"%d", *(a[i]+1)`. Aqui, `a[i]` é o endereço da primeira coluna da i-ésima linha, e `a[i]+1` é o endereço da segunda coluna da i-ésima linha. O operador `*` é usado para dereferenciar o endereço, ou seja, para obter o valor armazenado nesse endereço.
Portanto, `*(a[i]+1)` acessa o segundo elemento de cada linha da matriz:
- Para `i=0`, `*(a[0]+1)` é `2`.
- Para `i=1`, `*(a[1]+1)` é `6`.
- Para `i=2`, `*(a[2]+1)` é `10`.
Assim, o programa imprime `2610` sequencialmente, sem espaços ou quebras de linha.
Gabarito: e) 2610
Primeiro, temos a declaração de uma matriz `a` de duas dimensões, mas sem especificar o número de linhas, apenas o número de colunas que é 4. Os valores são inicializados como `{1,2,3,4,5,6,7,8,9,10,11,12}`. Como cada linha deve conter 4 elementos (devido à declaração `[ ][4]`), a matriz `a` é organizada da seguinte forma:
```
a[0] = {1, 2, 3, 4}
a[1] = {5, 6, 7, 8}
a[2] = {9, 10, 11, 12}
```
O loop `for` itera com a variável `i` de 0 a 2. Dentro do loop, a função `printf` é chamada com o argumento `"%d", *(a[i]+1)`. Aqui, `a[i]` é o endereço da primeira coluna da i-ésima linha, e `a[i]+1` é o endereço da segunda coluna da i-ésima linha. O operador `*` é usado para dereferenciar o endereço, ou seja, para obter o valor armazenado nesse endereço.
Portanto, `*(a[i]+1)` acessa o segundo elemento de cada linha da matriz:
- Para `i=0`, `*(a[0]+1)` é `2`.
- Para `i=1`, `*(a[1]+1)` é `6`.
- Para `i=2`, `*(a[2]+1)` é `10`.
Assim, o programa imprime `2610` sequencialmente, sem espaços ou quebras de linha.
Gabarito: e) 2610
⚠️ Clique para ver os comentários
Visualize os comentários desta questão clicando no botão abaixo
Ver comentários