Buscar

Prova 1 - Tecnicas de programacao

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

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

Técnicas de Programação Prova 1 1 de novembro de 2013
Nome:
RA:
Informações
1. Qualquer evidência de plágio resultará em nota Zero na DISCIPLINA.
2. Resposta final a lápis eliminará qualquer direito de reconsideração de nota na ques-
tão.
3. A interpretação da questão faz parte da avaliação, quaisquer dúvidas não serão
respondidas pelo professor durante o tempo de prova.
Questões
1. (1 ponto) O centro de uma esfera fica localizado em uma posição no espaço definida
por três variáveis cx, cy, e cz. A esfera também possui um raio r. Defina um registro
(struct) para representar esferas.
2. (1 ponto) Explique para que serve o typedef e forneça um código exemplificando o
uso.
3. (1 ponto) Considere o seguinte trecho de código.
# include <stdio.h>
void troca (int *a, int *b) {
int *t;
*t = *a;
*a = *b;
*b = *t;
}
int main () {
int a = 2;
int b = 3;
troca(&a,&b);
printf ("%d %d\n", a, b);
return 0;
}
RESPONDA:
• Explique porque o código acima está errado e depois forneça uma modificação
correta da função troca.
Técnicas de Programação Prova 1 Página 1 de 2
Nome:
4. (3 pontos) Considere o código abaixo:
1 # include <stdio.h>
2
3 typedef struct formiga Formiga;
4 struct formiga {
5 int id;
6 Formiga *proxima;
7 };
8
9 int main () {
10 int i;
11 Formiga a[5];
12 Formiga *x;
13 /* montando uma fila de formigas */
14 for (i = 0; i < 4; i++) {
15 a[i].id = i + 1;
16 a[i].proxima = a + (i + 1);
17 }
18 (a + i)->id = i + 1;
19 (a + i)->proxima = NULL;
20
21 /* Formigas se reorganizando */
22 x = a + 1;
23 x->proxima = x->proxima->proxima;
24
25 /* Imprimindo a nova fila de formigas */
26 x = a;
27 while(x != NULL) {
28 printf ("%d ", x->id);
29 x = x->proxima;
30 }
31
32 return 0;
33 }
RESPONDA:
• Qual é o tipo da variável a ?
• Qual é o tipo da variável x ?
• O que o programa imprimirá na saída padrão ?
• Desenhe um diagrama representando o estado da memória após a execução da
linha 23.
• A linha 18 pode ser substituída pelo código abaixo (sim/não) ?
a[i].id = i + 1;
Técnicas de Programação Prova 1 Página 2 de 2

Continue navegando