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.