Baixe o app para aproveitar ainda mais
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.
Compartilhar