Buscar

Lista-de-Exercícios-de-C

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

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
Você viu 3, do total de 3 páginas

Prévia do material em texto

Lista de Exercícios para o Curso de C.
Esta lista de exercícios é indicada para quem está começando a programar em alguma linguagem de 
programação. O que importa aqui é a lógica em si, e não a linguagem, porém para resolver os 
exercícios você deverá ter conhecimentos de funções, arrays, estruturas condicionais e registros. 
Antes de digitar seu código procure responder à mão, usando papel e caneta. Tente personificar o 
computador, pois dessa forma você terá uma noção exata do que seu código irá exercer, facilitando 
a detecção de possíveis erros.
00 – (Aquecimento) Sem usar nenhuma função auxiliar, faça uma função que receba um número 
inteiro e retorne sua raiz quadrada exata. Logo depois faça outra função, baseada na primeira, que 
retorne a raiz cúbica.
01 – Faça uma função que receba um vetor de 5 inteiros. Sua função terá que colocar todos os 
números do vetor ordenados de forma crescente, ou seja, depois que a função terminar a execução 
x[0] possuirá o menor valor e x[4] terá o maior valor.
02 – Faça uma função que receba uma matriz de inteiros com o tamanho 3x5 e um outro inteiro X. 
Sua função deverá percorrer a matriz até encontrar um valor igual a X, e, caso encontre, deverá 
retornar a soma do valor anterior e posterior à posição em que foi encontrado X. Caso X não esteja 
contido na matriz a função deverá retornar 0.
OBS: Se X for encontrado em matriz[0][0], considere o anterior como 0. Caso seja encontrado em 
matriz[2][2], considere o posterior como 0.
03 – Usando as funções das questões anteriores, ordene cada linha da matriz usando a função da 1ª 
questão e depois chame a função da 2ª questão para retornar a soma do elemento anterior e posterior 
ao elemento X.
04 – Pilhas são estruturas de dados amplamente usadas na informática. Programas feitos em 
linguagem C se comportam de forma semelhante às pilhas em sua execução. O conceito é bastante 
simples, basta imaginar uma pilha de pratos. Numa pilha de pratos você só pode inserir ou retirar o 
prato que está no topo, caso contrário você derrubaria todos os pratos da pilha... Baseado nisso, faça 
um vetor de 10 registros que contenham os dados Nome e Idade. Após criar o vetor de registros, 
faça funções que sejam capazes de empilhar e desempilhar outros registros de mesmo tipo.
OBS: Em ambas as funções faça verificações na quantidade de elementos. Obviamente, se as 10 
posições estiverem ocupadas, só será possível desempilhar, enquanto que se não tiver nenhuma 
posição ocupada só será possível empilhar.
05 – Faça uma função que receba uma matriz 2x3 e outra matriz 3x2, ambas de inteiros. Sua função 
terá que realizar a multiplicação das duas matrizes (tal como ocorre na matemática) e retornar a 
matriz resultante de tamanho 2x2.
Uma “fórmula geral” para a multiplicação de matrizes é dada por:
Sua função fará algo parecido com isso:
06 – Faça uma função que receba uma string e retorne o número exato da quantidade de anagramas 
que a string pode gerar. Se a string tiver mais que 10 caracteres retorne -1, indicando erro.
Anagramas são palavras geradas a partir de um rearranjo das letras da palavra original. Por 
exemplo: XELA é um dos possíveis anagramas da palavra ALEX. Para se calcular a quantidade de 
anagramas basta fazer o fatorial do número de letras totais dividido pela multiplicação dos fatoriais 
das repetições de cada letra.
Exemplo: ALEX tem 24 anagramas, pois 4!/0! = 24/1 = 24
 CASA tem 12 anagramas, pois 4!/2! = 24/2 = 12
 PALAVRA tem 840 anagramas, pois 7!/3! = 5040/6 = 840
 ADICIONAL tem 90720 anagramas, pois 9!/(2!x2!) = 362880/(2x2) = 362880/4 = 90720
07 – Faça uma função recursiva que calcule o enésimo número da sequencia Fibonacci. Para 
calcular o enésimo número basta fazer a soma dos dois números anteriores. 
Por exemplo: Qual o quinto número da sequencia Fibonacci?
 O quinto número é a soma do terceiro número com o quarto número da sequência.
A sequencia tem como primeiro e segundo números o número 1, ou seja, os 10 primeiros números 
da sequência são: 1 1 2 3 5 8 13 21 34 55...
Após fazer a função, coloque os 25 primeiros números em uma pilha. Faça uma adaptação na 
função da questão 4 para isso.
08 – Crie um registro com os seguintes dados: Matriz de 5x5 inteiros, Vetor de 5 inteiros, String de 
5 caracteres. Faça uma função que receba esse registro e que peça ao usuário digitar valores para 
preencher somente a matriz. Faça outra função que receba o registro, e que pegue os maiores 
valores de cada linha e atribua em cada posição do vetor. Faça outra função que receba o mesmo 
registro e que pegue os menores valores de cada linha e atribua em cada caractere da string.
Logo depois faça outra função que exiba na tela os dados do registro de forma organizada na tela.
09 – Faça uma função main que use todas as funções criadas anteriormente. :)
DESAFIO
Você foi contratado para fazer um sistema de uma loja de carros usados. O gerente lhe mandou 
fazer um sistema que controlasse a entrada e saída de carros da loja. Cada carro terá que ter suas 
características salvas para consulta posterior. Além de gerenciar entrada e saída de carros da loja, 
você também terá de fazer um pequeno “caixa” para mostrar os ganhos e as perdas para cada 
transação realizada.
Ou seja, o menu do seu software terá as seguintes opções:
• Cadastrar um novo veículo
Inserir as características (Cor, Ano, Modelo, Marca, Valor, Multas)
• Saída de Veículo
 Dados da transação (Nome do cliente, Endereço do Cliente,Valor pago)
• Saldo do Caixa
 Dados de entrada e saída de dinheiro (Qtde de Vendas, Saldo do Dia, Saldo Geral)
Lembre que seu gerente é louco e pode comprar infinitos carros para deixa-los a venda, então seria 
prudente não haver limites na quantidade de dados que seu programa armazena. E claro, os carros 
não esgotam no final do dia, então você precisa criar uma pequena base de dados para que quando a 
loja abrir no próximo dia não ser preciso recadastrar todos os carros da loja...
Para resolver este desafio você terá que estudar por conta própria os seguintes assuntos:
• Ponteiros
• Alocação Dinâmica
• Entrada e Saída de dados em Arquivo
Boa Sorte :)
Autor: Alex Ferreira
Email: aferreira91@gmail.com
Twitter: http://www.twitter.com/AlexFRT

Outros materiais