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)
Verifique as respostas em: www.gradepen.com/?ansid=2442875.6
#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;
}
a) ( ) 7
b) ( ) 4
c) ( ) 3
d) ( ) 6
e)
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
: v[0] é ímpar ⇒ v[0] - i
: v[1] é par ⇒ v[1] - i
: v[2] é ímpar ⇒ v[2] - i
: v[3] é par ⇒ v[3]
Após a chamada, o vetor fica
{4, 4, 6, 6}, logo numeros[2] é 6.Resposta
(d) 6