Universidade Federal da Grande Dourados

Sistemas de Informação

Laboratório de Programação II

Programa de Monitoria

Lista de Exercícios 1

Exercícios

1. Preencha corretamente as sentenças abaixo:

  1. O operador ____ retorna o local na memória em que seu operando está armazenado.
  2. O operador ____ retorna o valor do objeto ao qual seu operando aponta.
  3. Na chamada de funções com passagem de parâmetros por referência, de uma variável de tipo não-array, deve-se passar o ____ da variável.
  4. Em uma variável ponteiro, o seu valor é o ____ de outra variável.
  5. O único valor de tipo inteiro que pode ser usado para inicializar um ponteiro é o ____.

2. Analise o código abaixo. Quais serão os valores de x, y e z ao final da execução

int x, y, z;
int *ptr;
int **ptr2;

x = 4;
y = 8;
z = 16;

ptr  = &z;
x    = *ptr;
ptr2 = &ptr;
(*ptr)++;
ptr = &y;
*(*ptr2) += *(&x);

3. Qual é o erro do código abaixo?

#include <stdio.h>

int main() {
int x, y;

void *ptr_x;
int  *ptr_y;

ptr_x = &x;
ptr_y = y;

printf("x: %d\n", *ptr_x);
printf("y: %d\n", *ptr_y);

return 0;
}

4. A leitura de uma variavel simples (não-array) com a função scanf necessita do uso do operador '&' para armazenar o conteúdo lido, ou seja, necessita do endereço da variável. Explique porque o operador '&' não é utilizado para ler strings com a função scanf. O código abaixo demonstra um exemplo:

char str[10];
char chr;

scanf(" %s", str);  // Não usa o operador &
scanf(" %s", &chr); // Usa o operador &

5. Crie uma função swap que troca o valor de duas variáveis passadas como referência

6. Escreva um trecho de código para alocar um vetor de inteiros dinamicamente. Também escreva como liberar a memória alocada por esse vetor.

7. Escreva um trecho de código para alocar uma matriz de inteiros dinamicamente. Também escreva como liberar a memória alocada por essa matriz.

8. Escreva uma função que recebe como parâmetro duas strings, A e B, e retorna uma nova string, cujo conteúdo é a concatenação de A com B.
OBS: você poderá usar a biblioteca string.h, mas não poderá usar a função strcat.

9. Escreva uma função que recebe como parâmetro uma string, e retorne-a invertida.

Respostas

Voltar