Considere o seguinte programa escrito na linguagem C#include...
#include <stdio.h>
main ()
{char ex3[5]={'z','k','w','x','v'};
int cont1;
cont1=2;
printf ("%c %c",ex3[cont1+1], ex3[4]+cont1);}
Ao executar esse programa, é apresentado como resposta:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - x x
Para compreender a questão e a alternativa correta, precisamos analisar o código em C e entender como a linguagem lida com arrays e operações com caracteres.
O programa define um array ex3 de caracteres com 5 elementos: {'z', 'k', 'w', 'x', 'v'}. Em seguida, ele cria uma variável cont1 e atribui a ela o valor 2.
Na função printf, o programa tenta imprimir dois caracteres: ex3[cont1+1] e ex3[4]+cont1. O primeiro caractere a ser impresso é o elemento na posição cont1+1, que é 2+1 = 3, ou seja, o quarto elemento do array ex3, que é 'x'.
Para o segundo caractere, a expressão ex3[4]+cont1 pega o último elemento do array (pois os índices começam de 0) que é 'v' e soma a cont1, ou seja, 'v' (que tem valor ASCII 118) + 2. Isso resulta no caractere de valor ASCII 120, que corresponde ao caractere 'x'.
Portanto, a saída do programa será x x, o que torna a alternativa D a correta. O conhecimento necessário envolve a compreensão de arrays, indexação, operações com caracteres em C e a tabela de valores ASCII.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
"D"= xx
Devo imprimir necessariamente 2 chars (%c).
1º: ex3[cont1+1] = ex3[3] = 'x'
2º: ex3[4] + cont1 = 'v' + 2 = 'x'
.
Note que no segundo elemento está somando 'v' com 2, que é 'x'.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo