Logo Passei Direto
Buscar

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina