Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
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