Buscar

Tvc1-LabII-2012-1.Turma

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando