Unidade 3 - seção 1

1) Em Linguagem C, carregamos bibliotecas com o comando #include. Por exemplo, para incluirmos a biblioteca responsável pelas funções de entrada e saída, devemos usar o comando #include <stdio.h>.
Associe os nomes das bibliotecas, relacionadas na coluna da esquerda com as correspondentes utilidades em Linguagem C, apresentadas na coluna da direita. 

I. <time.h>

II. <math.h>

III. <string.h>

1. Responsável pela manipulação de caracteres.

2. Utilizada para manipulação de horas e datas.

3. Utilizada para a realização de operações matemáticas.

Agora assinale a alternativa que contém a sequência correta da associação.

a. I-2, II-3, III-1.
b. I-1, II-3, III-2.
c. I-3, II-1, III-2.
d. I-1, II-2, III-3.
e. I-2, II-1, III-3.


2) O nome que se vai atribuir a uma variável em Linguagem C implica obedecer algumas regras, por exemplo: uma variável não pode ter o nome de uma palavra da própria Linguagem C. Assim, não é possível ter uma variável denominada float, if ou for, uma vez que essas palavras são instruções ou tipos da própria linguagem.
Qual das seguintes palavras não é uma palavra reservada em Linguagem C?

Escolha uma:

a. typedef.
b. return.
c. struct.
d. alfa.
e. static.


3) A popularidade da linguagem "C" deve-se, principalmente, ao fato dela ser uma linguagem flexível, portátil e eficiente. Sua flexibilidade lhe permite ser utilizada no desenvolvimento de diversos tipos de aplicação, desde simples jogos eletrônicos até poderosos controladores de satélites.
Com base na edição de códigos em "C", avalie a seguinte sentença preenchendo lacunas:
Durante a edição do código fonte em Linguagem C, todo o trabalho é realizado pelo programador, o qual deverá escrever o código em arquivos com a _________ .c. Uma vez feito o programa, o próximo passo é verificar se este foi corretamente escrito, isto é, se a sintaxe das instruções está ou não correta. Esse processo, denominado _________, é realizado pelo _________ .

Assinale a alternativa correta:

a. linguagem – criação – editor.
b. pasta – edição – computador.
c. aplicação – compilação – programador.
d. extensão – decodificação – computador.
e. extensão – compilação – compilador.


4) Em Linguagem C, o símbolo \ é utilizado para retirar o significado especial que um caractere apresenta. No caso do caractere aspas ("), retira-lhe o significado de delimitador, passando a ser considerado simplesmente como o caractere aspas.
Associe os caracteres que podem ser representados precedidos do caractere especial \, relacionados na coluna da esquerda com seus correspondentes significados, apresentados na coluna da direita.

I.   \n
II.  \t
III. \a

1. Sinal sonoro do computador
2. Mudança de linha
3. Tabulação horizontal

 Agora, assinale a alternativa que contém a sequência correta da associação.

a. I-2, II-3, III-1.
b. I-2, II-1, III-3.
c. I-3, II-1, III-2.
d. I-1, II-2, III-3.
e. I-1, II-3, III-2.


5) A Linguagem C dispõe de quatro tipos básicos de dados. Assim, as variáveis poderão assumir os seguintes tipos:

Tipo

Tamanho (bytes)

Valor

char

1

Um caractere ou um inteiro de 0 a 127

int

4

Um número inteiro

float

4

Um número de ponto flutuante

double

8

Um número de ponto flutuante

 Sobre as variáveis que um programa em Linguagem C irá utilizar, analise as seguintes asserções e a relação proposta entre elas:

 I. A declaração de variáveis deve ser feita antes que a variável seja utilizada.

 PORQUE

 II. Isto garante que a quantidade correta de memória já tenha sido reservada para armazenar seu valor.

 A respeito dessas asserções, assinale a opção correta.

a. As asserções I e II são proposições falsas.
b. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
c. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
d. As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
e. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.


6) Os operadores aritméticos disponíveis na linguagem C estão descritos na tabela a seguir:

Operador

Operação

+

soma

-

subtração

*

multiplicação

/

divisão

%

resto da divisão

 Sobre o operador resto da divisão (%), analise as seguintes asserções e a relação proposta entre elas:

I. O operador % não pode ser aplicado a números reais.

PORQUE

II. O resto da divisão entre dois reais é sempre zero.

A respeito dessas asserções, assinale a opção correta.

a. As asserções I e II são proposições falsas.
b. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
c. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
d. As asserções I e II são proposições verdadeiras e a II é uma justificativa da I.
e. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.


 

Unidade 3 - seção 2

1) Considere o seguinte programa desenvolvido em Linguagem C:

 #include <stdio.h>
main(){
float mf;
printf (“Entre com a média final: ”);
scanf (%f,&mf);
if (mf>=7)
  printf (“Aprovado”);
else
  printf(“Reprovado”);
}

Qual estrutura condicional foi utilizada no programa acima?

a. Estrutura condicional encadeada.
b. Estrutura condicional de seleção de casos.
c. Estrutura sequencial.
d. Estrutura condicional composta.
e. Estrutura condicional simples.


2) Em Linguagem C, o comando if sempre executa um conjunto de instruções caso o valor da condição seja verdadeiro, mas pode (ou não) executar um conjunto de instruções se o valor da condição for falso.Nos casos, em que existe um conjunto de instruções a ser executado, se o valor da condição for falso, utiliza-se o comando...

Escolha uma:
a. IF.
b. WHAT-ELSE.
c. SWITCH-ELSE.
d. DO-WHILE.
e. IF-ELSE.


3) A instrução IF-ELSE é uma das instruções de controle de fluxo da Linguagem C. Sua sintaxe é:

if (condição)
   instrução_1;
[else instrução_2;] 

A componente ELSE do IF é facultativa.

Assim, com base na lógica de operação da função IF-ELSE, avalie a sequência proposta que ela realiza:

1. Se o resultado da condição for verdadeiro, executa a instrução_1;
2. Se o resultado da condição for falso, executa a instrução_2 (caso exista o ELSE);
3. A condição é avaliada.

A seguir assinale a alternativa que apresenta a ordem correta das etapas do funcionamento da instrução IF-ELSE.

a. 3 – 2 – 1.
b. 1 – 3 – 2.
c. 1 – 2 – 3.
d. 2 – 3 – 1.
e. 3 – 1 – 2.


4) Considere o seguinte programa desenvolvido em Linguagem C:

#include <stdio.h>
main(){
float salario;
printf (“Entre com o salario”);
scanf (%f,&salario);
if (salario<1000)
  salario = salario + 100;
printtf (“Salário final: %.2f ”,salario);
}

Tendo como referência o programa apresentado, avalie as seguintes afirmativas assinalando (V) para as verdadeiras ou (F) para as falsas:

(    ) O salário só recebe adição de 100 caso seja inferior a 1000.
(    ) Aqueles que recebem 1000 também recebem aumento de salário.
(    ) Aqueles que recebem mais que 1000 ficam exatamente como estão.
(   ) A fim de evitar que imprima um número com várias casas decimais, usa-se .2. Assim, apenas as duas casas decimais mais significativas da parte fracionária do salário serão impressas.

Agora assinale a alternativa com a sequência correta.

a. V – V – V – F.
b. F – F – V – F.
c. V – V – V – V.
d. V – F – V – V.
e. F – F – F – V.


5) Considere o seguinte fragmento de código em Linguagem C:

if (delta >= 0) {
  x1 = (-b + sqrt(delta))/(2 * a);
  x2 = (-b – sqrt(delta))/(2 * a);
} else {
  printf(“Sem raízes reais”);
}

Tendo como base o fragmento de código apresentado, avalie as seguintes afirmativas assinalando (V) para as verdadeiras ou (F) para as falsas:

(    ) O comando usado é o IF-ELSE.
(    ) Se o valor da condição (delta > = 0) for verdadeiro, serão executadas as atribuições às variáveis x1 e x2.
(    ) Se o valor da condição (delta > = 0) for falsa, nada será executado.
(    ) Como o valor da condição será verdadeiro ou falso, somente um dos conjuntos de instruções será executado.
(    ) Como o valor da condição será verdadeiro ou falso, os dois conjuntos de instruções serão executados.

 A seguir assinale a alternativa que apresenta a sequência correta.

a. V – V – V – F – V.
b. F – F – F – V – V.
c. F – F – V – F – V.
d. V – V – F – V – F.
e. V – V – F – V – V.


6) Considere o seguinte programa desenvolvido em Linguagem C: 

#include <stdio.h>
main(){
int n;
printf (“Entre com um número”);
scanf (%d,&n);
if (n>=0)
  printf (“Número positivo”);
else
  printtf (“Número negativo”);
} 

Sobre o programa apresentado, avalie as seguintes afirmativas assinalando (V) para as verdadeiras ou (F) para as falsas: 

(    ) É solicitado e lido um valor inteiro.
(    ) O programa indica se o número lido é positivo ou negativo.
(    ) Se o resultado da expressão (n>=0) for verdadeiro, invoca-se a função printf com a string “Número positivo”.
(    ) Se o resultado da expressão (n>=0) for falso, invoca-se a função printf com a string “Número negativo”.

A seguir assinale a alternativa com a sequência correta.

a. F – F – F – V.
b. V – V – F – V.
c. V – V – V – F.
d. V – V – V – V.
e. F – F – V – F.


Unidade 3 - seção 3

1) A respeito das estruturas de repetição, analise as seguintes sentenças:

I. Quando um programa executa um conjunto de instruções repetidas vezes, diz-se que o programa está realizando um processo iterativo.
II. Cada execução de um conjunto de instruções de um laço de repetição denomina-se uma iteração.
III. A execução de um programa com processamento iterativo nunca termina.
IV. Em alguns casos, o loop infinito pode ser desejável. Exemplo: um programa que monitora um reator nuclear deve estar sempre em execução.

Agora, assinale a alternativa que apresenta a resposta CORRETA.

a. Apenas as afirmativas I e III estão corretas.
b. Apenas a afirmativa IV está correta.
c. As afirmativas I, II, III e IV estão corretas.
d. Apenas as afirmativas II e III estão corretas.
e. Apenas as afirmativas I, II e IV estão corretas.


2) Em linguagem de programação em "C" podemos assumir que as estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a opção de repetir o mesmo bloco quantas vezes for necessário. As estruturas de repetição são úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos os elementos de uma lista ou de uma tabela de dados, ou ainda simplesmente para repetir um mesmo processamento, até que uma certa condição seja satisfeita.

A respeito das estruturas de repetição usadas em Linguagem C, analise as seguintes sentenças:

I. A condição existente no laço mostra qual é o critério a se verificar para que o laço seja executado.
II. O laço do... while é usado em situações em que o corpo do laço deve ser executado pelo menos uma vez.
III. Dentro de um laço podem aparecer instruções simples, outros laços ou blocos de instruções.
IV. Um laço infinito ocorre quando a condição do laço é sempre falsa.

Agora, assinale a alternativa que apresenta a resposta correta.

a. As afirmativas I, II e III estão corretas.
b. As afirmativas I e IV estão corretas.
c. Somente a afirmativa IV está correta.
d. As afirmativas II e III estão corretas.
e. As afirmativas I, II, III e IV estão corretas.


3) Em linguagem de programação em "C" podemos assumir que as estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a opção de repetir o mesmo bloco quantas vezes for necessário. As estruturas de repetição são úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos os elementos de uma lista ou de uma tabela de dados, ou ainda simplesmente para repetir um mesmo processamento, até que uma certa condição seja satisfeita. 

A respeito das estruturas de repetição usadas em Linguagem C, analise as seguintes sentenças:

I. Existem três laços distintos em Linguagem C: os laços whilefor; e do... while.
II. Nos laços for e while, o teste da condição é realizado antes de qualquer instrução.
III. No laço do... while, a condição só é testada depois de executada a instrução correspondente pelo menos uma vez.
IV. A instrução for é recomendada para situações em que o número de iterações é conhecido a priori.

Agora assinale a alternativa correta.

a. As afirmativas I, III e IV estão corretas.
b. As afirmativas II e III estão corretas.
c. Somente a afirmativa IV está correta.
d. As afirmativas I, II, III e IV estão corretas.
e. As afirmativas I e II estão corretas.


4) Considere o seguinte programa escrito em Linguagem C:  

#include <stdio.h>
main(){
int i;
for (i=1; i<=100; i++)
  if (i==50)
    break;
  else
    printf(“%d”,2*i);
  printf(“Fim do laço”);
}

Sobre este programa, analise as seguintes sentenças: 

I. O programa irá iterar o laço 100 vezes.
II. A instrução break é executada quando a variável i tiver o valor 50, terminando o laço de repetição.
III. A instrução break é executada quando a variável i tiver o valor 50 e o programa continua na próxima instrução, isto é, imprime a mensagem “Fim do laço”.
IV. Em resumo, o programa mostra os 49 primeiros números pares.

Agora, assinale a alternativa que apresenta a resposta CORRETA.

a. As afirmativas I, II, III e IV estão corretas.
b. Apenas as afirmativas I, III e IV estão corretas.
c. Apenas as afirmativas I e II estão corretas.
d. Apenas as afirmativas II e III estão corretas.
e. Apenas a afirmativa IV está correta.


5) Considere o seguinte programa escrito em Linguagem C: 

#include <stdio.h>
main(){
int i,j;
for (i=1; i<=10; i++){
  for (j=1; j<=i; j++)
    printf(“%d”,i);
  printf(“\n”);
  }
}

Sobre este programa, analise as seguintes sentenças: 

I. A instrução i++ é equivalente a i = i +1.
II. O laço interno não apresenta um número de iterações fixas, pois depende do valor da variável de controle do laço externo.
III. O programa imprime 10 linhas na tela.
IV. A n-ésima linha apresenta os números 1 2 ... n.

Agora assinale a alternativa que apresenta a resposta correta.

a. Apenas as afirmativas I, II e IV estão corretas.
b. Apenas as afirmativas II e III estão corretas.
c. Apenas as afirmativas I e III estão corretas.
d. Apenas a afirmativa IV está correta.
e. As afirmativas I, II, III e IV estão corretas.


6) Considere o seguinte programa escrito em Linguagem C: 

#include <stdio.h>
main(){
int i;
for (i=2; i<=20; i=i+2)
  printf(“%d”,i);
}

Sobre este programa, analise as seguintes sentenças: 

I. A instrução i++ é equivalente a i = i +1.
II. Este programa poderia ser reescrito utilizando a estrutura while.
III. Em resumo, o programa mostra os 10 primeiros números pares.
IV. Em resumo, o programa mostra os 20 primeiros números pares.

Agora, assinale a alternativa que apresenta a resposta CORRETA.

a. Apenas a afirmativa IV está correta.
b. Apenas as afirmativas II e III estão corretas.
c. Apenas as afirmativas I, II e IV estão corretas.
d. As afirmativas I, II, III e IV estão corretas.
e. Apenas as afirmativas I e III estão corretas.

 



Unidade 4 - seção 1

1. A Linguagem C permite a definição de novos tipos de dados com base nos tipos primitivos: charintfloat e double. Estes novos tipos de dados, formados a partir dos tipos primitivos são chamados de tipos estruturados. Uma variável de um determinado tipo estruturado definido pelo usuário é comumente chamada de estrutura.

Para criar uma estrutura, utiliza-se o comando...

a. struct.
b. include.
c. import.
d. void.
e. function.


2. Um vetor é um conjunto de elementos consecutivos, todos do mesmo tipo, que podem ser acessados individualmente a partir de um único nome.
A respeito da utilização de vetor em Linguagem C, marque V para verdadeiro e F para falso:

( ) Os elementos de um vetor são sempre armazenados em posições contíguas da memória.
( ) O índice do primeiro elemento de um vetor é sempre 1.
( ) Os índices de um vetor com n elementos variam sempre entre 0 e n - 1.
( ) Um vetor pode ser iniciado com valores existentes dentre de chaves, após o sinal de igual, por exemplo: “int teste[3] = {1, 2, 3};”.

a. F – F – F – V.
b. V – F – V – V.
c. F – F – V – F.
d. V – V – V – F.
e. V – V – V – V.


3. Complete as lacunas da sentença a seguir:
Para saber se é viável a utilização de um vetor durante o desenvolvimento de um ____________ é necessário verificar se as informações armazenadas serão do mesmo ____________ de dados e se elas vão armazenar o mesmo tipo de informação. Se a resposta for sim para estas duas perguntas, então é recomendável o uso da ____________ de dados vetor.

Assinale a alternativa correta:

a. programa – operador – função.
b. fluxograma – tipo – variável.
c. programa – editor - execução.
d. programa – tipo – estrutura. Correto
e. algoritmo – ponteiro – saída.


4. Considere os seguintes trechos de código escritos em Linguagem C:

struct ponto{
float coord_x;
float coord_y;
};

struct circulo{
float raio;
struct ponto centro;
};

Sobre estes trechos de código, analise as seguintes sentenças:

I. Os trechos de código definem novos tipos de dados: ponto e circulo.
II. A instrução “struct circulo c” atribui uma variável à estrutura circulo.
III. As instruções “c.raio = 10.0”, “c.centro.coord_x = 2.5” e “c.centro.coord_y = 1.5” atribuem valores aos campos da variável c, que é do tipo circulo.
IV. Estas estruturas criadas podem ser passadas como parâmetros de funções assim como qualquer outro tipo de variável.

Agora, assinale a alternativa que apresenta a resposta CORRETA.
a. As afirmativas I, II, III e IV estão corretas.
b. Somente a afirmativa IV está correta.
c. As afirmativas I, III e IV estão corretas.
d. As afirmativas I e II estão corretas.
e. As afirmativas I, II e III estão corretas.


5. Considere o vetor ilustrado pela figura a seguir:

Sobre este vetor, analise as seguintes asserções e a relação proposta entre elas:

I. Caso este vetor fosse implementado em Linguagem C, o terceiro elemento (número 5), estaria contido no índice 3.
PORQUE
II. Em Linguagem C, os elementos de um vetor iniciam-se a partir do índice 1.

A respeito dessas asserções, assinale a opção correta.

a.A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
b.As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
c.A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
d.As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
e.As asserções I e II são proposições falsas.


6. Considere o seguinte programa escrito em Linguagem C:

int main(){
float num[10];
for (i=1; i<=10; i++){
printf(“Digite um número: “);
scanf(“%d”,&num[i]);
}

printf(“\nVetor: \n“);
for (i=1; i<=10; i++){
printf(““%f ”,&num[i] “);
}
system(“PAUSE”);
return 0;
}

Sobre o programa acima, analise as seguintes asserções e a relação proposta entre elas:

I. Há um erro no código do programa na etapa de leitura dos elementos do vetor num.
PORQUE
II. O vetor num é do tipo de dados float e a tag que acompanha a função scanf para leitura de dados deste tipo não é “%d”.

A respeito dessas asserções, assinale a opção correta.

a.A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
b.As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. Correto
c.A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
d.As asserções I e II são proposições falsas.
e.As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.