3 KiB
Curso Básico da Linguagem C
Exercícios da aula 2: Dados e instruções
1. Pesquise e responda
- Quais são as finalidades da função
printf
? - Em que cabeçalho da
glibc
ela é declarada? - Quantos argumentos ela recebe?
- Como fazer para que a saída imprima quebras de linha?
- Para que servem os especificadores de formato
%d
,%s
,%c
e%f
?
2. Operações aritméticas
Escreva um programa que, dado um valor inteiro associado à variável num
,
calcule e imprima os resultados das seguintes operações:
num
multiplicado por 15;num
somado a42
;123
menosnum
;- Divisão de
num
por5
; - Resto da divisão de
num
por5
.
Esquema geral da saída do programa:
NUM x 15 = VALOR NUM + 42 = VALOR 123 - NUM = VALOR NUM / 5 = VALOR RESTO DE NUM / 5 = VALOR
3. Números mágicos
O uso de valores literais sem um significado óbvio (números mágicos) é uma prática indesejável, mas pode ser evitada de várias formas. Sendo assim, analise as situações abaixo e proponha uma solução.
Caso 1: Propriedades de círculos
Meu programa tem funções para calcular a área e o perímetro de um círculo cujo raio (um inteiro) é recebido como argumento:
#include ...
float circ_perim(int raio) {
/* Circunferência = 2πr */
return 2 * 3.14 * raio;
}
double circ_area(int raio) {
/* Área = πr² */
return 3.14 * raio * raio;
}
int main(void) { ... }
Caso 2: Multiplicador constante
No meu programa, todas as operações aritméticas envolvem a multiplicação
de um valor por 10
.
#include <stdio.h>
int main(void) {
int num1 = 13;
int num2 = 29;
printf("%d x %d = %d\n", num1, 10, num1 * 10);
printf("%d x %d = %d\n", num1 + num2, 10, (num1 + num2) * 10);
printf("%d x %d = %d\n", num2, 10, num2 * 10);
}
4. Compile, corrija e responda
Dado o programa abaixo (por exemplo, main.c
)…
#include <stdio.h>
int main(void) {
char *fmt = "Circunferência de um círculo de raio %d: %.2f\n";
printf(fmt, r, circ_perim(r));
return 0;
}
float circ_perim(int raio) {
/* Circunferência = 2πr */
return 2 * 3.14 * raio;
}
- Qual foi o erro encontrado na compilação?
- Por que esse erro aconteceu?
- Qual foi a solução adotada?
- A sua solução é a única possível?
- Se não for, cite outras possibilidades.
5. Pesquise e responda
Pesquise, entre as funções da glibc
, aquelas que podem solucionar os problemas
abaixo e demonstre como elas podem ser utilizadas.
- Pausar a execução do programa por 10 segundos.
- Apenas imprimir uma quebra de linha.
- Ler um número inteiro interativamente e atribuí-lo a uma variável.
- Imprimir um número inteiro decimal em base 8 e base 16.
- Terminar a execução do programa com um valor de estado de término.