Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 1 – Introdução a Lógica e Programação 1)Um algoritmo pode ser considerado como um conjunto de passos para realizar determinada tarefa. Imagine que você precisa fazer um avião de papel e propõe para um amigo que cada um escreva um algoritmo para realizar essa tarefa. Cada um escreve o seu; vocês constatam que eles são diferentes tanto na quantidade de passos como na própria descrição dos passos. Depois dessa fase, vocês trocam os algoritmos: você faz o avião com o algoritmo escrito pelo seu amigo e vice-versa. Seguindo cada passo, os dois conseguem fazer um avião de papel. O que é possível afirmar sobre seus algoritmos? a) Algo está errado, pois não é possível ter mais de um algoritmo para resolver a mesma tarefa. b) Não existe algoritmo para fazer algo que não envolva tecnologia. Portanto, estes não são algoritmos. c) Somente quem escreve um algoritmo pode interpretá-lo. Assim, cada um deveria ter feito o avião de papel com o seu próprio algoritmo. d) Não é possível um ser humano escrever um algoritmo para fazer um avião de papel. e) Os algoritmos escritos estão funcionando bem, visto que atingiram o objetivo: fazer um avião de papel. 2) Imagine um jogo de adivinhação de número. O número deve ser sorteado aleatoriamente, e o usuário adivinha um valor; se ele acertar, ganha o jogo. Caso contrário, o jogo avisa se você adivinhou um número muito grande ou muito pequeno. Um possível algoritmo para esse jogo pode ser visto a seguir: Passo 1 – sortear um número; Passo 2 – perguntar ao usuário qual número ele adivinhou; Passo 3 – se for igual ao número sorteado, informar ao usuário que ele ganhou; Passo 4 – ? Passo 5 – ? Escolha a opção que completa o algoritmo com os passos 4 e 5. a) Passo 4 – se o número adivinhado for menor que o número sorteado, dar a dica para o usuário adivinhar um número menor; Passo 5 – se o número adivinhado for maior que o número sorteado, dar a dica para o usuário adivinhar um número maior. b) Não é possível, pois é preciso saber o número sorteado para completar o algoritmo. c)Passo 4 – se o número adivinhado for maior que o número sorteado, dar a dica para o usuário adivinhar um número menor; Passo 5 – se o número adivinhado for menor que o número sorteado, dar a dica para o usuário adivinhar um número maior. d) É impossível escrever um algoritmo para esse tipo de jogo de adivinhação. e)Passo 4 – se o número adivinhado for menor que o número sorteado, dar a dica para o usuário adivinhar um número maior; Passo 5 – se o número adivinhado for maior que o número sorteado, dar a dica para o usuário adivinhar um número maior. 3)Uma variável é uma região de memória que serve para armazenar ________ que estão envolvidos(as) num programa. As variáveis são definidas com um ________ e um ________ Qual opção completa de forma correta essa afirmação? a) Dados, nome e tipo. b) Dados, nome e valor inicial. c) Textos, tamanho e tipo. d) Dados, valor inicial e tipo. e) Letras, nome e tipo. 4) Um programa pode ser executado de duas formas: na primeira, o código-fonte é traduzido para a linguagem máquina e logo em seguida executado; na segunda, cada uma das instruções é executada de forma direta, sem a necessidade de tradução completa do código-fonte. Em qual das alternativas estão essas duas formas de execução, respectivamente? a) Interpretação e compilação. b) Simplificação e execução dinâmica. c) Compilação e tradução. d) Compilação e interpretação. e) Compilação e processamento. 5) Ao comparar o tempo de execução de uma tarefa por um programa de computador escrito em linguagem compilada com outro em linguagem interpretada, é possível afirmar que: a) os programas interpretados são mais rápidos que os programas compilados. b) não existe diferença entre o tempo de execução de programas compilados e interpretados. c) os programas compilados são mais rápidos que os programas interpretados. d) não é possível avaliar o tempo de execução de um programa somente sabendo como ele foi executado. e) o tempo de execução de dois programas não pode ser mensurado para fins de análise Aula 1 - A linguagem C – Conceitos Básicos 1) Sobre a linguagem C, é correto afirmar que: a) sua portabilidade se dá pelo fato de que pode-se rodar um programa executável em qualquer sistema operacional, sem precisar recompilar. b) os programas escritos em C têm alto grau de segurança. c) essa linguagem tem características que permitem o uso do paradigma de orientação a objetos. d) não tem recursos de baixo nível, ou seja, de acesso direto ao hardware. e) é uma das linguagens indicadas para se começar a estudar programação, pois é considerada simples e bem-estruturada. 2) O seguinte programa está escrito em linguagem C. Qual a função da linha 1? a) Acrescentar a biblioteca padrão da linguagem C para que se possa fazer entrada e saída de dados. b) Incluir um tipo de arquivo de dados no programa. c) Essa instrução pode ser retirada de acordo com o que está se desejando escrever no programa. d) Não pode ser usada se serão feitas entrada e saída de dados. e) Permite que mais de um usuário utilize o código. 3) O que é uma linguagem de programação? a) É a linguagem utilizada pelos programadores para realizar documentação sobre os programas que eles escrevem. b) É a linguagem falada pelos humanos, mas, em vez de uma conversa entre humanos, trata-se de uma conversa entre humanos e um computador. c) É a linguagem utilizada para escrever programas de computadores. d) É a linguagem na qual os algoritmos são escritos. e) É a linguagem composta por 0 e 1 e impossível de ser utilizada por um ser humano. 4) Utilizando o editor e o compilador, quais os passos para que se tenha um programa em C pronto para execução? a) Escrever o programa em um arquivo, salvar o arquivo com extensão C e executá-lo na linha de comando. b) Escrever o programa em um arquivo com extensão txt, com a seguinte linha de comando: gcc -o nomedoprograma.txt nomedoexecutavel. c) Escrever o programa em um arquivo, salvar o arquivo com extensão c e compilar com a seguinte linha de comando: gcc nomedoprograma.c -o nomedoexecutavel. d) Não é possível desenvolver um programa em C somente com editor de texto e compilador. e) Escrever o programa em um arquivo com qualquer extensão e compilar com a seguinte linha de comando: gcc -o nomedoprograma nomedoexecutavel. 5) A linguagem C é uma linguagem: a) de alto nível e compilada. b) de alto nível e interpretada. c) de baixo nível e compilada. d) de baixo nível e interpretada. e) Nenhuma das alternativas anteriores. Aula 2 – Tipos de dados e Variáveis 1) Você precisa declarar uma variável "idade" do tipo inteiro. Qual a maneira correta de fazer isso em C? a) int idade; b) idade int; c) inteiro idade; d) Não é preciso declarar em C; o simples uso da variável faz ela passar a existir. e) float idade; 2) Ao declarar uma variável que armazena um caractere, você escreveu a seguinte linha de código: char -nome; Ao compilar o programa, verificou que essa declaração gerou um erro de sintaxe. Qual a alternativa que indica esse erro? a) -nome é uma palavra reservada; por esse motivo, ocorreu o erro. b) char não é um tipo existente em C. c) Variáveis não devem começar com caracteres especiais como o hífen utilizado na declaração. d) Durante a declaração, não é preciso o ponto e vírgula no final da linha de código. e) Faltou inicializar a variável, pois, em C, não podemos usar uma variável sem antes inicializá-la. 3) Qual a maneira correta de declarar uma variável em C? a) A declaração é feita primeiro colocando-se o tipo da variável, seguido do nome da variável e finalizando a instrução com ponto e vírgula. O tipo é dado por palavras reservadas da linguagemem que se está programando. b) Não se declara variável em C. c) A declaração é feita colocando-se o nome da variável, seguido do tipo de variável e finalizando a instrução com ponto e vírgula. O tipo é dado por palavras reservadas da linguagem em que se está programando. d) A declaração é feita colocando-se o nome da variável, seguido do caractere especial : (dois pontos). Em seguida, coloca-se o tipo de variável e finaliza-se a instrução com ponto e vírgula. O tipo é dado por palavras reservadas da linguagem em que se está programando. e) A declaração é feita colocando-se o tipo da variável, seguido do caracter especial : (dois pontos). Em seguida, coloca-se o nome da variável e finaliza-se a instrução com ponto e vírgula. O tipo é dado por palavras reservadas da linguagem em que se está programando. 4) Você precisa armazenar os seguintes dados: - Salário bruto; - Sexo, que será representado por F (Feminino), M (Masculino) ou N (prefiro não declarar); - Idade, em anos. Quais são os tipos dessas variáveis? a) int, char e double. b) double, char e double. c) double, char e int. d) int, char e int. e) char, double e int. 5) Por que, em alguns casos, é interessante inicializar uma variável em C? a) Porque o nome da variável pode já ter sido usado por algum programa. b) Porque essa técnica é obrigatória em todo programa e todas as variáveis em C. c) Porque é uma boa prática para um melhor entendimento do código-fonte. d) Para não corrermos o risco de utilizar um valor armazenado anteriormente por outro programa naquele espaço de memória. e) A inicialização de uma variável é desnecessária em C. Aula 2 - Entrada e saída de dados 1) Considerando o seguinte código, qual o valor das variáveis x e y no final da execução? a) X é 17 e y é 17. b) X é 25 e y é 25. c) X é 17 e y é 25. d) X é 25 e y é 17. e) Não é possível determinar os valores das variáveis. 2) Qual o valor da variável após a execução do seguinte código: a) 18. b) -2. c) O valor da variável x é um endereço de memória. d) Nada. Ocorre um erro, pois não é possível realizar uma operação do tipo x-2. e) 16. 3) Qual a definição de uma função em linguagem de programação? a) Uma função é um conjunto de instruções organizadas em forma de bloco e que têm um nome para que assim sejam utilizadas em um código- fonte. b)Uma função é uma regra matemática utilizada em programação para realizar cálculos. c) É uma regra para acesso de forma mais simples à memória do computador. d) Uma função é a forma com que os usuários entram com os dados em um programa. e) Uma função é uma entidade básica de um sistema computacional e existe somente em linguagens antigas. 4) Para que servem as funções printf e scanf? a)São funções utilizadas para realizar operações de impressão de um arquivo em um impressora e acesso ao scanner conectado à máquina. b) São funções para realização de operações matemáticas em um computador. c) A função printf mostra um valor na tela do computador e a função scanf serve para armazenar valores dentro de uma variável. d) A função printf armazena um valor em uma determinada variável, já a função scanf mostra um valor na tela. e)São instruções de acesso à memória. 5) O que está faltando na linha 9 para que seja mostrado o seguinte texto: Soma:, seguido do valor da soma dos dois números digitados pelo usuário. a) &soma. b) soma. c) "soma". d) 'soma'. e) +soma. Aula 3 – Operadores 1) Considerando o trecho de código escrito na linguagem C, qual é o valor da variável resultado1 a)56.5. b)É impossível determinar, pois em C não se pode fazer operações aritméticas com tipos diferentes. c)56. d)7. e)7.5. 2) Considerando o trecho de código, qual é o valor que será impresso na tela ao final da execução? a)7. b)7.5. c)7.00. d) Não se pode realizar operações com números inteiros e armazenar em uma variável do tipo float. Portanto, esse código não é executado, havendo um erro de sintaxe. e)Não é possível determinar, pois a variável resultado não foi inicializada. 3) Avalie o seguinte código, e diga qual é o resultado que será impresso. a)20.10. b)11. c)8. d)15.7. e)10.10. 4) Assinale a opção que indica a diferença entre os operadores = e ==, ambos utilizados na linguagem C. a)= é um operando de atribuição, e == é um operando relacional que avalia se duas variáveis são iguais. b)Não existe diferença, os dois operandos são de atribuição. c)Não existe diferença, os dois operandos são relacionais, utilizados para avaliar se dois valores são iguais. d)== é um operando de atribuição, e = é um operando relacional que avalia se duas variáveis são iguais. e)Esses operandos não existem na linguagem C. 5) Qual é a função dos operadores ++ e -- na linguagem C, respectivamente? a)São operadores de incremento e decremento. b)É o operador de soma e de subtração, respectivamente. c)É o operador de decremento e de incremento, respectivamente. d)Esses operadores não existem em C. e)São operadores de multiplicação e de divisão, escritos de forma diferente. Aulas 3 – Estruturas de Seleção 1) O seguinte programa deve receber um número e apresentar um texto indicando se esse número é par ou ímpar. O que deve ser escrito nas linhas 7 e 10 para que a saída seja de acordo com as imagens de saída de execução? a)Na linha 7: printf("O numero %d eh parn",numero); na linha 10: printf("O numero %d eh imparn",numero); b)Na linha 7: printf("O numero %d eh imparn",numero); na linha 10: printf("O numero %d eh parn",numero); c)Na linha 7: printf("O numero eh parn",numero); na linha 10: printf("O numero eh imparn",numero); d)Na linha 7: printf("O numero %d eh parn"); na linha 10: printf("O numero %d eh imparn"); e)Na linha 10: printf("O numero eh parn",numero); na linha 7: printf("O numero eh imparn",numero); 2) Qual a diferença entre uma estrutura de seleção simples e uma composta na linguagem C? a)A estrutura simples é usada em programas simples e a composta em problemas mais complexos. b)Não existe estrutura de seleção simples e composta em C. c)A estrutura simples só tem if, ou seja, só se executa operações se o teste for verdadeiro. Já a estrutura composta tem if-else. d)A estrutura composta só tem if, ou seja, só se executa operações se o teste for verdadeiro. Já a estrutura simples tem if-else. e)Não existe diferença, cabendo ao programador escolher uma entre as duas. 3) A seguir, vemos a sintaxe da estrutura switch: switch (expressao){case valor1:comandos;comandos;break;case valor2:comandos;comandos;break;case valor3:comandos;comandos;break;default:comand os;comandos; } Sobre ela, é correto afirmar: a)Os valores (valor1, valor2...) podem ser um teste condicional, usando os operadores relacionais. b)O código para o caso default é obrigatório. c)A expressão pode conter qualquer operador: aritmético, lógico ou relacional. d)Somente um dos cases é executado por vez. e)O comando break não é permitido no interior dos grupos de comandos. 4) Como você pode reescrever o código a seguir, usando a estrutura de seleção ternária? Ou seja, se substituirmos as linhas 9 a 14, como deve estar escrita uma nova linha, usando o operador ternário para termos a mesma saída? a)maior=numero1>numero2?numero2:numero1; b)maior=numero2>numero1?numero1:numero2; c)maior=numero1>numero2?numero1:numero2; d)maior=numero1>numero2?numero1::numero2; e)Não é possível realizar esse tipo de operação com o operador ternário. 5) Qual estrutura está representada na imagem a seguir? a)Estrutura de seleção simples. b)Estrutura de seleção composta. c)Estrutura sequencial. d)Não é possível, somente com o diagrama, saber qual é a estrutura. e)Estrutura switch + Aula 4 –Estruturas de Repetição 1) O seguinte programa pede para o usuário um número e mostra a tabuada de multiplicação desse número. Foram retiradas as linhas 6 e 10 dessa estrutura, e agora você precisa adicioná-las para um correto funcionamento desse código. a)na linha 6: contador=1; na linha 10: contador=contador*1; b)na linha 6: contador=0; na linha 10: contador=contador+1; c)na linha 6: contador=1; na linha 10: contador=contador+1; d)na linha 6: contador=1; na linha 10: contador=contador-1; e)na linha 6: contador=10; na linha 10: contador=contador+1; 2)Como podemos reescrever o seguinte trecho de código, utilizando como estrutura de repetição o for? a)CORRETA b) c) d) e)Esse tipo de programa não pode ser implementado usando-se o for. 3) Em que ocasião ocorre um loop infinito? a) Quando a estrutura de repetição fica executando para sempre. b) Quando o programa precisa de todo o poder de processamento do computador, algumas vezes chegando até a desligá-lo. c) Quando a estrutura de repetição não consegue resolver o problema de forma correta, por este ser muito complexo. d) Quando a variável de controle do loop não é inicializada. e) Quando a repetição nunca é executada. 4)Qual a diferença entre a estrutura while e a do-while? a) Na estrutura de repetição while, o teste condicional é feito no fim do loop; já na estrutura do-while, o teste é feito no início. b)Na estrutura de repetição while, não é preciso modificar o valor da variável de controle; já na estrutura do-while, essa modificação é obrigatória. c)Na estrutura de repetição while, o teste condicional é feito no início do loop; já na estrutura do-while, o teste é feito no fim. d)A while só pode ser usada quando se sabe quantas vezes o loop será executado; já na do-while esse dado não é obrigatório. e)Não existe diferença alguma entre as duas estruturas. 5) Em que ocasião podemos substituir a while pela for? a)Somente quando se sabe quantas vezes a estrutura de repetição será executada. b)Sempre é possível substituir uma estrutura while por uma for. c)Nunca podemos substituir uma estrutura while por uma for. d)Somente quando a while estiver efetuando operações aritméticas. e)Somente quando não for preciso inicializar a variável de controle. Aula 4 - Estrutura de Dados Homogêneas do tipo vetor (Fundamentos, definição, inicialização, atribuição, escrita) 1)Em relação às estruturas de dados homogêneas, é INCORRETO afirmar que: a)Vetores são estruturas de dados homogêneas, também denominadas arranjos ou array (em inglês). b)Vetores somente são úteis para pequenos conjuntos de dados (menores que 10 elementos), pois, para grandes conjuntos, o ideal é utilizar diversas variáveis simples (individuais). c)Os índices dos arranjos geralmente são de tipos ordinais. d)As variáveis que integram um vetor/arranjo compartilham um único nome e são identificadas individualmente por um índice. e)Um elemento de um vetor/arranjo é equivalente a uma variável simples. 2)Um vetor é um arranjo de uma só dimensão que, portanto, necessita de apenas um índice para acessar seus elementos. Selecione a alternativa a seguir que NÃO apresenta uma característica de um vetor. a)Nome, comum a todos os seus elementos. b)Índices que identificam, de modo único, a posição dos elementos dentro do vetor. c)Tipo dos elementos (inteiros, reais, etc.), comum a todos os elementos do vetor. d)Acesso ao conteúdo de cada elemento do vetor. e)Passagem de parâmetro complexa, pois exige a enumeração de cada elemento do vetor. 3)Considere o seguinte algoritmo em pseudocódigo: Analise as alternativas a seguir e selecione a verdadeira. a)A variável "indice" pode ser do tipo real. b)A declaração "valores: vetor[1..5] de real" cria um vetor com 5 posições e já inicializa o vetor com o seguinte conjunto de valores: { 1,2,3,4,5 }. c)A declaração "valores: vetor[1..5] de real" cria, inicialmente, um vetor com 5 posições, indexadas pelos valores de 1 até 5, mas novos elementos são automaticamente adicionados, indexando novas posições, como 6, 7, 8, etc. d)Pode-se indexar o vetor "valores" acessando sua posição inicial pelo índice 0 (zero). e)Para acessar um elemento de um vetor, deve-se acessar o índice da posição desejada; para o índice, pode-se utilizar uma variável ou uma constante inteira. 4)Considere o seguinte algoritmo em pseudocódigo (os dois dígitos à esquerda identificam o número da linha do algoritmo): Analise as alternativas a seguir e selecione a INCORRETA. a)Entre as linhas 10 e 12 realiza-se a repetição que permite escrever o valor de cada um dos elementos armazenados no vetor. b)Entre as linhas 06 e 09 realiza-se a repetição que faz a leitura de cada um dos elementos do vetor. c)Se forem trocados de lugar os blocos de instruções das linhas 06-09 com 10-12, o programa será executado da mesma forma e funcionará corretamente. d)Se a declaração da linha 03 for alterada, mudando o limite superior do arranjo, também devem ser alterados os limites superiores dos comandos "para...faça" nas linhas 06 e 10. e)O bloco de comandos das linhas 06-09 poderia ser substituído pela seguinte sequência de comandos: escreva("Digite valor: ") leia(valores[1]) escreva("Digite valor: ") leia(valores[2]) escreva("Digite valor: ") leia(valores[3]) escreva("Digite valor: ") leia(valores[4]) escreva("Digite valor: ") leia(valores[5]) 5)Considere o seguinte algoritmo em pseudocódigo: Analise as afirmativas a seguir e selecione a correta. a)Ao final da execução do algoritmo, os elementos do vetor v3 terão o produto dos elementos dos vetores v1 e v2. b)O vetor v3 não foi lido, pois é muito grande. c)O vetor v3 é o resultado da concatenação dos vetores v1 e v2. d)As declarações dos vetores v1, v2 e v3 está incorreta e todos os vetores deveriam ter o mesmo tamanho. e)O algoritmo precisa de um índice para acesso a cada um dos vetores, portanto, não pode utilizar uma única variável com esse fim. Aula 5 – Estruturas de Dados homogêneas do tipo vetor (operações básicas) 1)O correio está organizando a entrega de cartas de um loteamento e colocou todas elas em gavetas, separadas por destinatários para os entregadores verificarem. Para auxiliar na organização, cadacarta colocada na gaveta física é registrada no software de controle. Considerando que esse software foi escrito com a utilização de vetores, como deve ser programado o sistema para que a gaveta de número 8 exiba uma mensagem informando se existem cartas nela ou não? a)para a de 1 ate 10 faca se vet[a] = "sim" entao escreval("existe uma carta") fimse fimpara b)se vet[8] = “sim” entao escreval("existe uma carta") fimse c)para vet[8] == “sim” entao escreval("existe uma carta") fimpara d)para a de 1 ate 10 faca se vet[8] = “sim” entao escreval("existe uma carta") fimse e)enquanto vet[8] = “sim” FACA escreval("existe uma carta") fimenquanto 2)Depois de ter criado o sistema da questão anterior para os correios, você decidiu otimizar este sistema e permitir que ele se torne dinâmico, ou seja, você quer adaptá-lo para que seja possível verificar se qualquer uma das casas recebeu correspondências. Neste caso, o que você precisa fazer no sistema? a)Ler do teclado o número da casa que o usuário deseja verificar, salvar este número em uma variável e criar um laço de repetição que percorra o vetor até que o índice seja aquela variável. b)Ler do teclado o número da casa que o usuário deseja verificar, salvar este número em uma variável e verificar no vetor cujo índice é o valor daquela variável. c)Criar dois laços de repetição do tipo for para percorrer o vetor e verificar os dados contidos em cada índice. d)Criar um laço de repetição para percorrer todo o vetor. e)Criar um laço de repetição do tipo enquanto para percorrer o vetor enquanto existirem dados no vetor. 3)Em quais das seguintes situações você considera NÃO aplicável o uso de vetores? a)Para armazenagem de valores de diversos tipos de dados. b)Para armazenagem de diversos valores. c)Para separar diversos valores de acordo com o índice de referência. d)Para aplicar algoritmos de ordenação de dados. e)Para utilizar como estrutura de dados homogênea. 4)Sobre a declaração e instanciação de vetores, quais das alternativas a seguir apresentam a estrutura correta? a)vetorNomes[10]: vetor de caractere b)vetorNomes [1 .. 10]: caractere c)vetorNomes: vetor [10] de caractere d)vetorNomes: vetor [1 .. 10] de nomes e)vetorNomes: vetor [1 .. 10] de caractere 5)Dado o trecho de código a seguir, o que o programa deverá exibir na tela após a sua execução? a)1 2 3 4 5 6 7 8 9 10 11 b)1 2 3 4 5 6 7 8 9 10 c)Erro de compilação vet[10] não encontrado. d)Erro de compilação vet[0]não encontrado. e)Nenhuma das alternativa.
Compartilhar