Você está na página 1de 46

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
76
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
23

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 / Elaborado por 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ÓRIA para 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, chamado de “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.