lista

368 palavras 2 páginas
Lista de Revisão de Ponteiros

1. Seja o seguinte trecho de programa: int i=3,j=5; int *p, *q; p = &i; q = &j;

Qual é o valor das seguintes expressões ?
a) p == &i;
b) *p - *q;
c) **&p;
d) 3* - *p/(*q)+7;

Resposta:

a) 0x28ff44(endereço de i);
b) 3-5 = -2
c) 3;
d) 3 * (-3) / 5 + 7 = -9/12.

2. Qual será a saída deste programa supondo que i ocupa o endereço 4094 na memória? main() { int i=5, *p; p = &i; printf(“%x %d %d %d %d \n”,p, *p+2,**&p,3**p,**&p+4);
}

Resposta: 2844, 7, 5, 15, 9

3. Se i e j são variáveis inteiras e p e q ponteiros para int, quais das seguintes expressões de atribuição são ilegais?

a) p = &i;
b) *q = &j;
c) p = &*&i; d) i = (*&)j;
e) i = *&j;
f) i = *&*&j;
g) q = *p;
h) i = (*p)++ + *q.

Resposta:
a) correta
b) inválida
c) correta
d) inválida
e) correta
f) correta
g) inválida
h) correta

4. Qual serão as saídas do seguinte programa? #include
#include

int main() { int valor; int *p1; float temp; float *p2; char aux; char *nome = "Algoritmos"; char *p3; int idade; int vetor[3]; int *p4; int *p5; /* (a) */ valor = 10; p1 = &valor; *p1 = 20; printf("(a) %d \n", valor); /* (b) */ temp = 26.5; p2 = &temp; *p2 = 29.0; printf("(b) %.1f \n", temp); /* (c) */ p3 = &nome[0]; aux = *p3; printf("(c) %c \n", aux); /* (d) */ p3 = &nome[4]; aux = *p3; printf("(d) %c \n", aux); /* (e) */ p3 = nome; printf("(e) %c \n", *p3); /* (f) */ p3 = p3 + 4; printf("(f) %c \n", *p3); /* (g) */ p3--; printf("(g) %c \n", *p3); /* */ vetor[0] = 31; vetor[1] = 45; vetor[2] = 27; p4 = vetor; idade = *p4; printf("(h) %d \n", idade); /* (i) */ p5 = p4 + 1; idade

Relacionados

  • lista
    581 palavras | 3 páginas
  • Lista
    475 palavras | 2 páginas
  • lista
    369 palavras | 2 páginas
  • lista
    4311 palavras | 18 páginas
  • listas
    2876 palavras | 12 páginas
  • listas
    465 palavras | 2 páginas
  • Listas
    4239 palavras | 17 páginas
  • Lista
    666 palavras | 3 páginas
  • LISTA
    558 palavras | 3 páginas
  • lista
    1367 palavras | 6 páginas