Q. 2 (1.00) - Considere o seguinte código:
#include <stdio.h>
void modifica(int *v, int tamanho) {
    for(int i = 0; i < tamanho; i++) {
        if (v[i] % 2 == 0) { v[i] += 2; }
        else { v[i] += 3; }
    }
}
int main() {
    int numeros[4] = {1, 2, 3, 4};
    modifica(numeros, 4);
    printf("%d\n", numeros[2]);
    return 0;
}
Qual será o valor impresso?
a) ( ) 7
b) ( ) 4
c) ( ) 3
d) ( ) 6
e) (15
Verifique as respostas em: www.gradepen.com/?ansid=2442875.6

Passo 1

O enunciado mostra um programa em C que define a função modifica(int *v, int tamanho), a qual percorre um vetor de inteiros e, para cada elemento, soma 2 se for par ou soma 3 se for ímpar. No main, o vetor numeros é inicializado como {1, 2, 3, 4}, chamamos modifica(numeros, 4) e depois imprimimos o elemento de índice 2. Para resolver, basta simular o laço de modificação e verificar o valor final de numeros[2].

Passo 2

Simulação do laço em modifica:
  • i =0: v[0] =1 é ímpar ⇒ v[0] =1+3=4
  • i =1: v[1] =2 é par ⇒ v[1] =2+2=4
  • i =2: v[2] =3 é ímpar ⇒ v[2] =3+3=6
  • i =3: v[3] =4 é par ⇒ v[3] =4+2=6
Após a chamada, o vetor fica {4, 4, 6, 6}, logo numeros[2] é 6.

Resposta

(d) 6

Exercícios relacionados