Você está na página 1de 2

Programao I (2010/2011) ca Caderno de Exerc cios

Folha 5

1. Escreva um programa que troca os valores de duas variveis inteiras a e b recorrendo a a uma funo com prottipo void troca( int *p1Ptr, int *p2Ptr ). ca o 2. Escreva uma funo que dado um vector de inteiros e a sua dimenso determina o ca a mximo e a posio do mximo atravs de parmetros passados por referncia. a ca a e a e Utilize o seguinte prottipo o void maximoEPosicao( int v[ ], int dim, int *max, int *pos ) 3. Escreva uma funao que, dadas duas cadeias de caracteres, verique se uma prexo c e da outra. Diz-se que uma cadeia de caracteres prexo de outra quando ocorre no e seu in cio. Exemplo: Nov prexo de Novembro. e 4. Escreva uma funao que, dadas duas cadeias de caracteres, determine se a primeira c subsequncia da segunda. Sugesto: utilize uma variante da funo do exerc e e a ca cio anterior que verique a condio de prexo a partir de um dado ca ndice na segunda cadeia. 5. Escreva uma variante da funo do exerc anterior que calcule o ca cio ndice a partir do qual se encontra a subsequncia (-1 caso no ocorra). e a 6. Utilizando um ciclo, escreva uma funao int ehPalindromo( const char s [] ) c que, dada uma cadeia de caracteres s, determine se s um pal e ndromo. Pal ndromo uma palavra ou nmero cuja leitura a mesma, quer se faa da esquerda para a e u e c direita, quer se faa da direita para a esquerda. Exemplos: ovo, sugus e sopapos. c 7. Repita o exerc anterior sem recorrer a ciclo algum, utilizando apenas funoes de cio c biblioteca e uma funao, dada, com a assinatura void inverter( char s [] ). c 8. Escreva uma funao que retire todos os espaos de uma cadeia de caracteres. Por c c exemplo, a cadeia Ola como vai? deve tornar-se Olacomovai?. 9. Escreva uma funao que insira um espao entre cada par de letras Ola como vai? c c deve tornar-se O l a c o m o v a i ?. 10. Escreva uma funo que determine se uma dada cadeia de caracteres composta ca e somente por d gitos. 11. Escreva uma funao que dado um carcter e uma cadeia de caracteres determine c a a primeira posiao na cadeia na qual ocorre o carcter dado. Caso o carcter no c a a a exista, a funo deve devolver -1. ca 12. Escreva uma funo que dado um carcter e uma cadeia de caracteres determine o ca a nmero de vezes que o carcter ocorre na cadeia. u a 13. Escreva uma funo que, dada uma cadeia de caracteres, preencha um vector (tambm ca e dado como parmetro) com o nmero de ocorrncias das vogais (no acentuadas) a u e a nesta cadeia. Por exemplo, dada a cadeia Ola como vai?, a funo deve preencher ca o vector com os seguintes inteiros: [2, 0, 1, 3, 0].

1/2

14. Escreva uma funao que converta para letra maiscula todas as letras minsculas, c u u sem diacr ticos (acentos), numa dada cadeia de caracteres. Por exemplo, a cadeia Corao meu deve tornar-se CORAO MEU. ca ca 15. Escreva uma funo que, dada uma cadeia de caracteres s (descrevendo um texto) ca e um inteiro i (o cdigo), altere a cadeia de modo a que cada letra (minscula e o u maiscula, sem diacr u ticos) seja substitu pela letra que est i posioes a sua frente. da a c ` Por exemplo, o cdigo 3 deve alterar a cadeia maria manuel para pduld pdqxho. o 16. Escreva uma funo que receba uma cadeia de caracteres representando uma data ca e que escreva noutra cadeia (tambm passada como parmetro) a data por extenso. e a A funao deve aceitar datas nos formatos aaaa.mm.dd, aaaa-mm-dd e aaaa/mm/dd. c Exemplo: a cadeia 20071130 deve ser convertida em 30 de Novembro de 2007. 17. Pretende-se codicar um nmero inteiro numa sequncia de letras. Para isso utiu e lizamos uma chave com exactamente 10 letras que no podem ser repetidas. A a sequncia de letras obtida substituindo cada algarismo no nmero pelo carcter e e u a que na chave ocupa a posiao correspondente. Por exemplo, ao nmero 23400 e c u chave ubelarmino corresponde o cdigo elauu. o

2/2