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);