Buscar

Linguagem e Técnica de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MULTIPLA ESCOLHA 
1. Observe a árvore a seguir e assinale a alternativa que apresenta os nós 
percorridos para buscar o nó 7. 
 
a) 6 8 7 
b) 6 7 
c) 1 2 6 8 7 
d) 9 8 7 
e) 3 5 4 2 1 6 8 7 
 
2. Avalie a arvore a seguir. 
 
Assinale a alternativa que apresenta o percurso em ordem. 
 
 
 
a) 6 2 8 1 4 7 9 3 5 
b) 1 2 3 4 5 6 7 8 9 
c) 1 3 5 4 2 7 9 8 6 
d) 6 2 1 4 3 5 8 7 9 
e) 9 8 7 6 5 4 3 2 1 
 
 
3. Considere o programa a seguir e assinale a alternativa correta: 
#include <stdio.h> 
void main() 
{ 
 Int x, y = 1; 
 Printf(“Digite um numero inteiro não negativo:”); 
 Scanf(“%d” &x) 
 
 For (y=1 , x>1, x--) 
 Y += x; 
 Printf(“Saida %d”, y); 
 Return 0; 
} 
 
f) Para a entrada 3, a saída será 9 
g) Para a entrada 4, a saída será 9 
h) Para a entrada 5, a saída será 20 
i) Para a entrada 7, a saída será 25 
j) Para a entrada 6, a saída será 21 
 
 
 
 4. Analise o programa a seguir e assinale a alternativa correta: 
#include <stdio.h> 
Void main() 
{ 
 Int n, count, p=1, i=1; 
 Printf(“Digite um numero inteiro positivo: “); 
 Scanf(“%d”, &n); 
 
 For(count=1, count <= n, count++) 
 { 
 If(cont % 2 == 0) 
 p += count; 
 else 
 i += count; 
 } 
Printf(“\nValor p: %d\n”, p); 
Printf(“\nValor i: %d\n”, i); 
} 
 
a) Para a entrada 8, o valor de p sera 21 e o de i sera 16 
b) Para a entrada 7, o valor de p sera 15 e o de i sera 17 
c) Para a entrada 6, o valor de p sera 13 e o de i sera 26 
d) Para a entrada 10, o valor de p sera 26 e o de i sera 31 
e) Para a entrada 9 o valor de p sera 21 e o de i sera 26 
 
5. O cinema “CINEUP”, apresentado a seguir, desenvolveu um programa que 
determina o preço com desconto 
para as entradas de cinema. 
#include <stdio.h> 
 
void main () { 
 float preco; 
 int categoria; 
 float preco_final; 
 
 printf("Digite o preco do ingresso: "); 
 scanf("%f", &preco); 
 
 printf("Selecione \n"); 
 printf("1 - estudante \n2- Aposentado \n3 - normal\n"); 
 printf("Digite a categoria do cliente (1/2/3)"); 
 scanf("%d", &categoria); 
 
 switch(categoria) { 
 case 1; 
 preco_final = preco * 0.50f; 
 prinf("Com o desconto estudante %f\n", preco_final); 
 break; 
 case 2; 
 preco_final = preco * 0.70f; 
 prinf("Com o desconto aposentado: %f\n", preco_final); 
 break; 
 case 3; 
 printf("Preço sem desconto: %f\n", preco); 
 break 
 defaul; 
 printf("Categoria invalida!\n"); 
 break; 
 } 
return 0; 
} 
 
a) Quando o valor do ingresso for R$ 15,00, o estudante pagara R$ 10,00 
b) Quando o valor do ingresso for R$ 15,00, o aposentado pagara R$ 10,00 
c) Quando o valor do ingresso for R$ 15,00 o estudante pagara R$7,50 
d) Quando o valor do ingresso for R$ 20,00 o aposentado pagara R$ 10,00 
e) Quando o valor do ingresso for R$ 20,00 o estudante pagara R$ 9,00 
 
6. O programa a seguir cadastra 5 produtos. Em seguida, imprime uma lista com o 
código e o nome de cada item. 
Por último, consulta o preço de um produto por meio de seu código. 
#include <stdio.h> 
typedef struct ( 
 long codigo; 
 char nome[100]; 
 float preco; 
) Produto; 
#define QUANTIDADE_DE_PROTUDOS 5 
int main () { 
 int i; 
 Protudo protudos[QUANTIDADE_DE_PRODUTOS]; 
 printf("Campos: codigo-do-produto nome preco\n"); 
 for(i=0; (i < QUANTIDADE_DE_PRODUTOS); i++) { 
 printf("\nInforme os dados do produto(%i): ",i+1); 
 __________________________________ 
 } 
 for(i=0; (i < QUANTIDADE_DE_PROTUDOS); i++) { 
 ______________________________ 
 } 
 long codigo_digitado; 
 printf("\nInforme o codigo do produto: "); 
 scanf("%1d", &codigo_digitado); 
 for(i=1; (i < QUANTIDADE_DE_PRODUTOS); i++){ 
 if(produtos[i].codigo == codigo_digitado) { 
 printf("\nPreco: R$ %1.2f\n", produtos[i].preco); 
 } 
 } 
 getchar(); 
 return 0; 
 } 
 
a) scanf(“%id %s $f, produtos[i].codigo, produtos[i].nome, produtos[i].preco); 
printf(“\n%id\t%s R$ %1.2f”, produtos[i].codigo, produtos[i].nome, produtos[i].preco); 
b) scanf(“%id %s $f, produtos[i].codigo, produtos[i].nome, produtos[i].preco); 
printf(“\n%id\t%s R$ %1.2f”, &produtos[i].codigo, &produtos[i].nome, &produtos[i].preco); 
c) scanf(“%id %s $f, &produtos[i].codigo, &produtos[i].nome, &produtos[i].preco); 
printf(“\n%id\t%s R$ %1.2f”, produtos.codigo, produtos.nome, produtos.preco); 
d) scanf(“%id %s %f código, nome, preco); 
printf(“\n%id\t%s R$ %1.2f, código, nome, preco); 
e) scanf(“%id, $s $f, &produtos[i].codigo, &produtos[i].nome, &produtos[i].preco); 
printf(“\n%id\t%s R$ %1.2f”, protudos[i].codigo, produtos[i].nome, produtos[i].preco); 
 
7. Avalie o seguinte programa: 
#include <stdio.h> 
void main() 
{ 
 int a=9; 
 int b=3; 
 int c; 
 b+=a; 
 c=-b; 
 printf(“%d %d\n”, a, b); 
 a=b++; 
 printf(“%d %d\n”, a, b); 
} 
Assinale a alternativa que apresenta a saída correta: 
 
a) 9 3 
 3 4 
b) 3 12 
 4 5 
c) 3 2 
 2 3 
d) 12 2 
 2 4 
e) 9 12 
 12 13 
 
 
 
 
 8. Dado o seguinte programa: 
#include <stdio.h> 
void main() 
{ 
 int a=45; 
 int b=5; 
 int c, d; 
 c = a/b; 
 d = a % b--; 
 printf(“%d %d %d %d\n”, a, b, c, d); 
 system(“pause”); 
} 
Assinale a alternativa que apresenta a saída correta: 
 
a) 45 5 9 0 
b) 45 5 3 1 
c) 45 4 9 0 
d) 15 5 9 0 
e) 15 4 9 0 
 
 
9. Uma locadora de carros tem uma regra para aluguel, a qual será apresentada no 
programa a seguir: 
#include <stdio.h> 
#include <string.h> 
int main() 
{ 
 float preconormal, descontopromo, precototal; 
 char dia[15], categoria[15]; 
 printf("Digite um preço normal: "); 
 scanf("%f", &preconormal); 
 printf("Digite o dia da semana: "); 
 scanf("%s", dia); 
 printf("Digite a categoria (LANCAMENTO ou COMUM):"); 
 scanf("%s", categoria); 
 
 if(strcmp(dia, "SEGUNDA")==0 || strcmp(dia, "TERCA")==0 || strcmp(dia, "QUINTA")==0) { 
 descontopromo = preconormal - (0.90 * preconormal); 
 } 
 else if (strcmp(dia, "QUARTA")==0 || strcmp(dia, "SEXTA")==0 || strcmp(dia, "SABADO")==0 || 
strcmp(dia, "DOMINGO")==0) { 
 descontopromo = 0; 
 } 
 if(strcmp(categoria, "LANCAMENTO")==0) { 
 preconormal = (preconormal * 0.90); 
 } 
 else if(strcmp(categoria, "COMUM")==0) { 
 preconormal = preconormal; 
 } 
 precototal = descontopromo + preconormal; 
 printf("PREÇO FINAL = %2f\n", precototal); 
 return 0; 
} 
Considerando o preço de R$ 80,00 para a locação, assinale a alternativa correta: 
 a) O preço de QUARTA para LANÇAMENTO é de R$ 72,00 
b) O preço de TERÇA para LANÇAMENTO é de R$ 72,00 
c) O preço de DOMINGO para COMUM é de R$ 90,00 
d) O Preço de SEGUNDA para COMUM é de R$ 85,00 
e) O Preço de QUINTA para LANÇAMENTO é de R$ 72,00 
 
10. O programa a seguir executa o cadastro de 5 pessoas, destancando nome, endereço e 
telefone. 
Em seguida, apresenta-se todo o cadastro. 
#include <stdio.h> 
 
struct cadastro { 
 char nome[20]; 
 char end[50]; 
 char telefone[11]; 
}; 
 void main () { 
 int i; 
 struct cadastro c[$]; 
 for (i=0; i<5; i++) { 
 printf("\n Digite seu Nome: "); 
 _______________________________ 
 printf("\n Digite seu Endereço: "); 
 scanf("%s", &c[i].end); 
 printf("\n Digite seu Telefone: "); 
 scanf("%s", &c[i].telefone); 
 } 
 for (i=0; i<5; i++) { 
 printf("\n Nome : $s", c[i].nome); 
 printf("\n Endereço : $s", c[i].end); 
 _________________________________ 
 printf("\n\n"); 
 } 
 system ("pause"); 
 getch(); 
} 
Para que o programa execute corretamente sua função, as linhas 14 e 24 devemser 
preenchidas com: 
 a) scanf(“%s”, c[i].nome); 
 printf(“\n Telefone: %s”, c[i].telefone); 
 
b) scanf(“%s”, &nome); 
 printf(“\n Telefone: %s”, telefone); 
 
c) scanf(“%s”, c[i].nome); 
 printf(“\n Telefone: %s”, &c[i].telefone); 
 
d) scanf(“%s”, &c[i].nome); 
 printf(“\n Telefone: %s”, c[i].telefone); 
 
e) scanf(“%d”, &c[i].nome); 
 printf(“\n Telefone: %s”, c[i].telefone); 
 
 
11. Avalie o programa a seguir e assinale a alternativa correta: 
#include <stdio.h> 
int main () { 
 int x, y = 1; 
 printf("Digite um numero inteiro nao negativo:"); 
 scanf("%d", &x); 
 while(x>1){ 
 y *=x; 
 x--; 
 } 
printf("Saida %d", y); 
return 0; 
} 
 
a) Para a entrada 3, a saída será 9 
b) Para a entrada 2, a saída será 4 
c) Para a entrada 5, a saída será 120 
d) Para a entrada 4, a saída será 20 
e) Para a entrada 4, a saída será 100 
 
12. Com base no programa a seguir, considere as entradas 0, 1 e 5. Qual será a saída 
apresentada para cada entrada, respectivamente? 
#include <stdio.h> 
int func(int n) 
{ 
 if ( n == 0) 
 return (1); 
 else 
 return(func(n-1)*(n-1)); 
} 
int main () { 
 int a, b; 
 printf("Digite um valor inteiro:"); 
 scanf("%d", &a); 
 b = func(a); 
 printf("%d \n", b); 
 return 0; 
} 
 
a) 0 1 5 
b) 0 1 1 
c) 1 0 0 
d) 0 1 4 
e) 0 1 3 
 
13. Com base no programa a seguir, considere as entradas 0, 1 e 5. Qual será a saída 
apresentada para cada entrada, respectivamente? 
#include <stdio.h> 
int func(int n) { 
 if (n == 0) { 
 return (1); 
 } 
 else { 
 return(n - func(n-1)); 
 } 
} 
int main() { 
 int a, b; 
 printf("Digite um valor inteiro:"); 
 scanf("%d", &a); 
 b = func(a); 
 printf("%d \n", b); 
 return 0; 
} 
a) 1 0 5 
b) 1 0 2 
c) 0 1 2 
d) 0 1 5 
e) 1 1 5 
 
14. Cada procedimento que fazemos em qualquer momento da vida obedece a uma sequência 
de ações. As ações obedecem a uma sequência lógica, procurando chegar a certo objetivo. O 
computador não tem conhecimento próprio. Assim, se precisarmos de sua ajuda para atingir 
um objetivo, devemos instrui-lo com um algoritmo escrito conforme uma lógica correta, a fim de 
ele cumprir a tarefa que queremos. Com base nessas informações, escolha a alternativa 
correta: 
 
a) O algoritmo é um conjunto infinito de instruções de comandos de ações que tem como 
objetivo a resolução de uma tarefa ou a resolução de um problema. 
b) Algoritmo é uma sequência infinita de instruções ou operações cuja execução em tempo 
finito, resolve um problema computacional qualquer que seja sua instancia. 
c) Algoritmo são regras informais para a obtenção de um resultado ou solução de um 
problema, englobando fórmulas de expressões aritméticas 
d) Ação é um acontecimento que a partir de um estado inicial, após um período de tempo 
infinito produz um estado final previsível e bem-definido. 
e) Algoritmo é a descrição de uma sequência de passos que deve ser segui da para a realização 
de uma tarefa. Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam 
numa sucessão finita de Ações 
 
15. A linguagem C não apresenta comandos de entrada e saída. Esses comandos são feitos 
por meios de funções. Existe uma biblioteca-padrão, o stdio.h. Sabendo dessas informações 
escolha a alternativa correta: 
 
a) Além dos especificadores, podemos incluir textos no formato em que são apresentados na 
saída junto com os dados. Essa saída é formada pela cadeia de caracteres do formato, em que os 
especificadores são substituídos pelos valores contidos nas variáveis e que não sejam 
correspondentes. 
b) Nos inteiros, o número que fica entre o sinal de % e o “d” determina a quantidade de dígitos 
que o valor ocupara na formatação de ponto flutuante, o número antes do ponto determina o valor 
de dígitos, e o número depois da virgula, a quantidade de dígitos antes da virgula. 
c) Os valores digitados no teclado são capturados pela função scanf, que também pertence a 
biblioteca stdio.h. Assim como o printf tem duas partes, uma que terminar o formato de leitura e a 
segunda variável que não irá receber o valor digitado. 
d) Para o scanf ler um valor e atribui-lo a uma variável, é necessário passar o endereço da 
variável que recebera o valor digitado. O operador & retorna o endereço de uma variável. 
e) Os especificadores de tipos do formato não são similares aos utilizados na função printf. A 
função scanf utiliza especificadores diferentes para o tipo float e o tipo double 
 
16. A linguagem C pertence a uma família de linguagens cujas características são: 
portabilidade, modularidade, compilação separada, recursos de baixo nível, geração de código 
eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso. Com base nessas 
informações escolha a alternativa correta: 
 
a) A linguagem C é considerada uma linguagem de nível médio alto. Não é uma linguagem de 
máquina reconhecida apenas pelo sistema operacional ou pelo processador. 
b) A linguagem C pertence à classe dos programas compilados, que são escritos em texto e 
passam por traduções para adequar-se ao sistema de banco de dados. 
c) Como toda linguagem de programação, a linguagem C não é muito rígida na sua sintaxe. 
Sintaxe são regras detalhadas para um programa possa ser executado. 
d) Funções são os subprogramas em C, por sua vez, são chamados por outras funções 
executando tarefas especificas. Há funções básicas que são definidas nas bibliotecas -padrão 
da linguagem e outras que são desenvolvidas por terceiros, com rotinas mais especificas. 
e) O compilador não ignora as quebras de linha, portanto comandos escritos em linhas 
diferentes, mas separados apenas por esse recurso, para o compilador, estão na mesma linha 
 
17. Analise o algoritimo “expressão” e identifica a saída nas alternativas a seguir: 
Algoritimo “expressão” 
var 
 a, b, c, d: inteiro 
 resultado: logico 
início 
 a<-4 
 b<-3 
 c<-2 
 d<-1 
 resultado<-(a>b)e(b>c)ou((c+d*a)<(d-c*2)) 
 escreva (“O resultado é: “, resultado) 
fimalgoritimo 
a) O resultado é ABCD 
b) O resultado é FALSO 
c) O resultado é NÃO 
d) O resultado é VERDADEIRO 
e) O resultado é RESULTADO 
 
18. Um programa faz as seguintes operações: 
 I. Le vários caracteres no teclado, e cada caractere lido é colocado dentro de uma fila 
 II. Esvazia a fila e coloca cada elemento, um depois do outro, dentro de uma pilha 
III. Esvazia a pilha e imprime cada elemento, um depois do outro 
Caso sejam introduzidos os valores A B C D E, quais serão os valores impressos no fim? 
 
a) E D C B A 
b) A B C D E 
c) A B D E C 
d) E A D B C 
e) C A B D E 
 
19. A empresa “Fantasia” desenvolveu o algoritimo apresentado a seguir para calcular alguns 
valores da folha de 
pagamento. 
Algoritimo “Salario” 
var 
 nome: caráter 
 horas, salariol, salariob, descontol, descontor: real 
inicio 
 escreva (“Digite o nome do funcionário”) 
 leia(nome) 
 escreva(“Digite a quantidade de horas trabalhadas no mês:”) 
 leia(horas) 
 salariob <- (12*horas) 
 descontol <- salariob * 0.085 
 descontor <- salariob * 0.05 
 salariol <- salariob – (descontol + descontor) 
 escreva(nome, salariob, descontol, descontor, salariol) 
fimAlgoritimo 
a) Quando o salário bruto for R$ 2,000,00, o salário líquido será R$ 1500,00 
b) Quando o salário bruto for R$ 2,000,00, o salário líquido será R$ 1820,30 
c) Quando o salário bruto for R$ 1.920,00, o salário líquido será R$ 1.500,50 
d) Quando o salário bruto for R$ 1.920,00, o salário líquido será R$ 1.660,80 
e) Quando o salário bruto for R$ 1.500,00, o salário líquido será R$1.100,20 
 
20. Analise o programa a seguir e assinale a alternativa que apresenta a saída. 
#include <stdio.h> 
int main () { 
 int lin,col, tab; 
 int mat[3][3]={2,3,6,4,5,6,9,8,7}; 
 for (lin=0; lin<3; lin++) { 
 for (col=0;col<3;col++) { 
 if(lin == col) { 
 printf("%d ", mat[lin][col]); 
 } 
 } 
 } 
 printf("\n\n"); 
 return 0; 
} 
a) 2 5 7 
b) 2 3 6 
c) 4 5 6 
d) 9 8 7 
e) 6 6 7 
DISCURSIVAS. 
1. Desenvolva um programa em linguagem C que calcule o produto de dois números 
inteiros fornecidos pelo 
usuário. Utilize apenas a operação de adição. 
#include <stdio.h> 
int main () { 
 int i, n1, n2; 
 int x = 0; 
 printf("Num1: "); 
 scanf("%d", &n1); 
 printf("Num2: "); 
 scanf("%d", &n2); 
 
 for(i=1; i<=n2; i++) 
 { 
 x+=n1; 
 } 
 printf("Produto = %d", x); 
} 
 
 
2. Construa um programa em linguagem C que calcule o quociente e o resto de uma 
divisão entre dois números inteiros usando somente a adição e a subtração. 
#include <stdio.h> 
int main () { 
 int a, b, q; 
 printf("Dividendo: "); 
 scanf("%d", &a); 
 printf("Divisor: "); 
 scanf("%d", &b); 
 while(a>=b) 
 { 
 a=a+(-b); 
 q++; 
 } 
 printf("Resto %d\n quociente %d", a, q); 
} 
 
3. Conceitue uma lista ligada e explique o funcionamento da pilha (Last In Firt Out LIFO) e 
da fila (First In First Out – FIFO). 
Uma lista ligada é um conjunto linear de nós, que segue unidirecionalmente. Cada nó é um 
conjunto de dados mais um ponteido indicando o endereço do elemento seguinte. 
LIFO = Último a entrar primeiro a sair. 
FIFO = Primeiro a entrar primeiro a sair. 
 
4. Conceitue uma árvore e o tipo particular, o qual é chamado arvore binária. Explique as 
três formas de percorrer uma árvore (pré-ordem, ordem e pós-ordem). 
Arvores são estruturas de dados que permitem a representação de de dados em vários níveis, 
sendo a binária quando um pai tem no máximo dois filhos. 
Pré-ordem le o nó, vai para SAE, vai para SAD. 
Ordem: vai para SAE, le o nó, vai para SAD. 
Pós-ordem: vai para SAE, vai para SAD, le o nó. 
 
 
5. Considere a arvore a seguir, que representa uma hierarquia de executivos em uma 
empresa. Liste os nomes dos executivos, considerando que a arvore vai ser percorrida 
seguindo o percurso infixo (ordem). 
Antônio, João, Ricardo, Jose, Henrique, Maria, Vanessa, Luiz. 
 
6. Variáveis são declarações, portanto fazem parte do desenvolvimento de um algoritmo o. 
Descreva, conforme seu conhecimento, o que são variáveis, como funcionam e como são 
utilizadas. 
Variável é espaço na memória que reservamos e damos um nome, o computador 
armazena um valor nesse espaço e podemos chamar esse valor pelo nome da variável 
ou alterar conforme necessário 
 
 
7. Desenvolva um programa em linguagem C para informar o período de renovação dos 
exames da carteira de habilitação. Menores de idade não possuem carteira. Até 65 anos, a 
validade do documento expira a cada 5 anos; depois o exame de renovação deve ser feito a 
cada 3 anos. 
 
#include <stdio.h> 
 
int main () 
{ 
 int idade; 
 
 printf("Idade: "); 
 scanf("%d", &idade); 
 if(idade < 18) { 
 printf("Menor de idade"); 
 } 
 else 
 { 
 if(idade >= 65) { 
 printf("Renovar de 3 em 3 anos"); 
 } 
 else { 
 printf("Renovar de 5 em 5 anos"); 
 } 
 } 
} 
 
8. Escreva um fragmento de programa em C que contenha: 
 •Uma estrutura de arvore binária que armazene um número inteiro e um número flutuante em cada 
 nó, bem como ponteiros para as duas subárvores; 
• Uma função que crie esses nós. 
 
 
 
 
struct arv { 
int info; 
struct arv* sae; 
struct arv* sad; }; 
typedef struct arv; 
Arv* cria(int c, Arv* sae, Arv* sad){ 
 Arv* p=(Arv*)malloc(sizeof(Arv)); 
 p->info = c; 
 p->sae = sae; 
 p->sad = sad; 
 return p; 
} 
 
 
9. A sequência de Fibonacci corresponde a sequência de números F(n) = f(n-1)+f(n-2), com 
o f(0)=0 e f(1): 0, 1, 1, 2, 3, 5, 8, 13 ,21, 34, 55, 89, 144, 233.... 
Escreva um programa em C que imprima na tela apenas os números que pertencem a 
sequência de Fibonacci, que também sejam divisíveis por 3 e por 7, e que sejam inferiores a 
50000 (todas essas condições devem ocorrer simultaneamente). Os demais números não 
devem ser impressos. Qual será o primeiro número impresso pelo programa. 
 
 
10. Faça um programa em linguagem C que receba um número inteiro e apresente o seu 
fatorial (5! = 1 * 2 * 3 * 4 *5 = 120). Crie uma função recursiva para resolver o problema. 
 
#include <stdio.h> 
int main() 
{ 
int fat, n; 
printf("Insira um valor: "); 
scanf("%d", &n); 
 
for(fat = 1; n > 1; n = n - 1) 
fat = fat * n; 
 
printf("\nFatorial: %d", fat); 
return 0; 
}

Outros materiais