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