Ed
ano passado
Vamos analisar o código apresentado: ```c #include int main() { float notas[5] = {3.5, 7.5, 9.2, 6.8}; for (int i = 0; i < 6; i++) { printf ("\n%.1f", notas[i]); } return 0; } ``` 1. Declaração do vetor: O vetor `notas` é declarado com 5 posições, mas apenas 4 valores são inicializados. A quinta posição será automaticamente inicializada como 0.0. 2. Laço for: O laço `for` está configurado para iterar de 0 a 5 (ou seja, 6 iterações). Isso significa que ele tentará acessar `notas[0]`, `notas[1]`, `notas[2]`, `notas[3]`, `notas[4]` e `notas[5]`. 3. Acesso fora dos limites: O acesso a `notas[5]` é um acesso fora dos limites do vetor, o que resultará em um valor indefinido, pois não há garantia de que essa posição tenha um valor válido. Agora, vamos analisar as alternativas: A) Apresentação dos valores 3.50, 7.50, 9.20, 6.80 e um valor indefinido após o último valor. Correta, pois imprime os 4 valores válidos e um valor indefinido ao acessar `notas[5]`. B) Apresentação de um valor indefinido após o primeiro valor, sem a apresentação dos demais valores do vetor. Incorreta, pois todos os valores válidos são impressos antes do valor indefinido. C) Apresentação dos valores 3.5, 7.5, 9.2, 6.8, 0.0 e um valor indefinido após o último valor. Incorreta, pois o valor 0.0 não será impresso, já que o laço vai até `notas[5]`. D) Apresentação de um erro de compilação, impedindo a execução do código. Incorreta, pois o código compila, mas pode gerar um comportamento indefinido. E) Apresentação dos valores 3.5, 7.5, 9.2 e 6.8. Incorreta, pois não considera o acesso fora dos limites. Portanto, a alternativa correta é: A Apresentação dos valores 3.50, 7.50, 9.20, 6.80 e um valor indefinido após o último valor.
Cadastre-se ou realize login
Mais perguntas desse material