Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios de Ponteiros (Respostas) Aluna: Kelly do Socorro Silva da Costa - 201604940040 1. Quais das seguintes instruções são corretas para declarar um ponteiro? int *ptr; 2. Qual é a maneira correta de referenciar ch, assumindo que o endereço de ch foi atribuído ao ponteiro indica? *indica; 3. Na expressão float *pont; o que é do tipo float? A variável apontada por pont. 4. Assumindo que o endereço de num foi atribuído a um ponteiro pnum, quais das seguintes expressões são verdadeiras? pnum == &num 5. Assumindo que queremos ler o valor de x, e o endereço de x foi atribuído a px, a instrução seguinte é correta? Por que? scanf ( “%d”, *px ); Sim, pois *px vai ler o que está dentro do endereço de x, logo, o valor de x. Para imprimir o endereço de x seria necessário escrever scanf(“%d”, px). 6. Qual é a instrução que deve ser adicionada ao programa seguinte para que ele trabalhe corretamente? main ( ) { int j, *pj; *pj = 3; } main(){ int j = 3, *pj; pj = &j; } 7. Assumindo que o endereço da variável x foi atribuído a um ponteiro px, escreva uma expressão que não usa x e divida x por 5. *px = *px/5; 8. Qual o valor das seguintes expressões: int i = 3, j = 5; int *p = &i, *q = &j; p == &i 9. Qual será a saída deste programa? main ( ) { int i = 5, *p = &i; printf ( “%u %d %d %d %d \n”, p, *p+2, **&p, 3**p, **&p+4); } A saída para p será o endereço de i. A saída para *p+2, vai ser a soma do valor de i com 2, logo, 7. A saída para **&p será um ponteiro de um ponteiro que aponta para i, logo, 5. A saída de 3**p será a multiplicação do valor contido em i por 3, logo, 15. A saída de **&p+4 será um ponteiro de um ponteiro que soma o valor contido em i com 4, logo, o resultado será 9. Desta forma, a saída final será: Endereço_de_i 7 5 15 9
Compartilhar