Você está na página 1de 2

LINGUAGEM DE PROGRAMAO

LISTA DE EXERCCIOS PARA LABORATRIO - Ponteiros


Professor: ANDR PORTUGAL
Data:
Objetivo

Capacitar o aluno no desenvolvimento das noes de ponteiros

Ferramentas/Softwares

Dev C++

Outros recursos

Computador desktop com as ferramentas instaladas

Tipo de Produtos Esperados

Resoluo de exerccios com implementao de cdigos.

Descrio:

O professor dever formular problemas distintos, onde cada problema dever levar o aluno a desenvolver e implementar cdigos de
envolvam ponteiros.

ROTEIRO
RESOLVA OS EXERCCIOS PARA LABORATRIO PROPOSTOS ABAIXO SOBRE PONTEIROS

1) O que so ponteiros?
2) Quais das seguintes instrues so corretas para declarar um ponteiro?
a. int _ptr x;
c. *int ptr;
b. int *ptr;
d. *x
3) Qual a maneira correta de referenciar ch, assumindo que o endereo de ch foi atribudo ao
ponteiro indica?
a. *indica
d. ch
b. int *indica
e. *ch
c. *indic
4) Na expresso float *pont; o que do tipo float
a. a varivel pont
c. a varivel apontada por pont
b. o endereo de pont
d. nenhuma das anteriores
5) Assumindo que o endereo de num foi atribudo a um ponteiro pnum, quais das seguintes
expresses so verdadeiras?
a. num == &pnum
c. pnum == *num
b. num == *pnum
d. pnum == &num
6) Assumindo que queremos ler o valor de x, e o endereo de x foi atribudo a px, a instruo
seguinte correta?Por que?
scanf(%d,*px);
7) Qual a instruo que deve ser adicionada ao programa seguinte para que ele trabalhe
corretamente?
Main(){
int j, *pj;
*pj = 3;
}
8) Assumindo que o endereo da varivel x foi atribudo a um ponteiro px, escreva uma expresso
que no usa x e divida por 5;
9) Qual o valor das seguintes expresses:
int i=3,j=5;
int *p = &i, *q=&j;
a) p == &I
b) *p - *q
10) Qual sera a sada deste programa ?
main() {

c) **&p

int i = 5, *p = &i;
printf( %u %d %d %d %d \n,p , *p+2, **&p, 3**p, **&p+4);
}
11) Se i e j so variveis inteiras e p e q so ponteiros para inteiros, quais das seguintes
expresses de atribuio so ilegais?
a) p = &i
e) i = *&*&j
b) *q = &j
f) q = &p
c) p = &*&i
g) i = (*p)++ + *q
d) i = (*&)j
12) Seja a seguinte sequencia de instrues de um programa em C:
int *pti;
int i = 10;
pti = &i;
Qual afirmativa falsa;
a) pti armazena o endereo de i
b) *pti igual a 10
c) Ao se executar *pti=20; i passar a ter o valor 20
d) Ao se alterar o valor de i, *pti ser modificado
e) Pti igual a 10
13) Considerando as variveis e ponteiros definidos abaixo; quais so as atribuies permitidas ?
int x, *ptx, **pp;
float a, *pta, **pf;
a)
b)
c)
d)

x = 100
* pta = &a
ptx = &a
*pf = &a

e) pp = &pta
f) **pf = 7.9
g) *ptx = 20
h) ptx = &x

i) pp = &x
j) pf = &pta

14) Considerando as variveis e ponteiros definidos abaixo; quais so as atribuies permitidas ?


int i, *pi, **ppi;
float f, *pf, **ppf;
a)
b)
c)
d)

i=f
pf = &i
*pf = 5.9
*ppi = &pi

e) *pf = 10
i) ppf = &pf
f) f = i
j) **ppi = 100
g) pi = &f
h) *pi = 7.3

15) Dadas as declaraes abaixo; qual o valor dos itens


int x=10, *px = &x, **ppx = &px;
float y= 5.9, *py = &y, **ppy = &py;
x

px

py

ppy

ppx

FFA0

FFB4

FFF0

FFC6

FFA6

FFD4

a)
b)
c)
d)
e)
f)

X=
*py =
Px =
&y =
*px =
Y=

g) *ppx =
h) py =
i) &x =
j) py++ =
k) *px-- =
l) **ppy =

m) &ppy =
n) *&px =
o) **ppx++ =
p) px++ =
q) &ppx =

Você também pode gostar