Observe o código-fonte a seguir:
01 - int vet[10];
02 - int i;
03 -
04 - for(i=0;i<=10;i++){
05 - printf("Digite:\n");
06 - scanf("%d", &vet[i]);
07 - }
Com base no programa acima, avalie as afirmações:
I - Ao modificar o scanf() da linha 06 para scanf("%d", vet), poderíamos fazer a leitura do vetor sem o laço da linha 4.
II - Neste vetor, a primeira posição se encontra no índice igual a 0, e a última posição, índice igual a 9
III - O código-fonte irá tentar acessar uma posição que extrapola o limite superior do vetor.
Assim sendo, pode se dizer que é correto o que se afirma em:
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
I e II, apenas.
Alternativa 3:
I e III, apenas.
Alternativa 4:
II e III, apenas.
Alternativa 5:
I, II e III.
Soluções para a tarefa
Resposta:
Alternativa 4:
II e III, apenas.
Explicação:
A I está errada pois não se acessa o vetor dessa forma usando a função scanf.
A II está correta pois o índice do vetor começa em 0 e termina no indíce 9, tendo portanto dez posições.
A III está correta porque ele acessa o indice "10" do vetor, quando usamos "for(i=0;i<=10;i++)". Embora tenhamos definido previamente para ir do índice 0 a 9, o programa (neste caso específico), não irá dar erro porque o compilador não verifica "o final do vetor", mas é boa prática fazer os "loops" para ir somente até a posição previamente indicada como sendo a última do vetor.
Observação: Faça o programa corretamente para que ele não extrapole a última posição do vetor, ou os resultados podem ser desastrosos e imprevisíveis.