Lista
Departamento de Engenharia de Computação e Automação
Disciplina: Algoritmos e Logica de Programação
Prof. Gabriel Costa
Lista de Exercicios – Unidade III
1) Responda as seguintes questões:
(a) Explique a diferença entre: p++; (*p)++;
*(p++);
(b) O que quer dizer *(p+10);?
(c) Qual o valor de y no final do programa?
Tente primeiro descobrir e depois verifique no computador o resultado. A seguir, escreva um /* comentario */ em cada comando de atribuição explicando o que ele faz e o valor da variavel a esquerda do ’=’ apos sua execução. int main(){ int y, *p, x; y = 0; p = &y; x = *p; x = 4;
(*p)++;
x--;
(*p) += x; printf ("y = %d\n", y); return(0); }
2. Escreva a função int strend(char *s, char *t) que retorna 1 (um) se a cadeia de caracteres ’t’ ocorrer no final da cadeia ’s’, e 0 (zero) caso contrario.
3. Escreva um programa que declare uma matriz 100x100 de inteiros. Você deve inicializar a matriz com zeros usando ponteiros. Preencha depois a matriz com os numeros de 1 a 10.000 usando ponteiros. 4. Aprendemos, pelo curso, que o valor de uma varivel ou expressãao do tipo vetor é o endereço do elemento zero do vetor. Seja a[] um vetor qualquer, independente de tipo e tamanho, e pa um ponteiro para o mesmo tipo de a[]. Responda V (verdadeiro) ou F (falso), justificando:
( ) Apos a atribuição pa=&a[0]; pa e a possuem valores idênticos, isto é, apontam para o mesmo endereço.
( ) A atribuição pa=&a[0]; pode ser escrita como pa=a;
( ) a[i] pode ser escrito como *(a+i)
( ) &a[i] e a+i são idênticos
( ) a+i é o endereço do i-ésimo elemento do vetor a
( ) pa[i] é idêntico a *(pa+i)
( ) pa=a é uma operação valida
( ) pa++ é uma operação valida
( ) a=pa é uma operação valida
( ) a++ é uma operação valida
5. Escreva a função EDivisivel(int a, int b). A função devera retornar 1 se o resto da divisão de a por b for zero. Caso contrario, a função devera retornar zero.
6. Escreva um programa que leia um vetor de inteiros pelo teclado e