Vous êtes sur la page 1sur 5

INSTITUTO FEDERAL DE EDUCAO, TECNOLOGIA E CINCIA DE SANTA CATARINA

DEPARTAMENTO ACADMICO DE ELETRNICA


CURSO TCNICO INTEGRADO DE ELETRNICA

Exerccios de Linguagem C
Disciplina:
Semestre:
Professor:

Linguagem C
2010/2
Leandro Schwarz

Escreva um programa que:

Variveis e Operaes
1.
2.
3.
4.
5.
6.
7.

Solicita dois nmeros e calcula o valor mdio.


Solicita a base e altura de um retngulo e calcula sua rea.
Solicita o raio de um crculo e calcula sua rea;
Solicita o raio e a altura de um cilindro circular e imprime seu volume.
Solicita o raio e a altura de um cilindro circular e imprime sua rea lateral.
Solicita o nmero de cabeas e patas de animais e retorna o nmero de galinhas e de vacas.
Solicita o valor esperado de um prmio e o nmero de ganhadores e retorna o valor que cada
um deve ganhar.
8. Solicita o valor esperado de um prmio e o quanto cada um dos dois jogadores apostou de
dinheiro e retorna o prmio de cada um proporcional ao valor apostado por ele.
9. Solicita o nmero de horas trabalhadas por um programador e o valor por hora trabalhada,
retornando o valor a ser paga pelo cliente e o valor do imposto recolhido (8%).
10. Solicita dois catetos e calcula a hipotenusa.
11. Solicita o pressionamento de uma tecla do teclado (getch()) e retorna seu cdigo numrico.
12. Solicite um par ordenado retangular (x, y) e calcula o par equivalente polar r x 2 y 2 e

y
x

arctg .

Execuo Condicional
13. Solicita um nmero e retorna se ele positivo ou negativo;
14. Solicita um nmero e retorna se ele inteiro ou fracionrio.
15. Solicita um nmero e retorna se ele par ou mpar.
16. Solicita trs nmeros e informa qual o maior, o menor e o valor do meio.
17. Solicita um ano e retorna se o ano bissexto ou no. Um ano bissexto se for divisvel por
4, mas no por 100 ou se for divisvel por 400.
18. Solicita o pressionamento de uma tecla do teclado (getch()) e retorna se uma letra, um
nmero ou um caractere de controle.
19. Solicita uma letra do teclado (getch()) e a imprime em maisculo (toupper()) se for
minscula e em minscula (tolower()) se for maiscula.

Execuo Repetitiva
20. Escreve os N primeiros nmeros mpares.
21. Escreve os N primeiros nmeros pares.
22. Solicita um nmero e calcula o seu fatorial.
23. Solicite continuamente (while em looping infinito) um nmero. Se o nmero estiver entre 0
e 14, escreva-o na tela Se o usurio digitar -1, o programa se encerra.

INSTITUTO FEDERAL DE EDUCAO, TECNOLOGIA E CINCIA DE SANTA CATARINA


DEPARTAMENTO ACADMICO DE ELETRNICA
CURSO TCNICO INTEGRADO DE ELETRNICA

24. Solicite continuamente (for em looping infinito) um nmero. Se o nmero estiver entre 0 e
14, escreva-o na tela Se o usurio digitar -1, o programa se encerra.
25. Solicite continuamente (do while em looping infinito) um nmero. Se o nmero estiver entre
0 e 14, escreva-o na tela Se o usurio digitar -1, o programa se encerra.
26. Solicite N e escreva os N primeiros nmeros primos.
27. Solicite N e escreva os N primeiros termos da seqncia de Fibonacci. A seqncia
Fibonacci comea com 1 e 1 e o nmero atual obtido pela soma dos dois nmeros
anteriores. Ex: 1, 1, 2, 3, 5, 8, 13, 21, etc.
28. Solicite N e escreva os N primeiros termos da seqncia de Padovan. A seqncia Padovan
comea com 1, 1 e 1 e o nmero atual obtido pela soma dos dois nmeros anteriores ao
anterior ao atual. Ex: 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16.
29. Solicite N e escreva os N primeiro anos bissextos. Ateno no existe ano 0.
30. Solicite N e escreva os N prximos anos bissextos.
31. Solicite N e gere N nmeros pseudo-aleatrios (randomize() e rand()).
32. Solicite N e calcule os N primeiros termos de uma progresso aritmtica de razo R, cujo
primeiro termo A, sendo an a1 n 1 r .
33. Gere os 300 primeiros termos da funo

2 x 2
2 x
,
f x 4 sen
3 cos
7
13

utilizando x de 0 a 299.
34. Gere um nmero pseudo-aleatrio (randomize() e rand()) e solicite um nmero
continuamente ao usurio at que este acerte o nmero. A cada tentativa o programa deve
informa se o nmero maior ou menor que o digitado.

Alocao Esttica
35. Gere um vetor esttico com 200 nmeros pseudo-aleatrios (randomize() e rand()), calcule a
1 N 1
1 N 1
2
mdia x x j , a varincia 2
x j x
e o desvio padro
N j 0
N 1 j 0
1 N 1
2
x j x .
N 1 j 0
36. Solicite ao usurio 10 nmeros entre -5000 e 5000. Ao final, o software escreve todos os
nmeros na ordem em que foram passados e mostra o menor e o maior.
37. Solicita 5 notas de 4 alunos. O programa calcula as mdias individuais e a mdia da turma
em cada prova, e as apresenta, juntamente com as notas dos alunos na forma de uma matriz
de dados. Utilize vetores estticos bidimensionais.
38. Solicita uma matriz 4x2 e retorna a matriz transposta.
39. Solicita uma letra ao usurio e conta o nmero de aparies desta letra na frase Lembre-se
que uma string um vetor de caracteres unidimensional.
40. Solicita duas letras diferentes ao usurio e substitui todas as ocorrncias da primeira letra
pela segunda letra na frase Lembre-se que uma string um vetor de caracteres
unidimensional.
41. Solicita uma frase ao usurio e substitui todas as letras minsculas por maisculas. Utilize a
funo strlen().

Alocao Dinmica
42. Solicita a quantidade de nmeros (N), aloca memria e armazena os N primeiros nmeros
mpares. Imprime todos em ordem inversa ao final.

INSTITUTO FEDERAL DE EDUCAO, TECNOLOGIA E CINCIA DE SANTA CATARINA


DEPARTAMENTO ACADMICO DE ELETRNICA
CURSO TCNICO INTEGRADO DE ELETRNICA

43. Solicita a quantidade de nmeros (N), aloca memria e armazena os N primeiros nmeros
pares. Imprime todos em ordem inversa ao final.
44. Solicita a quantidade de nmeros (N), aloca memria e armazena os N primeiros termos da
seqncia de Fibonacci. Imprime todos em ordem inversa ao final.
45. Solicita a quantidade de nmeros (N), aloca memria e armazena os N primeiros termos da
seqncia de Padovan. Imprime todos em ordem inversa ao final.
46. Solicita a quantidade de nmeros (N), aloca memria e gera os N nmeros pseudo-aleatrios
(randomize() e rand()).
47. Solicita a quantidade de nmeros (N), aloca memria e gera os N primeiros termos da
2 x2
2 x
, com x iniciando em 0.

3
cos
funo f x 4 sen

13
7
48. Solicita a quantidade de nmeros (N), aloca memria e gera N nmeros pseudo-aleatrios
(randomize() e rand()), calcule a mdia, a varincia e o desvio padro.
49. Solicita o nmero de alunos e de provas de uma turma, aloca memria e solicita os dados. O
programa calcula as mdias individuais e a mdia da turma em cada prova, e as apresenta,
juntamente com as notas dos alunos na forma de uma matriz de dados. Utilize vetores
dinmicos bidimensionais.
50. Solicita o tamanho de uma matriz bidimensional, aloca a memria, solicita os dados e
retorna a matriz transposta.

Funes
51. Crie uma funo como escopo int EhPar(int numero) que retorna 1 se o nmero for
par ou 0 se ele for mpar.
52. Crie uma funo como escopo int MaiorMenor(int numero1, int numero2)
que retorna 1 se o nmero1 for maior que o numero2, -1 se for menor ou 0 se for igual.
53. Crie uma funo como escopo int EhPrimo(int numero) que retorna 1 se o nmero
for primo ou 0 se no for. Verifique se o nmero positivo maior que 1 dentro da funo.
54. Crie uma funo como escopo int AnoBissexto(int ano) que retorna se o ano
passado para a funo bissexto.
55. Crie uma funo como escopo long int Fatorial(int numero) que retorna o
fatorial do nmero passado. Verifique se o nmero positivo dentro da funo. Lembre-se
que 0! = 1! = 1.
56. Crie uma funo como escopo long int Fatorial(int numero) que retorna o
fatorial do nmero passado. Verifique se o nmero positivo dentro da funo. Lembre-se
que 0! = 1! = 1. Utilize funes recursivas.

Ponteiros
57. Crie uma funo com o escopo float media(float *dados) e retorne a mdia do
vetor de dados passado.
58. Crie uma funo com o escopo float variancia(float *dados) e retorne a
varincia do vetor de dados passado. Utilize a funo media(float *dados) j criada
no item anterior.
59. Crie uma funo com o escopo float desviopadrao(float *dados) e retorne o
desvio
padro
do
vetor
de
dados
passado.
Utilize
a
funo
variancia(float *dados) j criada no item anterior.
60. Crie uma funo com o escopo int contaletra(char *texto, char letra)
que retorna o nmero de vezes que a letra aparece na string passada.

INSTITUTO FEDERAL DE EDUCAO, TECNOLOGIA E CINCIA DE SANTA CATARINA


DEPARTAMENTO ACADMICO DE ELETRNICA
CURSO TCNICO INTEGRADO DE ELETRNICA

61. Crie uma funo com o escopo char * caixaalta(char *texto) que recebe uma
string e a converte em maiscula.
62. Crie uma funo com o escopo char * caixabaixa(char *texto) que recebe
uma string e a converte em minscula.
63. Crie uma funo com o escopo char *trocaletra(char *texto,
char letra1, char letra2) que troca todas as ocorrncias da letra1 pela letra2 na
string passada.

Manipulao de Arquivos
64. Modifique o programa do item 42 para gravar os dados gerados num arquivo.
65. Modifique o programa do item 43 para gravar os dados gerados num arquivo.
66. Modifique o programa do item 44 para gravar os dados gerados num arquivo.
67. Modifique o programa do item 45 para gravar os dados gerados num arquivo.
68. Modifique o programa do item 46 para gravar os dados gerados num arquivo.
69. Modifique o programa do item 47 para gravar os dados gerados num arquivo.
70. Modifique o programa do item 50 para gravar os dados gerados num arquivo.
71. Leia os dados gerados pelo item 66, 67, 68 ou 69 e calcule a media, a varincia e o desvio
padro. Utilize as funes j criadas.
72. Leia os dados gerados pelo item 69 e calcule a integral numrica atravs do mtodo dos
retngulos

f x dx f xi xi xi 1 .
i 1

73. Leia os dados gerados pelo item 69 e calcule a integral numrica atravs do mtodo
N
N
f xi f xi 1
trapezoidal f x dx
xi xi 1 .
0
2
i 1

Ordenao de Dados
74. Crie uma funo com o escopo float *ordenabolha(float *dados,
int ordem) que ordena os dados em ordem crescente se ordem for 1 ou decrescente se
ordem for -1. Ordene pelo, mtodo da bolha.
75. Crie uma funo com o escopo float *ordenaselecao(float *dados,
int ordem) que ordena os dados em ordem crescente se ordem for 1 ou decrescente se
ordem for -1. Ordene pelo, mtodo da seleo.
76. Crie uma funo com o escopo float *ordenainsercao(float *dados,
int ordem) que ordena os dados em ordem crescente se ordem for 1 ou decrescente se
ordem for -1. Ordene pelo, mtodo da insero.

Encriptao e Decriptao de Dados


77. Leia o texto de um arquivo e o salva encriptado em outro arquivo pelo mtodo da cifragem
por substituio.
78. Leia o texto de um arquivo e o salva encriptado em outro arquivo pelo mtodo da cifragem
por transposio.
79. Leia o texto de um arquivo e o salva encriptado em outro arquivo pelo mtodo da cifragem
por manipulao de bits, usando XOR com uma chave de 8 bits fornecida pelo usurio.
80. Leia o texto do arquivo gerado no item 77 e o decriptado em outro arquivo.
81. Leia o texto do arquivo gerado no item 78 e o decriptado em outro arquivo.
82. Leia o texto do arquivo gerado no item 79 e o decriptado em outro arquivo.

INSTITUTO FEDERAL DE EDUCAO, TECNOLOGIA E CINCIA DE SANTA CATARINA


DEPARTAMENTO ACADMICO DE ELETRNICA
CURSO TCNICO INTEGRADO DE ELETRNICA

Linha de Comando
83. Misture os programas dos itens 77 e 80 e crie um programa que encripta ou decripta um
arquivo de texto pela linha de comando.
84. Misture os programas dos itens 78 e 81 e crie um programa que encripta ou decripta um
arquivo de texto pela linha de comando.
85. Misture os programas dos itens 79 e 82 e crie um programa que encripta ou decripta um
arquivo de texto pela linha de comando.

Estrutura de Dados e Lista Encadeada


86. Solicita nmeros entre -5000 e 5000 continuamente para o usurio at que este digite um
nmero menor que -5000 ou maior que 5000. A cada nmero digitado, o programa os
acrescenta em uma lista encadeada. Quando um valor de sada digitado, o programa grava
a lista em um arquivo.
87. Solicita nmeros entre -5000 e 5000 continuamente para o usurio at que este digite um
nmero menor que -5000 ou maior que 5000. A cada nmero digitado, o programa os
ordena de forma crescente em uma lista duplamente encadeada. Quando um valor de sada
digitado, o programa grava a lista em um arquivo.

Vous aimerez peut-être aussi