Exercício 1.
| Binária | Octal | Decimal | Hexadecimal |
| 10 000 000 000 | 2 000 | 1024 | 400 |
| 100 100 010 | 442 | 290 | 112 |
| 100 011 011 | 433 | 283 | 11B |
| 110 001 000 | 610 | 392 | 188 |
| 1 001 101 | 115 | 77 | 4D |
Exercício 2.
| Octal | Decimal | Hexadecimal |
| 02000 | 1024 | 0x400 |
| 0442 | 290 | 0x112 |
| 0433 | 283 | 0x11B |
| 0610 | 392 | 0x188 |
| 0115 | 77 | 0x4D |
Exercício 3.
struct musica {
char titulo[80];
double popularidade;
int duracao;
};
int main(void) {
struct musica m1 = { "Born to be wild", 6.2, 182 };
struct musica m2;
sprintf(m2.titulo, "Paranoid");
m2.popularidade = 8.4;
m2.duracao = 173;
printf("%s, %lf, %d:%d\n", m1.titulo, m1.popularidade,
m1.duracao/60, m1.duracao % 60);
printf("%s, %lf, %d:%d\n", m2.titulo, m2.popularidade,
m2.duracao/60, m2.duracao % 60);
}
Exercício 4. O último printf imprime a variável soma declarada na linha 2. Essa variável vale 3 depois do for porque soma é incrementada três vezes. A redeclaração de soma na linha 5 sobrescreve a declaração anterior dentro do segundo for. Dentro do segundo for soma é sempre igual a j e imprimimos:
0 0 0 0 1 1 0 2 2 1 0 0 1 1 1 1 2 2 2 0 0 2 1 1 2 2 2
int i, j;
int soma = 0;
for(i = 0; i < 3; i++) {
soma++;
int soma = 0;
for(j = 0; j < 3; j++) {
printf("%d %d %d\n", i, j, soma);
soma++;
}
}
printf("%d\n", soma);