Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO I
1a aula
1a Questão
Um dos grandes problemas de empresas que desenvolvem software é a variedade hardware. Como por exemplo, em grandes redes de supermercados, o software instalado não pode ser trocado sem maiores custos e traumas. A linguagem C possui a capacidade de ser compilado ou executado em diferentes arquiteturas (seja de hardware ou de software). Identifique abaixo a capacidade descrita.
Reuso
Modularidade
Flexibilidade
Portabilidade
Polimorfismo
Explicação:
A Portabilidade é uma das grandes vantagens da linguagem C porque com poucas modificações( às vezes, nenhuma) podemos compilar em qualquer arquitetura.
2a Questão
É um nome de variável válido:
maça
1X
media_nota2
número
meu 2Cel
Explicação:
As regras para se nomear uma variável na linguagem C são:
Somente letras sem acentuação e nem cedilha, maiúsculas e minúsculas.
Algarismos
O caractere underline ( _ )
Não pode começar com algarismo
A única que atende às exigências é: media_nota2
3a Questão
Qual seria o menor programa compilável da Linguagem C?
main{}()
main()[]
main{}
main[]{}
main(){}
Explicação:
O menor programa compilável é o main(){}, pois a única obrigação é o main() que é a função principal e o {} (abre e fecha chaves) que é do início e fim da função.
4a Questão
Para que possamos criar nossos programas na linguagem C, iniciamos por criar o ______________, o qual pode ser feito através de um editor de texto não formatado e salvo com a ______________ ou mesmo utilizar um editor da linguagem, como o DEV C++. De acordo com o sistema operacional isto pode ser um pouco diferente. Após esta etapa, devemos ___________ e linkeditar o programa gerando o arquivo _____________, o qual após ser executado apresenta o resultado de nosso programa.
Das opções apresentadas, marque aquela que completa respectivamente e corretamente os espaços em branco destacados do texto, segundo os conceitos da linguagem C apresentados no material didático da disciplina.
Executável - extensão .c - compilar - fonte
Código base - extensão .c - compilar - fonte
Código fonte - extensão .c - compilar - executável
Fonte - extensão .txt - editar - executável
Código de texto - extensão .txt - editar - fonte
Explicação:
Não importa se usamos uma IDE ou vários programas, mas tudo começa assim:
Digitamos nosso código fonte em um editor como se fosse um texto.
Salvamos com a extensão .c .
Em seguido, o compilador é chamado para que tente converter em uma linguagem objeto.
Por fim, um linkeditor para unir os objetos(as bibliotecas também) e gerar um executável.
5a Questão
Qual o nome da diretiva que é usada para incluir arquivos dentro do programa fonte que estivermos construindo?
define
include
const
struct
typedef
Explicação:
Estudamos que precisaremos incluir bibliotecas em nossos programas e, para que isso seja possível, a diretiva include deverá ser usada para cada inclusão.
Ref.: 201703837658
6a Questão
Sabemos que a linguagem C apresenta várias vantagens. Quando dizemos que usamos três procedimentos básicos: sequência, seleção e iteração e que é possível gerar um executável rápido, estamos nos referindo às seguintes características na ordem:
Estruturada e Rapidez
Rapidez e Portabilidade
Complexidade e Estruturada
Portabilidade e Estruturada
Portabilidade e Modularidade
Explicação:
Estudamos várias vantagens da Linguagem C.
Portabilidade significa que, com pequenas modificações, migramos para outros SO.
Sabemos que ela tem um conjunto pequeno de palavras reservadas logo, não é complexa.
Por ter três procedimentos básicos, ela é estruturada.
Por fim, ela gera um executável rápido
7a Questão
Estudamos que a linguagem C apresenta várias características. Analise as afirmativas abaixo e assinale a opção correta.
I Com pequenas modificações, um código poderá ser compilado em várias plataformas.
II Não pode ser modularizada
III Possui um propósito específico
IV Considerada de nível intermediário
Todas estão corretas
I e IV estão corretas
II, III e IV
Todas estão erradas
I, III e IV estão corretas
Explicação:
I Com pequenas modificações, um código poderá ser compilado em várias plataformas VERDADE (Portabilidade)
II Não pode ser modularizada FALSO. Porque possibilita que o desenvolvedor defina funções (Modularizando).
III Possui um propósito específico FALSO. Não tem nenhum propósito específico.
IV Considerada de nível intermediário VERDADE. Porque o conceito de Ponteiro possibilita um acesso direto à MP.
Ref.: 201703837617
8a Questão
A Linguagem C tem algumas características importantes e uma delas é a Portabilidade, Isso significa dizer que:
Podemos dividir o programa em parte menores.
Por ser considerada uma linguagem de baixo nível é mais simples migrar para outra plataforma.
Com pequenas alterações, o programa poderá ser compilado em várias plataformas.
A linguagem possui um propósito específico.
Um programa executável gerado na plataforma Windows é executado na Plataforma Linux.
Explicação:
A Portabilidade é uma das grandes vantagens da linguagem C porque com poucas modificações( às vezes, nenhuma) podemos compilar em qualquer arquitetura.
1a Questão
Sabe-se que a linguagem C é uma das mais utilizadas no mundo. Desenvolvida em 1972 é uma linguagem voltada para programadores. Dentre as opções abaixo é incorreto afirmar:
Possibilita o desenvolvimento de funções próprias
Possui características de Linguagem de baixo nível.
Possui características de Linguagem de alto nível.
Permite a compilação de softwares para plataforma Windows, Linux e Unix.
Possui com conjunto muito grande palavras reservadas o que torna o aprendizado complexo
Explicação:
Estudamos várias vantagens da Linguagem C e uma delas, apesar da importância dela na história da programação inclusive manipulando a MP com o conceito de Ponteiro foi o número pequeno de palavras reservadas.
Por essa razão, a resposta incorreta é: Possui com conjunto muito grande palavras reservadas o que torna o aprendizado complexo
2a Questão
Uma das características mais marcantes da linguagem C é a sua portabilidade. Os códigos escrito em C são portáveis, o que significa que é possível executa-los nos mais diferentes tipos de arquiteturas. Tendo um programa C compilado para Windows, para executa-lo em Linux, identifique a opção CORRETA:
Ocorrerá erro, pois os programas C não rodam em Linux.
Basta apenas copiar o código executável para o Linux e executa-lo.
Só é possível copiar o código executável do Linux para o Windows e executa-lo.
Precisamos recompilar o código fonte para o Linux.
Ocorrerá erro, pois todas as instruções da linguagem C são incompatíveis com o Linux.
Explicação:
A Portabilidade é uma das grandes vantagens da linguagem C, mas isso Não diz respeito ao executável porque, ao mudarmos de SO, se faz necessário gerar compilar e linkeditar para gerar o Executável que esteja de acordo com o SO em questão.3a Questão
No ambiente Dev-cpp, temos algumas facilidades. Uma delas é quando desejarmos compilar e executar logo em seguida com um único clique ou um pressionamento de uma tecla.
Analise as afirmativas abaixo e escolha a opção correta
I Pressionar F9(pode ser F11 em versões mais novas)
II Clicar no ícone Compilar
III Clicar no ícone Executar
IV Clicar no ícone Compilar e Executar
Só a III possibilita isso
Só a I possibilita isso
Tanto a I quanto a IV possibilitam isso
Só a IV possibilita isso
Só a II possibilita isso
Explicação:
Podemos clicar em compilar e depois clicar em executar ou então fazer isso de uma só vez: pressionando a tecla F9(ou F11) ou clicando no ícone Compilar/Executar (quatro quadrados coloridos juntos)
Repostas corretas I e IV.
4a Questão
Em relação à variável global, podemos afirmar:
I Somente a função principal pode alterar o valor armazenado
II Todas as funções podem alterar o valor armazenado
III É declarada dentro da função principal
IV É declarada fora de todas as funções
V Pode ser declarada em qualquer posição
II e III
II, IV e V
I, III e V
I e III
II e IV
5a Questão
Sabemos que a linguagem C apresenta várias vantagens. Quando dizemos que usamos três procedimentos básicos: sequência, seleção e iteração e que é possível gerar um executável rápido, estamos nos referindo às seguintes características na ordem:
Complexidade e Estruturada
Rapidez e Portabilidade
Portabilidade e Estruturada
Portabilidade e Modularidade
Estruturada e Rapidez
Explicação:
Estudamos várias vantagens da Linguagem C.
Portabilidade significa que, com pequenas modificações, migramos para outros SO.
Sabemos que ela tem um conjunto pequeno de palavras reservadas logo, não é complexa.
Por ter três procedimentos básicos, ela é estruturada.
Por fim, ela gera um executável rápido
6a Questão
Na história da linguagem C, alguns momentos foram marcantes devido a acréscimos e/ou modificações significativas embora nem todos os compiladores tenham aderido. Abaixo estão relacionadas alguns deles:
- Surge o tipo long long para inteiros;
- As funções matemáticas passam a aceitar todos os tipos numéricos;
- O caracter // para comentário de uma linha, pode ser usado também;
Assinale a opção que contem o nome do documento onde apareceram, pela primeira vez, as modificações acima.
Padrão C89
Padrão C99
ISO/IEC 9899:1990
C tradicional
Padrão C95
Explicação:
Em 1999, alguns ajustes forma feitos e surgiu o padrão C99 que incluiu os itens abaixo.
7a Questão
É um nome de variável válido:
meu 2Cel
1X
media_nota2
maça
número
Explicação:
As regras para se nomear uma variável na linguagem C são:
Somente letras sem acentuação e nem cedilha, maiúsculas e minúsculas.
Algarismos
O caractere underline ( _ )
Não pode começar com algarismo
A única que atende às exigências é: media_nota2
8a Questão
Qual seria o menor programa compilável da Linguagem C?
main()[]
main{}
main(){}
main{}()
main[]{}
Explicação:
O menor programa compilável é o main(){}, pois a única obrigação é o main() que é a função principal e o {} (abre e fecha chaves) que é do início e fim da função.
1a Questão
Um Engenheiro Mecânico tinha um arquivo onde ele gostaria que os nomes dos materiais fossem todos convertidos para letras minúsculas.
Observe as linhas abaixo e assinale a opção que contem a função que realiza essa conversão e a biblioteca a qual pertence.
atof() e stdlib.h
toupper() e stdlib.h
tolower() e ctype.h
isalpha() e stdlib.h
atoi() e math.h
Ref.: 201703837944
2a Questão
Um Engenheiro estava construindo um trecho de programa onde pedia que o usuário respondesse com uma letra ou um algarismo.
Se o usuário não tivesse respondido, ele enviaria uma mensagem de erro.
Ele sabia que precisava aprender mais alguma estrutura, mas, no momento, pensou em experimentar uma função que pudesse lhe dar um retorno.
Pesquisou nas bibliotecas estudadas na aula 2 e achou.
Qual o nome dessa função?
isspace()
isalnum()
isalpha()
isnotalphadigit()
isdigit()
Ref.: 201703795320
3a Questão
As bibliotecas da linguagem C guardam funções predefinidas da linguagem. Veja o código a seguir e marque a alternativa que contém as bibliotecas necessárias para que este código funcione.
#include________
#include________
int main()
{
int a=2, b=2, c=8, delt;
delt=(pow(b, 2)-(4*a*c));
system("pause");
return (0);
}
Não leve em consideração os sinais de maior e menor que envolvem o nome das bibliotecas.
stdio.h - ctype.h
math.h - stdlib.h
stdio.h - stdlib.h
cmat.h - ctype.h
stdlib.h - ctype.h
Explicação:
Como não faz uso de nenhuma função de entrada e saída, a biblioteca stdio.h é dispensável;
Como a função pow() está presente, a biblioteca math.h precisa ser incluída.
Usar a função system() se faz necessário usar a biblioteca stdlib.h(algumas vezes, a IDE carrega sem a biblioteca).
Ref.: 201703837766
4a Questão
Observe o programa abaixo e selecione a resposta que mostra e/ou explica o que será exibido no display.
#include
int main()
{
printf ("%s%d%%","Juros de ",10);
}
% Juros de 10
%s%d%% Juros de 10
10 Juros de
Nada porque tem muitos %
Juros de 10%
Ref.: 201703837628
5a Questão
Você estava trabalhando na plataforma Windows e foi definindo várias funções específicas para sua área de atuação.
Um dia, resolveu criar uma biblioteca e nomeou de minhasFuncoes.h, salvando em uma pasta de nome funcoes na raiz do drive C.
Quando foi incluir, usou:
#include "c:\ minhasFuncoes.h\funcoes"
#include minhasFuncoes.h
#include "c:\funcoes\ minhasFuncoes.h"
#include
#include "minhasFuncoes.h"
Ref.: 201703837666
6a Questão
Assinale a função que não é disponível na plataforma Linux.
return
system()
main()
printf()
scanf()
Ref.: 201703837637
7a Questão
Em um programa, precisávamos usar as bibliotecas: math.h, stdio.h e stdlib.h.
Assinale o trecho correto que possibilita incluí-las.
#include stdio.h
#include stdlib.h
#include math.h
#include
#include
#include
#include
#define
#define
#define
#include
Ref.: 201703356490
8a Questão
Um programador durante a construção de um código precisava converter o texto correspondente a um ano em um número inteiro, para poder executar alguns cálculos a partir deste ano.
Das opções apresentadas, qual função apresenta a solução para o programador?
strlen( ).
atoi( ).
strcont( ).
strcat( ).
strlength( ).
Explicação:
A opção correta é atoi() que é uma função da biblioteca stdlib.h que converte uma stringem número inteiro ou 0 caso não contenha algarismos.
strlength( ) e strcont() Não são definidas na linguagem C.
strlen é uma função que retorna o comprimento da string entre parênteses, isto é, o número de caracteres sem contar com o caractere delimitador \0( caractere Nulo).
A função strcat () na linguagem C concatena duas strings dadas. Ele concatena a string de origem no final da string de destino.
1a Questão
São todos operadores aritméticos da Linguagem C:
%, ||, &&, ==
+, -, *, /
>, >=, <, <=, ==
MOD, DIV, %, &&
&&, ||, !
Explicação: Os operadores aritméticos são: + (soma), - (subtração), * (multiplicação) e / (divisão).
Ref.: 201703841281
2a Questão
Na linguagem de programação C, como em outras, na criação de programas, devemos definir os tipos de dados para nossas variáveis de acordo com o problema em questão.
Das opções apresentadas qual possui apenas tipos da linguagem C, conforme o material apresentado nas aulas.
char, int, float, double, boolean
char, integer, float, real, boolean
char, int, real, double, boolean
char, int, real, double, void
char, int, float, double, void
Ref.: 201703958685
3a Questão
Observe o trecho de código em Linguagem C #include main () { char Ch; scanf("%c", Ch); printf ("Você pressionou a tecla %c",Ch); } Na execução do código acima, ao pressionar qualquer tecla, o resultado sera
Ocorre um erro na alocação do valor digitado para variável na memória.
Não retorna nenhum valor.
O programa não é executado.
Imprime a tecla pressionada.
Imprime o texto Você pressionou a tecla Ch.
Ref.: 201703841334
4a Questão
Na linguagem de programação C, como em outras, na criação de programas, precisamos fazer a entrada e saída de dados no sistema e para tal temos algumas opções.
Das opções apresentadas, qual não é parte linguagem C, conforme o material apresentado nas aulas.
scanf ( )
getchar ( )
cin ( )
printf ( )
fgetc(stdin)
Ref.: 201703837742
5a Questão
Escolha a opção que inclui somente nomes válidos para variáveis na linguagem C.
i, j, int, obs
2_ou_1, fim, *h, j
nota-2 , a36, x_y
2nota, a36, x#y, --j
If, nota_do_aluno_2, HOJE, _yes
Ref.: 201703815920
6a Questão
Considerar o trecho do programa abaixo:
int x, y, z;
x =10;
z = 3;
z = (++x) * (y--);
printf("x = %d\t y=%d\t z=%d",x,y,z);
O que irá aparecer na tela?
x = 11 y = 2 z = 33
x = 11 y = 2 z = 22
x = 10 y = 2 z = 20
x = 10 y = 3 z = 30
x = 11 y = 3 z = 33
Explicação:
A linha z = 3; está errada porque deveria ser y=3;
Ref.: 201706041678
7a Questão
A declaração de uma variável na linguagem C é realizada com a informação do tipo de dado que a variável irá armazenar em seguida o nome da variável.
Que tipo de informação é passada para o sistema operacional quando na declaração de uma variável informamos o tipo de dado que esta irá armazenar.
endereço de memória alocada
quantidade de memória alocada
tipo de memória alocada
nenhuma informação pra o sistema operacional
qualidade da memória alocada
Explicação:
Na declaração de uma variável, o tipo de dado que a variável irá armazenar serve para que o sistema operacional saiba a quantidade de memória necessaria para armazenamento do dado, enquanto que o nome da variável é associado pelo sistema operacional ao endereço da memória onde a variável é alocada.
Ref.: 201703314709
8a Questão
Dado o trecho de lógica utilizando o conceito da linguagem de programação C. Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações:
int x,y,z;
x=y=10;
z=++x;
x=-x;
y++;
x=x+y-(z--);
x = -11
y = 11
z = 10
x = -13
y = 11
z = 13
x = -20
y = 20
z = 10
x = 11
y = 11
z = 15
x = -01
y = 01
z = 10
Explicação:
int x,y,z;
x=y=10;
z=++x;
x=-x;
y++;
x=x+y-(z--);
Nesta questão são declaradas 3 variáveis do tipo inteiro (x,y e z).
Atribui-se o valor 10 para as variáveis x e y.
Em seguida incrementa-se o valor de x, passando este a valer 11 e atribui-se este valor a variável z.
O comando seguinte é x=-x, atribui-se a variável x o seu valor negativo, isto é -11.
Em seguida incrementa-se o valor em y que passa a valer 11.
Então é realizada a expressão : x=x+y-(z--), Assim x= -11+11-11, ou seja x recebe -11.
E por fim decrementa-se o valor de z, que passa valer 10.
Pois embora a variável esteja entre parênteses usa-se o valor dela e só depois o decremento é realizado, pois o operador de decremento está pós-fixado.
Logo os valores finais das variáveis são:
x=-11, y=11 e z=10
1a Questão
Observe o trecho do programa abaixo:
float a, b, c;
printf("\n Digite o primeiro numero: "); scanf ("%f",&a);
printf("\n Digite o segundo numero: "); scanf ("%f",&b);
if (a >= b) { printf("Valor de c: %f" , c = a + b); } else { printf("Valor de c: %f" , c = a - b); }
Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas.
10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32.
15 ; 16 ; -6 ; 40 ; -26
15 ; 16 ; 6 ; 40 ; -26
15 ; 0 ; -6 ; 35 ; 26
16 ; 0 ; -6 ; 40 ; 26
16 ; - 16 ; -6 ; 40 ; -26
Ref.: 201704083116
2a Questão
Qual a saída esperado no trecho de código abaixo:
int x = 4;
int y = 8;
if (x < 2){
printf("%d", x);
} else{
printf("%d", y);
}
4
8
12
\n8
9
3a Questão
Seja o código a seguir, caso o usuário insira o valor 3 na variável num, qual a mensagem aparecerá na tela?
#include
#include
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if(num = 2)
printf("O numero eh 2");
else printf("O numero eh diferente de 2");
return(0);
}
O numero eh 2
Nenhuma mensagem é exibida, pois há um erro no código.
O numero eh diferente de 3
O numero eh diferente de 2
O numero eh 3
Explicação:
Há um erro lógico neste código, pois a condição avaliada deveria ser num == 2, entretanto quando escrevemos num =2, é realizada uma atribuição do valor 2 na variável num, assim quando esta é avaliada como condição, será considerada sempre verdadeira, portanto para qualquer que seja o número digitado este código sempre executrá a linha de comando printf("O numero eh 2");
4a Questão
Existe sempre uma dúvida por parte do desenvolvedor se escolhe switch() ou if quando está usando a Linguagem C.
Sabemos que existem algumas exigências para se usar o switch().
Analise as opções abaixo e assinale a opção correta.
I Qualquer tipo pode ser usado.
II Somente o tipo vetor de char que Não pode ser usado.
III Não pode ser usado intervalo tipo: 1..3 em um case.
IV Sempre será obrigatório usar o comando break; ao final de um case.
V Quando o valor digitado não estiver presente em nenhum dos cases, irá para a opção default, caso exista.
III e V são verdadeiras
I, III e IV são verdadeiras
I, III, IV e V são verdadeiras
II, IV e V são verdadeiras
II, IIIe IV são verdadeiras
5a Questão
Marque abaixo a instrução que permite parar uma execução dentro de um switch.
case
stop
open
close
break
6a Questão
O desenvolvimento de um programa precisa atender as necessidades do usuário final, para isto o desenvolvedor conta com algumas estruturas que facilitam a construção de seu código fonte. Uma delas é a estrutura condicional if.
Das opções apresentadas marque a qual melhor define esta estrutura.
Testa uma condição e dependendo do resultado permite que o programa siga por caminhos diferentes repetidamente.
Testa uma expressão e dependendo do resultado permite que o programa siga por caminhos diferentes.
Compara os valores de algumas variáveis dependendo do resultado permite que o programa possa fazer um caminho diferente repetidamente.
Compara os valores possíveis para uma variável e dependendo do resultado permite que o programa siga por caminhos diferentes.
Compara os valores de algumas variáveis e dependendo do resultado permite que o programa siga por caminhos diferentes.
7a Questão
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Marque a alternativa que contém o operador lógico que deve ser utilizado quando as duas proposições lógicas necessitam ser verdadeiras para que o resultado da combinação seja verdadeiro.
((pontos>=10) || (pontos <=20))
((pontos>=10) # (pontos <=20))
((pontos>=10) && (pontos <=20))
((pontos>=10) ! (pontos <=20))
((pontos>=10) % (pontos <=20))
Explicação:
((pontos>=10) ! (pontos <=20)) Errada, pois ! é um operador Unário logo, não une expressões relacionais.
((pontos>=10) && (pontos <=20)) CERTA, pois está definindo um intervalo fechado: números maiores ou iguais a 10 e menores ou iguais a 20.
((pontos>=10) || (pontos <=20)) Errada, pois pontos>=10 abrange Todos os pontos maiores ou iguais a 10 e pontos <=20 abrange todos os pontos menores ou iguais a 20. Conclusão, qualquer número
((pontos>=10) # (pontos <=20)) Errada, pois # Não é operador lógico.
((pontos>=10) % (pontos <=20)) Errada, pois % Não é operador lógico.
8a Questão
Um desenvolvedor estava construindo um código que tinha quatro possibilidades de resposta válidas além de uma mensagem de erro.
O dado testado era do tipo inteiro.
Assinale a opção que ele escolheu.
quatro ifs simples
quatro ifs simples e um composto
switch() com cinco cases
três ifs simples e um composto
switch() com quatro cases e um default
1a Questão
Observe o trecho do programa abaixo:
float a, b, c;
printf("\n Digite o primeiro numero: "); scanf ("%f",&a);
printf("\n Digite o segundo numero: "); scanf ("%f",&b);
if (a >= b) { printf("Valor de c: %f" , c = a + b); } else { printf("Valor de c: %f" , c = a - b); }
Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas.
10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32.
15 ; 16 ; -6 ; 40 ; -26
15 ; 16 ; 6 ; 40 ; -26
15 ; 0 ; -6 ; 35 ; 26
16 ; 0 ; -6 ; 40 ; 26
16 ; - 16 ; -6 ; 40 ; -26
2a Questão
Qual a saída esperado no trecho de código abaixo:
int x = 4;
int y = 8;
if (x < 2){
printf("%d", x);
} else{
printf("%d", y);
}
4
8
12
\n8
9
Ref.: 201706041686
3a Questão
Seja o código a seguir, caso o usuário insira o valor 3 na variável num, qual a mensagem aparecerá na tela?
#include
#include
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if(num = 2)
printf("O numero eh 2");
else printf("O numero eh diferente de 2");
return(0);
}
O numero eh 2
Nenhuma mensagem é exibida, pois há um erro no código.
O numero eh diferente de 3
O numero eh diferente de 2
O numero eh 3
Explicação:
Há um erro lógico neste código, pois a condição avaliada deveria ser num == 2, entretanto quando escrevemos num =2, é realizada uma atribuição do valor 2 na variável num, assim quando esta é avaliada como condição, será considerada sempre verdadeira, portanto para qualquer que seja o número digitado este código sempre executrá a linha de comando printf("O numero eh 2");
Ref.: 201703838372
4a Questão
Existe sempre uma dúvida por parte do desenvolvedor se escolhe switch() ou if quando está usando a Linguagem C.
Sabemos que existem algumas exigências para se usar o switch().
Analise as opções abaixo e assinale a opção correta.
I Qualquer tipo pode ser usado.
II Somente o tipo vetor de char que Não pode ser usado.
III Não pode ser usado intervalo tipo: 1..3 em um case.
IV Sempre será obrigatório usar o comando break; ao final de um case.
V Quando o valor digitado não estiver presente em nenhum dos cases, irá para a opção default, caso exista.
III e V são verdadeiras
I, III e IV são verdadeiras
I, III, IV e V são verdadeiras
II, IV e V são verdadeiras
II, III e IV são verdadeiras
Ref.: 201703885036
5a Questão
Marque abaixo a instrução que permite parar uma execução dentro de um switch.
case
stop
open
close
break
Ref.: 201703454705
6a Questão
O desenvolvimento de um programa precisa atender as necessidades do usuário final, para isto o desenvolvedor conta com algumas estruturas que facilitam a construção de seu código fonte. Uma delas é a estrutura condicional if.
Das opções apresentadas marque a qual melhor define esta estrutura.
Testa uma condição e dependendo do resultado permite que o programa siga por caminhos diferentes repetidamente.
Testa uma expressão e dependendo do resultado permite que o programa siga por caminhos diferentes.
Compara os valores de algumas variáveis dependendo do resultado permite que o programa possa fazer um caminho diferente repetidamente.
Compara os valores possíveis para uma variável e dependendo do resultado permite que o programa siga por caminhos diferentes.
Compara os valores de algumas variáveis e dependendo do resultado permite que o programa siga por caminhos diferentes.
Ref.: 201703398413
7a Questão
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Marque a alternativa que contém o operador lógico que deve ser utilizado quando as duas proposições lógicas necessitam ser verdadeiras para que o resultado da combinação seja verdadeiro.
((pontos>=10) || (pontos <=20))
((pontos>=10) # (pontos <=20))
((pontos>=10) && (pontos <=20))
((pontos>=10) ! (pontos <=20))
((pontos>=10) % (pontos <=20))
Explicação:
((pontos>=10) ! (pontos <=20)) Errada, pois ! é um operador Unário logo, não une expressões relacionais.
((pontos>=10) && (pontos <=20)) CERTA, pois está definindo um intervalo fechado: números maiores ou iguais a 10 e menores ou iguais a 20.
((pontos>=10) || (pontos <=20)) Errada, pois pontos>=10 abrange Todos os pontos maiores ou iguais a 10 e pontos <=20 abrange todos os pontos menores ou iguais a 20. Conclusão, qualquer número
((pontos>=10) # (pontos<=20)) Errada, pois # Não é operador lógico.
((pontos>=10) % (pontos <=20)) Errada, pois % Não é operador lógico.
8a Questão
Um desenvolvedor estava construindo um código que tinha quatro possibilidades de resposta válidas além de uma mensagem de erro.
O dado testado era do tipo inteiro.
Assinale a opção que ele escolheu.
quatro ifs simples
quatro ifs simples e um composto
switch() com cinco cases
três ifs simples e um composto
switch() com quatro cases e um default
1a Questão
O que será impresso pelo trecho de código abaixo?
int vet[5];
int x, s = 0;
for (x = 0; x < 5; x++) {
vet[x] = x * 2;
}
s = vet[2] + vet[4];
printf("%d", s);
4
12
10
20
8
Ref.: 201703452115
2a Questão
Um lojista gostaria de desenvolver um programa que pudesse armazenar os códigos(valores inteiros), os valores de compra(valores reais), os valores de vendas(valores reais) e a quantidade(valores inteiros) de todos os mil produtos.
Pensou em declarar algumas matrizes unidimensionais para tornar isso possível.
Qual das opções abaixo declara as matrizes necessárias para que o programa possa ser desenvolvido a partir delas e seguindo, rigorosamente, as sugestões do texto acima?
double codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[1000], qtdade[1000], valorC[1000], valorV[1000];
int codigos[999], qtdade[999]; float valorC[999], valorV[999];
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[999], qtdade[999], valorC[999], valorV[999];
Explicação:
Quando declaramos uma Matriz, o que fica entre colchetes é o número total de elementos.
Como o enunciado deixa claro que códigos e a quantidades são valores inteiros e os valores de compra e venda sõa reais, a resposta correta é:
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
Obse: Não confunda com os números que ficarão entre [ ] s ( 0 até 999)
Ref.: 201703848976
3a Questão
A linguagem C permite a inicialização de vetores junto com sua declaração.
Dada as alternativas abaixo, selecione a que está incorreta:
int valores[5] = {10, 15, 20, 25, 30};
char valores[] = {'A', 'B', 'C', 'D'};
char valores[5] = {'A', 'B', 'C', 'D'};
char valores = "ABCD";
int valores[] = {10, 15, 20, 25, 30};
Ref.: 201704003003
4a Questão
Observe o trecho abaixo e marque o valor que será mostrado pela variável c após a execução do programa.
22
8
14
20
10
Ref.: 201703885054
5a Questão
Qual das alternativas abaixo possui o comando que devolve o numero de caracteres em um uma string?
strcap
strcamp
strcout
strcat
strlen
Ref.: 201703873462
6a Questão
Em um programa o programador inseriu a seguinte linha de código: float notas [10]. Esta linha quer dizer:
notas é um vetor com 10 números reais.
notas é uma função para somar 10 números.
notas é uma variável de potência 10.
notas é uma string com 10 caracteres.
notas é uma constante de valor 10.
Ref.: 201703885042
7a Questão
Qual das instruções abaixo compara duas strings?
strcompa
strcpy
strcmp
strcamp
strcat
Ref.: 201703483416
8a Questão
Analise as sentenças abaixo sobre a declaração de vetores e, em seguida, assinale a alternativa correta:
I. Na linguagem C++, uma string é um vetor de caracteres terminado com um caracter nulo cujo valor inteiro é igual a zero (código ASCII igual a 0).
II. O terminador nulo também pode ser escrito usando a convenção de barra invertida do C++ como sendo '\0'.
III. Como precisamos reservar duas posições para o terminador (a barra e o zero), sempre iremos declarar o tamanho necessário menos um.
Somente as sentenças I e III estão corretas
Somente a sentença II está correta
Todas as sentenças estão corretas
Somente as sentenças II e III estão corretas
Somente as sentenças I e II estão corretas
1a Questão
O que será impresso pelo trecho de código abaixo?
int vet[5];
int x, s = 0;
for (x = 0; x < 5; x++) {
vet[x] = x * 2;
}
s = vet[2] + vet[4];
printf("%d", s);
4
12
10
20
8
Ref.: 201703452115
2a Questão
Um lojista gostaria de desenvolver um programa que pudesse armazenar os códigos(valores inteiros), os valores de compra(valores reais), os valores de vendas(valores reais) e a quantidade(valores inteiros) de todos os mil produtos.
Pensou em declarar algumas matrizes unidimensionais para tornar isso possível.
Qual das opções abaixo declara as matrizes necessárias para que o programa possa ser desenvolvido a partir delas e seguindo, rigorosamente, as sugestões do texto acima?
double codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[1000], qtdade[1000], valorC[1000], valorV[1000];
int codigos[999], qtdade[999]; float valorC[999], valorV[999];
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[999], qtdade[999], valorC[999], valorV[999];
Explicação:
Quando declaramos uma Matriz, o que fica entre colchetes é o número total de elementos.
Como o enunciado deixa claro que códigos e a quantidades são valores inteiros e os valores de compra e venda sõa reais, a resposta correta é:
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
Obse: Não confunda com os números que ficarão entre [ ] s ( 0 até 999)
Ref.: 201703848976
3a Questão
A linguagem C permite a inicialização de vetores junto com sua declaração.
Dada as alternativas abaixo, selecione a que está incorreta:
int valores[5] = {10, 15, 20, 25, 30};
char valores[] = {'A', 'B', 'C', 'D'};
char valores[5] = {'A', 'B', 'C', 'D'};
char valores = "ABCD";
int valores[] = {10, 15, 20, 25, 30};
Ref.: 201704003003
4a Questão
Observe o trecho abaixo e marque o valor que será mostrado pela variável c após a execução do programa.
22
8
14
20
10
5a Questão
Qual das alternativas abaixo possui o comando que devolve o numero de caracteres em um uma string?
strcap
strcamp
strcout
strcat
strlen
6a Questão
Em um programa o programador inseriu a seguinte linha de código: float notas [10]. Esta linha quer dizer:
notas é um vetor com 10 números reais.
notas é uma função para somar 10 números.
notas é uma variável de potência 10.
notas é uma string com 10 caracteres.
notas é uma constante de valor 10.
7a Questão
Qual das instruções abaixo compara duas strings?
strcompa
strcpy
strcmp
strcamp
strcat
8a QuestãoAnalise as sentenças abaixo sobre a declaração de vetores e, em seguida, assinale a alternativa correta:
I. Na linguagem C++, uma string é um vetor de caracteres terminado com um caracter nulo cujo valor inteiro é igual a zero (código ASCII igual a 0).
II. O terminador nulo também pode ser escrito usando a convenção de barra invertida do C++ como sendo '\0'.
III. Como precisamos reservar duas posições para o terminador (a barra e o zero), sempre iremos declarar o tamanho necessário menos um.
Somente as sentenças I e III estão corretas
Somente a sentença II está correta
Todas as sentenças estão corretas
Somente as sentenças II e III estão corretas
Somente as sentenças I e II estão corretas
1a Questão
O que será impresso pelo trecho de código abaixo?
int vet[5];
int x, s = 0;
for (x = 0; x < 5; x++) {
vet[x] = x * 2;
}
s = vet[2] + vet[4];
printf("%d", s);
4
12
10
20
8
Ref.: 201703452115
2a Questão
Um lojista gostaria de desenvolver um programa que pudesse armazenar os códigos(valores inteiros), os valores de compra(valores reais), os valores de vendas(valores reais) e a quantidade(valores inteiros) de todos os mil produtos.
Pensou em declarar algumas matrizes unidimensionais para tornar isso possível.
Qual das opções abaixo declara as matrizes necessárias para que o programa possa ser desenvolvido a partir delas e seguindo, rigorosamente, as sugestões do texto acima?
double codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[1000], qtdade[1000], valorC[1000], valorV[1000];
int codigos[999], qtdade[999]; float valorC[999], valorV[999];
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
double codigos[999], qtdade[999], valorC[999], valorV[999];
Explicação:
Quando declaramos uma Matriz, o que fica entre colchetes é o número total de elementos.
Como o enunciado deixa claro que códigos e a quantidades são valores inteiros e os valores de compra e venda sõa reais, a resposta correta é:
int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000];
Obse: Não confunda com os números que ficarão entre [ ] s ( 0 até 999)
Ref.: 201703848976
3a Questão
A linguagem C permite a inicialização de vetores junto com sua declaração.
Dada as alternativas abaixo, selecione a que está incorreta:
int valores[5] = {10, 15, 20, 25, 30};
char valores[] = {'A', 'B', 'C', 'D'};
char valores[5] = {'A', 'B', 'C', 'D'};
char valores = "ABCD";
int valores[] = {10, 15, 20, 25, 30};
Ref.: 201704003003
4a Questão
Observe o trecho abaixo e marque o valor que será mostrado pela variável c após a execução do programa.
22
8
14
20
10
Ref.: 201703885054
5a Questão
Qual das alternativas abaixo possui o comando que devolve o numero de caracteres em um uma string?
strcap
strcamp
strcout
strcat
strlen
Ref.: 201703873462
6a Questão
Em um programa o programador inseriu a seguinte linha de código: float notas [10]. Esta linha quer dizer:
notas é um vetor com 10 números reais.
notas é uma função para somar 10 números.
notas é uma variável de potência 10.
notas é uma string com 10 caracteres.
notas é uma constante de valor 10.
Ref.: 201703885042
7a Questão
Qual das instruções abaixo compara duas strings?
strcompa
strcpy
strcmp
strcamp
strcat
Ref.: 201703483416
8a Questão
Analise as sentenças abaixo sobre a declaração de vetores e, em seguida, assinale a alternativa correta:
I. Na linguagem C++, uma string é um vetor de caracteres terminado com um caracter nulo cujo valor inteiro é igual a zero (código ASCII igual a 0).
II. O terminador nulo também pode ser escrito usando a convenção de barra invertida do C++ como sendo '\0'.
III. Como precisamos reservar duas posições para o terminador (a barra e o zero), sempre iremos declarar o tamanho necessário menos um.
Somente as sentenças I e III estão corretas
Somente a sentença II está correta
Todas as sentenças estão corretas
Somente as sentenças II e III estão corretas
Somente as sentenças I e II estão corretas
1a Questão
A função fgets():
imprime um caracter de cada vez.
lê um arquivo inteiro de uma vez.
lê um caracter de cada vez.
imprime uma linha inteira de uma vez.
lê uma linha inteira de uma vez.
Ref.: 201703356479
2a Questão
Na definição de estruturas, funções, variáveis, etc. devemos seguir suas respectivas Sintaxes.
Das opções apresentas, qual é SINTAXE correta da definição de um vetor bidimensional.
nome_matriz[numero_linhas][numero_colunas];
tipo nome_matriz[][];
tipo nome_vetor[numero_colunas][numero_linhas];
tipo nome_matriz[numero_linhas][numero_colunas];
tipo nome_matriz[numero_colunas][numero_linhas];
Ref.: 201703795626
3a Questão
Considere que as bibliotecas necessárias foram devidamente declaradas.
int main() {
FILE *arq ;
int i;
_____ c ;
arq = _____ ( " jornal.txt " , " r " ) ;
if ( arq == NULL ){
printf ( " Erro na abertura do arquivo " ) ;
system ( " pause " ) ;
exit ( 1 ) ;
} else
for ( i = 0; i<5; i++){
c = fgetc ( arq ) ;
printf( "%c", c ) ;
}
_____( arq ) ;
system ( " pause " ) ;
return 0;
}
Complete as lacunas do código para que o programa funcione corretamente.
A ordem em que as palavras são dispostas na resposta, devem preencher respectivamente as lacunas.
float - fopen - fclose
char - fopen - fechar
int - open - close
int - abrir - fopen
char - fopen - fclose
Ref.: 201703841577
4a Questão
Na manipulação de arquivos na linguagem C, podemos utilizar várias funções da linguagem. Cada uma delas tem um propósito específico.
Das afirmativas apresentadas qual define corretamente qual a finalidade da função fputc() .
Funções para gravar uma linha.
Função que fecha um arquivo.
Função que detecta o fim do arquivo.
Função para gravar um caractere.
Funções para gravação formatadas.
Ref.: 201704099911
5a Questão
Qual o objetivo do programa abaixo?
Gravar no arquivo de texto todos os dados do Vetor x.
Ler do arquivo texto o valor de X e exibir na tela.
Gravar no arquivo de texto apenas os valores impares do Vetor x.
Ler do arquivo texto o valor de X, exibir na tela e fechar o arquivo de texto.
Ler o valor de X via teclado, gravar no arquivo de texto o valor de X digitado pelo usuário e fechar o arquivo.
Ref.: 201703841552
6a Questão
Na manipulação de arquivos na linguagem C, no processo de abertura do mesmo, podemos ter erros: devido a não existência do arquivo; ao arquivo estar corrompido; etc, não sendo possível abrir o mesmo.
Das afirmativas apresentadas qual define corretamente o que pode ser feito em relação ao erro na abertura, segundo o quefoi apresentado nas aulas.
O tratamento é feito com um if, e tendo havido problemas no arquivo de texto, o mesmo é eliminado e retornado uma mensagem padrão para o usuário.
Não é possível tratar este tipo de erro, pois precisamos da estrutura Try ... Catch que consegue prevenir e evitar o fechamento do programa.
A função fopen, retorna NULL quando não consegue abrir o arquivo e o usuário pode tratar o conteúdo da variável associada ao arquivo, comparando com o valor NULL.
Não é necessário tratar, pois não existindo o arquivo ele simplesmente cria um novo e nunca terá problema.
A palavra chave FILE, que permite fazer a associação do arquivo, mantem o valor NULL caso não seja possível abrir o arquivo, desta forma, utilizando o if, o usuário pode mandar uma mensagem adequada para o usuário.
Ref.: 201703841531
7a Questão
Para a manipulação de arquivos na linguagem C, primeiro precisamos abrir o mesmo. Sabendo-se que o arquivo tem o nome de texto.txt, que foi associado com a variável de nome: arq, e que é do tipo texto, avalie cada uma das afirmativas e marque a que faz a abertura para ler e/ou gravar dados no fim do arquivo corretamente seguindo as regras da linguagem.
arquivo = fopen("material.dat", "a+");
arq = fopen("texto.txt", "a+");
arquivo = fopen("material.dat", "w+");
arq = fopen("texto.txt", "w");
arquivo = fopen("material.dat", "r+");
Ref.: 201703841560
8a Questão
Na manipulação de arquivos na linguagem C, podemos utilizar várias funções da linguagem. Cada uma delas tem um propósito específico.
Das afirmativas apresentadas qual define corretamente qual a finalidade da função feof() .
Funções para gravar uma linha.
Função que fecha um arquivo.
Função que detecta o fim do arquivo.
Funções para leitura formatada.
Funções para ler um caractere.
1a Questão
Suponha que o arquivo dados.txt contém a cadeia de caracteres "ABCYDEF" e nada mais. O que o seguinte programa imprime?
int main( void) {
FILE *entrada;
int c;
entrada = fopen( "dados.txt", "r");
while ((c = getc( entrada)) != EOF)
printf( "%c ", c);
fclose( entrada);
return EXIT_SUCCESS;
}
ABCDEF
ABCYDEF
ABC
ABCDEFY
DEF
Ref.: 201703841736
2a Questão
Uma das ultimas funções estudadas foi a rename(). Suponha que o nome do arquivo é inicial é ARQ e o novo deve ser ARQ2, e é constante.
Assinale a alternativa que apresenta a sintaxe correta para a função.
rename("ARQ2", "ARQ");
rename("ARQ", ARQ2);
rename("ARQ", "ARQ2");
rename(ARQ2, ARQ);
rename("ARQ, ARQ2");
Ref.: 201703854708
3a Questão
A função _________ funciona como a função scanf(), porém, ao invés de ler os dados de teclado, estes dados são lidos de um arquivo.
fprint()
fgets()
sscanf()
fscanf()
fgetc()
Ref.: 201703854742
4a Questão
A função rewind() de protótipo
void rewind (FILE *fp);
tem como comportamento:
Retornar a posição corrente do arquivo para o início.
Adiantar a posição corrente do arquivo para o fim.
Retornar a posição corrente do arquivo para o fim.
Adiantar a posição corrente do arquivo para o início.
Adiantar para a próxima posição corrente do arquivo.
Ref.: 201703841619
5a Questão
Nas aulas aprendemos sobre as funções de leitura e gravação.
A respeito da função fwrite assinale a alternativa correta.
fwrite( tamanho, endreçoElemento, ptrArq);
fwrite(endreçoElemento, tamanho, quantidade);
fwrite(endreçoElemento, ptrArq, quantidade);
fwrite(quantidade, ptrArq, endreçoElemento,tamanho);
fwrite(endreçoElemento, tamanho, quantidade, ptrArq);
Ref.: 201703356515
6a Questão
Na criação de uma rotina de manipulação de equipamentos para perfuração de poços, o programador precisava apenas pegar alguns dados existentes em um arquivo do equipamento para efeitos de cálculos e fechá-lo.
Das opções abaixo marque a que descreve a forma mais adequada, com a qual o programador deveria acessar o arquivo, segundo sua necessidade.
Para leitura e gravação
Somente para leitura
Somente para gravação
Não precisa abrir o arquivo
Para leitura e edição
Explicação:
No caso aqui descrito o arquivo deve ser aberto no modo somente leitura, pois a necessidade do programador é apenas de consulta.
Não sendo necessário abrir o arquivo no modo leitura e gravação, ou no modo somente gravação ou ainda no modo leitura e edição,
já que nenhuma alteração será realizada no arquivo em questão. A opção "Não precisa abrir o arquivo" também é incorreta, pois
mesmo para realizar apenas uma leitura em um arquivo é necessário abrir este.