Buscar

Compiladao_-_Linguagens_e_Tecnicas_de_Programacao_ADS_UNIP

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 21 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 21 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 21 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 queo programa execute corretamente sua função, as linhas 14 e 24 devem ser 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 
formulas 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 seguida 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 
inicio 
 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áriolí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 nome 
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. Descreva, conforme 
seu conhecimento, o que são variáveis, como funcionam e como são utilizadas. 
Variável é espaço na memoria 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. 
Q. Estrutura de dados podem manipular tipos básicos de dados. Conforme a descrição, escolha a alternativa 
correta: 
R: B – UM REGISTRO E UMA ESTRUTURA DE DADOS QUE AGRUPA DADOS DE TIPOS DISTINTOS. UM REGISTRO DE 
DADOS E COMPOSTO POR CERTO NUMERO DE CAMPOS DE DADOS, QUE SÃO ITENS DE DADOS INDIVIDUAIS... 
Q. UMA VEZ IMPLEMENTADA UMA FUNÇÃO DE INSERÇÃO, OUTRA FUNÇÃO IMPORTANTE É A REMOÇÃO DE UM 
NÓ. PILHA PODE SER CONCEITUADA... 
R: D – NA PILHA, DEVEMOS IMPLEMENTAR DUAS OPERAÇÕES BÁSICAS: A OPERAÇÃO PARA EMPILHAR UM NOVO 
ELEMENTO, INSERINDO-O NO TOPO, E A OPERAÇÃO PARA DESEMPILHAR UM ELEMENTO, REMOVENDO-O DO TOP 
Q. SÃO MUITO COMUNS, DURANTE O PROCESSAMENTO DE UMPROGRAMA, SITUAÇÕES EM QUE PODE EXISTIR A 
NECESSIDADE DE REPETIR UM DETERMINADO CONJUNTO DE COMANDOS POR UM CERTO NÚMERO DE VEZES. 
COM BASE NESSAS INFORMAÇÕES, ESCOLHA A ALTERNATIVA CORRETA: 
R: B - LAÇOS CONTADOS: QUANDO SE CONHECE PREVIAMENTE QUANTAS VEZES O COMANDO COMPOSTO NO 
INTERIOR DA CONSTRUÇÃO SERÁ EXECUTADO. 
Q. A EMPRESA FANTASIA DESENVOLVEU O ALGORITMO APRESENTADO A SEGUIR PARA CALCULAR ALGUNS 
VALORES DA FOLHA DE PAGAMENTO. 
R: D – QUANDO O SALARIO BRUTO FOR R$ 1920, O SALARIO LIQUIDO SERA 1660,80. 
Q. ANALISE O ALGORITMO EXPRESSAO E IDENTIFIQUE A SAIDA NAS ALTERNATIVAS A SEGUIR. 
R: D – O RESULTADO E: VERDADEIRO. 
 
 
Q. ANALISE O SEGUINTE PROGRAMA 
 
R: 6 5 
 7 6 
 
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; 
} 
 
Q. SABENDO QUE OS AMIGOS JÁ PERCORRERAM 450KM E JÁ GASTARAM 501, ASSINALE A ALTERNATIVA 
CORRETA. 
R: B – QUANDO O VALOR DE LITRO DE COMBUSTIVEL FOR R$ 2,00 O GASTO MÉDIO COM COMBUSTIVEL SERA 18. 
Q. FAÇAMOS A AVALIAÇÃO DE DOIS CONTRIBUINTES. UM OBTEVE RENDA ANUAL DE R$ 20.000 E O OUTRO DE R$ 
35000. CASO UTILIZAREMOS O PROGRAMA DESCRITO A SEGUIR... 
 
R: E – O IMPOSTO DEVIDO SERA 2000 E 7750 RESPECTIVAMENTE. 
Q. DOIS AMIGOS DECIDIRAM FAZER UMA VIAGEM DE FÉRIAS E DESENVOLVERAM UM ALGORTIMO PARA 
DETERMINAR O GASTO MEDIO.. 
R: B – QUANDO O VALOR DE LITRO DE COMBUSTIVEL FOR 2.00 O GASTO MEDIO DE COMBUSTIVEL SERA DE 18.00. 
Q. MUITAS VEZES, O USO DE VETORES E MATRIZES FICA LIMITADO PELA NECESSIDADE DE SABERMOS 
ANTECIPADAMENTE A QUANTIDADE DE ELEMENTOS QUIE SERÃO NECESSÁRIOS. SEGUNDO AS INFORMACOES 
DESCRITAS, ESOCLHA A ALTERNATIVA CORRETA. 
Q. O CINEMA “CINEUNIP”, APRESETADO A SEGUIR, DESENVOLVEU UM PROGRAMA QUE DETRERMINA O PREÇO 
COM DESCONTO PARA AS ENTRADAS DE CINEMA. 
 
R: D – QUANDO O VALOR DO INGRESSO FOR 15 O ESTUDANTE PAGARA 7.50 
Q. DADO O SEGUINTE PROGRAMA. 
 
R: C – 45 4 90 
R: B – A FUNCAO MALLOC RESERVA A QUANTIDADE DE BYTES QUE E PASSADA COMO PARAMETRO E RETORNA O 
ENDERECO EM QUE ESSE ESPACO DE MEMORIA FOI RESERVADO. 
Q. Avalie o seguinte programa: 
#include <stdio.h> 
void main() 
{ 
 int a=9; 
 int b=2; 
 int c; 
 b+=a; 
 c=-b; 
 B = 2; 
 printf(“%d %d\n”, a, b); 
 a=b++; 
 printf(“%d %d\n”, a, b); 
} 
Assinale a alternativa que apresenta a saída correta: 
 
f) 9 3 
3 4 
g) 3 12 
4 5 
h) 3 2 
2 3 
i) 12 2 
2 4 
j) 9 2 
2 3

Outros materiais