Informática, perguntado por alexdjgospel4, 7 meses atrás

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

Respondido por vanessauab
4

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.

Perguntas interessantes