Escolar Documentos
Profissional Documentos
Cultura Documentos
13. Fazer um programa para receber dois nmeros inteiros do usurio e mostrar o
seu MMC (mnimo mltiplo comum).
14. Dada a afirmao: A tem o dobro da idade que B tinha quando A tinha a idade
que B tem. Quando B tiver a idade de A, somaro 81 anos.. Fazer um programa
para calcular as idades de A e B no mtodo fora bruta.
15. Fazer um programa para medir os reflexos do usurio. O programa deve:
a. Mostrar a palavra Saque aps um tempo aleatrio
b. Contar o tempo (em qualquer unidade) at que o usurio digite uma tecla
e mostrar esse tempo.
c. Dicas: random() e kbhit().
16. Fazer um programa para mostrar a soma de todos os nmeros 4 do domin.
17. Fazer um programa no qual o usurio vai entrando sucessivamente com valores
positivos. Quando o usurio entrar com um valor negativo o programa pra de
pedir valores e calcula a mdia dos valores j fornecidos.
18. Fazer um programa para receber dois nmeros do tipo unsigned int do usurio e
determinar se um nmero permutao do outro ou no. Ex: 431 permutao
de 143, 42 permutao de 204, 1211 permutao de 1112, etc.
19. Fazer um programa que sorteie um nmero de 0 a 100 e que permita que o
usurio (sem conhecer o nmero sorteado) tente acertar. Caso no acerte, o
programa deve imprimir uma mensagem informando se o nmero sorteado
maior ou menor que a tentativa feita. Ao acertar o nmero, o programa deve
imprimir a quantidade de tentativas feitas.
20. Escreva um programa que calcule o salrio semanal de um trabalhador. As
entradas so o nmero de horas trabalhadas na semana e o valor da hora. At 40
h/semana no se acrescenta nenhum adicional. Acima de 40h e at 60h h um
bnus de 50% para essas horas. Acima de 60h h um bnus de 100% para essas
horas.
21. Fazer um programa para encontrar todos os pares de nmeros amigveis entre 1
e 100000. Um par de nmeros amigvel quando cada um deles igual soma
dos divisores do outro.
22. Faa um programa que sorteie um nmero aleatrio entre 0 e 500 e pergunte ao
usurio qual o "nmero mgico". O programa dever indicar se a tentativa
efetuada pelo usurio maior ou menor que o nmero mgico e contar o nmero
de tentativas. Quando o usurio conseguir acertar o nmero o programa dever
classicar o usurio como:
a. De 1 a 3 tentativas: muito sortudo
b. De 4 a 6 tentativas: sortudo
c. De 7 a 10 tentativas: normal
d. > 10 tentativas: tente novamente
23. Faa um programa que receba do usurio o nmero de lados e o tamanho dos
lados de um polgono regular e imprima o valor da rea do polgono. O
programa deve utilizar uma estrutura switch-case para decidir que frmula de
clculo utilizar, de acordo com o nmero de lados do polgono. Se o nmero de
lados for diferente de 3, 4 ou 6 o programa deve informar: no sei calcular a
rea. reas:
a. Tringulo: A = L*L*1.73/4
b. Quadrado: A = L*L
c. Hexgono: A = 6*L*L*1.73/4;
24. Um pecuarista possui uma determinada quantia de bois, que possuem um
identificador numrico (de 1 a n) cada um. Faa um programa que:
a. receba o peso de cada boi, um por vez, e o armazene em um vetor. Se o
peso digitado for 0 significa que no h mais bois a serem digitados;
b. mostre a lista de todos os bois com seus identificadores e tambm os
identificadores do boi mais gordo e do boi mais magro. Se houver dois
ou mais bois mais gordos ou mais magros mostrar o de menor
identificador;
c. Faa o mesmo programa considerando que o nmero de bois fixo e
igual a dez.
25. Escrever um programa para ler um nmero inteiro do usurio e exibir o maior
nmero primo que seja menor do que o nmero digitado.
26. Fazer um programa para exibir os n primeiros mltiplos simultneos de dois
nmeros dados.
Aula 4 Funes
27. Implementar a funo RAIZQUADRADA. Esta funo deve:
a. Receber um nmero do tipo float como parmetro.
b. Retornar a raiz quadrada do nmero recebido, de tal maneira que esta
raiz, quando elevada ao quadrado, apresente um erro mximo de 0.01%
em relao ao valor do parmetro.
28. Implementar a funo INVERTE que recebe um nmero unsigned int como
parmetro e retorna este nmero escrito ao contrrio. Ex: 431 <-> 134.
29. Implementar a funo doubl POWER (double base, doubl expoente), que
retorna o valor de base elevado a expoente. Dicas:
a.
b.
c.
d.
e.
f.
30. Fazer uma funo que recebe um ms e um ano como parmetros e retorna o
nmero de dias daquele ms daquele ano. Dica: um ano bissexto quando
mltiplo de 4 e no mltiplo de 100, ou tambm quando mltiplo de 400.
31. Faa uma funo que recebe, por parmetro, a hora de inicio e a hora de trmino
de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. A
funo deve retornar, a durao do jogo em minutos, considerando que o tempo
mximo de durao de um jogo de 24 horas e que o jogo pode comear em um
dia e terminar no outro.
Aula 5 Recursividade
32. Escreva a funo para clculo do N-simo termo da srie de Fibonacci utilizando
recursividade.
33. Implementar a funo EXP com as seguintes caractersticas:
a. Recebe um valor de base e um valor de expoente como parmetros do
tipo unsigned int.
b. Recebe o endereo de uma varivel, do tipo unsigned int, em cujo
contedo ser armazenado o resultado de baseexpoente.
c. Retorna 1 se foi bem sucedida e 0 se a exponenciao no pde ser
calculada devido a estouro.
d. Utiliza a caracterstica recursiva da exponenciao:
i. Baseexp = base.baseexp-1 , exp > 0
ii. Baseexp = 1, exp ==0
34. Considere uma partida de futebol entre duas equipes A x B, cujo placar final m
x n, em que m e n so nmeros de gols marcados por A e B, respectivamente.
Escreva um algoritmo recursivo que imprima todas as possveis sucesses de
gols marcados. Por exemplo, para um placar final de 3 x 1, as possveis
sucesses de gols so AAAB, AABA, ABAA e BAAA.
35. Torre de Hani: considerando 3 torres, o objetivo transferir 3 discos que esto
na torre A para a torre C, usando uma torre B como auxiliar. Somente o ltimo
disco de cima de uma pilha pode ser deslocado para outra, e um disco maior
nunca pode ser colocado sobre um menor. Implementar uma funo recursiva
que mostra a seqncia de movimentos para resolver o problema da Torre de
Hani.
Aula 6 Ponteiros
36. Exerccio 33.
37. Fazer uma funo FATORES que:
a. Recebe 3 parmetros: um vetor de inteiros, um nmero inteiro n
passado por valor e outro nmero x passado como ponteiro.
b. Retorna um nmero inteiro.
c. Decompe o nmero n em fatores primos e armazena-os nas
posies do vetor. O contedo de x deve receber o nmero de fatores
primos encontrados. Caso o nmero de fatores encontrados seja
maior que 10, a funo deve retornar 1, do contrrio deve retornar 0.
38. Fazer uma funo para:
a. Receber dois ponteiros para char (char*) como parmetro e um
nmero representando uma certa quantidade de caracteres.
b. procurar, no vetor apontado pelo parmetro 1, o primeiro caracter de
espao ( ) ou o fim de vetor (representado pela quantidade
fornecida no parmetro 3).
c. copiar os caracteres anteriores ao espao no vetor indicado pelo
segundo parmetro.
d. retornar o nmero de caracteres copiados.
39. Fazer um programa para:
a. Receber uma frase do usurio, caracter a caracter usando getch() e
armazenando no vetor (mx. 30 caracteres). Quando o usurio digita
enter (\r) a recepo finalizada.
b. mostrar cada palavra da frase em uma linha separada, utilizando a
funo do exerccio 3.
40. Fazer um programa para:
a. declarar variveis a, b, c, d do tipo int.
b. declarar variveis e, f, g, h do tipo float.
c. declarar vetor v de 10 elementos do tipo char.
d. declarar varivel x do tipo int.
e. criar um ponteiro apontando para o endereo de a.
f. incrementar o ponteiro, mostrando o contedo do endereo apontado
(em forma de nmero). Caso o endereo coincida com o endereo de
alguma outra varivel, informar o fato.
41. Fazer uma funo com as seguintes caractersticas:
a. recebe dois nmeros inteiros do usurio.
b. retorna 1 se os nmeros so iguais, 0 se so diferentes e 1 se a soma
ou o produto estoura a faixa dos inteiros. Alm disso, retorna a soma
e o produto dos dois nmeros.
Aula 7 Vetores
45. Faa um programa que dado o vetor unidimensional [2; 4; 35; 50; 23; 17; 9; 12;
27; 5] retorne:
a. maior valor
b. mdia dos valores
c. os valores dispostos em ordem crescente
d. sub conjunto de valores primos que est contido no vetor
46. Faa um programa que:
a. leia 7 valores inteiros e os armazene em um vetor. Listar o vetor com
as referidas posies de armazenamento de cada valor.
b. oferea uma funo de pesquisa onde dado um valor inteiro qualquer
de entrada retornar a posio deste valor dentro do vetor, e caso este
valor no esteja presente no vetor retornar 1.
c. oferea uma funo que troque os valores contido no vetor pela
seguinte poltica: cada elemento i dentro do vetor ser substitudo
pela soma de todos os (i-1) elementos mais o elemento i. Por
exemplo, dado um vetor [1; 2; 3; 4; 5] aps a aplicao da funo
3
0
0
0
1
0
0
0
0
1
0
0
0
3
6
5
5
0
0
1
4
1
6
0
4
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
2
0
6
0
1
1
1
0
1
0
0
1
0
1
0
6
1
00
15
30
05
12
2
15
00
10
17
28
3
30
10
00
03
11
4
05
17
03
00
80
5
12
28
11
80
00
Aula 8 Strings
56. Faa um programa que dado um nome completo, retorne a abreviatura deste
nome. No se devem abreviar as preposies como: do, de, etc. A abreviatura
deve vir separada por pontos. Ex: Paulo Jose de Almeida Prado. Abreviatura:
P.J.A.P.
57. Faa um programa que dado 2 palavras, determine:
a. Se as palavras so iguais;
b. Caso as palavras sejam diferentes, qual delas tem maior comprimento
(no esquecer a possibilidade de existirem palavras diferentes de mesmo
tamanho);
c. Verifique se a segunda palavra uma sub string da primeira:
Exemplo: Palavra 1= casamento
Palavra 2 = casa
58. Faa um programa onde o usurio digita 3 informaes a respeito de uma
pessoa: Nome, endereo e telefone. Concatene essas trs informaes em uma
nica string e faa uma contagem de quantas letras do alfabeto esto presentes
nesta string (considerando as redundncias) e tambm de dgitos numricos. Os
espaos e os caracteres de pontuao devem ser ignorados(as funes de
contagem j fazem isso).
Dica: use as funes int isalpha(char cr) e int isdigit(char cr).
Exemplo:
Nome: Ana Claudia
Endereo: Rui Barbosa, 234
Tel: 234-0912
Resultado:
Quantidade de letras pertencentes ao alfabeto = 20.
Quantidade de dgitos numricos = 10
59. Fazer um programa para:
a. Receber uma string de no mximo 100 caracteres
b. Receber uma segunda string e contar quantas vezes a segunda string
ocorre dentro da primeira.
60. Fazer um programa para:
a. Receber uma string do usurio.
b. Contar quantos ditongos ou hiatos existem na string
c. Contar quantas duplas de letras repetidas existem na string.
61. Fazer um programa para cadastro e dilogo de login. O programa deve:
a. Cadastrar um nome de usurio via teclado. O nome de usurio tem, no
mximo, 8 caracteres, sendo vlidos somente os caracteres numricos e
as letras maisculas ou minsculas. Somente os caracteres vlidos devem
ser exibidos no console durante a digitao do nome de usurio.
b. Cadastrar uma senha do usurio via teclado. Esta segue as mesmas regras
do nome de usurio, com a diferena de que so exibidos somente
asteriscos no console medida que a senha digitada.
c. Receber um novo nome de usurio e uma nova senha, utilizando os
mesmos procedimentos descritos nos itens a e b.
d. Comparar o nome de usurio cadastrado com o recebido posteriormente
e a senha cadastrada com a senha recebida. Caso sejam idnticos,
informar OK, do contrrio informar Acesso negado.
62. Elabore um programa que, dado 2 vetores inteiros de 20 posies, efetue as
respectivas operaes indicadas por um terceiro vetor de caracteres de 20
posies tambm fornecido pelo usurio, contendo as quatro operaes
aritmticas em qualquer combinao, armazenando os resultados num quarto
vetor.
63. Elaborar um programa em C que leia uma frase e armazene-a em um vetor de
caracteres (cuidado com a leitura!). Depois crie uma funo para contar o
nmero de espaos em branco na frase, outra para contar o nmero de vogais, e
outra para contar o nmero de consoantes.
64. Com o vetor do exerccio 8, faa uma funo que transfira as consoantes para
um vetor e as vogais para outro. Depois mostre cada um dos vetores.
65. Escreva um programa que utilize uma funo "replace" que aceita um string
como parmetro e retorna um inteiro. A funo substitui todos os espaos do seu
parmetro pelo caracter '-', e retorna o nmero de substituies feitas. O
programa que a usa dever testar a sua funcionalidade.
66. Escreva um programa que leia texto do teclado, linha a linha, at chegar ao fim
de texto (Ctrl-D ou Ctrl-Z). O programa dever escrever uma estatstica do texto
lido: n de palavras, nmero de linhas em branco, n total de linhas, n de letras.
O programa dever usar funes separadas para cada uma das suas tarefas.
67. Fazer um programa que receba uma string de no mximo 20 caracteres do
usurio e mostre o contedo desta string de forma invertida.
68. Faa um programa que receba uma string do usurio (mx. 20 caracteres) e um
caracter qualquer. O programa deve remover todas as ocorrncias do caracter da
string e mostrar o resultado.
69. Um dos sistemas de encriptao mais antigos atribudo a Jlio Csar: se uma
letra a ser encriptada a letra de nmero N do alfabeto, substitua-a com a letra
(N+K), onde K um nmero inteiro constante (Csar utilizava K = 3).
Usualmente consideramos o espao como zero e todos os clculos so realizados
com mdulo-27. Dessa forma, para K = 1 a mensagem Ataque ao amanhecer
se torna bubrfabpabnboifdfs. Faa um programa que receba como entrada uma
mensagem e um valor de J e retorne a mensagem criptografada pelo cdigo de
Csar. Fraquezas: apenas 26 chaves possveis. possvel utilizar conhecimento
da linguagem para facilitar a busca.
70. Faa um programa que receba como entradas uma lista de nomes em ordem
aleatria e ordene essa lista em ordem alfabtica.
71. Faa um programa que inverta a ordem das letras de uma string. Utilize o cdigo
do exerccio 14 para incrementar o cdigo de Csar adicionando a inverso da
mensagem encriptada.
72. Para evitar fraudes, uma mquina de preenchimento de cheques deve preencher
as dezenas no utilizadas no valor numrico com asteriscos. Considerando que
na loja X no so aceitos cheques de valores maiores que R$ 10.000,00, faa um
programa que imprimia na tela o valor numrico do cheque e seu valor por
extenso.
73. Escrever uma funo que:
a. receba dois strings como parmetro, bem como um valor inteiro
representando uma posio.
b. insira o segundo string no primeiro, na posio indicada pelo valor.
c. Fazer um programa que receba dois strings do usurio, o valor da
posio, chame a funo anteriormente implementada e exiba o resultado
ao usurio.
74. Fazer um programa para receber uma string do usurio (mx. 50 caracteres) e
fazer uma estatstica dos caracteres digitados. Por exemplo, para a string "O
EXERCICIO E FACIL", a estatstica mostrada ser 'O' = 2, ' '=3, 'E' = 3, 'X' =
1, 'R' = 1, 'C' = 3, 'I' = 3, 'F' = 1, 'A' = 1, 'L' = 1
Aula 11 Arquivos
78. Implementar um programa de gerenciamento de high scores. O programa deve:
a. carregar os high scores de um arquivo e mostrar. Cada high score
composto de um nome (max. 10 caracteres) e um inteiro (pontuao)
b. pedir ao usurio o seu nome e a sua pontuao no jogo.
c. posicionar os dados do usurio na tabela de highest scores (max. 5) e
regravar no arquivo.