Sie sind auf Seite 1von 6

Ministrio da Educao

Universidade Federal de Itajub


Criada pela Lei n 10.435, de 24 de abril de 2002

ECO031 - EXERCCIOS DE BAC004 - PROGRAMAO DE


COMPUTADORES
Prof. Me. Wandr Nunes de Pinho Veloso
wandreveloso@unifei.edu.br

Lista de exerccios de funes

1. Escreva um programa que tenha uma funo que receba um inteiro positivo e,
se este nmero for primo, retorne 1, caso contrrio retorne 0.
2. A famosa conjetura de Goldbach diz que todo inteiro par maior que 2 a soma
de dois nmeros primos. Testes extensivos foram feitos sem, contudo, ser
encontrado um contra-exemplo. Escreva um programa mostrando que a
afirmao verdadeira para todo nmero par entre 700 e 1100. O programa
deve imprimir cada nmero e os seus correspondentes primos. Use a funo do
exerccio anterior.
3. Escreva uma funo que receba como argumento o ano e retorne 1 se for um
ano bissexto e 0 se no for. Um ano bissexto se for divisvel por 4, mas no
por 100. Um ano tambm bissexto se for divisvel por 400.
4. Dados dia, ms e ano de uma data gregoriana, escreva uma funo que
converta essa data para data juliana correspondente. Use a seguinte frmula:
Data juliana = (1461*(ano + 4800 +(mes - 14) / 12) ) / 4 + (367 * (mes - 2 -
12 * (( mes - 14)/12))) / 12 - (3*((ano+4900+(mes-14)/12)/100))/4+dia-32075
5. Escreva uma funo que receba dia, ms e ano e calcule o dia da semana em
que caiu essa data. Para isso, basta transformar a data gregoriana em juliana
(utilize a funo escrita no exerccio anterior) e calcular o resto da diviso da
data juliana por 7. A funo dever retornar um nmero entre 0 e 6 indicando os
seguintes resultados:
0 - Segunda-feira
1 - Tera-feira
2 - Quarta-feira
3 - Quinta-feira
4 - Sexta-feira
5 - Sbado
6 - Domingo
6. Escreva um programa que solicite ao usurio um ano e imprima o calendrio
desse ano. Utilize as funes j elaboradas nas questes anteriores.
7. Escreva uma funo que desenhe um retngulo de 5 linhas por 20 colunas
usando os caracteres +, - e |. O nmero de linhas, o de colunas e os
caracteres do desenho so argumentos default da funo. Quando a funo
chamada sem nenhum argumento, desenha o seguinte retngulo:
+------------------+
| |
| |
| |
+------------------+
8. Escreva uma funo que receba um nmero float como argumento e retorne, em
outros dois argumentos passados por referncia, a parte inteira e a parte
decimal desse nmero.
9. Escreva uma funo que ordene o valor de trs argumentos do tipo char. Por
exemplo, se ch1, ch2 e ch3 so variveis do tipo char com valores,
respectivamente, B, A e C, aps a chamada funo, as variveis contero,
respectivamente, A, B e C. Utilize a passagem dos argumentos por
referncia.
10. Escreva uma funo recursiva de nome soma() que receba um nmero inteiro
positivo n como argumento e retorne a soma dos n primeiros nmeros inteiros.
Por exemplo, se a funo receber n=5, deve retornar 15 (1+2+3+4+5).
11. Escreva uma funo recursiva que receba como argumento o nmero do termo
de uma sequncia de Fibonacci e retorne o seu valor. Por exemplo, se o
argumento for 8, a funo retornar 13.
12. Escreva um programa que tenha uma funo recursiva que receba dois
nmeros inteiros X e Y e calcule o valor de XY. Utilize apenas multiplicaes.
13. Escreva um programa que tenha uma funo denominada soma1, que seja do
tipo float e que receba 2 nmeros float e retorne a soma dos referidos nmeros.
14. Escreva um programa que tenha uma funo denominada soma2, que seja do
tipo void e que receba 3 nmeros float, sendo que os 2 primeiros nmeros
devero ser somados e o 3 nmero dever ter a soma dos outros. Salienta-se
que o 3 nmero dever ser retornado main, porm, a funo void.
15. Escreva um programa que tenha uma funo que receba 2 nmeros e retorne o
MMC (Mnimo Mltiplo Comum) dos 2 nmeros recebidos. "O mnimo mltiplo
comum, ou MMC, de dois ou mais nmeros inteiros o menor mltiplo inteiro
positivo comum a todos eles. Por exemplo, o MMC de 6 e 8 o 24, e denotamos
isso por MMC (6, 8) = 24." (fonte:
<http://educacao.globo.com/matematica/assunto/matematica-basica/mmc-e-mdc
.html>).
16. Escreva um programa que tenha uma funo que receba 2 nmeros e retorne o
MDC (Mximo Divisor Comum) dos 2 nmeros recebidos. "Dois nmeros
naturais sempre tm divisores comuns. Por exemplo: os divisores comuns de 12
e 18 so 1,2,3 e 6. Dentre eles, 6 o maior. Ento chamamos o 6 de mximo
divisor comum de 12 e 18 e indicamos MDC(12,18) = 6." (fonte:
<http://www.somatematica.com.br/fundam/mdc.php>).

Lista de exerccios de matrizes


1. Escreva uma funo que receber, por parmetro, uma matriz de caracteres
(uma string) e um caractere e ir retornar a quantidade de vezes que o caractere
ocorre na matriz de caracteres.
2. Altere a primeira questo para retornar, ao invs de quantos caracteres forem
encontrados na matriz de caracteres, retornar a posio dos caracteres na
matriz.
3. Escreva uma funo, semelhante a do primeiro exerccio, porm, que receba
duas matrizes de caracteres (strings) e retorne se houve ocorrncia da segunda
string na primeira (retornando 1 se encontrou e 0 seno encontrou). Por
exemplo: se for passado Mariana e ana para a funo, ela retornar 1, pois
em Mariana encontrou ana. J, se passar Mariana e Ana, retornar 0, pois
no h Ana em Mariana.
4. Escreva uma funo, denominada strupr, que converta uma string em letras
maisculas.
5. Escreva uma funo, denominada strlwr, que converta uma string em letras
maisculas.
6. Escreva uma funo que procure a primeira ocorrncia do caractere ch em
str. A funo deve retornar um nmero inteiro indicando o ndice do caractere,
se for encontrado, ou -1, caso no encontrado. O prottipo da funo ser: int
strchr(char str[], char ch).
7. Escreva uma funo que compare duas cadeias de caracteres
independentemente de letras maisculas ou minsculas e retorne a diferena
ASCII dos primeiros caracteres diferentes ou zero se as cadeias forem iguais.
8. Escreva uma funo que inicialize a string com n vezes o caractere ch. O
prottipo da funo ser: void strnset(char str[], char ch, int n).
9. Escreva uma funo que inverta os caracteres de uma string. Por exemplo, se a
string for ABCDEF, deve ser convertida como FEDCBA.
10. Escreva uma funo que substitua todo caractere atual de str pelo novo. A
funo retorna o nmero de substituies. O prottipo da funo ser: int
replace(char str[], char atual, char novo).
11. Escreva um programa que tenha uma funo denominada concatena, que seja
do tipo void e que receba 2 vetores de caracteres e retorne, no primeiro vetor, a
concatenao do primeiro com o segundo vetor.
12. Escreva um programa que tenha uma funo denominada compara, que seja do
tipo int e que receba 2 vetores de caracteres e retorne 1 se os vetores forem
iguais e 0 seno forem.
13. Escreva um programa que tenha uma funo denominada maior, que receber
altura e nome de 3 pessoas, conforme descrito a seguir: void maior(float
altura1, char nome1[], float altura2, char nome2[], float
altura3, char nome3[]). A funo dever ordenar as pessoas da menor
para a maior (em altura) e retornar os nomes e alturas ordenados.
14. Elaborar um programa que leia duas matrizes A e B, cada uma de duas
dimenses com 5 linhas e 3 colunas para valores inteiros. Construir uma matriz
C de mesma dimenso, que seja formada pela soma dos elementos da matriz A
com os elementos da matriz B. Apresentar os elementos da matriz C.
15. Elaborar um programa que leia duas matrizes A e B, cada uma com uma
dimenso para 7 elementos inteiros. Construir uma matriz C de duas dimenses,
cuja primeira coluna deve ser formada pelos elementos da matriz A e a segunda
coluna pelos elementos da matriz B. Apresentar a matriz C.
16. Elaborar um programa que leia uma matriz A de duas dimenses com 10 linhas
e 7 colunas. Ao final apresentar o total de elementos pares e mpares existentes
na matriz. Apresentar tambm o percentual de elementos pares e mpares em
relao ao total de elementos da matriz. Supondo a existncia de 20 elementos
pares e 50 elementos mpares, ter-se-ia 28,6% de elementos pares e 71,4% de
elementos mpares.
17. Desenvolver um programa que simule uma agenda de cadastro pessoal com
nome, endereo, cdigo postal, bairro e telefone de dez pessoas. Ao final, o
programa deve apresentar seus elementos dispostos em ordem alfabtica
ascendente a partir do elemento (campo) nome.