Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DE JUIZ DE FORA INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO 1º TVC de Laboratório de Programação II – 14/05/2012 ALUNO (A) __________________________________________________________________________ Turma:______ ATENÇÃO: A prova deve ser feita na linguagem C. 1) Dado o programa abaixo, indique o que será impresso: (30) int main() { int a = 1, b = 2, c = 3, *v, *px, *py, *pz; px = &a; py = &b; a++; *py = c; v = (int*) malloc(3 * sizeof(int)); v[2] = 10; pz = v; *pz = b; *(pz+1) = *px; pz = py; printf(">> Teste (1) << \n"); printf("A: %d, B: %d, C: %d\n", a, b, c); printf("V: %d, %d, %d\n", v[0],v[1],v[2]); a = *pz * v[2]; v[0] = *px + *py; v[1] = *py; *(v+2) = *pz; (*py)--; (*(v+1)) = c % (*px); printf(">> Teste (2) << \n"); printf("A: %d, B: %d, C: %d\n", a, b, c); printf("V: %d, %d, %d\n",v[0],v[1],v[2]); free(v); return 0; } 2) Considerando as definições abaixo de uma matriz M (m x n) de elementos reais onde somente os elementos acima da diagonal principal (sem incluir a diagonal) são diferentes de zero, desenvolver as funções cria_matriz (cria uma matriz dadas as quantidades de linhas e colunas) e consulta (retorna o valor contido na posição relativa aos índices i e j da matriz). M = 0.0 m0,1 m0,2 ... m0,n-1 0.0 0.0 m1,2 ... m1,n-1 0.0 0.0 0.0 ... m2,n-1 ... ... ... ... ... 0.0 0.0 0.0 ... 0.0 struct matrizETS { int m, n; float *v; }; typedef struct matrizETS MatrizETS; //TAD Matriz ETS a) MatrizETS* cria_matriz(int m, int n); (15) b) float consulta(MatrizETS *mat, int i, int j); (15) 3) Abaixo encontram-se as definições dos TADs ListaEnc e ListaCont, que implementa uma lista simplesmente encadeada e uma lista contígua, respectivamente. Desenvolver as funções conta (retorna o total de elementos na lista), buscaUltimo (retorna o índice da última ocorrência de val) e converte (cria uma lista contígua contendo todos os elementos da lista encadeada). struct listaEnc { int info; struct lista *prox; }; struct listaCont { int n, m; int *x; }; typedef struct listaEnc ListaEnc; //TAD Lista Encadeada typedef struct listaCont ListaCont; //TAD Lista Contígua a) int conta(ListaEnc* l); (10) b) int buscaUltimo(ListaEnc *l, int val); (15) c) ListaCont* converte(ListaEnc *l); (15) a b c v[0] v[1] v[2] Teste (1) Teste (2) m
Compartilhar