Professional Documents
Culture Documents
Lista de Exerccios
Tomada de deciso
Exerccios de Fixao
9) Faa um programa que leia da entrada um
nmero e imprima o seu valor absoluto (sem o sinal).
10) Faa um programa que leia um nmero e
imprima uma mensagem dizendo se par ou impar.
Lembre-se sempre
A Sorte Ajuda aos Competentes
Pgina 1 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
reprovado (mdia < 3) e
prova final ( 3 mdia < 7).
22) Faa um programa que leia a idade de uma
pessoa e informe sua classe eleitoral:
no eleitor (abaixo de 16 anos);
eleitor obrigatrio (entre 18 e 65 anos) e
eleitor facultativo (entre 16 e 18 anos e acima dos
65 anos).
23) Faa um programa que leia um horrio no
sistema de 24 horas e imprima este horrio no
sistema de 12 horas.
Exemplo: 22:32 10:32 pm
Obs.:
0:00 12:00 am
6:00 6:00 am
12:00 12:00 pm
impresso: 1 3 5
Repetio
5x1=5
5 x 2 = 10
Exerccios de Fixao
5 x 10 = 50
Lembre-se sempre
A Sorte Ajuda aos Competentes
Pgina 2 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
42) Faa um programa que leia um intervalo da
entrada (incio e fim) e imprima os nmeros naturais
neste intervalo. Exemplo:
valores lidos:
5 9
impresso:
5 6 7 8 9
43) Faa um programa que leia um intervalo da
entrada (incio e fim) e imprima os mltiplos de 5
entre eles. Exemplo:
valores lidos:
3 17
impresso:
5 10 15
Observao: o que acontece se fim for menor
que incio? Seu programa continua funcionando?
44) Faa um programa que leia um intervalo da
entrada (incio e fim) e um nmero (num). O
programa deve imprimir os mltiplos de num entre
incio e fim. Exemplo:
valores lidos:
1 15 3 (num)
impresso:
3 6 9 12 15
Observao: o que acontece se fim for menor
que incio? Seu programa continua funcionando?
45) Faa um programa que leia um intervalo da
entrada (incio e fim) e imprima os nmeros pares
entre incio e fim e seu somatrio. Exemplo:
valores lidos:
3 15
impresso:
4 6 8 10 12 14
Soma = 54
46) Faa um programa que leia um nmero (num)
da entrada e imprima os mltiplos de 3 e 5 ao mesmo
tempo no intervalo de 1 a num. Exemplo:
valor lido:
47
impresso:
15 30 45
47) Faa um programa que leia um nmero da
entrada, calcule e imprima o seu fatorial. Lembre-se
que:
n! = n x (n -1) x (n - 2) x ... x 1
0! = 1 e 1! = 1
20 -3 4 - 7 1 0
Maior = 20
Menor = -7
Mdia = 3
Linguagem de Programao C
mtodo de somas sucessivas. Suponha que num1 e
num2 so positivos. Exemplo:
valores lidos:
impresso:
dica:
3 4
12
3 x 4 = 3 + 3 + 3 + 3 = 12
utilizando
algoritmo
de
subtraes
I , onde N e
I= N
K so lidos da entrada.
68) (Prova 1 - 96/1) Faa um programa que imprima
a tabela de converso de graus Celsius-Fahrenheit
para o intervalo desejado pelo usurio. O programa
deve solicitar ao usurio o limite superior, o limite
inferior do intervalo e o decremento.
Frmula de converso: C = 5(F - 32) /9
Exemplo:
valores lidos:
68 50 15
impresso:
Fahrenheit
Celsius
68
20
53
11
Exerccios Propostos
69) (Prova 1 - 95/2) A srie de RICCI gerada da
seguinte forma: os dois primeiros termos so
fornecidos pelo usurio, a partir da, os termos so
gerados como a soma dos dois termos anteriores, ou
seja, ai=ai-1+ai-2 para i3.
Escreva um programa que imprima os N (N
lido e >= 2) primeiros termos da srie de RICCI. O
programa deve imprimir, tambm a soma dos termos
impressos.
70) (Prova 1 - 96/1) A srie de FETUCCINE
gerada da seguinte forma: os dois primeiros termos
so fornecidos pelo usurio; os termos seguintes so
gerados como a soma ou subtrao dos dois termos
anteriores, ou seja:
a i = ai -1 + a i -2 ==> para i mpar
a i = ai -1 - ai -2 ==> para i par
Escreva um programa que imprima os N (N
lido e maior ou igual a 2) primeiros termos da srie de
FETUCCINE. O programa deve imprimir, tambm
a soma dos termos impressos.
71) (Prova 1 - 96/2) Uma telenovela de grande
sucesso tem o seu final previsto para o dia 1 o de
novembro. Sabe-se que neste dia ser revelado nome
do personagem responsvel por inmeros
assassinatos ocorridos no decorrer da trama. No
entanto, no dia 1o de outubro (um ms antes do
Lembre-se sempre
A Sorte Ajuda aos Competentes
Pgina 4 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
trmino da novela), um funcionrio da emissora conta
para dois amigos o desfecho do ltimo captulo. Com
isto, no dia 1o de outubro, 3 pessoas sabem do
desfecho da novela. Supondo que cada nova pessoa
a saber do final da novela contar para duas novas
pessoas no dia seguinte (e para mais ningum),
mais 4 pessoas estaro envolvidas ao final do dia 2
de outubro (7 pessoas at este dia). No dia 3 de
outubro, j sero 15 pessoas.
Faa um programa para ajudar o dono da
emissora a decidir se deve demitir o funcionrio
fofoqueiro: se ao trmino do dia 25 de outubro mais
de 20000 (vinte mil) pessoas estiverem sabendo do
final da novela, o funcionrio dever ser demitido.
72) Faa um programa que calcule o M.M.C entre
dois nmeros lidos da entrada.
73) Faa um programa que calcule o M.D.C entre
dois nmeros lidos da entrada.
74) Faa um programa que calcule e imprima os
termos da srie
XN
, onde X e N devem ser lidos da
N!
entrada.
75) Faa um programa que calcule o resultado de
0
I= N
A raiz de 16 4.
80) Faa um programa que leia um conjunto de
pedidos de compra e calcule o valor total da compra.
Cada pedido composto pelos seguintes campos:
Linguagem de Programao C
at que o usurio digite 0 (zero) como nmero do
pedido.
81) Refaa o exerccio anterior, sendo que s sero
processados os pedidos cujo valor seja maior que R$
1000,00.
82) Refaa o exerccio 1 de modo que sejam
processados somente os pedidos realizados nos anos
de 1994 e 1996. Ao final do processamento o
programa dever indicar qual ano teve maior volume
de compras.
83) Faa um programa que leia um nmero
indeterminado de cartes contendo cada um a idade
de uma pessoa e o sexo (0 - masculino, 1 feminino). O ltimo carto (que no entrar nos
clculos) contm o valor da idade igual a zero.
Calcule e imprima a idade mdia destas pessoas,
quantas pessoas do sexo feminino esto na faixa dos
18 aos 25 anos e o nmero total de pessoas do sexo
masculino.
84) Faa um programa que leia o preo de compra e
o preo de venda de 100 mercadorias. O programa
dever imprimir quantas mercadorias proporcionam:
lucro < 10 %
10 % <= lucro <= 20 %
lucro > 20 %
85) Faa um programa que leia as seguintes
informaes sobre uma turma:
nmero da turma;
nmero de aulas dadas;
nmero de alunos inscritos.
Deve ser lido tambm para cada aluno inscrito
o seu nmero de faltas.
O programa deve imprimir o percentual de
faltas para cada aluno e ao final do processamento o
total de alunos reprovados por falta (25% de faltas).
86) Faa um programa que leia o salrio bruto dos
500 funcionrios de uma empresa, calcule o imposto
retido e o salrio liquido para cada um deles. Ao
final do relatrio o programa dever imprimir os totais
de salrio bruto, salrio lquido e imposto retido.
O imposto retido dever ser calculado de
acordo com a seguinte tabela:
Faixa de salrio
salrio < 1000,00
1000,00 <= salrio < 10000,00
10000,00 <= salrio < 25000,00
salrio >= 25000,00
Imposto
0
10 %
15 %
20 %
Lembre-se sempre
A Sorte Ajuda aos Competentes
Pgina 6 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
Matrcula do aluno: 33
Cdigo da disciplina: 1086
Cdigo da turma: 5
Mdia Final: 8
Cdigo da disciplina: 1082
Cdigo da turma: 1
Mdia Final: 6
Lembre-se sempre
A Sorte Ajuda aos Competentes
Pgina 7 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
nmero de servios de despertador prestados.
Faa um programa que leia os dados de um conjunto
de assinantes (o cdigo do assinante igual a zero
encerra a entrada de dados), calcule e imprima:
para cada assinante, o total de sua conta;
valor da maior conta e o cdigo do assinante que
a pagou;
o valor mdio arrecadado por assinante no ms.
94) Faa um programa que ajude o DETRAN a
saber o total de recursos que sero arrecadados com
a aplicao de multas de trnsito.
O programa deve ler as seguintes informaes para
cada motorista:
o nmero da carteira de motorista (de 1 a 4327);
o nmero de multas;
o valor de cada uma das multas.
Deve ser impresso o valor da dvida para cada
motorista e ao final da leitura o total de recursos
arrecadados (somatrio de todas as multas). O
programa dever imprimir tambm o nmero da
carteira do motorista que obteve o maior nmero de
multas.
O programa termina ao ler a carteira de
motorista de valor 0. Valores invlidos de carteira de
motorista no devem ser processados, embora suas
multas devam ser lidas.
95) Faa um programa que implemente o jogo da
senha (para 2 pessoas):
a) o jogador 1 digita uma senha (valor inteiro entre 0
e 100) sem o conhecimento do jogador 2
b) o jogador 2 tem 5 chances para descobrir a senha
c) a cada tentativa do jogador 2, o programa deve
avisar se o valor digitado maior, menor ou igual
a senha
d) se o jogador 2 acertar a senha, o programa no
deve pedir mais nenhuma tentativa
Pgina 8 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
de R$ 1001 a R$ 5000
acima de R$ 5000
15%
25%
b) 7, 2, 4, 0
c) 3, 3, 5, 0
d) -1, -3, 4, 0
101) (Prova 1 - 96/2) Faa um programa que leia um
conjunto de notas de prova (0 a 10) de um conjunto
de turmas. O programa dever ler a quantidade de
turmas e, para cada turma:
Pgina 9 de 32
Prof.: Oswaldo Borges Peres
profoswaldo@yahoo.com.br
Linguagem de Programao C
103) (Prova 1 - 97/1) Faa um programa em C que
calcule e imprima a mdia e a varincia das notas de
todos os alunos inscritos em LTP1. As notas devem
ser lidas via teclado. O fim da leitura marcado por
uma nota negativa. A mdia e a varincia so
calculadas da seguinte forma:
media =
Valor da funo
no ponto
Passo
notas
...
numero _ de _ alunos
var iancia =
(notas
numero _ de _ alunos
A rea formada
pela soma dos
retngulos sob a
curva
media 2
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 10 de
Linguagem de Programao C
107) (Prova 1 - 97/1) Faa um programa em C
que gerencie as contas correntes dos 1000 clientes
do Banco Oir Cup, um banco talo-anglo-franco-lusonipo-brasileiro. O programa dever ler, para cada
cliente, o cdigo do cliente (tipo inteiro), saldo
anterior (tipo real) e as movimentaes da conta.
Cada movimentao composta por um cdigo (tipo
caractere, C, D ou F, indicando Crdito, Dbito ou
Fim das movimentaes deste cliente) e um valor
(tipo real). Dever ser impresso, para cada cliente, o
seu cdigo e o saldo atual (aps o processamento das
movimentaes). Ao final, dever ser impresso o
total de dinheiro em caixa no banco (soma dos
saldos de todos os clientes) e o cdigo do cliente que
possui o maior saldo.
Observao: o menor saldo possvel de R$ 1000
negativo.
Seleo mltipla
Pplaneta =
PTerra
* g planeta
10
Idade
5 a 7 anos
8 a 10 anos
11 a 13 anos
14 a 17 anos
maiores de 18 anos
Exerccios de Fixao
108) Faa um programa que implemente uma
mquina de calcular com operaes +, -, *, / e %,
atravs da leitura de dois operandos numricos
inteiros e do operador (tipo caracter), no formato:
operando1 operador operando2. Verifique casos de
operaes que no podem ser realizadas (antes de
oper-las).
109) Escreva um programa que leia um peso na
Terra e o nmero de um planeta e imprima o valor do
seu peso neste planeta. A relao de planetas e dada
a seguir juntamente com o valor das gravidades
relativas em relao Terra.
#
Gravidade relativa
Planeta
1
0,37
Mercrio
2
0,88
Vnus
3
0,38
Marte
4
2,64
Jpiter
5
1,15
Saturno
6
1,17
Urano
Para calcular o peso no planeta use a frmula:
quadrado ( lado 2 )
retngulo (comprimento * largura)
crculo (3,14 * raio 2 )
trapzio ((base maior + base menor) * altura /
2)
Linguagem de Programao C
valores necessrios para realizar o clculo. Utilize o
comando switch.
classe
nvel
1
2
3
4
5
excelente
bom
mdio
regular
precisa treinar
mais
te cuida
tsktsk
#include <stdio.h>
void main (void)
{
char ch;
int i = 0;
6
7
valor
adicional
+100%
+80%
+50%
+30%
+10%
+5%
nada
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 12 de
Linguagem de Programao C
caracteres
codificados
POLAR/ZENIT.
Caracteres
Exerccios de Fixao
116) Faa um programa que imprima as letras
minsculas do alfabeto e seus respectivos cdigos
decimais da tabela ASCII.
117) Faa um programa que leia uma seqncia de
caracteres terminada por # e imprima o nmero de
caracteres lidos.
118) Faa um programa que leia uma seqncia de
caracteres terminada por um <Enter> (linha de
texto) e imprima a quantidade de caracteres lidos.
119) Faa um programa que leia uma seqncia de
caracteres terminada por um <Enter> (linha de
texto) e os imprima novamente na tela com exceo
dos caracteres de espao em branco que no devem
ser impressos.
120) Faa um programa que leia uma seqncia de
caracteres terminada por um <Enter> (linha de
texto) e imprima a quantidade de vogais, a quantidade
de consoantes e a quantidade de caracteres no
letras encontrados. Considere apenas as letras
minsculas.
121) Faa um programa que leia uma seqncia de
caracteres terminada por um <Enter> (linha de
texto) e imprima a quantidade total de caracteres
lidos e a porcentagem de caracteres do tipo letra
encontrados.
122) Faa um programa que leia uma linha de texto
da entrada e imprima o nmero de letras maisculas
e o nmero de letras minsculas encontradas.
123) Durante a segunda guerra mundial, havia
necessidade de codificao das mensagens
transmitidas, para isso eram necessrios cdigos
secretos, um desses cdigos era o POLAR/ZENIT,
que consistia em trocar as ocorrncias da letra P pela
letra Z e vice-versa, as letras O pelas letras E, e
vice-versa, e assim por diante. Faa um programa
que leia uma linha de texto da entrada e imprima os
segundo
cdigo
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 13 de
Linguagem de Programao C
132) Faa um programa que leia um texto da entrada
e converta os caracteres maisculos em minsculos.
Exemplo:
texto compactado:
texto descompactado:
Exerccios Propostos
136) Faa um programa que calcule o resultado de
uma expresso aritmtica lida da entrada. A
expresso ter um nmero indetermin ado de termos
envolvendo as operaes de soma, subtrao, diviso
e multiplicao. No leve em considerao a
precedncia dos operadores. proibido o uso
da funo scanf para a leitura dos operadores e
operandos. Exemplo: 10 + 5 * 2 = 30
137) Faa um programa em C que leia quatro
caracteres da entrada padro (representado um
nmero na base 16) e um caracter representando um
sinal e imprima o valor numrico decimal
correspondente. O caracter que representa o sinal
(+ ou -) pode aparecer em qualquer parte do
nmero. Os demais caracteres sero dgitos (0, 1,
2, ..., 9) ou letras maisculas (A, B, C, D,
E, F). Para facilitar assuma que o usurio ir
digitar exatamente o que o programa espera ler.
x@3ux@5a
xuuuxaaaaa
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 14 de
Linguagem de Programao C
142) (Prova 4 - 96/2) Faa um programa que
compacte um texto lido segundo o seguinte algoritmo:
a) se houver de 3 a 9 caracteres repetidos, o
programa dever imprimir o caracter @ seguido
do nmero de caracteres repetidos e do caracter
repetido,
b) se no houver mais do que trs repeties, o
prprio caracter dever ser impresso tantas vezes
quanto ele apareceu,
c) se houver mais do que 9 repeties, o programa
dever imprimir seqncias semelhantes a do item
a at totalizar o nmero de repeties necessrias
(ver exemplo da letra k).
Exemplo:
Entrada de dados:
abcccdeeeee
fghhhhhhhhhh
ijkkkkkkkkkkkkkkklm
Sada de dados:
ab@3cd@5e
fg@9hh
ij@9k@6klm
143)
a) Faa uma funo que leia um valor, em
algarismos romanos (considere vlidos apenas os
algarismos I, V e X), e o converta para seu
nmero decimal correspondente, devolvendo o
valor calculado. O nmero em romanos ser lido
como uma seqncia de caracteres terminada
com um <Enter>.
b) Faa uma funo que receba 2 valores decimais e
um operador (+, -, *, /) e calcule o resultado da
operao.
c) Faa um programa, utilizando as funes dos itens
anteriores, que leia 2 (dois) nmeros em
algarismos romanos e um operador (+, -, *, /) e
calcule o resultado da operao.
Funes
Exerccios de Fixao
144) Faa uma funo que:
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 15 de
Linguagem de Programao C
149) Faa uma funo que receba um caracter como
parmetro por referncia. Se o caracter for uma letra
minscula, a funo deve convert-la para maiscula.
A funo deve retorna 1 se o caracter for uma letra
e 0 em caso contrrio.
b)
void main (void)
{
int v[6]={0, 10, 20, 40, 50, 60},y;
float x, z;
...
...
...
x = f (10);
g (x, &y);
g (z, &v[4]);
z = h (v[5], v);
...
...
...
b)
#include <stdio.h>
void main (void)
{
int v[5]={1, 2, 3, 4, 5}, i, j;
printf (\nDigite as posies do vetor
que devem ser trocadas);
scanf (%d%d, &i, &j);
troca (v, i, j);
...
....
Exerccios Propostos
154) Elabore uma funo que retorne o reverso de
um nmero inteiro, por exemplo 932 239.
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 16 de
Linguagem de Programao C
155)
a) Faa uma funo chamada fatorial que deve
receber um valor inteiro como parmetro e
retornar o fatorial deste nmero.
b) Faa um programa que calcule o valor da
combinao de n elementos r a r. A frmula da
combinao a seguinte: C nr =
n!
. Leia
r ! (n r ) !
9
+
0 +
24 = 33
o ltimo dgito deste resultado o dgito
verificador da conta (33 3).
Pgina 17 de
Linguagem de Programao C
iguais;
c) se < 0, x1 e x2 no devero ser alteradas pela
funo.
( 1)
. Construa uma
i =0 2i + 1
funo em C que receba como parmetro
(passagem por valor) o nmero de termos a serem
usados no clculo de , e retorne o valor calculado
para .
atravs da expresso = 4
da
expresso
x=
Vetores
Exerccios de Fixao
b
,
2a
onde
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 18 de
Linguagem de Programao C
elementos do vetor, de modo que o primeiro elemento
passe a ser o ltimo, o segundo passe a ser o
penltimo e assim por diante. Faa um programa
para testar a funo inverte .
168) Faa um programa que leia um conjunto de
linhas de texto e imprima a linha que teve o maior
nmero de vogais. Considere que cada linha ter um
mximo de 80 caracteres.
169) Faa um programa que leia uma seqncia de
10 nmeros e informe o total de ocorrncias do
ltimo nmero lido.
Exemplo: supondo a seguinte seqncia de nmeros
38 4 23 5 6 7 4 12 4
o resultado ser:
O nmero 4 apareceu 3 vezes
170) Faa um programa que leia um texto (seqncia
de linhas) terminado por uma linha vazia (uma linha
com apenas um <Enter>) e informe o total de
ocorrncias de cada dgito (de 0 at 9). Os dgitos
que no ocorreram no texto no devem ser listados.
Exemplo: supondo a seguinte seqncia de
caracteres:
Este eh 1 exemplo.
Esta eh apenas a linha 2 do exemplo.
A linha 3 vem depois da linha 2.
O programa deve funcionar para muito
mais do que 239 casos.
A sada ser:
O
O
O
O
dgito
dgito
dgito
dgito
1
2
3
9
apareceu
apareceu
apareceu
apareceu
1
3
2
1
vez(es).
vez(es).
vez(es).
vez(es).
posio 6.
se a chave for 413, o resultado ser: Chave no
encontrada.
172) Faa um programa que leia a matricula e a nota
final de 10 alunos de uma turma de LTP1 e imprima
os dados dos alunos (matricula e nota) ordenados por
nota (ordem decrescente).
173) Faca uma funo que receba um vetor de
caracteres chamado linha e um caracter chamado
ch como parmetros. Retire todas as ocorrncias do
caracter ch do vetor linha. O fim do vetor linha
ser indicado pelo caracter '\n'. Faca um programa
para testar a sua funo.
174) Faa uma funo que receba um vetor de
caracteres, seu tamanho e um caracter e retire todas
as ocorrncias desse caracter no vetor. A funo
deve retornar o total de caracteres restantes no
vetor. Faa uma main() para testar sua funo, do
jeito que voc achar necessrio.
175) Faa uma funo que receba um vetor de
inteiros (ordenados de forma crescente) e seu
tamanho e retorne o maior valor menor que a mdia
de seus elementos. Faa uma main() para testar sua
funo, do jeito que voc achar necessrio.
176) Faa um programa que leia um texto (seqncia
de linhas) da entrada e imprima as 5 letras
minsculas de maior ocorrncia no texto. Dica: Faca
um vetor de contadores, um para cada letra e ordene
este vetor em ordem decrescente.
177) Faa uma funo que receba um vetor de
caracteres, seu tamanho e dois caracteres e substitua
todas as ocorrncias do 1o caracter pelo 2o. Faa
uma main() para testar sua funo, do jeito que voc
achar
178) Faa uma funo que receba um vetor de
caracteres, seu tamanho e um inteiro. Se o caracter
da posio indicada pelo inteiro for letra, retornar o
total de letras do vetor; seno, retornar o total de
caracteres no-letra. Faa uma main() para testar
sua funo, do jeito que voc achar necessrio.
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 19 de
Linguagem de Programao C
179) Faa uma funo que receba um vetor de
inteiros positivos, um vetor de caracteres e o
tamanho (nico) dos vetores. A funo deve imprimir
cada um dos caracteres do 2o vetor n vezes, onde n
o contedo da posio correspondente no vetor de
inteiros. Faa uma main() para testar sua funo, do
jeito que voc achar necessrio.
180) Faa uma funo que receba um vetor de
inteiros e seu tamanho e retorne 1 (um) se o vetor
estiver ordenado de forma crescente ou 0 (zero) se
no estiver. Faa uma main() para testar sua funo,
do jeito que voc achar necessrio.
Exerccios Propostos
187) Faa um programa que leia um texto e uma
chave, e embaralhe as letras do texto conforme a
ordem dada pela chave.
Por exemplo:
texto:
chave:
abcdefghij
31524
sada:
caebdhfjgi
abcdefg
abcdefg
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
caebd f g
Pgina 20 de
Linguagem de Programao C
188) A coordenao do TPD deseja saber quantos
alunos esto cursando ao mesmo tempo as cadeiras
de LTP1 e Organizao de Computadores. Faa um
programa que leia os cdigos de matricula dos alunos
de ambos os cursos, sabendo-se que existem 150
alunos cursando LTP1 e 120 alunos cursando
Organizao de Computadores. O programa deve
imprimir o cdigo das matriculas dos alunos que esto
cursando ambas as disciplinas.
189) Faa um programa que leia uma linha de texto,
terminada com um <Enter> e imprima a linha com
suas palavras na ordem inversa. Considere que cada
palavra separada por apenas um caracter de
espao.
Exemplo: Isto e apenas um exemplo
exemplo um apenas e Isto
190) Faa um programa que realize a reserva de
passagens areas de uma companhia. Alm da
leitura do nmero de vos e quantidade de lugares
disponveis, ler vrios pedidos de reserva, constitudos
do numero da carteira de identidade do cliente e do
nmero do vo desejado.
Para cada cliente, verificar se h possibilidade
no vo desejado. Em caso afirmativo, imprimir o
nmero da identidade do cliente, e o nmero do vo,
atualizando o nmero de lugares disponveis. Caso
contrrio, avisar ao cliente a inexistncia de lugares.
191) Faca um programa capaz de corrigir provas de
mltipla escolha. Cada prova ter 10 questes,
valendo 1 ponto cada uma. O programa deve
inicialmente ler o gabarito da prova. Ele ser
constitudo de um conjunto de dez caracteres
representando a resposta para cada uma das
questes. Cada questo pode ter uma das seguintes
respostas: 'a', 'b', 'c', 'd' ou 'e'.
Aps a leitura do gabarito, o programa devera
ler as respostas dos alunos. Para cada aluno devera
ser lido o seu numero de matricula e suas respostas.
O programa devera calcular a nota do aluno e
imprimi-la de acordo com o gabarito. A leitura
termina com um cdigo de matricula negativo. Ao
final, o programa devera imprimir a percentagem de
aprovao, sabendo-se que a nota mnima e 5.
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 21 de
Linguagem de Programao C
foi possvel realizar a reserva e atualizar a reserva.
Se no for possvel, o programa dever emitir uma
mensagem. O programa deve terminar quando o
usurio digitar o cdigo 0 (zero) para uma mesa ou
quando todos os 150 lugares estiverem ocupados.
197) (Prova 2 - 96/1) Faa um programa que leia
1000 valores reais da entrada e identifique o valor
mais prximo da mdia.
Exemplo supondo quatro valores:
2.5 7.5 10.0 4.0
mdia = 6.0 (no deve ser impresso)
valor mais prximo da mdia = 7.5 (resultado a
ser impresso)
198) (Prova 2 - 96/2) Faa um programa que leia
dois vetores ordenados, de 100 posies cada, e gere
um terceiro vetor, tambm ordenado, com todos os
elementos dos vetores anteriores.
Exemplo para vetores de 5 posies:
entrada: v1 = {1, 4, 5, 9, 111}
v2 = (3, 3, 5, 8, 300}
sada:
v3 = {1, 3, 3, 4, 5, 5, 8, 9, 111, 300}
199) (Prova 2 - 96/2) Faa um programa que leia
uma seqncia de no mximo 8572 nmeros reais,
terminada por 0 (zero). O programa deve imprimir
uma ocorrncia de cada nmero.
Exemplo:
entrada: 1 1 4 9.5 1 800 4 -3.2 9.5 801 0
sada:
1 4 9.5 800 -3.2 801
200) (Prova 4 - 96/1) Observe a funo main()
abaixo:
void main (void)
{
int el[100],qtd;
puts (Entre com o nmero de elementos a
serem lidos);
scanf (%d,&qtd);
le_vet (el,qtd);
computa (el,qtd);
imprime (el,qtd);
descomputa (el,qtd);
imprime (el,qtd);
}
parmetros :
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 22 de
Linguagem de Programao C
v1 = {w, b, q, o, a, -, t, p, x, r,
u, o, y, v, a}
v2 = {b, +, e, o, -, a, a, l, g, o,
r, v, p}
n1 = 15
n2 = 13
aps a execuo da funo :
v1 = {b, o, a, -, p, r, o, v, a}
v2 = {b, +, e, o, -, a, a, l, g, o,
r, v, p}
valor retornado pela funo: 9
Obrigaes do aluno: no declarar um terceiro
vetor na funo.
204) (Prova 2 - 97/1)
a) Faa uma funo chamada busca_bin() que
recebe um vetor de inteiros, a quantidade de
elementos e um valor a ser localizado no vetor
(nesta ordem). A funo deve retornar a posio
do valor no vetor ou -1, caso no o encontre.
b) Faa uma funo chamada le_dados() que recebe
dois vetores, um de cdigo (int) e outro de salrios
(float), o tamanho dos vetores (iguais). A funo
preenche os vetores atravs da entrada de dados
padro (teclado).
c) Uma empresa possui 100 vendedores. Cada
vendedor recebe um salrio fixo e um abono de
1,5% sobre o valor de suas vendas. Faa um
programa que calcule o salrio final a ser pago a
cada vendedor, de acordo com o volume de suas
vendas. O programa deve ler inicialmente o
cdigo de cada funcionrio (inteiro, entre 1533 e
2000) e seu salrio base, para todos os
vendedores. Considere que estes dados sero
fornecidos em ordem crescente por cdigo. A
seguir, o programa dever processar as vendas,
lendo o cdigo do funcionrio que realizou a venda
e o valor da venda. Isto dever ser feito para
cada venda realizada. O programa termina a
leitura de vendas quando for digitado um valor de
cdigo invalido (menor que 0). O programa deve
calcular o abono a ser pago a cada vendedor,
imprimindo seu salrio final.
Observao: no item c) obrigatria a utilizao das
funes dos itens anteriores, mesmo que voc no as
tenha feito.
Linguagem de Programao C
como parmetro);
c) Aps chamar a funo do item a, comece o
processo de venda. Voc ir ler do teclado os
pedidos e atualizar o estoque. Faa uma funo
para fazer uma busca no vetor de cdigo de
produtos para verificar se o produto existe;
Matrizes
Exerccios de Fixao
207) Faa um programa que leia uma matriz de
nmeros inteiros de dimenses 4x4 e imprima a soma
dos valores de cada linha e a soma de todos os
elementos da matriz.
208) Uma estao meteorolgica registra a
temperatura ocorrida em uma cidade a cada hora.
Faa um programa que leia as temperaturas de uma
semana no seguinte formato: dia, hora, temperatura.
A leitura termina com um dia invlido. O programa
deve informar para cada hora consultada, a maior
temperatura ocorrida na semana. As consultas
terminam com um valor de hora invlido.
209) Faa um programa que leia uma matriz de 4 x 5
elementos, calcule a soma de cada linha e a soma de
todos os elementos.
210) Faa um programa que analise um carto de
loteria esportiva e diga qual dos 13 jogos possui um
triplo, ou se no existir, um duplo. O programa deve
ler da entrada a configurao do carto e em seguida
informar o jogo mais marcado. Dica: fixar a linha e
variar a coluna.
211) Refaa o exerccio
anterior de modo a
descobrir qual das colunas do carto possui mais
marcaes, se a coluna um, a coluna dois ou a do
meio. Dica: fixar a coluna e variar a linha.
A=
9 10 11 12
13 14 15 16
1
2
AT =
3
5 9 13
6 10 14
7 11 15
8 12 16
Exerccios Propostos
217) A tabela dada a seguir contm vrios itens que
esto estocados em vrios armazns de uma
companhia. fornecido, tambm, o custo de cada um
dos produtos arma zenados.
Armazm 1
Armazm 2
Armazm 3
Custo
PRODUTO
1
PRODUTO2
PRODUTO3
1200
1400
2000
260
3700
4210
2240
420
3737
4224
2444
330
Pgina 24 de
Linguagem de Programao C
1. leia o estoque inicial;
2. determine e imprime quantos itens esto
armazenados em cada armazm;
3. qual o armazm que possui a maior quantidade de
produto 2 armazenado;
4. o custo total de:
- cada produto em cada armazm;
- estoque em cada armazm;
- cada produto em todos os armazns.
218) O tempo que um determinado avio dispensa
para percorrer o trecho entre duas localidades
distintas est disponvel atravs da seguinte tabela:
A
B
C
D
E
F
G
A
00
02
11
06
15
11
01
B
02
00
07
12
04
02
15
C
11
07
00
11
08
03
13
D
06
12
11
00
10
02
01
E
15
04
08
10
00
05
13
F
11
02
03
02
05
00
14
G
01
15
13
01
13
14
00
N1
8
8
10
N2
5
6
9
N3
7
5
10
N4
9
2
10
N5
10
3
8
N1
8
8
10
N2
6
5
9
N3
5
7
10
N4
2
9
10
N5
3
10
8
Mdia
3
7
9
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 25 de
Linguagem de Programao C
Para atender as necessidades da diretoria voc
dever construir um programa em C que faa o
seguinte:
Strings
Exerccios de Fixao
221) Faa uma funo chamada strcpy que recebe
duas strings como parmetros e copie todos os
elementos da segunda string para a primeira,
apagando-a. Faa um programa para testar sua
funo.
222) Faa uma funo chamada strlen que recebe
uma string como parmetro e retorne o nmero de
caracteres da string. O caracter \0 no deve ser
considerado na contagem. Faa um programa para
testar sua funo.
Linguagem de Programao C
ltima posio onde o caracter foi encontrado na
string ou -1 caso o caracter no aparea na string.
233) Faa uma funo que receba uma string como
parmetro e um caracter. A funo deve retirar
todas as ocorrncias deste caracter da string.
234) Faa uma funo que receba uma string como
parmetro e dois caracteres. A funo deve trocar
toda a ocorrncia do primeiro caracter na string pelo
segundo caracter.
235) Faa uma funo que receba uma string como
parmetro e um caracter. A funo deve retornar o
nmero de vezes que o caracter aparece na string.
236) Faa uma funo que receba uma string como
parmetro, um caracter e um valor numrico. A
funo deve preencher a string com tantos
caracteres quanto for o valor numrico passado com
parmetro.
237) Faa uma funo chamada strncpy que recebe
duas strings (s1 e s2) e um valor numrico como
parmetros. A funo deve copiar tantos caracteres
quanto o valor numrico, da string s2 para a string
s1.
238) Faa um funo chamada stricmp que compara
duas strings (s1 e s2) passadas como parmetro, no
diferenciando maisculas de minsculas. A funo
deve retornar: 0 se as strings forem iguais; um valor
menor que 0 se s1 for menor que s2 e um valor maior
que 0 se s1 for maior que s2.
Exerccios Propostos
239) (Prova 3 - 94/1) Faa uma funo que receba
como parmetro uma string de, no mximo, 80
caracteres e converta todas as letras para
minsculas, exceto a primeira letra de cada palavra,
que deve ser maiscula. Considere que a string s
possui letras e espaos e entre as palavras existe um
nico espao.
Exemplo:
Frase recebida:
EsTa fRase e apENAS uM EXEmPLO
Frase gerada:
Esta Frase E Apenas Um Exemplo
240) Faa uma funo que receba uma string como
parmetro e imprima esta string em modo justificado,
ou seja, preenchendo os intervalos entre as palavras
com espaos em branco de maneira proporcional.
Considere este procedimento apenas para strings
com menos de 80 caracteres. As strings com mais
de 80 caracteres devem ser impressas sem
alterao.
241) Faa uma funo que receba uma string como
parmetro e a imprima. Se a string tiver mais de 40
caracteres, ela deve ser particionada, quantas vezes
for necessrio, de modo a imprimir no mximo 40
caracteres por linha, sendo que nenhuma palavra
deve ser impressa fragmentada.
242) Modifique a funo do item anterior de modo a
imprimir a string em modo justificado, alm de
realizar o seu particionamento.
243) Faa uma funo que receba duas strings como
parmetro (s1 e s2) e retorne a posio da string s2
dentro da string s1, caso a string s1 contenha a
string s2, ou -1 em caso contrrio.
Exemplo:
s1
s2
c
l
a
e
a
o
l
\0
o \0
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 27 de
Linguagem de Programao C
Escreva um programa interativo que aceite um nome
de um pas como entrada e imprima o nome de sua
capital. O programa deve executar repetidamente at
que seja digitada a palavra FIM.
246) (Prova 3 - 96/1) Faa uma funo que receba
duas strings e um inteiro como parmetros. Esta
funo inclui a segunda string a primeira a partir da
posio indicada pelo inteiro. Exemplo (apenas um
exemplo!!!):
1a string: isto exemplo
resultado aps execuo da funo:
2a string: apenas um
1a string: isto apenas um exemplo
inteiro:
7
2a string: apenas um
247) (Prova 4 - 96/1) Faa uma funo chamada
strmix que receba 3 strings (s1, s2 e s3) e misture s1
e s2 do seguinte modo:
1o caracter de s3: 1o caracter de s1
2o caracter de s3: 1o caracter de s2
3o caracter de s3: 2o caracter de s1 e assim
sucessivamente
Observaes: a string resultante dever ser
armazenada em s3. As strings s1 e s2 podem ter
tamanhos diferentes.
Exemplo:
s1: abcde
s2: 012
string resultante (s3): a0b1c2de
248) (Prova 3 - 96/2) Faa uma funo que receba
duas strings e retire da primeira todo caracter que
fizer parte da segunda string. Exemplo:
1a string: EFBACDEIEBBLBBD
2a string: EBD
Resultado
1a string: FACIL
2a string: EBD
249) (Prova 3 - 97/1) Faa uma funo chamada
compara() que receba duas strings e dois inteiros
pos e qtd, onde pos a posio nas strings a partir
da qual vamos comparar qtd caracteres. A
comparao NO deve levar em conta se os
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 28 de
Linguagem de Programao C
252) (Prova 4 - 97/1) Faa uma funo chamada
cria_string() que recebe como parmetros uma
string s 1 (de tamanho suficiente), um formato fmt
(tambm uma string) e um nmero inteiro positivo
num (nesta ordem). Esta funo ir preencher a
string s 1 de acordo com o formato passado como
parmetro e o valor do inteiro num. O formato ir
conter uma seqncia de caracteres que devem ser
integralmente copiados para a string s 1, com
exceo da seqncia %d. No seu lugar deve ser
copiado o valor do inteiro num convertido para
caracteres.
Dica: lembre-se que o maior numero inteiro que pode
ser representado no TC 32767 (5 dgitos).
Exemplos:
Exemplo 1
Parmetros passados:
s 1: (irrelevante, mas de tamanho suficiente)
fmt: O valor %d a respos ta
num: 15
Resultado aps a execuo da funo
s 1: O valor 15 a resposta
fmt: (irrelevante)
num: (irrelevante)
Exemplo 2
Parmetros passados:
s 1: (irrelevante, mas de tamanho suficiente)
fmt: Converta o %d para caracteres
num: 17430
Resultado aps a execuo da funo
s 1: Converta o 17430 para caracteres
fmt: (irrelevante)
num: (irrelevante)
Arquivos
Exerccios de Fixao
253) Faa um programa que leia um arquivo. O
arquivo contm linhas de texto de at 80 caracteres.
O nome do arquivo deve ser perguntado (sem
extenso) e a extenso txt. O programa deve
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 29 de
Linguagem de Programao C
261) Faa um programa que leia um arquivo
contendo linhas de texto e imprima as linhas em
ordem alfabtica. Considere que cada linha do texto
no contem mais que 80 caracteres.
Exerccios Propostos
Linguagem de Programao C
ser possvel realizar as seguintes operaes: incluso
de um novo telefone; alterao do nmero de um
telefone j cadastrado; excluso de um telefone;
impresso dos telefones cadastrados; ordenao por
nome; consulta a partir do nome de uma pessoa;
armazenamento dos dados em um arquivo e
recuperao dos dados do arquivo.
278) (Prova 3 - 97/1) Faa um programa, utilizando
as funes abaixo, que leia de um arquivo chamado
nomenota.txt, um conjunto de at 100 nomes de
alunos, com at 50 caracteres, e suas respectivas
mdias finais (nmeros reais). O programa dever
permitir alterao nos nomes e nas notas dos alunos
atravs de um menu com as opes: a) alterar nome,
b) alterar mdia, c) terminar. Ao final, o programa
dever guardar os dados no mesmo arquivo, no
mesmo formato.
a) faa uma funo chamada le_tudo() que leia as
informaes do arquivo. Esta funo recebe um
vetor de strings e um vetor de reais como
parmetros (nesta ordem). A funo retorna a
quantidade de nomes lidos. Se deu erro de leitura,
a funo retorna 0 (zero).
b) faa uma funo chamada escreve_tudo() que
escreva tudo no arquivo. Esta funo recebe um
vetor de strings, um vetor de reais e o nmero de
elementos a gravar como parmetros (nesta
ordem). A funo no retorna valor algum.
c) faa uma funo chamada busca() que realize
uma busca em um vetor de strings. Esta funo
recebe o vetor de strings, uma string a ser
localizada e o nmero de elementos do vetor. A
funo retorna a posio da string no vetor ou -1
caso no a encontre.
d) faa uma funo chamada altera_nome() que
realize a alterao do nome do aluno. Esta funo
recebe o vetor de strings, uma string contendo o
nome anterior, uma string com o nome corrigido e
o nmero de elementos do vetor. A funo
retorna -1 se no conseguir alterar o nome. Use a
funo busca().
e) faa uma funo chamada altera_media() que
realize a alterao da mdia de um aluno. Esta
funo recebe o vetor de strings, o vetor de
Linguagem de Programao C
para uma companhia area que faz vos para no
mximo 10 cidades (destinos) diferentes. Com o
objetivo de racionalizar as suas operaes, a
companhia opera com no mximo 5 tipos de
aeronaves diferentes. O programa a ser
desenvolvido dever fazer o seguinte:
a) faa uma funo, chamada le_aviao(), que receba
como parmetros um vetor de strings e um vetor
de inteiros. Esta funo dever ler do arquivo
texto arq_aviao.txt o modelo da aeronave (um
string com exatamente 4 caracteres) e a
quantidade de assentos da mesma (inteiro),
carregando as informaes lidas do arquivo nos
vetores passados como parmetros. A funo
dever retornar quantos elementos foram lidos (o
mesmo para ambos).
b) faa uma funo, chamada le_destino(), que
receba como parmetros dois vetores de strings.
Esta funo dever ler do arquivo texto
arq_destino.txt uma cidade para a qual a
companhia voa regularmente (um string com
exatamente 3 caracteres) e o modelo da aeronave
usado para esta rota (um string com exatamente 4
caracteres), carregando as informaes lidas do
arquivo nos vetores passados como parmetros.
A funo dever retornar quantos elementos
foram lidos (o mesmo para ambos).
c) faa uma funo, chamada pesq_destino(), que
receba como parmetros um vetor de strings
(tabela de destinos), um inteiro (tamanho da tabela
de destinos), e um string (destino). A funo
dever pesquisar na tabela de destinos o destino
passado com parmetro, retornando a sua posio
na tabela de destinos caso a pesquisa seja bem
sucedida, ou o valor inteiro -1, caso contrrio.
d) faa uma funo, chamada pesq_aviao(), que
receba como parmetros um vetor de strings
(tabela de aeronaves), um inteiro (tamanho da
tabela de aeronaves), e um string (aeronave). A
funo dever pesquisar na tabela de aeronaves a
aeronave passada com parmetro, retornando a
sua posio na tabela de aeronaves caso a
pesquisa seja bem sucedida, ou o inteiro -1, caso
contrrio.
e) faa
Lembre-se sempre
32
A Sorte Ajuda aos Competentes
Pgina 32 de