Linguagem C
86 pág.

Linguagem C


DisciplinaAlgoritmos e Estrutura de Dados I702 materiais7.920 seguidores
Pré-visualização18 páginas
4. Faça um programa que receba duas palavras e gere uma terceira que represente a combinação 
das duas anteriores. 
5. Faça um programa que receba uma palavra e coloque os caracteres em ordem crescente. 
6. Faça um programa que receba uma palavra e inverta a ordem dos caracteres. 
7. Faça um programa eu receba uma frase, calcule e mostre a quantidade de vezes que o caractere 
a aparece. 
8. Faça um programa que receba uma frase, calcule e mostre a quantidade de consoantes da frase 
digitada. 
9. Faça um programa que receba uma frase, calcule e mostre a quantidade de vogais da frase 
digitada. 
 39
10. Faça um programa que receba uma frase e mostre a quantidade total de cada caractere na frase. 
11. Faça um programa que armazene 10 nomes. 
12. Faça um programa que armazene 10 nomes. Dado uma entrada do usuário, pesquise e apresente 
se encontrado o nome (em que posição do vetor). 
13. Faça um programa que receba uma frase, calcule e mostre a quantidade de palavras da frase 
digitada. 
14. Faça um programa que receba uma frase. Caso a frase possua meses por extenso substitua-os 
pelo seu número correspondente. 
15. Faça um programa que mostre a data do sistema nos seguintes formatos: \u201cdia/mês/ano\u201d e \u201cSão 
Paulo, 14 de setembro de 2001\u201d. 
16. Elabore um programa que receba uma frase e mostre a quantidade de palavras, quais os 
caracteres existentes e a quantidade de cada caractere. 
 
 
 
 
 40
7. ESTRUTURAS, ENUMERAÇÕES E UNIÕES 
A linguagem C permite criar tipos de dados utilizando: 
\u2022 Estruturas; 
\u2022 Uniões; 
\u2022 Enumerações. 
 
7.1 Estruturas 
Estrutura (structure) é um tipo de dado formado por um conjunto de variáveis 
referenciadas por um nome. As estruturas permitem organizar os dados na memória e estabelecer 
um inter-relacionamento entre os mesmo de modo que facilite a manipulação dos dados e ofereça 
maior clareza aos programas. 
Em C é declarada uma estrutura da seguinte maneira: 
struct <nome_da_struct> 
{ 
 <tipo> <variável_1>; 
 <tipo> <variável_2>; 
 ... 
 <tipo> <variável_n>; 
}; 
struct cliente 
{ 
 char nome[41]; 
 char sobrenome[41]; 
}; 
A palavra struct define uma declaração, seguida do nome da estrutura e das respectivas 
variáveis delimitadas pelas chaves. As variáveis são denominadas membros da estrutura. A 
declaração de variáveis do tipo estrutura pode ser realizada da seguinte maneira: 
struct cliente 
{ 
 char nome[41]; 
 char sobrenome[41]; 
}*x, y, z[5]; 
struct cliente 
{ 
 char nome[41]; 
 char sobrenome[41]; 
}; 
... 
struct cliente *x, y, z[5]; 
A referência ou o acesso a um determinado membro da estrutura é dado por uma 
construção do tipo para variáveis e ponteiros: 
<nome_da_estrutura>.<membro> <nome_da_estrutura>-><membro> 
Exemplo: 
1. #include <stdlib.h> 
2. #include <stdio.h> 
3. 
4. struct cliente 
5. { 
6. char nome[41]; 
7. char sobrenome[41]; 
8. }*x, y, z[5]; 
9. 
10. int main(void) 
11. { 
12. x=&y; 
13. printf(&quot;Digite seu nome: &quot;); 
14. scanf(&quot;%s&quot;, &y.nome); 
15. printf(&quot;Ola %s!\n&quot;, y.nome); 
16. printf(&quot;Digite seu nome: &quot;); 
17. scanf(&quot;%s&quot;, &x->nome); 
18. printf(&quot;Ola %s!\n&quot;, x->nome); 
19. printf(&quot;Digite seu nome: &quot;); 
20. scanf(&quot;%s&quot;, &z[0].nome); 
21. printf(&quot;Ola %s!\n&quot;, z[0].nome); 
22. return(0); 
23. } 
 
 41
7.2 Enumerações 
Enumeração é um conjunto de constantes inteiras que especifica todos os valores legais 
que uma variável desse tipo pode ter. Considere o seguinte exemplo: 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. 
4. enum dia_da_semana {Segunda, terca, quarta, quinta, sexta, sabado, domingo}; 
5. 
6. int main(void) 
7. { 
8. enum dia_da_semana dia; 
9. printf(&quot;Digite um numero de 0 a 6:&quot;); 
10. scanf(&quot;%d&quot;, &dia); 
11. switch(dia) 
12. { 
13. case Segunda: 
14. printf(&quot;Segunda&quot;); 
15. break; 
16. case terca: 
17. printf(&quot;terca&quot;); 
18. break; 
19. case quarta: 
20. printf(&quot;quarta&quot;); 
21. break; 
22. case quinta: 
23. printf(&quot;quinta&quot;); 
24. break; 
25. case sexta: 
26. printf(&quot;sexta&quot;); 
27. break; 
28. case sabado: 
29. printf(&quot;sabado&quot;); 
30. break; 
31. case domingo: 
32. printf(&quot;domingo&quot;); 
33. break; 
34. default: 
35. printf(&quot;Fora da faixa!\n&quot;); 
36. } 
37. return(0); 
38. } 
O valor do primeiro elemento do conjunto enum é 0. 
 
7.3 Uniões 
Uniões (union) é uma posição de memória que é compartilhada por duas ou mais 
variáveis diferentes, geralmente de tipos diferentes. A definição e um exemplo é apresentada a 
seguir: 
union <identificador> 
{ 
 <tipo> <nome_da_vairável_01>; 
 <tipo> <nome_da_vairável_02>; 
 ... 
 <tipo> <nome_da_variável_n>; 
}<variáveis union>; 
union cliente 
{ 
 int i; 
 char c; 
}; 
No exemplo acima, tanto o inteiro i como o caractere c compartilham a mesma porção 
de memória, o mesmo endereço. Porém i ocupa 2 bytes e c apenas 1 byte. Quando uma union é 
declarada, o compilador cria automaticamente uma variável grande o bastante para conter o maior 
 42
tipo de variável da union. A utilização de union pode ajudar na produção de código portáveis e na 
utilização de conversões de tipos. 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. 
4. union tipoespecial 
5. { 
6. int x; 
7. float y; 
8. }W; 
9. 
10. int main(void) 
11. { 
12. printf(&quot;Digite um inteiro:&quot;); 
13. scanf(&quot;%d&quot;, &W.x); 
14. printf(&quot;O endereco da variavel x e: %p\n&quot;, &W.x); 
15. printf(&quot;Voce digiou inteiro %d\n&quot;, W.x); 
16. printf(&quot;Digite um ponto flutuante:&quot;); 
17. scanf(&quot;%f&quot;, &W.y); 
18. printf(&quot;O endereco da variavel y e: %p\n&quot;, &W.y); 
19. printf(&quot;Voce digiou ponto flutuante %f\n&quot;, W.y); 
20. return(0); 
21. } 
 
7.4 Exercícios 
1. Elabore um programa que armazene as seguintes informações de 10 alunos de uma turma: 
nome, sobrenome, prontuário, turma e data de nascimento. 
2. Elabore um programa que imprima as seguintes informações de 10 alunos de uma turma: nome, 
sobrenome, prontuário, turma e data de nascimento. 
3. Considerando os exercícios 1 e 2, elabore um programa que edite as informações de um 
determinado aluno escolhido pelo usuário. 
4. Elabore um programa que leia um valor. Este valor pode ser inteiro, ponto flutuante ou 
caractere. 
5. Faça um programa que realize o cadastro de contas bancárias com as seguintes informações: 
número da conta, nome do cliente e saldo. O banco permitirá o cadastramento de apenas 15 
contas e não pode haver mais de uma conta com o mesmo número. Crie o menu de opções a 
seguir: 
Menu de opcoes: 
Cadastrar 
Visualizar todas as contas de um determinado cliente 
Excluir a conta com o menor saldo 
Sair 
Opcao?: 
 
6. Faça um programa de cadastro de clientes. Este programa deve permitir a inserção de novos 
clientes, editar dados de clientes cadastrados, imprimir informações de um determinado cliente, 
excluir um cliente do cadastro, pesquisar clientes e relatorio. São necessários as seguintes 
informações do cliente: nome, sobrenome, rg, sexo, estado civil, data de nascimento, endereço, 
numero, complemento, cep, bairro, cidade, estado, telefone, fax e celular. O relatorio deve 
 43
calcular a média de idade, quantos são do sexo masculino e feminino, quantos são solteiros(as), 
quantos são casados(as) , quantos divorciados(as), listar as cidades e a respectiva quantidade de 
clientes por cidade. 
7. Faça um programa que gerencie uma locadora de vídeo. Este programa deve permitir a inserção 
de novas fitas, editar informações de fitas, pesquisar e imprimir informações de uma 
determinada fita. São necessários as seguintes informações das fitas de vídeo: título, categoria 
(comédia, drama, ação, documentário ou infantil), diretor, ano, com legenda ou sem legenda, 
idioma, descrição e quantidade disponível. 
 
 
 
 
 44
8. PONTEIROS 
Ponteiros são variáveis que contém um endereço de memória, isto é, armazenam a 
posição de uma outra variável na memória. Um ponteiro pode armazenar a posição de uma variável