TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Ponteiros (estrutura De Dados)

Artigo: Ponteiros (estrutura De Dados). Pesquise 860.000+ trabalhos acadêmicos

Por:   •  14/3/2015  •  1.213 Palavras (5 Páginas)  •  1.028 Visualizações

Página 1 de 5

1. Qual será a saída deste programa, supondo que i ocupa o endereço 4094 na memória?

#include <stdio.h>

int main(){

int i=5, *p;

p = &i;

printf(“%p - %d - %d\n”, p, *p+2, 3*(*p));

}

2. Fazer um programa que altere o valor armazenado em uma variável através do ponteiro que aponta para a mesma, seguindo as seguintes premissas:

* A variável numero (tipo inteiro) irá armazenar o valor 35;

* O ponteiro se chama ptr;

* Logo no início, apresentar a mensagem (utilizando apenas a variável do tipo ponteiro): “O ponteiro ptr armazena o endereço ___ que, ‘\n’ por sua vez, armazena o valor ___. ‘\n”

* Após a troca do valor, apresentar (utilizando apenas a variável do tipo ponteiro): “Agora, o ponteiro ptr armazena o endereço ___ que, ‘\n’por sua vez, armazena o valor ___. ‘\n’”

3. Desenvolver um programa que possua a função troca(), que irá realizar a troca dos valores de duas variáveis. Essa função recebe os endereços das variáveis passadas pela função main(), armazenando-os nos ponteiros p1 e p2. Dentro da função, trocam-se os conteúdos dos endereços apontados. Em seguida, retornando-se à função chamadora deve ser apresentado o resultado final.

4. Escreva uma função que imprima o endereço de uma variável.

5. Um ponteiro é:

a) o endereço de uma variável;

b) uma variável que armazena endereços;

c) o valor de uma variável;

d) um indicador da próxima variável acessada.

6. 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

7. 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);

}

8. Se i e j são variáveis inteiras e p e q ponteiros para int, quais das seguintes expressões e 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

9. 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);

}

Alocação dinâmica

1. Qual serão as saídas do seguinte programa?

#include <stdio.h>

int main() {

int valor, *p1, idade, *p4, *p5, vetor[3];

float temp, *p2;

char aux, *p3;

char *nome = "Algoritmos";

/* (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);

/* <h> */

vetor[0] = 31;

vetor[1] = 45;

vetor[2] = 27;

p4 = vetor;

idade = *p4;

printf("(h) %d \n", idade);

/* (i) */

p5 = p4 + 1;

idade = *p5;

printf("(i) %d \n", idade);

...

Baixar como (para membros premium)  txt (5.6 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com