Logo Passei Direto
Buscar

Exercícios de Introdução à Programação de Computadores

Ferramentas de estudo

Questões resolvidas

Assinale a alternativa que poderia conter a saída no console de uma execução válida deste programa:

a) Digite um número: 21
O número 21 não é multiplo de 5

b) Digite um número: 21
O número 21 não é multiplo de 5
c) Digite um número: 25
leia(numero)
O número 25 é multiplo de 5
d) Digite um número: 25
O número é multiplo de 5
e) Digite um número: 25
O número 25 não é multiplo de 5

Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Carlos está implementando uma função em C que requer a avaliação de expressões lógicas complexas. Ele está confuso sobre a precedência dos operadores lógicos. Considerando o texto, analise as afirmativas abaixo: I. Em C, o operador lógico AND tem precedência sobre o operador OR II. Os parênteses podem ser usados para alterar a ordem de avaliação das expressões, independentemente da precedência padrão dos operadores. III. O operador NOT tem a mesma precedência que os operadores AND e OR em C. Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Em relação a tipos de dados, atribua V (verdadeiro) ou F (falso) às afirmativas a seguir: ( ) char é um tipo simples. ( ) double é um tipo estruturado. ( ) float é um tipo simples. ( ) int é um tipo simples. ( ) void é um tipo estruturado. Assinale a alternativa que apresenta a sequência correta:

a) V,V,F,F,F
b) V,F,V,V,F
c) F,V,V,F,V
d) F,F,V,F,V
e) F,F,F,V,V

Roberto está desenvolvendo um jogo em C e quer garantir uma execução eficiente. Ele está avaliando o uso de variáveis e constantes no armazenamento de informações que não mudam. Considerando o texto, analise as afirmativas abaixo: I. Variáveis são apropriadas para armazenar informações que podem mudar ao longo da execução do programa. II. Constantes são utilizadas para valores que permanecem inalterados durante a execução do programa, proporcionando proteção contra modificações acidentais. III. O uso de constantes pode levar a um aumento significativo no uso de memória em comparação com variáveis. Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Assinale a alternativa que contém, corretamente, o que será exibido na tela.

a) num = 2
b) num = 5
c) num = 7
d) num = 8
e) num = 6

Assinale a alternativa que representa o que será impresso pelo programa se o usuário digitar 15, como entrada de dados.

a) 10 15
b) 15 10
c) 5 10
d) 5 150
e) 15 20

Contém uma instrução correta que exibirá na tela a frase "Menor de idade":

a) I, II, III e IV.
b) I, II e III apenas.
c) II e III, apenas.
d) II, apenas.
e) I e III, apenas.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Assinale a alternativa que poderia conter a saída no console de uma execução válida deste programa:

a) Digite um número: 21
O número 21 não é multiplo de 5

b) Digite um número: 21
O número 21 não é multiplo de 5
c) Digite um número: 25
leia(numero)
O número 25 é multiplo de 5
d) Digite um número: 25
O número é multiplo de 5
e) Digite um número: 25
O número 25 não é multiplo de 5

Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Carlos está implementando uma função em C que requer a avaliação de expressões lógicas complexas. Ele está confuso sobre a precedência dos operadores lógicos. Considerando o texto, analise as afirmativas abaixo: I. Em C, o operador lógico AND tem precedência sobre o operador OR II. Os parênteses podem ser usados para alterar a ordem de avaliação das expressões, independentemente da precedência padrão dos operadores. III. O operador NOT tem a mesma precedência que os operadores AND e OR em C. Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Em relação a tipos de dados, atribua V (verdadeiro) ou F (falso) às afirmativas a seguir: ( ) char é um tipo simples. ( ) double é um tipo estruturado. ( ) float é um tipo simples. ( ) int é um tipo simples. ( ) void é um tipo estruturado. Assinale a alternativa que apresenta a sequência correta:

a) V,V,F,F,F
b) V,F,V,V,F
c) F,V,V,F,V
d) F,F,V,F,V
e) F,F,F,V,V

Roberto está desenvolvendo um jogo em C e quer garantir uma execução eficiente. Ele está avaliando o uso de variáveis e constantes no armazenamento de informações que não mudam. Considerando o texto, analise as afirmativas abaixo: I. Variáveis são apropriadas para armazenar informações que podem mudar ao longo da execução do programa. II. Constantes são utilizadas para valores que permanecem inalterados durante a execução do programa, proporcionando proteção contra modificações acidentais. III. O uso de constantes pode levar a um aumento significativo no uso de memória em comparação com variáveis. Está correto apenas o que se afirmar em:

a) Apenas a I está correta.
b) Apenas a II e III estão corretas.
c) Apenas a III está correta.
d) Apenas a I e II estão corretas.
e) Apenas a II está correta.

Assinale a alternativa que contém, corretamente, o que será exibido na tela.

a) num = 2
b) num = 5
c) num = 7
d) num = 8
e) num = 6

Assinale a alternativa que representa o que será impresso pelo programa se o usuário digitar 15, como entrada de dados.

a) 10 15
b) 15 10
c) 5 10
d) 5 150
e) 15 20

Contém uma instrução correta que exibirá na tela a frase "Menor de idade":

a) I, II, III e IV.
b) I, II e III apenas.
c) II e III, apenas.
d) II, apenas.
e) I e III, apenas.

Prévia do material em texto

<p>Exercícios de Introdução à Programação de Computadores</p><p>1) Observe a sequência a seguir: 3,15, 35, 63, 99, .. O próximo termo é:</p><p>a) 110</p><p>b) 121</p><p>c) 134</p><p>d) 143</p><p>e) 195</p><p>Gabarito Comentado => Para encontrar o próximo termo da sequência, é necessário identificar</p><p>o padrão. Neste caso, a diferença entre os termos consecutivos está aumentando de 12 em 12.</p><p>A diferença entre o segundo e o primeiro termo é 12, entre o terceiro e o segundo é 24, entre</p><p>o quarto e o terceiro é 36 e entre o quinto e o quarto é 48. Portanto, para encontrar o próximo</p><p>termo, adicionamos 60 (12 a mais que 48) ao último termo conhecido (99), resultando em 143.</p><p>Portanto, a alternativa correta é a D, que é 143.</p><p>2) Para verificar o resto da divisão de um número inteiro por outro, utiliza-se no Portugol o</p><p>operador %.</p><p>Por exemplo:</p><p>5%2 tem como resultado 1.</p><p>14%3 tem como resultado 2.</p><p>12%6 tem como resultado O.</p><p>Observe a figura, a seguir, com um pequeno programa em Portugol</p><p>programa</p><p>{</p><p>função inicio()</p><p>{</p><p>inteiro numero, múltiplo</p><p>leia(numero)</p><p>se (numero % 5 == 0)</p><p>{</p><p>escreva("O número ", numero, " é multiplo de 5")</p><p>}</p><p>senão</p><p>{</p><p>escreva("O número ", numero, " não é multiplo de 5")</p><p>}</p><p>escreva("\n")</p><p>}</p><p>}</p><p>}</p><p>Assinale a alternativa que poderia conter a saída no console de uma execução válida deste</p><p>programa:</p><p>a) Digite um número: 21</p><p>O número 21 não é multiplo de 5\n</p><p>b) Digite um número: 21</p><p>O número 21 não é multiplo de 5</p><p>c) Digite um número: 25</p><p>leia(numero)</p><p>O número 25 é multiplo de 5</p><p>d) Digite um número: 25</p><p>O número é multiplo de 5</p><p>e) Digite um número: 25</p><p>O número 25 não é multiplo de 5</p><p>Gabarito Comentado => A resposta correta é: Digite um número: 21</p><p>O número 21 não é multiplo de 5</p><p>3) Observe a sequência a seguir: 11021, 11032, 11053, 11074, 1115... O próximo termo é:</p><p>a) 11136</p><p>b) 11116</p><p>c) 11051</p><p>d) 11106</p><p>e) 11156</p><p>Gabarito Comentado => A sequência apresentada segue um padrão de soma de pares. Do</p><p>primeiro par (11032) até o segundo da sequência (11074), a diferença é de 42, que é o</p><p>resultado da soma de 21 com 21. Do segundo par ao quarto, a diferença é de 62, que é o</p><p>resultado da soma de 41 com 21. Portanto, para encontrar o próximo termo da sequência,</p><p>somamos 62 ao último termo apresentado (11074), resultando em 11136. Assim, a alternativa</p><p>correta é a A, que apresenta o número 11136.</p><p>4) Observe a figura, a seguir, com um pequeno programa em Portugo!</p><p>Programa</p><p>{</p><p>funcao inicio()</p><p>{ inteiro lado_a, lado_b, lado_c</p><p>escreva ("Informe o primeiro lado do triângulo: ")</p><p>leia (lado_a)</p><p>escreva ("Informe o segundo 1ado do triângulo: ")</p><p>leia (lado_b)</p><p>escreva ("Informe o terceiro lado do triângulo: ")</p><p>leia (lado_c)</p><p>se (lado_a == lado_b e lado_a == lado_c)</p><p>{</p><p>escreva ("WnCaso 1Nn”)</p><p>}</p><p>senao</p><p>{</p><p>se (lado_a == lado_b ou lado_b == lado_c ou lado_c == lado_a)</p><p>{</p><p>escreva ("\nCaso 2\")</p><p>}</p><p>senao</p><p>{</p><p>escreva ("\nCaso 3\")</p><p>}</p><p>}</p><p>}</p><p>}</p><p>Suponha que, ao executar o programa, o usuário tenha digitado os valores a seguir:</p><p>10</p><p>11</p><p>11</p><p>Assinale a alternativa que representa a saída do console;</p><p>a) Caso 1</p><p>b) Caso 2</p><p>c) Caso 3</p><p>d) "nCaso 3n"</p><p>e) "nCaso 2n"</p><p>Gabarito Comentado => A resposta correta é: Caso 2.</p><p>5) Observe a sequência a seguir:</p><p>A</p><p>BB</p><p>CCC</p><p>DDDD</p><p>O próximo termo é:</p><p>a) ABCDE</p><p>b) EDCBA</p><p>c) ABCBA</p><p>d) EEEEE</p><p>e) DEEEEED</p><p>Gabarito Comentado => A sequência apresentada segue um padrão em que cada letra do</p><p>alfabeto é repetida um número de vezes igual à sua posição no alfabeto. A letra 'A' é a primeira</p><p>do alfabeto e aparece uma vez, a letra 'B' é a segunda e aparece duas vezes, a letra 'C' é a</p><p>terceira e aparece três vezes, e a letra 'D' é a quarta e aparece quatro vezes. Seguindo esse</p><p>padrão, a próxima letra, 'E', que é a quinta do alfabeto, deve aparecer cinco vezes. Portanto, o</p><p>próximo termo da sequência é 'EEEEE".</p><p>6) Um desenvolvedor está trabalhando em um aplicativo de e-commerce que requer a</p><p>categorização de itens. Uma abordagem eficiente é necessária para facilitar a organização e</p><p>busca. Qual recurso em C seria ideal para representar categorias distintas de produtos?</p><p>a) Struct.</p><p>b) Array.</p><p>c) Pointer.</p><p>d) Union.</p><p>e) Enum.</p><p>Gabarito Comentado => "Enum" é perfeito para categorizar itens, pois permite a definição de</p><p>constantes nomeadas, facilitando a leitura do código e a manutenção de valores fixos, como</p><p>categorias distintas em um sistema de e-commerce.</p><p>7) Para construir expressões lógicas em C, é essencial entender o conceito de , que mostra</p><p>todas as possíveis combinações de valores verdadeiros e falsos para expressões lógicas. Ao</p><p>trabalhar com operadores lógicos, como AND e OR, esta ferramenta é fundamental para</p><p>prever o resultado de uma expressão. Além disso, para desenvolver aplicações robustas e</p><p>eficientes, é importante compreender os de dados suportados pela linguagem e como a de</p><p>variáveis e constantes influencia o desempenho do programa. Assinale a alternativa que</p><p>contém a sequência correta para preencher as lacunas acima:</p><p>a) tabela verdade - tipos - manipulação.</p><p>b) matriz lógica - modelos - declaração.</p><p>c) árvore de decisão - sistemas - inicialização.</p><p>d) gráfico booleano - esquemas - atribuição.</p><p>e) diagrama de fluxo - categorias - conversão.</p><p>Gabarito Comentado => A "tabela verdade" é uma ferramenta chave em lógica e programação,</p><p>usada para visualizar e entender todas as possíveis combinações de valores lógicos para</p><p>expressões compostas. No contexto da programação em C, conhecer os "tipos" de dados</p><p>disponíveis é crucial, pois cada tipo tem características e limitações específicas. A</p><p>"manipulação" eficiente de variáveis e constantes é vital para a otimização da memória e o</p><p>desempenho geral do programa.</p><p>8) Fernanda está desenvolvendo um aplicativo que requer cálculos precisos. Ela está</p><p>revisando os tipos de dados e operadores disponíveis para garantir que suas operações</p><p>retornem resultados precisos e confiáveis. Considerando o texto, analise as afirmativas</p><p>abaixo:</p><p>I. Fernanda deve usar o tipo de dado 'double' para cálculos que exigem alta precisão com</p><p>muitos dígitos após o ponto decimal.</p><p>II. Em uma expressão com diferentes tipos de dados numéricos, o tipo de dado do resultado</p><p>é determinado pelo tipo de dado com maior capacidade de armazenamento.</p><p>III. O tipo de dado 'double' é equivalente ao 'int', pois ambos são usados para armazenar</p><p>números inteiros.</p><p>Está correto apenas o que se afirmar em:</p><p>a) Apenas a I está correta.</p><p>b) Apenas a II e III estão corretas.</p><p>c) Apenas a III está correta.</p><p>d) Apenas a I e II estão corretas.</p><p>e) Apenas a II está correta.</p><p>Gabarito Comentado => Enquanto 'float' é adequado para números fracionários, para alta</p><p>precisão, um tipo de dado com mais capacidade, como 'double", é preferível. A afirmativa II</p><p>está correta, pois em operações com diferentes tipos de dados, a promoção de tipo ocorre,</p><p>favorecendo o tipo de dado com maior capacidade. À afirmativa III está incorreta, pois 'double'</p><p>é usado para números de ponto flutuante com precisão dupla, enquanto 'int' é para inteiros.</p><p>9) Um programador está escrevendo um código que requer a manipulação de variáveis</p><p>numéricas. Ele precisa garantir que uma variável seja incrementada em uma unidade. Qual</p><p>operador ele deve usar para aumentar o valor de uma variável em um?</p><p>a) ++</p><p>b) **</p><p>c) //</p><p>d) ++</p><p>e) %%</p><p>Gabarito Comentado => O operador de incremento (++) é usado em programação para</p><p>aumentar o valor de uma variável em um. É uma forma concisa de adicionar um a uma</p><p>variável, útil em várias estruturas de controle, como loops.</p><p>10) Um programador está ajustando a performance de um jogo, buscando variáveis que não</p><p>mudam após sua inicialização para otimizar o uso da memória. Que tipo de qualificador em C</p><p>o programador deve usar para essas variáveis?</p><p>a) short.</p><p>b) static.</p><p>c)</p><p>volatile.</p><p>d) register.</p><p>e) const.</p><p>Gabarito Comentado => O qualificador "const" é usado para variáveis cujo valor não é para ser</p><p>alterado após a inicialização. Isso pode ajudar na otimização, pois o compilador pode fazer</p><p>certas suposições sobre o uso dessas variáveis.</p><p>11) Uma programadora está trabalhando em um projeto que requer a execução de uma ação</p><p>se uma de duas condições for verdadeira. Ela sabe que um operador lógico específico é</p><p>necessário. Qual operador lógico é usado para executar uma ação quando pelo menos uma</p><p>de várias condições é verdadeira?</p><p>a) Operador AND.</p><p>b) Operador NOT.</p><p>c) Operador OR.</p><p>d) Operador XOR.</p><p>e) Operador XNOR.</p><p>Gabarito Comentado => O operador lógico OR é usado em condições onde apenas uma das</p><p>subcondições precisa ser verdadeira para que toda a condição seja considerada verdadeira.</p><p>Este operador é fundamental em situações onde múltiplas possibilidades podem satisfazer a</p><p>exigência de uma condição.</p><p>12) Carlos está implementando uma função em C que requer a avaliação de expressões</p><p>lógicas complexas. Ele está confuso sobre a precedência dos operadores lógicos.</p><p>Considerando o texto, analise as afirmativas abaixo:</p><p>I. Em C, o operador lógico AND tem precedência sobre o operador OR</p><p>II. Os parênteses podem ser usados para alterar a ordem de avaliação das expressões,</p><p>independentemente da precedência padrão dos operadores.</p><p>III. O operador NOT tem a mesma precedência que os operadores AND e OR em C.</p><p>Está correto apenas o que se afirmar em:</p><p>a) Apenas a I está correta.</p><p>b) Apenas a II e III estão corretas.</p><p>c) Apenas a III está correta.</p><p>d) Apenas a I e II estão corretas.</p><p>e) Apenas a II está correta.</p><p>Gabarito Comentado => A afirmativa I está correta: em C, o operador AND (&&) tem</p><p>precedência sobre o OR (||), o que significa que em uma expressão contendo ambos, a parte</p><p>com AND será avaliada primeiro. A afirmativa Il também está correta, pois os programadores</p><p>podem usar parênteses para explicitamente especificar a ordem em que desejam que as</p><p>operações lógicas sejam avaliadas, anulando a precedência padrão. A afirmativa III está</p><p>incorreta porque o operador NOT (1) tem precedência mais alta que AND e OR em C.</p><p>13) Tabelas verdade são uma parte integral da lógica computacional, especialmente quando</p><p>se lida com várias condições lógicas. Suponha que um programador esteja trabalhando em</p><p>um sistema que requer a avaliação de múltiplas entradas lógicas. Qual operador lógico</p><p>representa a conjunção "E", resultando em verdadeiro apenas se todas as condições forem</p><p>verdadeiras?</p><p>a) ||</p><p>b) &&</p><p>c) ==</p><p>d) !=</p><p>e) --</p><p>Gabarito Comentado => O operador "&8&" é utilizado em C para representar a conjunção</p><p>lógica "E". Ele só retorna verdadeiro se todas as condições avaliadas também forem</p><p>verdadeiras, o que é essencial para a avaliação precisa de expressões lógicas complexas.</p><p>14) Em relação a tipos de dados, atribua V (verdadeiro) ou F (falso) às afirmativas a seguir:</p><p>( ) char é um tipo simples.</p><p>( ) double é um tipo estruturado.</p><p>( ) float é um tipo simples.</p><p>( ) inté um tipo simples.</p><p>( ) void é um tipo estruturado.</p><p>Assinale a alternativa que apresenta a sequência correta:</p><p>a) V,V,F,F,F</p><p>b) V,F,V,V,F</p><p>c) F,V,V,F,V</p><p>d) F,F,V,F,V</p><p>e) F,F,F,V,V</p><p>Gabarito Comentado => A sequência correta é V, F, V, V, F. Isso porque os tipos de dados 'char',</p><p>'float' e 'int' são considerados tipos simples, pois armazenam apenas um valor de cada vez. Por</p><p>outro lado, 'double' e 'void' não são tipos estruturados. 'Double' é um tipo simples que</p><p>armazena números de ponto flutuante de dupla precisão. 'Void' é um tipo especial que é usado</p><p>para indicar ausência de valor ou para criar funções genéricas.</p><p>15) Roberto está desenvolvendo um jogo em C e quer garantir uma execução eficiente. Ele</p><p>está avaliando o uso de variáveis e constantes no armazenamento de informações que não</p><p>mudam. Considerando o texto, analise as afirmativas abaixo:</p><p>I. Variáveis são apropriadas para armazenar informações que podem mudar ao longo da</p><p>execução do programa.</p><p>II. Constantes são utilizadas para valores que permanecem inalterados durante a execução</p><p>do programa, proporcionando proteção contra modificações acidentais.</p><p>III. O uso de constantes pode levar a um aumento significativo no uso de memória em</p><p>comparação com variáveis.</p><p>Está correto apenas o que se afirmar em:</p><p>a) Apenas a I está correta.</p><p>b) Apenas a II e III estão corretas.</p><p>c) Apenas a III está correta.</p><p>d) Apenas a I e II estão corretas.</p><p>e) Apenas a II está correta.</p><p>Gabarito Comentado => A afirmativa I está correta, pois variáveis em programação são usadas</p><p>para armazenar dados que podem variar durante a execução do programa. A afirmativa II</p><p>também está correta, constantes são usadas para valores que não devem ser alterados depois</p><p>de definidos inicialmente, oferecendo segurança contra alterações acidentais no código. A</p><p>afirmativa III está incorreta, pois o uso de constantes não necessariamente aumenta o uso de</p><p>memória; na verdade, pode contribuir para a eficiência ao prevenir recalculações</p><p>desnecessárias e modificar dados imutáveis.</p><p>16) Considere o seguinte programa escrito em C.</p><p>#include</p><p>void main(){</p><p>int num;</p><p>printf("Entre com um inteiro:\n");</p><p>scanf("%f", &num);</p><p>printf("num = %f \n", num);</p><p>)</p><p>Embora o programa não apresente erro de compilação, assinale a alternativa que apresenta</p><p>um possível motivo para o seu mau funcionamento.</p><p>a) A função scanf deveria ter sido invocada com scanf("%f", num).</p><p>b) A função scanf deveria ter sido invocada com scanf("%d", num).</p><p>c) As funções scanf e printf deveriam ter sido invocadas com "%d", e não "%f".</p><p>d) As funções scanf e printf deveriam ter sido invocadas com "%c", e não "%f".</p><p>e) A função printf deveria ter sido invocada com printf("num = %d nº, num).</p><p>Gabarito Comentado => O programa em questão apresenta um problema de incompatibilidade</p><p>entre o tipo de dado declarado e o especificador de formato utilizado nas funções scanf e</p><p>printf. A variável 'num' é declarada como um inteiro (int), mas as funções scanf e printf estão</p><p>sendo invocadas com o especificador de formato "%f", que é utilizado para números de ponto</p><p>flutuante. Portanto, para o correto funcionamento do programa, as funções scanf e printf</p><p>deveriam ter sido invocadas com "%d", que é o especificador de formato correto para inteiros.</p><p>17) Considere o seguinte programa escrito em C. Imagine também que antes da função main</p><p>foram declaradas todas as bibliotecas relacionadas às instruções.</p><p>int main () (</p><p>char letra;</p><p>printf("Entre com uma letra minúscula:in");</p><p>scanf("%ec", &letra);</p><p>letra = letra + ('A' -'a');</p><p>printf("Caractere = %c Wn", letra);</p><p>return O;</p><p>}</p><p>Após a execução desse trecho, suponha que o usuário tenha entrado com a letra 'd'.</p><p>Assinale a alternativa que contém, corretamente, o resultado exibido na tela após a execução</p><p>desse programa.</p><p>a) Caractere = d</p><p>b) Caractere = D</p><p>c) Caractere = c</p><p>d) Caractere = C</p><p>e) Ocorrerá um erro durante a compilação.</p><p>Gabarito Comentado => O programa em questão solicita ao usuário que insira uma letra</p><p>minúscula. Em seguida, realiza uma operação de soma com o valor ASCII da letra inserida e a</p><p>diferença entre os valores ASCII das letras 'A' e 'a'. Essa operação tem o efeito de converter a</p><p>letra minúscula inserida em sua correspondente maiúscula. Portanto, se o usuário inserir a</p><p>letra 'd', o programa exibirá 'D' como resultado, pois é a versão maiúscula da letra 'd'. Assim, a</p><p>alternativa correta é a B: "Caractere = D".</p><p>18) Considere o seguinte trecho de código escrito em C que já conta com as bibliotecas</p><p>necessárias para sua execução:</p><p>void main(){</p><p>char letra;</p><p>int num;</p><p>printf("Entre com uma letra e um inteiro:\n");</p><p>scanf("%c %d", &letra, &num);</p><p>printf("Você informou a letra %c e o inteiro %d.\n", letra, num);</p><p>}</p><p>)</p><p>Após a execução desse trecho, suponha que o usuário tenha entrado com os valores:</p><p>j</p><p>5</p><p>Assinale a alternativa que contém UMA POSSIBILIDADE de resultado para a execução desse</p><p>programa.</p><p>a) Será impresso na tela: Você informou a letra j e o inteiro 5.</p><p>b) Será impresso na tela: Você informou a letra e o inteiro 6356728,</p><p>c) Ocorrerá um erro durante a compilação e nada será exibido.</p><p>d) Ocorrerá um erro durante a execução e nada será exibido.</p><p>e) Será impresso na tela: Você informou a letra 'J' e o inteiro 5.</p><p>Gabarito Comentado => O código em questão solicita ao usuário que insira uma letra e um</p><p>número inteiro. Em seguida, ele imprime na tela a letra e o número informados pelo usuário.</p><p>Neste caso, o usuário inseriu a letra 'j' e o número '5'. Portanto, a saída correta do programa</p><p>será: "Você informou a letra j e o inteiro 5.", que corresponde à alternativa A. As demais</p><p>alternativas não são corretas, pois ou apresentam saídas diferentes da esperada ou sugerem</p><p>que ocorrerão erros durante a compilação ou execução, o que não é verdade para este código.</p><p>19) Considere o seguinte programa escrito em C. Lembre-se que o operador % significa resto</p><p>da divisão inteira.</p><p>#include</p><p>void main(){</p><p>int num;</p><p>printf("Entre com um inteiro:\n");</p><p>scanf("%d", &num);</p><p>num = num + num%3;</p><p>printí("num = %d \n", num);</p><p>}</p><p>Após a execução desse trecho, suponha que o usuário tenha entrado com o valor 5. 0</p><p>Assinale a alternativa que contém, corretamente, o que será exibido na tela.</p><p>a) num = 2</p><p>b) num = 5</p><p>c) num = 7</p><p>d) num = 8</p><p>e) num = 6</p><p>Gabarito Comentado => O programa em C solicita ao usuário um número inteiro. Neste caso, o</p><p>usuário insere o número 5. O programa então realiza a operação num = num + num%3. O</p><p>operador % retorna o resto da divisão de num por 3. Como 5 dividido por 3 tem resto 2, a</p><p>operação se torna num = 5 + 2, resultando em num = 7. Portanto, o programa exibirá na tela</p><p>"num = 7".</p><p>20) Considere o programa C listado a seguir.</p><p>#include<studio.h></p><p>int main(void)</p><p>{</p><p>int a, *b, c;</p><p>a = 5;</p><p>b = &a;</p><p>c = 10;</p><p>scanf("'%d", b);</p><p>printf("%d %d\n", a, c);</p><p>}</p><p>Assinale a alternativa que representa o que será impresso pelo programa se o usuário digitar</p><p>15, como entrada de dados.</p><p>a) 10 15</p><p>b) 15 10</p><p>c) 5 10</p><p>d) 5 150</p><p>e) 15 20</p><p>Gabarito Comentado => A resposta correta é: 15 10</p><p>21) Considere o seguinte programa escrito em C:</p><p>#include</p><p>void main(){</p><p>char ch1, ch2;</p><p>printf("Entre com duas letras:\n");</p><p>scanf("%c %c", &chl, &ch2);</p><p>ch1 = ch2;</p><p>ch2 = ch1;</p><p>printf("ch1 = %c e ch2 = %c\n", ch1, ch2);</p><p>}</p><p>Após a execução desse trecho, suponha que o usuário tenha entrado com as letras 'p' e 'q'.</p><p>Assinale a alternativa que contém, corretamente, o que será exibido na tela.</p><p>a) ch1 = p e ch2 = q</p><p>b) ch1 = q e ch2 = p</p><p>c) ch1 = p e ch2 = p</p><p>d) ch1 = q e ch2 = q</p><p>e) ch1 = &ch1 e ch2 = &ch2</p><p>Gabarito Comentado => O programa em questão solicita ao usuário que insira duas letras. Em</p><p>seguida, ele atribui o valor da segunda letra (ch2) à primeira letra (ch1). Depois, tenta atribuir o</p><p>valor da primeira letra (ch1) à segunda letra (ch2), mas como o valor de ch1 já foi alterado para</p><p>o valor de ch2, ambos os caracteres se tornam iguais ao valor de ch2. Portanto, se o usuário</p><p>inserir as letras 'p' e 'q', o programa exibirá 'ch1 = q e ch2 = q' na tela, tornando a alternativa D</p><p>a correta.</p><p>22) Considere o seguinte programa escrito em C:</p><p>#include</p><p>void main(){</p><p>char letra;</p><p>int num;</p><p>printf("Entre com uma letra e um inteiro:\n");</p><p>scanf("%c %d", letra.num);</p><p>printí("Voce informou a letra %c e o inteiro %d.\In", letra, num);</p><p>}</p><p>Após a execução desse trecho, suponha que o usuário tenha entrado com os valores:</p><p>r</p><p>2</p><p>Assinale a alternativa que contém o resultado correto da execução desse programa.</p><p>a) Será impresso na tela: Você informou a letra r e o inteiro 2.</p><p>b) Será impresso na tela: Você informou a letra %c e o inteiro %d</p><p>c) Ocorrerá um erro durante a compilação e nada será exibido.</p><p>d) Ocorrerá um erro durante a execução e nada será exibido.</p><p>e) Será impresso na tela: Você informou a letra 'R' e o inteiro 2.</p><p>Gabarito Comentado => O código apresentado possui um erro na linha que realiza a leitura dos</p><p>valores inseridos pelo usuário. À função scanf necessita do endereço das variáveis para</p><p>armazenar os valores lidos, porém, no código original, os endereços das variáveis não foram</p><p>passados corretamente. O código correto seria:</p><p>#include stdio.h</p><p>void main(){</p><p>char letra;</p><p>int num;</p><p>printf("Entre com uma letra e um inteiro:\n");</p><p>scanf("%c %d", &letra, &num);</p><p>printf("Você informou a letra %c e o inteiro %d.\n", letra, num);</p><p>}</p><p>Portanto, a alternativa correta é a C: Ocorrerá um erro durante a compilação e nada será</p><p>exibido.</p><p>23) Observe o trecho do código em C a seguir. Não esqueça que o operador % significa resto</p><p>da divisão inteira.</p><p>#include</p><p>void main(){</p><p>int n,i</p><p>i = 20;</p><p>n = 2*(i%3);</p><p>printf("n = %d", n);</p><p>)</p><p>Assinale a alternativa que representa o que será impresso na tela.</p><p>a) n = 1</p><p>b) n = 2</p><p>c) n = 3</p><p>d) n = 4</p><p>e) n = 12</p><p>Gabarito Comentado => No código apresentado, a variável 'i' é inicializada com o valor 20. Em</p><p>seguida, é calculado o resto da divisão de 'i' por 3, que resulta em 2. Esse valor é então</p><p>multiplicado por 2, resultando em 4. Portanto, o valor impresso na tela será 'n = 4', o que</p><p>corresponde à alternativa D.</p><p>24) (Baseado em CESPE - 2018 - ABIN - Oficial Técnico de Inteligência - Área de Tecnologia da</p><p>Informação) Marque a opção que representa a seguinte lógica de programação, porém</p><p>usando apenas estruturas do tipo if simples. A expressão a seguir específica que: 1 será</p><p>adicionado a x, se x for maior que 0; 1 será subtraído de x, se x for menor que O; o valor de x</p><p>será mantido, se x for igual a zero.</p><p>a) if(x>0) x++; if(x<0) x--;</p><p>b) if(x>O) x--; if(x<O) x++;</p><p>c) if(x>O) x++; if(x<O) x++;</p><p>d) if(x>O) x--; if(x<O) x--;</p><p>e) if(x>=0) x++; if(x<=0) x--;</p><p>Gabarito Comentado => A alternativa correta é a letra A: iflx>O) x++; iflx<O) x--;. Esta expressão</p><p>representa a lógica de programação descrita no enunciado. Se x for maior que O, 1 será</p><p>adicionado a x (x++). Se x for menor que O, 1 será subtraído de x (x--). Se x for igual a zero,</p><p>nenhuma operação será realizada, mantendo o valor de x inalterado, conforme especificado.</p><p>25) (Baseado em TRE-CE - Técnico Judiciário 2012) Considere a variável idade declarada no</p><p>método main de um programa escrito em C, com a seguinte instrução:</p><p>int idade=12;</p><p>Análise:</p><p>I. printf(idade<18?"Menor de idade":"Maior de idade");</p><p>II. if(idade<18) {printf("Menor de idade");} else {printf("Maior de idade");}</p><p>III. if(idade<18) {printf("Menor de idade");} else if (idade>=18) {printf("Maior de idade");}</p><p>IV. switch(idade) {case<18: printf("Menor de idade"); break; case>=18: printf("Maior de</p><p>idade");}</p><p>Contém uma instrução correta que exibirá na tela a frase "Menor de idade":</p><p>a) I, II, III e IV.</p><p>b) I,II e III apenas.</p><p>c) II e III, apenas.</p><p>d) II, apenas.</p><p>e) I e III, apenas.</p><p>Gabarito Comentado => As instruções |, Il e Ill são corretas e exibirão na tela a frase "Menor de</p><p>idade" quando a variável idade for menor que 18. A instrução | usa o operador ternário para</p><p>verificar a condição e imprimir a frase correspondente. As instruções || e Ill usam a estrutura</p><p>de controle if-else para fazer a mesma verificação. A instrução IV, no entanto, é incorreta</p><p>porque a estrutura switch-case em C não suporta comparações, apenas valores constantes.</p><p>Portanto, a alternativa correta é a B: "I, Il e Il, apenas".</p><p>26) (Procuradoria Geral do Estado - RO (PGE/RO) 2015) No contexto do comando switch e do</p><p>uso do comando break em seu interior, na linguagem de programação C, é correto afirmar</p><p>que:</p><p>a) Toda cláusula case de um comando switch, incluindo a cláusula case default, deve conter um</p><p>comando break;</p><p>b) Os comandos na cláusula case default de um comando switch são executados apenas se</p><p>nenhuma das cláusulas case anteriores possuir um comando break;</p><p>c) Comandos na cláusula case default de um comando switch são executados apenas se</p><p>nenhuma das cláusulas case anteriores possuir um comando break;</p><p>d) Quando um comando break é executado, o comando switch é encerrado e o fluxo de</p><p>controle passa para o próximo comando após o fim do comando switch;</p><p>e) Não é possível executar comandos de uma das cláusulas case de um comando switch na</p><p>mesma execução desse comando.</p><p>Gabarito Comentado => A alternativa correta é a D. Na linguagem de programação C, quando o</p><p>comando break é executado dentro de um comando switch, o comando switch é encerrado</p><p>imediatamente. Isso significa que o fluxo de controle é transferido para o próximo comando</p><p>após o fim do comando switch. O comando break é usado para interromper a execução do</p><p>bloco de código atual e retomar a execução no ponto especificado. Portanto, quando um</p><p>comando break é encontrado dentro de um switch, ele encerra a execução do switch e o</p><p>controle é passado para o próximo comando após o switch.</p><p>27) (UNMETRO - 200)</p><p>#include</p><p>int main(void){</p><p>inti;</p><p>printf("F = ");</p><p>scanf("%d",&i);</p><p>switch (i)</p><p>{</p><p>case O : printf("Maca");</p><p>break;</p><p>case 10 : printf("Abacate");</p><p>break;</p><p>case 20 : printf("Banana");</p><p>break;</p><p>case 30 : printí("Pera");</p><p>break;</p><p>case 40 : printí("Uva");</p><p>break;</p><p>default : printf("Caju");</p><p>}</p><p>}</p><p>Considerando o código em linguagem C apresentado acima, assinale a opção correta.</p><p>a) A instrução switch é utilizada como um laço de repetição com número definido de iterações.</p><p>b) A função principal foi especificada para aceitar um argumento de entrada do tipo inteiro.</p><p>c) O termo printf específica uma diretiva de compilação.</p><p>d) O termo stdio.h específica um arquivo de biblioteca dinâmica de funções.</p><p>e) A função scanf trabalha com um argumento de entrada, dado pelo endereço da variável a</p><p>ser lida.</p><p>Gabarito Comentado => A alternativa correta é a E. A função scanf na linguagem de</p><p>programação C é usada para ler o valor de entrada do usuário. Neste caso, ela está trabalhando</p><p>com um argumento de entrada, que é dado pelo endereço da variável a ser lida. Isso é indicado</p><p>pelo uso do símbolo "&" antes da variável "i". Portanto, a função scanf está lendo o valor de</p><p>entrada do usuário e armazenando-o na variável "i”.</p><p>28) Marque a opção que apresente o comando que é usado em uma estrutura do tipo</p><p>switch-case para evitar que as opções incorretas não sejam utilizadas, caso uma determinada</p><p>opção seja selecionada.</p><p>a) break</p><p>b) continue</p><p>c) default</p><p>d) done</p><p>e) else</p><p>Gabarito Comentado => O comando 'break' é utilizado em uma estrutura do tipo switch-case</p><p>para interromper a execução do bloco de código correspondente ao caso que foi selecionado.</p><p>Assim, evita-se que as opções incorretas sejam executadas após a opção correta.</p><p>29)Considere o seguinte código escrito em linguagem C:</p><p>int num,ind,soma=0;</p><p>for (ind=1;ind<=5;ind++)</p><p>{ scanf("%d",&num);</p><p>if (num%2 == O)</p><p>soma=soma+num;</p><p>}</p><p>printf("%d",soma);</p><p>Assinale a opção que apresenta corretamente a saída do programa para os seguintes dados</p><p>de entrada:</p><p>2 4 8 5 7:</p><p>a) 14</p><p>b) 26</p><p>c) 12</p><p>d) 15</p><p>e) 27</p><p>Gabarito Comentado => O código em questão é um programa em linguagem C que lê cinco</p><p>números (num) e soma aqueles que são pares. À soma é armazenada na variável 'soma'. Para</p><p>os dados de entrada fornecidos (2, 4, 8, 5,7), apenas os três primeiros números são pares.</p><p>Portanto, a soma desses números pares é 2 + 4 + 8 = 14, que é a saída correta do programa.</p><p>Portanto, a alternativa correta é a 'A.</p><p>30) Considere o seguinte trecho de código na linguagem C e avalie as assertivas a seguir.</p><p>Ind=1;</p><p>while (ind<=5)</p><p>{</p><p>scanf("%d",&num);</p><p>controle++;</p><p>if (controle == 1 && num%2 == O)</p><p>menor=num;</p><p>else</p><p>if (num</p><p>menor=num;</p><p>ind++;</p><p>}</p><p>I. Para que a variável menor receba o conteúdo da variável num, pela primeira vez é</p><p>necessário que o conteúdo da variável controle seja 1 e o conteúdo da variável num seja par.</p><p>II. A estrutura de repetição escolhida é indicada quando se sabe ou não o número de</p><p>repetições</p><p>III. A sequência de comandos interna ao comando WHILE será repetida 5 vezes.</p><p>a) I e III</p><p>b) I, II e III</p><p>c) I</p><p>d) I e II</p><p>e) II e III</p><p>Gabarito Comentado => As três assertivas estão corretas. A primeira assertiva (I) está correta</p><p>porque a variável 'menor' receberá o valor da variável 'num' na primeira iteração do loop</p><p>(quando 'controle' é igual a 1) e se 'num' for par. A segunda assertiva (II) está correta porque a</p><p>estrutura de repetição 'while' é usada quando se sabe ou não o número de repetições. A</p><p>terceira assertiva (III) está correta porque a sequência de comandos dentro do loop 'while' será</p><p>repetida 5 vezes, conforme a condição do loop (ind<=5). Portanto, a alternativa correta é a B: I,</p><p>II e III.</p><p>31) Assinale a alternativa que corresponde ao enunciado:</p><p>Faça um programa que leia vinte números inteiros e positivos e mostre o menor número.</p><p>a) controle=1;</p><p>for (cont=1;cont<=20;cont++)</p><p>{ scanf ("%d",&num);</p><p>if (controle==1)</p><p>menor=num;</p><p>else</p><p>if (num</p><p>menor=num;</p><p>controle++;</p><p>}</p><p>b) controle=0;</p><p>for (cont=1;cont<=20;cont++)</p><p>{ scanf ("%d",&num);</p><p>if (controle==1)</p><p>menor=num;</p><p>else</p><p>if (num</p><p>menor=num;</p><p>controle++;</p><p>}</p><p>c) controle=1;</p><p>for (cont=1;cont=20;cont++)</p><p>{ scanf ("%d",&num);</p><p>if (controle==1)</p><p>menor=num;</p><p>else</p><p>if (num</p><p>menor=num;</p><p>}</p><p>d) controle=1;</p><p>for (cont=1;cont<=10;cont++)</p><p>{ scanf ("%d",&num);</p><p>if (controle==1)</p><p>menor=num;</p><p>else</p><p>if (num</p><p>menor=num;</p><p>controle++;</p><p>}</p><p>e) controle=1;</p><p>while (cont<=20)</p><p>{ scanf ("%d",&num);</p><p>if (controle==1)</p><p>menor=num;</p><p>F else</p><p>if (num</p><p>menor=num;</p><p>controle++;</p><p>}</p><p>Gabarito Comentado => O programa correto para ler vinte números inteiros e positivos e</p><p>mostrar o menor número é o apresentado na alternativa A. Ele inicia com a variável controle</p><p>igual a 1 e, em seguida, entra em um loop for que vai de 1 a 20. Dentro desse loop, o programa</p><p>lê um número (num) e, se for a primeira iteração (controle==1), atribui esse número à variável</p><p>menor. Nas iterações subsequentes, se o número lido for menor que o valor atual de menor, o</p><p>programa atualiza a variável menor com esse novo número. Ao final de cada iteração, a</p><p>variável controle é incrementada. Portanto, ao final do loop, a variável menor conterá o menor</p><p>número lido.</p><p>32) Considere a seguinte estrutura do comando FOR:</p><p>for (ind = 15; ind >= 4; ind--)</p><p>Quantas vezes a repetição vai ocorrer?</p><p>a) 12.</p><p>b) 11.</p><p>c) 15.</p><p>d) 25.</p><p>e) 20.</p><p>Gabarito Comentado => A resposta correta é: 12</p><p>33) Com relação aos 3 segmentos de estrutura de repetição, avalie cada assertiva a seguir</p><p>como V(verdadeira) ou F(falsa).</p><p>I. O comando FOR é o mais indicado quando sabemos quantas vezes a repetição vai ocorrer.</p><p>II. O comando WHILE é uma estrutura de repetição que precisa de uma condição que</p><p>controle quando o trecho deve se repetir.</p><p>III. O comando DO... WHILE, por realizar o teste ao final do laço de repetição, vai sempre</p><p>executar ao menos 1 vez a sequência de comandos a se repetir.</p><p>IV. O comando WHILE executa a repetição até que a condição seja verdadeira, isto é,</p><p>enquanto a condição for falsa.</p><p>Assinale a correta sequência de V e F, para a classificação das assertivas:</p><p>a) V,V,V,F</p><p>b) V,V,V,V</p><p>c) F,V,F,V</p><p>d) V,V,F,V</p><p>e) F,F,V,V</p><p>Gabarito Comentado => As três primeiras assertivas estão corretas. O comando FOR é</p><p>geralmente usado quando sabemos o número exato de vezes que um bloco de código deve ser</p><p>executado. O comando WHILE é uma estrutura de repetição que precisa de uma condição para</p><p>controlar quando o bloco de código deve ser repetido. O comando DO... WHILE, por realizar o</p><p>teste ao final do laço de repetição, garante que o bloco de código seja executado pelo menos</p><p>uma vez. No entanto, a quarta assertiva está incorreta. O comando WHILE executa a repetição</p><p>enquanto a condição for verdadeira, e não falsa. Portanto, a sequência correta de V</p><p>(verdadeiro) e F</p><p>(falso) é: V, V, V,F.</p><p>34) Um estúdio de desenvolvimento de jogos está criando um jogo de tabuleiro virtual. Eles</p><p>precisam de uma estrutura de dados que permita uma representação eficiente do tabuleiro,</p><p>que é um grid 2D. Qual estrutura de dados é mais adequada para representar o tabuleiro do</p><p>jogo de forma eficaz?</p><p>a) Lista duplamente encadeada.</p><p>b) Fila</p><p>c) Hashmap.</p><p>d) Matriz</p><p>e) Árvore Binária.</p><p>Gabarito Comentado => Uma Matriz é ideal para representar um tabuleiro de jogo 2D, pois</p><p>permite a alocação de espaço de maneira uniforme e acesso direto a qualquer elemento no</p><p>grid, facilitando operações como movimentos de peças ou verificação de status do jogo.</p><p>35) Em uma aula de programação, os alunos recebem a tarefa de desenvolver um programa</p><p>que lê uma série de notas e destaca aquelas que atingem ou superam a média. Considerando</p><p>o texto, analise as afirmativas abaixo:</p><p>I. O conjunto de notas deve ser inserido em uma estrutura de dados do tipo vetor.</p><p>II. O programa deve calcular a média das notas automaticamente, sem entrada adicional do</p><p>usuário.</p><p>III. Uma matriz bidimensional é necessária para separar as notas que estão abaixo da média.</p><p>Assinale a opção que apresenta somente as alternativas corretas.</p><p>a) As afirmativas I e II estão corretas, mas a III introduz uma complexidade desnecessária</p><p>com o uso de matrizes.</p><p>b) A afirmativa II está correta, enquanto I e III apresentam estruturas de dados que não são</p><p>relevantes para a tarefa.</p><p>c) Apenas a afirmativa I está correta, pois a entrada de dados é fundamental, enquanto o</p><p>cálculo da média e o uso de matrizes são extras.</p><p>d) As afirmativas I, II e III estão incorretas, pois o programa não envolve o uso de vetores,</p><p>cálculo de médias ou uso de matrizes.</p><p>e) A afirmativa III está correta, ao passo que I e II abordam conceitos não exigidos no projeto.</p><p>Gabarito Comentado => Neste projeto, os alunos são instruídos a utilizar um vetor para inserir</p><p>um conjunto de notas, o que válida a afirmativa I. Além disso, o programa deve ser capaz de</p><p>calcular a média das notas sem necessidade de uma entrada adicional do usuário, o que torna</p><p>a afirmativa II correta. No entanto, a afirmativa III sugere incorretamente a necessidade de uma</p><p>matriz bidimensional, que não é apenas irrelevante para a tarefa de identificar notas que</p><p>atendam ou superem a média, mas também adiciona uma complexidade desnecessária ao</p><p>programa. Portanto, apenas as afirmativas I e II estão corretas.</p><p>36) Na análise de sequências de caracteres, especialmente em linguagens de programação, é</p><p>comum a necessidade de contar ocorrências de elementos específicos, como vogais em um</p><p>texto. Para realizar essa tarefa, um programador pode optar por utilizar um vetor para</p><p>____________ à frequência de cada vogal encontrada. Neste cenário, o vetor é configurado</p><p>para armazenar ____________, onde cada posição representa uma das vogais específicas (a,</p><p>e, i, o, u). O processo continua até que um caractere de término específico, como a letra 'z',</p><p>seja identificado na sequência, sinalizando o fim da ____________.</p><p>a) dispersar, strings, entrada.</p><p>b) rastrear, inteiros, análise.</p><p>c) estimar, floats, execução.</p><p>d) desconsiderar, booleans, leitura.</p><p>e) excluir, objetos, codificação.</p><p>Gabarito Comentado => Esta questão trata da utilização de vetores para rastrear a ocorrência</p><p>de vogais em uma sequência de caracteres. O vetor, neste caso, armazena "inteiros" que</p><p>representam a contagem de cada vogal. Não são utilizados strings, floats, booleans ou objetos,</p><p>pois estamos contando ocorrências, o que é representado por números inteiros. A "análise"</p><p>termina quando um caractere específico é encontrado, indicando o fim da sequência de</p><p>entrada a ser analisada. O termo "rastrear" é usado porque o vetor mantém um registro</p><p>acumulativo das ocorrências, e cada posição do vetor é incrementada conforme cada vogal</p><p>correspondente é encontrada.</p><p>37) Arrays em programação são usados para armazenar múltiplos valores em uma única</p><p>variável, o que é útil para muitas aplicações. Qual é a principal característica de um array em</p><p>linguagens de programação como C?</p><p>a) Flexibilidade de tipo.</p><p>b) Armazenamento de diferentes tipos de dados.</p><p>c) Elementos de tamanho dinâmico.</p><p>d) Alocação de memória automática.</p><p>e) Coleção de elementos do mesmo tipo.</p><p>Gabarito Comentado => Em linguagens de programação como C, um array é uma coleção de</p><p>elementos que são do mesmo tipo de dados. Cada elemento pode ser acessado por um índice.</p><p>A necessidade de que todos os elementos sejam do mesmo tipo é uma característica</p><p>fundamental dos arrays nessa linguagem.</p><p>38) Em um programa de computador para gerenciamento de inventário, um vetor é usado</p><p>para armazenar quantidades de diferentes produtos. Cada posição do vetor representa um</p><p>produto específico. Como o vetor ajuda na eficiência do gerenciamento de inventário neste</p><p>contexto?</p><p>a) Permite operações matemáticas complexas entre produtos.</p><p>b) Facilita a busca sequencial por categorias de produto.</p><p>c) Armazena informações detalhadas sobre cada produto.</p><p>d) Rastreia as mudanças de preço dos produtos ao longo do tempo.</p><p>e) Oferece acesso rápido a quantidades por índices de produto.</p><p>Gabarito Comentado => O uso de vetores no gerenciamento de inventário permite um acesso</p><p>eficiente às quantidades de produtos, pois cada índice do vetor corresponde a um produto</p><p>específico. Isso facilita a rápida recuperação e atualização de informações de estoque, o que é</p><p>crucial para a manutenção de inventários precisos em sistemas de gerenciamento.</p><p>39) Contar a ocorrência de caracteres específicos em uma entrada de texto é uma tarefa</p><p>comum em ciência da computação, muitas vezes realizada com a ajuda de vetores. Qual</p><p>técnica de programação é mais adequada para contar o número de vezes que cada vogal</p><p>aparece em uma string?</p><p>a) Recursão.</p><p>b) Pesquisa linear.</p><p>c) Ordenação de bolha.</p><p>d) Mapeamento de caracteres.</p><p>e) Busca binária.</p><p>Gabarito Comentado => O mapeamento de caracteres é a técnica apropriada para esta tarefa</p><p>porque permite associar cada caractere único (neste caso, vogais) a um contador específico.</p><p>Cada vez que uma vogal é encontrada na string, o contador correspondente no vetor (ou</p><p>mapa) é incrementado, proporcionando uma maneira eficiente de contar as ocorrências de</p><p>caracteres.</p><p>40) Durante a execução de um programa, é comum que os desenvolvedores se deparem com</p><p>situações em que precisam armazenar múltiplos dados relacionados. Para esses casos,</p><p>oferecem uma solução prática, permitindo o armazenamento temporário de dados em uma</p><p>estrutura única antes que eles sejam transferidos para arquivos ou é crucial que os</p><p>programadores compreendam como implementar e manipular para garantir a eficiência no</p><p>processamento de dados. Assinale a alternativa que contém a sequência correta para</p><p>preencher as lacunas acima:</p><p>a) vetores, bancos de dados, matrizes.</p><p>b) funções, arquivos, vetores.</p><p>c) matrizes, diretórios, vetores.</p><p>d) variáveis, bancos de dados, funções.</p><p>e) algoritmos, arquivos, classes.</p><p>Gabarito Comentado => Esta questão enfatiza a necessidade de armazenamento temporário de</p><p>dados durante a execução de um programa. Vetores e matrizes são estruturas de dados que</p><p>permitem esse armazenamento de forma eficiente. Além disso, a questão destaca a</p><p>importância de transferir dados para um armazenamento mais permanente, como bancos de</p><p>dados, após o processamento inicial. A compreensão adequada e a manipulação de vetores e</p><p>matrizes são essenciais para a eficiência no manuseio de dados.</p><p>41) Considere a seguinte declaração de vetor na linguagem C:</p><p>int vet [8] = (5,1,4,2,78,3,6);</p><p>Marque a alternativa que apresenta cada elemento do vetor após a execução do seguinte</p><p>trecho de código.</p><p>for (ind=7;ind>=4;ind--)</p><p>{</p><p>aux=vet[7-ind];</p><p>vet[7-ind]=vet[ind];</p><p>vet[ind]=aux;</p><p>}</p><p>a) 6 3 8 7 2 4 1 5</p><p>b) 5 1 4 2 7 8 3 6</p><p>c) 6 1 4 2 7 8 3 5</p><p>d) 6 3 4 2 7 8 1 5</p><p>e) 6 3 8 2 7 4 1 5</p><p>Gabarito Comentado => O trecho de código apresentado realiza uma operação de inversão dos</p><p>elementos do vetor entre as posições 4 e 7. O loop inicia com o índice 7 e vai até o índice 4,</p><p>decrementando o índice a cada iteração. Em cada iteração, o valor na posição "7-ind" é trocado</p><p>com o valor na posição "ind". Portanto, após a execução do código, os elementos do vetor são</p><p>reorganizados para: 6 3 8 7 2 4 1 5, que corresponde à alternativa A.</p><p>42) Um sistema de reservas de assentos de cinema utiliza matrizes para representar os</p><p>assentos disponíveis em cada sala. Como as matrizes contribuem para a eficácia deste</p><p>sistema de reservas?</p><p>a) Geram relatórios financeiros detalhados automaticamente.</p><p>b) Permitem reservas em tempo real durante exibições.</p><p>c) Facilitam a visualização e alocação de assentos.</p><p>d) Oferecem traduções multilíngues para usuários internacionais.</p><p>e) Integram feedback dos clientes para futuras melhorias.</p><p>Gabarito Comentado => Em um sistema de reservas de assentos, as matrizes permitem uma</p><p>representação intuitiva dos assentos como eles são fisicamente dispostos na sala, facilitando a</p><p>visualização e alocação. Cada elemento da matriz pode representar um assento, com seu</p><p>estado (disponível, reservado, ocupado) sendo facilmente controlado.</p><p>43) Assinale a alternativa que apresenta a declaração de um vetor (100 posições de inteiros)</p><p>e uma matriz (4x5 de caracteres):</p><p>a) int vet[100]; char mat[4,5]</p><p>b) int vet[100]; char mat[4][5]</p><p>c) real mat[10]; char vet[4][5]</p><p>d) int vet; char mat;</p><p>e) int vet[1,100]; mat[10,20]</p><p>Gabarito Comentado => A alternativa correta é a B, que apresenta a declaração correta de um</p><p>vetor e uma matriz em linguagem de programação. O vetor é declarado como 'int vet[100]', o</p><p>que significa que é um vetor de inteiros com 100 posições. A matriz é declarada como 'char</p><p>mat[4][5]', o que significa que é uma matriz de caracteres com 4 linhas e 5 colunas. As outras</p><p>alternativas apresentam declarações incorretas ou incompatíveis com o enunciado da questão.</p>

Mais conteúdos dessa disciplina