Buscar

Compilado 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 46 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 46 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 46 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

Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
Função de cada 
 
 
1– Façamos a avaliação de dois contribuintes. Um obteve 
renda anual de R$ 20.000,00, e o outro de R$ 35.000. Caso 
utilizemos o programa descrito a seguir, qual o valor devido, 
.... 
E) O imposto devido será R$ 2.000,00 e R$ 7.750,00 
respectivamente. 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
2– O programa a seguir cadastra 5 produtos. Em seguida, 
imprime uma lista com o código e o nome de cada item. Por 
ultimo consulta o preço de um produto por meio de seu 
código. 
E) scanf(“%id %s %f”, &produtos[i].codigo, 
&produtos[i].nome, &produto[i].preco); 
Printf(“\n%id\t%s R$%1.2f’, 
produtos[i].codigo,produtos[i].nome, produtos[i].preco); 
 
Para que o programa execute corretamente sua função, as 
linhas 14 e 17 devem ser preenchidas com: 
 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
3- Analise a árvore a seguir: 
 
Assinale a alternativa que apresenta o percurso em pré-
ordem: 
E) 6 2 1 4 3 5 8 7 9 
 
4- O programa a seguir está incompleto, pois faltam 3 linhas 
de código. O programa recebe 5 números inteiros, ordena 
em ordem crescente e imprime o resultado. 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
Assinale a alternativa com os comandos que completas, 
respectivamente, as linhas 16,17 e 18. 
C) 
 
5- Considere o programa a seguir e assinale a alternativa 
correta: 
 
A) Para a entrada 10, a saída será “Elemento do termo 10 
34” 
 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
6- Analise o algoritmo “expressão” e identifique a saída nas 
alternativas... 
D) O resultado é verdadeiro 
 
 
7- Considere o programa a seguir e assinale a alternativa 
correta 
 
E) Para a entrada 6, a saída será 21 
 
8– Um programa faz as seguintes operações: 
I – Lê vários caracteres no teclado, 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. 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
Caso sejam introduzidos os valores A B C D E , quais serão 
os valores impressos no fim? 
A) E D C B A 
 
 
5- Cada procedimento que fazemos em qualquer 
momento... 
 
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 
 
 
 
 
 
 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
7- O programa a seguir executa o cadastro de 5 pessoas, 
destacando nome, endereço e telefone. Em seguida, 
apresenta-se todo o cadastro. 
 
R: scanf("%s", &c[i].nome); printf("\nTelefone: %s", 
c[i].telefone); 
 
9– Muitas vezes o uso de vetores e matrizes fica limitado 
pela necessidade de sabermos antecipadamente a 
quantidade de elementos que serão necessários. Segundo 
as informações descritas, escolha a alternativa correta: 
E) Vimos que os vetores são limitados porque desde o 
começo precisamos saber a sua dimensão, e tivemos como 
solução o uso da alocação dinâmica da memória, para casos 
em que, a cada execução do programa, as suas dimensões 
possam mudar. 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
10– Na estrutura de fila, os acessos aos elementos seguem 
uma regra fixa. Na fila, o primeiro que entra é o primeiro que 
sai (FIFO...). A ideia fundamental da fila é que só podemos 
inserir um novo elemento no fim da fila e só podemos retirar 
aquele que está no início da fila. São definidos os comandos: 
● Entra (p): insere um elemento no fim da fila 
● Sai (p, n): retira um elemento do início da fila 
● E) 4 5 6 7 8 9 
 
 
Sequencia de Fibonacci 
#include <stdio.h> 
#include <stdlib.h> 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
int main(void) 
{ 
 int num, f0 = 0, f1=1, f2; 
 while(f1 < 50000){ 
 f2 = f1 + f0; 
 f0 = f1; 
 f1 = f2; 
 if(f2%3==0 && f2%7==0) 
 printf("%d \n", f2); 
 } 
 getchar(); 
 //system("cls"); 
 main(); 
} 
 
 
 
 
 
11- A linguagem C pertence a uma família de linguagens 
cujas características são: portabilidade, modularidade, 
compilação separada... Com base nessas informações, 
escolha a afirmativa correta: 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
D) Funções são os subprogramas em C, que, por sua vez, 
são chamados por outras funções executando tarefas 
específicas. Há funções básicas que estão definidas nas 
bibliotecas-padrão da linguagem, e outras que são 
desenvolvidas por terceiros, com rotinas mais específicas. 
 
2- Estrutura de dados podem manipular tipos básicos de 
dados. Conforme a descrição, escolha a alternativa correta: 
 
B) Um registro é uma estrutura de dados que agrupa 
dados.... 
 
4- Analise o programa a seguir e assinale a alternativa 
correta: 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
R: E) Para a entrada 9, o valor de p será 21 e o de i será 26 
#include <stdio.h> 
#include <time.h> 
 
int main () 
{ 
 int n, count, p =1, i= 1; 
 
 printf("Digite um numero inteiro positivo: "); 
 scanf("%d", &n); 
 
 for(count = 1; count <= n; count++){ 
 if(count % 2 == 0) 
 p += count; 
 else 
 i += count; 
 } 
 
 printf("\nValor p: %d\n", p); 
 printf("\nValor R: %d\n", i); 
 main(); 
} 
 
 
2- Para a entrada... 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
R: E) Para a entrada 9, o valor de p será 21 e o de i será 26 
 
 
Para entrada de 0,1 e 5 sai: B) 1 0 2 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
 
char 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); 
 
 main(); 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
} 
 
12– Dado o seguinte programa: 
 
Qual alternativa apresenta a saída correta? 
C) 45 4 9 0 
 
13– Observe a árvore a seguir e assinale a alternativa que 
apresenta os nós percorridos para buscar o nó 7. 
 
A) 6 8 7 
 
 
 
14- Analise o programa a seguir considerando as entradas 
0, 1 e 5. Qual seráa saída apresentada para cada entrada, 
respectivamente? 
B) – 1 0 2 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
 
15- Para que o programa execute corretamente sua função, 
as linhas 14 e 24 devem ser preenchidas com: 
D: scanf(“%s”, c[i].nome 
Printf(“/n Telefone : %s”, c[i].telefone); 
 
 
 
 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
 
 
 
 
 
 
 
 
16- Com base na análise do programa, assinale a alternativa 
correta: 
 
C) Quando o valor do ingresso for R$ 15,00, o estudante 
pagará R$ 7,50 
 
 
17- Desenvolva o teste de mesa para o programa a seguir e 
assinale a alternativa que apresenta a saída correta: 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
A) 150 
 
 
 
18- Analise o programa a seguir considerando as entradas 
0, 1 e 5. Qual será a saída apresentada para cada entrada, 
respectivamente: 
A) 1 0 -14 
 
 
 
19- A linguagem C não apresenta comandos de entrada e 
saída. Esses comandos são feitos por meio de funções; 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
Existe uma biblioteca – padrão, o stdio,h. Sabendo dessas 
informações, escolha a alternativa correta: 
D) Para o scanf ler um valor e atribuí-lo a uma variável, é 
necessário passar o endereço ... 
 
 
20- Analise o programa a seguir e assinale a alternativa que 
apresente a saída: 
 
 
 
A) 2 5 7 
 
21- Observe a árvore a seguir. E assinale a alternativa que 
apresenta o percurso em pós-ordem (pós-fixo). 
R.: A) 1 3 5 4 2 7 9 8 6 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
22- Analise o seguinte programa: 
#include <stdio.h> 
void main() 
{ rc 
int a=5; 
int b=3; 
b=a++; 
printf("%d %d\n", a, b); 
b=++a; 
b--; 
printf("%d %d\n", a, b); 
} 
Qual alternativa apresenta a saída correta? 
E) 6 5 
 7 6 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
23- Avalie o programa a seguir e assinale a alternativa 
correta. 
#include <stdio.h> 
void 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; 
} 
R.: C) Para a entrada 5, a saída será 120 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
 
8- Uma 
locadora 
de 
carros 
tem uma 
regra 
para 
aluguel, a qual está apresentada no programa a seguir: 
 
A) O preço de QUARTA para LANÇAMENTO e de R$72,00 
 
 
24- A Pilha segue a regra de inclusão: o último que entra na 
sequência é o primeiro a sair, e por isso ele é conhecido 
como (Last In First Out – LIFO) São definidos os comandos: 
● POP (p): retira o elemento no topo da pilha; 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
● PUSH (p, n): insere um número “n” em uma estrutura 
de dados do tipo pilha “p”. 
Considerando uma estrutura de dados tipo pilha "p", 
inicialmente vazia, executa-se: 
Depois da execução dos comandos, é preciso saber: qual 
será o elemento do TOPO da pilha e qual é o valor da soma 
de todos os elementos restantes nesta pilha, 
respectivamente? 
D) 6 e 12 
 
 
25- Segundo os fundamentos relacionados a pseudocódigo, 
e a construção de algorítimo, escolha a alternativa correta: 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
B) Podemos classificar os tipos de informações a serem 
processadas pelo computador, de modo geral em dados e 
instruções. Os dados são as informações a serem 
processadas, e as instruções são os comandos que 
orientam o processamento feito por um computador. 
 
26- Considerando o algoritmo “salário” assinale a 
alternativa correta: 
D) Quando o salário bruto for R$ 1.920,00 o salário líquido 
será R$ 1.660,80 
 
 
27- Avalie o seguinte programa: 
#incude <stdio.h> void 
main() 
 int 
 a=9; 
 int 
 b=3; 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 intc; 
 
 c=b; 3 
 b=2; 2 
 printf(“%d %d\n”,a,b); 9, 12 
 a=b++; 
 printf(“%d %d\n”,a,b); 
} 
 
Assinale a alternativa que apresenta a saída correta: 
E) 9 2 
 2 3 
 
28- Avalie o programa a seguir considerando as entradas O, 
1 e 5. Qual será a saída apresentada para cada entrada, 
respectivamente? 
 
 
 
 
 
 
 
 
 
 
 
B) 1 0 2 
 
29- Avalie a árvore a seguir: 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
Assinale a alternativa que apresenta o percurso em 
ordem. 
B) 1 2 3 4 5 6 7 8 9 
4- A empresa “Fantasia” desenvolveu o algoritmo 
apresentado a seguir para calcular alguns valores da 
folha de pagamento. 
 
 
30- Com base no programa a seguir, considere as 
entradas 0, 1 e 5. Qual será a saída apresentada para 
cada entrada respectivamente? 
C) 1 0 0 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
31- Uma vez implementada uma função de inserção, outra 
função importante é a remoção de um nó. Pilha pode ser 
conceituada como: o último que entra na sequência é o 
primeiro a sair. Com base nas informações citadas, escolha 
a alternativa correta: 
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 topo 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
Resp.: C 
 
33- São muito comuns, durante um processo de um 
programa situações em que possam 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. 
 
 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
Questões Discursivas: 
1- A construção de listas ligadas em C requer a utilização de 
estruturas. Escreva um trecho de um programa em C que 
contenha uma struct para armazenar o nó... O trecho de 
código deve conter também uma definição de um tipo 
chamado “No” baseado nessa struct. 
 
struct no 
{ 
 char identificador[64]; 
 int num; 
 float var; 
 struct no *prox; 
} 
typedef struct no No; 
 
7- O programa a seguir executa o cadastro de 5 pessoas, 
destacando nome, endereço e telefone. Em seguida, 
apresenta-se todo o cadastro. 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaboradopor Bortolotti 
com informações encontradas no Passei Direto e Provas. 
R: scanf("%s", &c[i].nome); printf("\nTelefone: %s", 
c[i].telefone); 
 
 
1- Crie um algoritmo em pseudocódigo que leia dois valores 
inteiros para as variáveis A e B. Então, efetue a troca dos 
valores de forma que a variável A passa a ter o valor da 
variável B e que a variável B passe a ter o valor da variável 
A. Por fim, apresente os valores trocados. 
 
algoritmo “Troca” 
var 
A, B, Temp: Inteiro 
 
Inicio 
 escreva(“Entre com um número inteiro: ”) 
leia (A) 
escreva(“Entre com um número inteiro: ”) 
leia (B) 
 
Temp = A 
A = B 
B = Temp 
escreva(“O valor de A é ”, A) 
escreva(“O valor de B é ”, B) 
 
fimalgoritmo 
 
 
7- Analise a tabela a seguir: 
Escreva um programa em linguagem C que leia uma 
temperatura em Fahrenheit e a apresente em Celsius e 
Reaumur 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
R.: #include <stdio.h> 
int main(){ 
float f, c, r; 
 printf ("\nEntre com a temperatura em Fahrenheit: "); 
 scanf ("%f", &f); 
 c = (f-32)*5/9; 
 r = (f-32)*4/9; 
 printf("\nFahrenheit para Celsius eh: %2.2f \ne \nFahrenheit 
para Reaumur eh: %2.2f \n\n", c, r); 
 main(); 
} 
 
 
2- Escreva um programa que contenha uma variável do tipo “Vetor de 
caracteres”, com o seguinte texto: “Universidade UNIP”. Esse programa deve 
mostrar o conteúdo dessa variável na tela (“Universidade UNIP”), mas deve 
mostrar apenas com um caractere em cada linha. Além disso, o programa deve 
utilizar uma função recursiva para percorrer o vetor de caracteres não podendo 
utilizar nenhum tipo de loop. O texto é fixo, o usuário não deve digitar nenhuma 
entrada. 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
char linha(char nome[25], int i){ 
 
 if(i == strlen(nome)) 
 return 0; 
 else{ 
 printf("%c\n", nome[i]); 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 i++; 
 return (i + (linha(nome, i))); 
 } 
} 
int main() 
{ 
 char nome[25]; 
 int i; 
 strcpy(nome, "Unip Interativa"); 
 linha(nome, i); 
 
 system("pause"); 
}char linha(char nome[25], int i){ 
 
 if(i == strlen(nome)) 
 return 0; 
 else{ 
 printf("%c\n", nome[i]); 
 i++; 
 return (i + (linha(nome, i))); 
 } 
} 
int main() 
{ 
 char nome[25]; 
 int i; 
 strcpy(nome, "Unip Interativa"); 
 linha(nome, i); 
 
 system("pause"); 
} 
 
 
2-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> 
#include <string.h> 
#include <stdlib.h> 
 
char fat(int n){ 
 if(n == 0) 
 return (1); 
 else{ 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 return (n * (fat(n - 1))); 
 } 
} 
int main() 
{ 
 int a, b; 
 printf("\nDigite um valor inteiro: "); 
 scanf("%d", &a); 
 b = fat(a); 
 printf("\n%d \n", b); 
 main(); 
} 
 
 
 
 
31- Escreva um fragmento de programa em C que contenha: 
- Uma estrutura de uma árvore binária que armazene um número 
inteiro e um número flutuante em cada n´, bem como ponteiros para 
duas sub-árvores; 
struct arv { 
 int info; 
 float a; 
 struct arv* sae; 
 struct arv* sad; 
}; 
typedef struct arv Avr; 
- Uma função que crie esses nós 
Arv* cria(int c, float d, Arv* sae, Arv* sad){ 
Arv* p=(Arv*)malloc(sizeof(Arv)); 
p->info = c; 
p->a = d; 
p->sae = sae; 
p->sad = sad; 
return p; 
} 
 
30- Desenvolva um programa em linguagem C que calcule 
o produto de dois números inteiros fornecidos pelo usuário. 
Utilize apenas a operação adição. 
#include <stdio.h> 
 
int main(){ 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 int num1, num2, resultado = 0; 
 
 printf("Digite o primeiro numero inteiro: "); 
 scanf("%d", &num1); 
 printf("Digite o segundo numero inteiro: "); 
 scanf("%d", &num2); 
 
 while(num1 > 0){ 
 resultado = resultado + num2; 
 num1--; 
 } 
 
 printf("O produto dos numeros = %d", resultado); 
 
 return 0; 
} 
 
1– Considere a árvore a seguir que representa uma 
hierarquia de executivos em uma empresa. Liste o nome dos 
executivos, considerando que a árvore vai ser percorrida 
seguindo um percurso infixo. 
 
R. Antonio / João / Ricardo / Henrique / José / Maria / 
Vanessa / Luis 
 
2- Escreva um programa que contenha uma variável do tipo 
“Vetor de caracteres”, com o seguinte texto: “Universidade 
UNIP”. Esse programa deve mostrar o conteúdo dessa 
variável na tela (“Universidade UNIP”), mas deve mostrar 
apenas com um caractere em cada linha. Além disso, o 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
programa deve utilizar uma função recursiva para percorrer 
o vetor de caracteres não podendo utilizar nenhum tipo de 
loop. O texto é fixo, o usuário não deve digitar nenhuma 
entrada. 
#include <stdio.h> 
void linha(char *nome) 
{ if(*nome){ 
linha(nome+1); 
putchar(*nome); 
printf("\n"); 
}} 
int main() 
{ 
linha("Universidade UNIP"); 
return 0; 
} 
 
 
3– Conceitue uma lista ligada e explique o funcionamento da 
pilha (Last In First Out (LIFO)) e da fila (First In First Out 
(FIFO). 
 
R. Conceitualmente, uma lista ligada é um conjunto linear de 
nós, que segue unidirecionalmente. Cada nó é um conjunto 
de dados mais um ponteiro indicando o endereço do 
elemento seguinte. O último que entra na sequência é o 
primeiro a sair; daí ser conhecido como (Last In First Out – 
LIFO). O primeiro que entra é o primeiro que sai (daí a sigla 
FIFO – First In First Out). 
 
4– A estrutura de dados mais simples é a lista linear, uma 
cadeia de informações, todas com a mesma estrutura, mais 
correlacionadas. Cada uma dessas estruturas é chamada de 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
nó e, em alguns casos particulares, registro. O que é e como 
se implementa uma lista ligada na linguagem C? 
R. Lista linear é uma estrutura de dados na qual elementos 
de um mesmo tipo de dado estão organizados de maneira 
sequencial. Não necessariamente, estes elementos estão 
fisicamente em sequência, mas a ideia é que exista uma 
ordem lógica entre eles. Na manipulação de listas, 
precisamos de três operações fundamentais: 
 • inclusão; • busca; • remoção. 
 
5- A linguagens, em especial a linguagem C, administram a 
memória RAM, o espaço disponível para nossos programas 
serem executados. Com base nessas informações, quais 
são as diferenças entre variáveis dinâmicas e variáveis 
estatísticas na linguagem C? 
R. As variáveis estáticas são alocadas antes que o programa 
entre em execução. O programa solicita ao Sistema 
Operacional que aloque espaço da memória disponível para 
as variáveis estáticas. Então, o Sistema Operacional retira 
da memória disponível o espaço necessário para as 
variáveis e coloca na memória ocupada. O Sistema 
Operacional garante que o espaço de memória utilizado por 
uma Var estática jamais poderá ser utilizado por uma outra. 
Esta garantia não é dada às variáveis dinâmicas. 
A declaração de variáveis dinâmicas, por sí só, NÃO ALOCA 
ESPAÇO DE MEMÓRIApara os dados que eles apontam 
 
Resp.: Basicamente, existem três maneiras de reservarmos 
espaço de memória para o armazenamento de informações, 
sem o rigor técnico. A primeira maneira é por meio do uso 
de variáveis globais (e estáticas). Nessa categoria de 
variáveis, o espaço reservado para uma variável existirá 
enquanto o programa estiver sendo executado. A segunda 
maneira é usando variáveis locais. Nessa categoria, o 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
espaço na memória existe apenas no período em que a 
função que declarou a variável está sendo executada, sendo 
liberado assim que a execução da função terminar. Como 
consequência, a função que chama não pode fazer 
referência ao espaço local da função chamada. As variáveis 
globais ou as locais podem ser simples ou vetores. Para os 
vetores, é necessário informar o número máximo de 
elementos, caso contrário o compilador não terá a 
informação sobre o tamanho do espaço a ser reservado. A 
terceira maneira de reservar a memória é solicitar ao 
programa que aloque dinamicamente um espaço na 
memória durante sua execução. Esse espaço permanece 
reservado até que seja liberado explicitamente pelo 
programa, por meio de comando específico. 
 
6- Variáveis são declarações, portanto fazem parte do 
desenvolvimento de um algoritmo. Descreva, conforme o 
seu conhecimento, o que são variáveis, como funcionam e 
como são utilizadas. 
R.: Variáveis são espaços reservados na memória principal 
do computador em que os dados são armazenados para 
reutilização posterior. A memória do computador se organiza 
tal qual um armário com várias divisões. Sendo cada divisão 
identificada por um endereço diferente em uma linguagem 
que o computador entende. computador armazena os dados 
nessas divisões, sendo que em cada divisão só é possível 
armazenar um dado e toda vez que o computador 
armazenar um dado em uma dessas divisões, o dado que 
antes estava armazenado é eliminado. O conteúdo pode ser 
alterado, mas somente um dado por vez pode ser 
armazenado naquela divisão. Uma variável é composta por 
dois elementos básicos: o conteúdo, o valor da variável e 
identificador. 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
7- Analise a tabela a seguir: 
Escreva um programa em linguagem C que leia uma 
temperatura em Fahrenheit e a apresente em Celsius e 
Reaumur. 
 
#include <stdio.h> 
void main (){ 
 float celsius, fahrenheit, reaumur; 
 printf("digite temperatura em fahrenheit: "); 
 scanf("%f",&fahrenheit); 
 celsius=(fahrenheit-32)/9/5; 
 reaumur=(fahrenheit-32)/9/4; 
 printf("A temperatura em celsius eh: %2.2f e em reaumur eh: 
%2.2f",celsius,reaumur); 
 system("pause"); 
 return 0; 
} 
R.: #include <stdio.h> 
int main(){ 
float f, c, r; 
printf ("Entre com a temperatura em Fahrenheit: "); 
scanf ("%f", &f); 
c = (f-32)*5/9; 
r = (f-32)*4/9; 
printf("A temperatura convertida para Celsius e: %2.2f e 
para Reaumur e: %2.2f", c, r); 
return 0; 
} 
 
8- Considere o fluxograma apresentado na figura a seguir. 
Escreva um programa em C que faça o que o fluxograma 
descreve, e responda: se N é igual a 5, qual é a saída do 
programa? 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
R.: A saida do programa é 120. 
int main(){ 
int n, i, resp; 
i=1; 
resp=1; 
scanf("%d", &n); 
while(i<=n){ 
resp *= i; 
i++; 
} 
printf("%d", resp); 
return 0; 
} 
 
 
9- A sequência de Fibonacci corresponde a sequência de 
números F(n) = F(n-1) + F(n-2), com 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 
pertençam a sequência de Fibonacci, que também sejam 
divisíveis por 3 e por 7, e que sejam inferiores a 50000(todas 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
essas condições devem ocorrer simultaneamente). Os 
demais números não devem ser impressos. Qual será o 
primeiro número impresso pelo programa? 
 
R.: O primeiro número impresso será 21. 
 
#include <stdio.h> 
int main (void){ 
int aux, num1, num2; 
aux = 0; 
num1 = 0; 
num2 = 1; 
while(num1 < 50000){ 
aux = num1 + num2; 
num1 = num2; 
num2 = aux; 
if(aux % 3 == 0 && aux % 7 == 0) 
printf("%d\n", aux); 
} 
return 0; 
} 
 
10- O colégio "Esperança" precisa de um programa em 
linguagem C para cadastrar um aluno. Crie esse programa 
utilizando estrutura de dados (struct) que armazene o nome, 
duas notas e a média do aluno. Apresente o cadastro (nome, 
notas e média) após a entrada de todos os dados. 
#include <stdio.h> 
#include <stdlib.h> 
struct notasAluno{ 
 
 float nota1, nota2, media; 
 char nome[25]; 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
}; 
struct notasAluno Notas; 
 
int main(){ 
 
 
 printf("Digite o nome do aluno: "); 
 gets(Notas.nome); 
 printf("Digite nota 1: "); 
 scanf("%f", &Notas.nota1); 
 printf("Digite nota 2: "); 
 scanf("%f", &Notas.nota2); 
 
 Notas.media = (Notas.nota1 + Notas.nota2)/ 2; 
 
 printf("\nNome: %s, nota1 %3.2f, nota2 %3.2f e media 
%3.2f\n ", Notas.nome, Notas.nota1, Notas.nota2, 
Notas.media); 
 system("pause"); 
 main(); 
 
} 
 
 
11- 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. 
 
 
R.: #include <stdio.h> 
int main(){ 
int idade = 0; 
printf("Digite sua idade: "); 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
scanf("%d", &idade); 
if (idade > 65){ 
printf("CNH expira a cada 3 anos."); 
}else{ 
if (idade < 18){ 
printf("Menor de idade nao possui CNH."); 
}else{ 
printf("CNH expira a cada 5 anos."); 
} 
} 
return 0; 
} 
 
 
12– Escreva um programa que contenha uma variável do 
tipo “Vetor de caracteres” com o seguinte texto: 
“Universidade UNIP”....... 
Lembre-se: o texto é fixo, o usuário não deve digitar 
nenhuma entrada. 
R. #include <stdio.h> 
void linha(char *nome) 
{ if(*nome){ 
 Linha(nome+1); 
 Putchar(*nome); 
 printf("\n"); 
}} 
int main() 
{ 
linha("Unip Interativa"); 
return 0; 
} 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
3 – Conceitue uma lista ligada e explique o funcionamento 
da pilha (Last In First Out (LIFO)) e da fila (First In First Out 
(FIFO). 
R. Conceitualmente, uma lista ligada é um conjunto linear de 
nós, que segue unidirecionalmente. Cada nó é um conjunto 
de dados mais um ponteiro indicando o endereço do 
elemento seguinte. O último que entra na sequência é o 
primeiro a sair; daí ser conhecido como (Last In First Out – 
LIFO). O primeiro que entra é o primeiro que sai (daí a sigla 
FIFO – First In First Out). 
 
 
30- A construção de listas ligadas em C requer a utilização 
de estruturas. Escreva um trecho de um programa em C que 
contenha uma struct para armazenar o nó. Esse trecho deve 
conter uma struct chamada “no”, que, por sua vez, deve 
conter uma variável que é um vetor de caracteres com 64 
elementos, chamadode “identificador”, uma variável inteira 
chamada “num”, outra variável chamada “var”, que será 
utilizada para armazenar um número de ponto flutuante com 
precisa simples e um ponteiro para outro nó, chamado 
“prox”. O trecho de código deve conter também uma 
definição de um tipo chamado “No” baseado nessa struct. 
 
Resp.: 
Exemplo: 
#include <conio.h> 
int main(void) 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
{ 
 
 /*Criando a struct */ 
 
 struct ficha_de_aluno 
 
 { 
 
 char nome[50]; 
 
 char disciplina[30]; 
 
 float nota_prova1; 
 
 float nota_prova2; 
 
 }; 
 
 
 /*Criando a variável aluno que será do 
 
 tipo struct ficha_de_aluno */ 
 
 struct ficha_de_aluno aluno; 
 
 
 
 printf("\n---------- Cadastro de aluno -----------\n\n\n"); 
 
 
 
 printf("Nome do aluno ......: "); 
 
 fflush(stdin); 
 
 
 
 /*usaremos o comando fgets() para ler strings, no caso o nome 
 
 do aluno e a disciplina 
 
 fgets(variavel, tamanho da string, entrada) 
 
 como estamos lendo do teclado a entrada é stdin (entrada padrão), 
 
 porém em outro caso, a entrada tambem poderia ser um arquivo */ 
 
 
 
 fgets(aluno.nome, 40, stdin); 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 printf("Disciplina ......: "); 
 
 fflush(stdin); 
 
 fgets(aluno.disciplina, 40, stdin); 
 
 
 
 printf("Informe a 1a. nota ..: "); 
 
 scanf("%f", &aluno.nota_prova1); 
 
 
 
 printf("Informe a 2a. nota ..: "); 
 
 scanf("%f", &aluno.nota_prova2); 
 
 
 
 printf("\n\n --------- Lendo os dados da struct ---------\n\n"); 
 
 printf("Nome ...........: %s", aluno.nome); 
 
 printf("Disciplina .....: %s", aluno.disciplina); 
 
 printf("Nota da Prova 1 ...: %.2f\n" , aluno.nota_prova1); 
 
 printf("Nota da Prova 2 ...: %.2f\n" , aluno.nota_prova2); 
 
 
 
 getch(); 
 
 return(0); 
 
} 
 
 
31- Escreva um fragmento de programa em C que 
contenha: 
- Uma estrutura de uma árvore binária que armazene um 
número inteiro e um número flutuante em cada n´, bem 
como ponteiros para duas sub-árvores; 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
- Uma função que crie esses nós 
Resp.: Pode seguir o modelo simplificado, é um fragmento 
 
 
 
32- Crie um algoritmo em pseudocódigo que leia dois valores 
inteiros para a variável A e b. Então efetue a troca dos 
valores de forma que a variável A passa a ter o valor da 
variável B e que a variável B passe a ter o valor da variável 
a. Por fim, apresente os valores trocados. 
Resp.: 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas. 
 
 
 
12) Para programar em C, partindo do zero, ou seja,..... 
Resp.: Int Main() significa que a função principal (main) 
deve, no final, retornar algum valor inteiro. Geralmente 
colocamos ao final um return(0); ou algo assim... 
Já o void main() significa que a função principal não 
necessitará retornar qualquer valor. 
 
 
1- 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. 
 
 
Compilado de Linguagem e Técnica de Programação – UNIP 2018 / Elaborado por Bortolotti 
com informações encontradas no Passei Direto e Provas.

Continue navegando