Baixe o app para aproveitar ainda mais
Prévia do material em texto
Pergunta 1 Leia o texto a seguir: As técnicas mais conhecidas e utilizadas no desenvolvimento de programas de computador são o algoritmo e o diagrama de blocos (fluxograma). O algoritmo pode ser entendido como uma descrição textual. Podemos descrever os diversos caminhos de um processamento por intermédio de um diagrama de blocos. O diagrama de blocos se caracteriza pela utilização de símbolos gráficos que representam um processo ou uma ação, os quais estão ligados por meio de setas que indicam a possível trajetória do fluxo. Os vários símbolos utilizados no diagrama de blocos (diagrama) designam o início ou final do fluxo, fluxo de dados, processamento, decisão, display, dispositivo (disco), cartão perfurado, entrada manual de dados e o conector. (Fonte: ALVES, W. P. Linguagem e Lógica de Programação. São Paulo: Érica, 2015). Na representação gráfica de um algoritmo (fluxograma), podemos observar dois importantes símbolos utilizados, o retângulo e o losango, que representam, respectivamente, processamento e decisão. Entendemos que o processamento está relacionado aos comandos de manipulação de dados, e que a decisão está relacionada aos comandos de desvio de fluxo. decisão e processamento. Entendemos que a decisão está relacionada aos comandos de desvio de fluxo, e que o processamento está relacionado aos comandos de manipulação de dados. laço de repetição e processamento. Entendemos que o laço de repetição está relacionado aos comandos de desvio de fluxo, e que o processamento está relacionado aos comandos de manipulação de dados. processamento e laço de repetição. Entendemos que o processamento está relacionado aos comandos de manipulação de dados, e que o laço de repetição está relacionado aos comandos de desvio de fluxo. processamento e fluxo de dados. Entendemos que o processamento está relacionado aos comandos de manipulação de dados, e que o fluxo de dados está relacionado aos comandos para conectar partes do código. Pergunta 2 Leia o trecho abaixo: Um algoritmo é uma sequência de passos que representam as ações que levam à solução de um problema. Essas ações são dirigidas por uma estrutura de controle, totalizando assim o algoritmo em um único bloco. À medida que os problemas a serem solucionados se tornam complexos, aumenta a complexidade dos algoritmos, aumentando assim a dificuldade de coesão interna do algoritmo. Como técnica de combate a estas circunstâncias, recomenda-se que se utilize a técnica de estrutura de soluções com seus “subalgoritmos”, conhecida como modularização de algoritmo. (Fonte: BERG, A.; FIGUEIRÓ, J. P. Lógica de Programação. Canoas: Ulbra, 2006). Considerando as informações apresentadas, analise as afirmações: I. O programador tem a plena liberdade de fazer seus programas de computadores utilizando qualquer técnica de programação. A técnica de programação linear deve ser aplicada em todos os programas, cuja lógica deve ser codificada em um único módulo ou função. II. Devemos praticar a técnica “dividir para conquistar”, pois ela proporciona solucionar problemas a partir de sua quebra em problemas menores, de mais fácil solução. III. A prática de divisão de programas em vários módulos ou funções dificulta o entendimento da lógica que o programador aplicou no programa. É correto o que se afirma em: III, apenas. II e III apenas. II, apenas. I, II e III. I e II, apenas. Pergunta 3 Leia este trecho: Uma variável é uma posição de memória do computador em que um valor pode ser armazenado para utilização de um programa. A variável deve ser declarada onde é especificado o tipo de dado que esta variável deverá receber. As variáveis podem receber valores numéricos inteiros, numéricos decimais, caractere, booleano ou texto. Para a realização de cálculos aritméticos, é necessário que todas as variáveis envolvidas na operação sejam do tipo numérico. Considerando as informações apresentadas, avalie as afirmações a seguir: I. Uma variável declarada com tipo de dado int pode receber o valor 150,01 sem prejuízo ao resultado final na precisão do resultado de uma operação matemática. II. Uma variável declarada com tipo de dado bool possui a melhor precisão quanto ao resultado final uma operação matemática. III. Um programador deve estar atento à declaração das variáveis numéricas quanto à necessidade de utilização de casas decimais nos resultados finais das operações de que as variáveis fazem parte. É correto o que se afirma em: III, apenas. II e III apenas. I e II, apenas. II, apenas. I, II e III. Pergunta 4 Leia o texto a seguir: A linguagem C permite que uma variável numérica seja incrementada ou decrementada automaticamente. Para esse fim, utilizam-se os sinais ++ ou -- junto da variável. Os sinais ++ somam 1 ao valor da variável, e o sinais -- diminuem 1 da variável. Outro ponto importante a destacar é que a operação (incremento/decremento) pode ser realizada antes ou após a atribuição (incremento/decremento) do valor, ou após a atribuição (incremento/ decremento) do valor. Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas. I. Utilizamos incremento i++ no comando for. PORQUE II. A atribuição pós-incremento atende plenamente ao paradigma proposto na estrutura do comando for. A respeito dessas asserções, assinale a opção correta: As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. As asserções I e II são proposições falsas. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. Pergunta 5 Leia o texto abaixo: O conceito de atribuição de valores a uma variável está relacionado ao armazenamento de um valor a ela. Na linguagem C, utilizamos o sinal de igual para designar que uma variável está para receber um valor. Para que possamos lhe atribuir um valor, a variável deverá ser declarada antes. Em sua declaração, deverá estar especificado o tipo de dado que a variável poderá receber. A uma variável, somente podem ser atribuídos valores compatíveis com o tipo a que a variável foi declarada. Por exemplo, a uma variável do tipo int, não se pode atribuir a constante ‘x’. Considerando as informações apresentadas, avalie as afirmações a seguir: I. Ao atribuirmos a uma variável a seguinte constante ‘A’, podemos dizer que é um tipo de atribuição do tipo caractere. II. A linguagem C permite apenas que seja feita uma única atribuição de valor no mesmo comando de atribuição. III. A linguagem C não permite que seja feita a atribuição de valor para uma variável pelo retorno direto da função. É correto o que se afirma em: I, apenas. I, II e III. I e II, apenas. II e III apenas. II, apenas. Pergunta 6 Leia o texto abaixo: Muitos comandos em C contam com um teste condicional que determina o curso da ação. Uma expressão condicional chega a um valor verdadeiro ou falso. C suporta dois tipos de decisões: IF e switch. Além disso, o operador ternário é uma alternativa ao comando if. As principais estruturas de decisão são representadas em linguagens hipotéticas (pseudolinguagem), pelos comandos: SE...ENTÃO...; SE...ENTÃO...SENÃO; ESCOLHA...CASO...FIM-ESCOLHA. (Fonte: SCHILDT, H. C. Completo e Total. São Paulo: Makron Books, 2006). Qual é o tipo de decisão que podemos identificar na estrutura de decisão, que é composta por uma avaliação da condição (expressão lógica) e que executa um dos dois comandos (lado verdadeiro ou lado falso) e logo em seguida segue para o final da estrutura? Decisão simples. Operador ternário. Decisão múltipla. Escalada de decisão. Laço de repetição.Pergunta 7 Leia o texto a seguir: A prática dos paradigmas de lógica de programação de laço de repetição é um recurso muito importante para o controle de fluxo de um programa. A linguagem de programação C disponibiliza três comandos (for, while e do- while) que atendem de forma plena a este recurso. A estrutura de repetição for objetiva executa um bloco de comando, por um certo número de vezes, controlado por uma variável específica para tal fim. É sugerido quando o número de repetições é controlado por uma variável controladora ou quando houver a necessidade de inicialização e atualização. O comando while é sugerido quando não há necessidade de inicializar ou atualizar variáveis contadoras. O comando do-while é sugerido quando for necessário executar um bloco pelo menos uma vez. A estrutura do comando do-while força uma primeira execução do bloco de comandos. Considerando as informações apresentadas, avalie as afirmações a seguir: I. As estruturas de repetição while e for são estruturas que possuem uma precondição para que o laço seja executado. II. Para fazermos o controle do laço de repetição while, devemos utilizar uma variável de controle chamada sentinela. III. O que diferencia as estruturas de repetição while e do-while é o ponto onde fazem o controle do laço de repetição. É correto o que se afirma em: III, apenas. II e III, apenas. I e II, apenas. I, II e III. II, apenas. Pergunta 8 Leia o texto a seguir: Para que possamos ter o entendimento pleno do conceito de expressões lógicas, é muito importante ter o domínio da utilização dos operadores lógicos, posto que expressões lógicas são formadas a partir da utilização de operadores relacionais e operadores lógicos. Os operadores lógicos retornam um valor verdadeiro ou falso de acordo com seus operandos. Os operandos são E (AND), OU (OR) e NÃO (NTO). Ao utilizar o operador lógico AND, o resultado só será verdadeiro se as duas condições relacionadas forem verdadeiras; ao utilizar o operador OR, basta que uma das condições seja verdadeira para que o resultado seja verdadeiro; ao utilizar o operador NTO, para que o resultado seja falso as duas condições devem ser falsas. Considerando as informações apresentadas, avalie as afirmações a seguir: I. O operador booleano AND pode relacionar duas ou mais condições dentro da mesma estrutura condicional. II. Quando temos o operador AND dentro de uma estrutura de condição, o resultado da condição será sempre falso. III. Quando temos o operador OR dentro de uma estrutura de condição, o resultado da condição nunca poderá ser falso. É correto o que se afirma em: II e III, apenas. I, apenas. I, II e III. III, apenas. I e II, apenas. Pergunta 9 Leia o texto a seguir: A ordenação é o processo de arranjar um conjunto de informações semelhantes em uma ordem crescente ou decrescente, no qual podemos identificar três métodos: por troca, por seleção e por inserção. A mais conhecida é a ordenação por troca, ou popularmente conhecida como ordenação bolha. Nesta técnica, verifica-se a matriz e cada elemento com seu sucessor x[i] com x[i + 1]. A partir desta comparação, o algoritmo decide pela troca ou não das posições destes elementos. (Fonte: SCHILDT, H. C. Completo e Total. São Paulo: Makron Books, 2006, p. 51). Considerando as informações apresentadas, avalie as afirmações a seguir: I. O conceito intrínseco que temos na ordenação por troca é percorrer de forma sequencial todas as posições da matriz a ser ordenada, em sucessivas comparações. II. Para ordenar um vetor de uma única dimensão, pela técnica de ordenação por troca, podemos utilizar a estrutura de repetição for, porque a este proporciona um controle automático do acesso a todas as posições do vetor. III. Podemos utilizar o comando while para ordenar, por troca, uma matriz unidimensional, pois podemos utilizar a variável que controla o laço de repetição while para indexar a todas as posições do vetor É correto o que se afirma em: I, II e III. III, apenas. I e II, apenas. II e III apenas. II, apenas. Pergunta 10 Leia o texto abaixo: Um ponteiro é um endereço de memória de uma variável. Uma variável de ponteiro é especialmente declarada para guardar um ponteiro para seu tipo especificado. Saber o endereço de uma variável pode ser de grande ajuda em certos tipos de rotinas. Na linguagem C, para declarar um ponteiro, utilizamos os operadores ‘*’ e ‘&’, sendo o primeiro o operador de indireção, e o segundo serve para obter o endereço de uma variável, por exemplo: int valor = 33; int * ponteiro_valor; ponteiro_valor = &valor. É importante destacar que, pelo fato de o ponteiro realizar um acesso indireto, o ponteiro deve ter o mesmo tipo de dado da variável apontada. (Fonte: SCHILDT, H. C. Completo e Total. São Paulo: Makron Books, 2006, p. 51). Considerando as informações apresentadas, avalie as afirmações a seguir: I. Supondo que a int variável2=10; e que seja feita uma atribuição a uma variável ponteiro int *valor1 = &valor2; podemos dizer que a variável valor1 ficará também com 10 em seu valor. II. O operador de ponteiro aponta para um endereço de memória de um operando. III. Não podemos utilizar variável de ponteiro em operações matemáticas É correto o que se afirma em: I e II, apenas. III, apenas. II, apenas. I, II e III. II e III apenas.
Compartilhar