Você está na página 1de 2

Estrutura de Dados I

Profª. Noeli A. Pimentel Vaz

Atividade Lista 1 - Ponteiros

1 - Qual das seguintes instruções está correta para declarar um apontador?


a) int ptrx;
b) int *ptrx;
c) *int ptrx;
d) *x;

2 - Como atribuir o endereço da variável ch ao apontador indica?


a) indica = ch;
b) ch = *indica
c) *indica = &ch;
d) indica = &ch;

3 - Qual a maneira correta de referenciar a variável ch, assumindo que o endereço de ch


foi atribuído ao apontador indica?
a) *indica;
b) *ch;
c) int *indica;
d) *x;

4 - Na expressão float *ptr_f; o que é do tipo float?


a) A variável ptr_f
b) O endereço de ptr_f
c) A variável apontada por ptr_f
d) O endereço da variável ptr_f;

5 - Assumindo que o endereço da variável vox foi atribuído a um apontador variável


invox, quais das seguintes expressões são verdadeiras?
a) if(vox = = &invox)
b) if(vox = = *invox)
c) if(*vox = = invox)
d) if(&vox = = invox)

6 - Considere a seguinte declaração de variáveis:


int i, j ;
int *p, *q;
Quais das seguintes atribuições são permitidas e explique brevemente o que será
armazenado em cada variável?
a) p = &i;
b) *q = &j;
c) *p = i;
d) q = &p;
e) j = *q;
f) *q = i;

7 - Suponha que os elementos do vetor v são do tipo int e cada int ocupa 8 bytes no
seu computador. Se o endereço de v[0] é 55000, qual o valor da expressão v + 3?
Estrutura de Dados I
Profª. Noeli A. Pimentel Vaz

8 - Elabore um programa que declare 4 variáveis do tipo inteiro e 4 do tipo ponteiro


para inteiro, e faça com que as variáveis ponteiro apontem para as variáveis inteiro.
Coloque comandos que permitam modificar os valores das variáveis inteiras através das
variáveis ponteiro.

9 - Faça um programa onde um vetor de ponteiros tenha cada uma das suas posições
apontando para as equivalentes de um vetor de valores float. A posição 0 do vetor
ponteiro deve apontar para a posicao 0 do vetor float e assim por diante. Realize a
impressão dos elementos do vetor de float através do vetor de ponteiros.
Defina um tamanho para o vetor e funções leitura e impressão do vetor.

10 - Faça uma função que receba um valor inteiro como referência e retorne o resto da
divisão deste número por 10.

11 - Faça as funções necessárias para que os programas abaixo funcionem conforme o


esperado:
#include <stdio.h>

int main ()
{
int a, b, erro;
float c;
scanf (“%d%d”, &a, &b);
c = divide (a, b, &erro);
if (erro)
printf (“Erro: divisão por zero\n”);
else
printf (“%d dividido por %d = %.2f\n”, a, b,c);
return 0;
}

12 - Faça os protótipos (apenas!!) das funções f(), g() e h() utilizadas pela função
main() abaixo:
#include <stdio.h>
int main ()
{
int v[6]={0,10,20,40,50,60}, y;
float x, z;
x = f (10);
g (x, &y);
g (z, &v[4]);
z = h (v[5], v);
... ... ...
}

13 - Elabore um programa que armazene valores aleatórios em um vetor de inteiros de


10 posições e depois, em outro vetor de ponteiros de inteiros de tamanho 10, coloque os
endereços dos valores do vetor de inteiros de forma ordenada crescente, ficando a
primeira posição do vetor de ponteiros com o endereço do menor valor até a última
posição que conterá o endereço do maior valor. Crie funções para as operações
indicadas.

Você também pode gostar