Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI CAMPUS SENADOR HELVÍDIO NUNES DE BARROS – CSHNB CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO Exercícios Propostos na disciplina Estrutura de Dados I 1) (UFES) Qual o valor de y no final do programa? Tente primeiro descobrir e depois verifique no computador o resultado. A seguir, escreva um /* comentário */ em cada comando de atribuição explicando o que ele faz e o valor da variável à esquerda do '=' após sua execução. 2) (UFJF) Escreva uma função que recebe como parâmetro um vetor de inteiros v, o número de seus elementos N e ponteiros para variáveis nas quais devem ser armazenados os valores máximo e mínimo do vetor. Sua assinatura deve ser: void maximoMinimo(int *v, int N, int *maximo, int *minimo); 3) (UDESC) O que faz o seguinte programa quando executado? 4) (UFPR) Crie um programa que declare duas variáveis (inteiro e real) atribua valores para elas e crie dois ponteiros, cada um apontando para uma destas variáveis. Mostre na tela: O valor e o endereço de memória das variáveis, o valor do ponteiro, o endereço do ponteiro e o valor apontado pelo ponteiro. Qual destes valores são iguais? Justifique. 5) (USP) O que faz a seguinte função? void imprime (char *v, int n) { char *c; for(c = v; c < v + n; v++) printf( "%c", *c); } 6)(UFJF) Escreva uma função que recebe uma string de caracteres e uma letra e devolva um vetor de inteiros contendo as posições (índices no vetor da string) onde a letra foi encontrada e um inteiro contendo o tamanho do vetor criado(total de letras iguais encontradas). Utilize o retorno de um vetor para retornar os índices e um ponteiro para guardar o tamanho do vetor. 7)(UFES) Diga quais expressões abaixo são válidas ou não e justifique. Considere as declarações. int vetor[10]; int *ponteiro; a)vetor = vetor + 2; b)vetor ++; c) vetor = ponteiro; d)ponteiro = vetor; e)ponteiro = vetor+2; 8)(UDESC) Seja vet um vetor de 4 elementos: TIPO vet[4]. Supor que depois declaração, vet esteja armazenando no endereço de memória 4092( ou seja, o endereço de vet[0]). Supor também que na máquina usada uma variável do tipo char ocupa 1 byte, do tipo int ocupa 2 bytes, do tipo float ocupa 4 bytes e do tipo double ocupa 8 bytes. Qual o valor de vet+1, vet+2 e vet+3 se: a) vet for declarado como char? b) vet for declarado como int? c) vet for declarado como float? d) vet for declarado como double? 9) (UFPR) Crie uma struct para armazenar os dados (nome, idade, posição, numero_camisa) dos jogadores de vôlei de um time. Crie duas estruturas para armazenar os jogadores principais e os reservas. Desenvolva um programa que o usuário consiga entrar com os jogadores principais(seis) e reservas(4) e mostre-os na tela. Para Facilitar a entrada de dados, utilize um menu. 10) (UDESC) Suponha a declaração: int mat[4], *p, x; Quais expressões são válidas? Justifique: a) p = mat +1; b) p = mat++; c) p = ++mat; d) x = (*mat)++; 11)(USP) Um ponteiro pode ser usado para dizer a uma função onde ela deve depositar o resultado de seus cálculos. Escreva uma função hm que converta minutos em horas-e-minutos. A função recebe um inteiro mnts e os endereços de duas variáveis inteiras, digamos h e m, e atribui valores a essas variáveis de modo que m seja menor que 60 e que 60*h + m seja igual a mnts. Escreva também uma função main que use a função hm. 12)(UFES) Explique o que faz o programa abaixo: 13) Faça um programa, utilizando ponteiros, para ordenar os valores de um vetor de inteiros e imprima o resultado na tela. 14) Explique conceitualmente e exemplifique as notações e símbolos reservados da linguagem C na manipulação de vetores e ponteiros, explorando os conhecimentos assimilados nas respostas das questões anteriores. 15) Discorra sobre as vantagens e desvantagens da utilização, em algoritmos de estruturas de dados, de ponteiros e vetores na resolução de problemas computacionais?
Compartilhar