Buscar

SEMANA 1 ESTRUTURA DE DADOS

Prévia do material em texto

Escreva o que o seguinte programa imprimirá ao ser executado: 
#include <stdio.h> 
 
int main() { 
 char a = 'B'; 
 int x = 20; 
 float y = x/8; 
 float z = 1.0*x/8; 
 printf("a: %c\n", a); 
 printf("x: %i\n", x); 
 printf("y: %f\n", y); 
 printf("z: %f\n", z); 
 return 0; 
} 
Questão 2 
Considere a estrutura DATA: 
typedef struct{ 
char dia[2]; 
char mes[2]; 
char ano[4]; 
}DATA; 
Escreva uma função que recebe uma cópia de uma estrutura do tipo data e 
imprime a data correspondente no formato dia/mês/ano. 
/* Assinatura da função imprimir */ 
void imprimir(DATA copia){ 
Questão 3 
Escreva o que o seguinte programa imprimirá ao ser executado: 
#include <stdio.h> 
 
void embaralhar(int* a, int* b, int c) { 
 int temp = *a; 
 *a = *b + c; 
 c = *b; 
 *b = temp; 
} 
 
int main() { 
 int x = 10; 
 int y = 20; 
 int z = 35; 
 embaralhar(&x,&y,z); 
 printf("x: %i\n", x); 
 printf("y: %i\n", y); 
 printf("z: %i\n", z); 
 return 0; 
} 
Questão 4 
O que será impresso pela execução do seguinte programa? 
#include <stdio.h> 
#include <malloc.h> 
 
int main() { 
 int x = 10; 
 int y = 20; 
 int z = 35; 
 int* a = (int*) malloc(sizeof(int)); 
 int** b = &a; 
 printf("Endereco de x: %p\n", &x); 
 printf("Endereco de y: %p\n", &y); 
 printf("Endereco de z: %p\n", &z); 
 printf("Endereco de a: %p\n", &a); 
 printf("Endereco de b: %p\n", &b); 
 
 printf("Valor de x: %i\n", x); 
 printf("Valor de y: %i\n", y); 
 printf("Valor de z: %i\n", z); 
 printf("Valor de a: %p\n", a); 
 printf("Valor de b: %p\n", b); 
 
 *b = &z; 
 *a = 44; 
 
 printf("Novo valor de x: %i\n", x); 
 printf("Novo valor de y: %i\n", y); 
 printf("Novo valor de z: %i\n", z); 
 printf("Novo valor de a: %p\n", a); 
 printf("Novo valor de b: %p\n", b); 
 return 0; 
} 
Questão 5 
Escreva uma função chamada atualizar, que não possui retorno (void), que terá 
quatro parâmetros de entrada: 
1. um ponteiro/referência para uma estrutura do tipo DATA (ver a seguir), 
2. um inteiro chamado dia, 
3. um inteiro chamado mês, e 
4. um inteiro chamado ano. 
Esta função deve atualizar os campos dia, mês e ano da estrutura referenciada 
pelo primeiro parâmetro da função. 
/* Estrutura DATA */ 
typedef struct 
{ 
 int dia; 
 int mes; 
 int ano; 
} DATA; 
 
/* Assinatura da função atualizar */ 
void atualizar(DATA* pontData, int dia, int mes, int ano) { 
Questão 6 
Dada a estrutura lista linear sequencial vista na videoaula 3, considere que 
trocamos a função de inserção aprendida na videoaula pela função de 
inserção inserirNovo apresentada a seguir. Considere que o usuário tenha 
inicializado sua lista e em seguida inserido os seguintes registros exibirLista: 
primeiro um com chave igual a 10, depois um com chave 20, em seguida um 
registro com chave igual a 30 e, por fim, um registro com chave igual a 40. O que 
será impresso pela função exibirLista (vista na videoaula 3) ao ser chamada depois 
destas quatro inserções terem sido realizadas? 
bool inserirNovo(LISTA* l, REGISTRO reg){ 
 if (l->nroElem >= MAX) return false; 
 l->A[l->nroElem] = l->A[0]; 
 l->A[0] = reg; 
 l->nroElem++; 
 return true; 
}

Continue navegando