Baixe o app para aproveitar ainda mais
Prévia do material em texto
SLIDE 1 CONHECENDO A LINGUAGEM QUE REVOLUCIONOU. SIMPLESMENTE, C 1- 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 C95 ISO/IEC 9899:1990 Certo Padrão C99 Padrão C89 C tradicional 2- 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. Certo Portabilidade Reuso Flexibilidade Polimorfismo Modularidade 3- A Linguagem C tem algumas características importantes e uma delas é a Portabilidade, Isso significa dizer que: Por ser considerada uma linguagem de baixo nível é mais simples migrar para outra plataforma. Podemos dividir o programa em parte menores. A linguagem possui um propósito específico. Um programa executável gerado na plataforma Windows é executado na Plataforma Linux. Certo Com pequenas alterações, o programa poderá ser compilado em várias plataformas. 4- 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. Ocorrerá erro, pois todas as instruções da linguagem C são incompatíveis com o Linux. Só é possível copiar o código executável do Linux para o Windows e executa-lo. Certo Precisamos recompilar o código fonte para o Linux. Basta apenas copiar o código executável para o Linux e executa-lo. 5- 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 II possibilita isso Só a IV possibilita isso Só a I possibilita isso Só a III possibilita isso Certo Tanto a I quanto a IV possibilitam isso 6- 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 I e III Certo II e IV II e III I, III e V Errado II, IV e V 7- Todo programa codificado na linguagem C pode incluir uma, ou várias bibliotecas, mas existe uma que tem que estar nessa lista, na maioria das vezes, devido a necessidade da interação com o usuário.. Assinale a alternativa que apresenta essa biblioteca. iostream.h iostream stdin.h Certo stdio.h Errado studio.h 8- 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: Certo Possui com conjunto muito grande palavras reservadas o que torna o aprendizado complexo Possibilita o desenvolvimento de funções próprias Possui características de Linguagem de alto nível. Permite a compilação de softwares para plataforma Windows, Linux e Unix. Errado Possui características de Linguagem de baixo níve SLIDE 2 EXIBINDO NO DISPLAY 1- Qual o nome da função matemática que calcula a potenciação de um número? elevado Certo pow pot double Errado sqrt 2- No ambiente Linux, não precisamos, obrigatoriamente, ter um único ambiente para editar, compilar e executar um programa codificado na linguagem C como temos no Windows. Sendo assim, qual seria a sequência para conseguirmos editar, compilar e executar um programa? Certo Usar um editor de texto para digitar o código e salvar com extensão c/ digitar uma linha de comando no terminal usando o compilador gcc para gerar o executável/ digitar o nome do executável, precedido por ./ no terminal para executá-lo. Usar um editor de texto para digitar o código/ salvar com extensão c/ digitar uma linha de comando no terminal, usando o compilador gcc que irá gerar o executável e executá-lo em seguida. Usar um editor de texto para digitar o código/ salvar sem se preocupar com extensão/ e digitar uma linha de comando, também no terminal, usando o compilador gcc. Errado Usar o terminal para digitar o código/ salvar sem se preocupar com extensão/ e digitar uma linha de comando, também no terminal, usando o compilador gcc. Usar um editor de texto para digitar o código e salvar com extensão c/ digitar uma linha de comando no terminal usando o compilador gcc para gerar o executável / digitar o nome do executável no terminal para executá-lo. 3- Assinale a função que não é disponível na plataforma Linux. Certo system() Errado return scanf() printf() main() 4- 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() isnotalphadigit() Errado isdigit() isalpha() Certo isalnum() 5- Em um programa, precisávamos usar as bibliotecas: math.h, stdio.h e stdlib.h. Assinale o trecho correto que possibilita incluí-las. #define #define #define #include #include #include #include #include Certo #include stdio.h #include stdlib.h #include math.h 6- 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. Certo tolower() e ctype.h toupper() e stdlib.h Errado isalpha() e stdlib.h atoi() e math.h atof() e stdlib.h 7- 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 Nada porque tem muitos % %s%d%% Juros de 10 Certo Juros de 10% 10 Juros de 8- 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: Certo #include "c:\funcoes\ minhasFuncoes.h" #include #include "minhasFuncoes.h" #include "c:\ minhasFuncoes.h\funcoes" Errado #include minhasFuncoes.h SLIDE 3 CONSTRUINDO OS PRIMEIROS PROGRAMAS QUE INTERAGEM COM O USUÁRIO 1- 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, integer, float, real, boolean Errado char, int, float, double, boolean char, int, real, double, void char, int, real, double, boolean Certo char, int, float, double, void 2- Um programa de cadastro deve solicitar cpf,nome e telefonede alunos até que o cpf seja igual a 0. Que estrutura em C melhor representa esta tarefa? Certo do{ // [bloco de comandos] } while (cfp !=0); while{ // [bloco de comandos] } do (cfp !=0); do while (cfp !=0) { // [bloco de comandos] } Errado if (cpf != 0) { // [bloco de comandos] } for (cpf=0; cpf !=0; cpf++) { // [bloco de comandos] } 3- Sabemos que para a utilização de funções da linguagem C precisamos declarar suas respectivas bibliotecas. De acordo com a Linguagem C marque a opção em que o descritivo da biblioteca está correto. Errado string.h - Funções para concatenação de strings com inteiros. time.h - Funções para manipulação de tempo, apenas horas, minutos e segundos. Certo math.h - Funções matemáticas stdlib.h - Funções de entrada e saida. stdio.h - Funções para gráficos. 4- 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. Certo math.h - stdlib.h stdio.h - ctype.h stdio.h - stdlib.h cmat.h - ctype.h stdlib.h - ctype.h 5- 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. Errado ((pontos>=10) # (pontos <=20)) ((pontos>=10) ! (pontos <=20)) ((pontos>=10) || (pontos <=20)) Certo ((pontos>=10) && (pontos <=20)) ((pontos>=10) % (pontos <=20)) 6- Observe abaixo várias funções que recebem dados via teclado. Qual delas permite uma leitura formatada? Errado fgets() gets() fgetc() Certo scanf() getchar() 7- Um engenheiro precisava calcular o valor do imposto a ser pago no carnê leão. Sabe-se que o imposto é calculado sobre o salário bruto. Acompanhe o programa codificado na linguagem C, supondo que você digitou 4000 para primeira solicitação de entrada e 1000, para segunda solicitação. Escolha a opção onde está presente o valor do imposto. Certo Valor do imposto a ser pago: 750.00 Valor do imposto a ser pago: 850.00 Errado Valor do imposto a ser pago: 800.00 Valor do imposto a ser pago: 650.00 Valor do imposto a ser pago: 1000.00 8- 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 = 15 x = -20 y = 20 z = 10 x = -13 y = 11 z = 13 Errado x = -01 y = 01 z = 10 Certo x = -11 y = 11 z = 10 SLIDE 4 IF ... / IF ... ELSE /IF ... ELSE ... IF / SWITCH - QUAL ESCOLHER 1. Assinale a alternativa que apresenta APENAS os exemplos de operadores relacionais. &&, || e ~ Errado &&, >= e || =, > e || Certo <, > e >= +, - e * 2. 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. três ifs simples e um composto quatro ifs simples Errado quatro ifs simples e um composto Certo switch() com quatro cases e um default switch() com cinco cases Gabarito Comentado 3. Marque abaixo a instrução que permite parar uma execução dentro de um switch. Certo break case open Errado close stop 4. Um programa deve ler um valor inteiro. Caso o valor lido seja positivo deve imprimir a mensagem "Valor positivo". Assinale a opção que apresenta estrutura condicional CORRETA para a solução desse problema. if ( valor != 0 ) Errado if ( valor == 0 ) Certo if ( valor > 0 ) if (valor < 0 ) if ( valor <= 0 ) 5. Considere o código abaixo. Considere que o usuário digite 3. O que será impresso para o usuário? int main (void ) { int valor; printf ("Digite um valor de 1 a 7: "); scanf("%d", &valor); switch ( valor ) { case 1 : printf ("Domingo\n"); break; case 2 : printf ("Segunda\n"); break; case 3 : printf ("Terca\n"); break; case 4 : printf ("Quarta\n"); break; case 5 : printf ("Quinta\n"); break; case 6 : printf ("Sexta\n"); break; case 7 : printf ("Sabado\n"); break; default : printf ("Valor invalido!\n"); } return 0; } Quinta Certo Terca Segunda Errado Quarta Valor invalido 6. Alguns iniciantes na linguagem C sentem dificuldades de usar a estrutura dos ifs encadeados. Sabemos que algumas afirmativas abaixo não produziriam um resultado errado, mas que tornaria o programa com menor qualidade, visto que testes seriam realizados sem necessidade. Então, leia com atenção e só escolha a afirmativa poderá ajudá-los a construir programas com qualidade, usando todos os recursos da estrutura if ... else if ..... O número de ifs encadeados é igual ao número de respostas possíveis, considerando a resposta errada do usuário e não usaria else. Melhor seria substituir, sempre, os ifs encadeados pela estrutura do switch(). Errado Posso substituir por vários ifs simples e um if composto, ao final, para criticar a resposta errada do usuário. Posso substituir ifs encadeados por ifs simples sem prejuízo de qualidade. Certo O número de ifs encadeados é igual ao número de respostas possíveis, não considerando a resposta errada do usuário, pois essa seria criticada no else. 7- 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. II, III e IV são verdadeiras I, III, IV e V são verdadeiras Errado II, IV e V são verdadeiras Certo III e V são verdadeiras I, III e IV são verdadeiras 8- Na construção de programas na linguagem C, precisamos utilizar os operadores relacionais para montar nossas expressões relacionais. Supondo que as variáveis foram devidamente declaradas, dentre as opções apresentadas qual não apresenta uma expressão relacional correta na linguagem C. x <= ( a + b ) Certo x = ( a + b ) Errado x >= ( a + b ) x == ( a + b ) x > ( a + b ) SLIDE 5 1- Considere o trecho de código em C++ a seguir e selecione a opção que indica corretamente o que será exibido ao término da sua execução. int x=5, y = 10, z, i; z = x; for ( i = y; i >= (x+2) ; i-- ) z = z * i; cout << "z = " << z; Errado z = 3600 z = 151200 z = 50 Certo z = 25200 z = 5040 2- Analise os códigos descritos nas alternativas de 'A' até 'E' e marque qual o código que fornece exatamente a saída descrita a seguir: Ano valor na conta 0 1000.00 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28 a- printf("Ano\t valor na conta\n"); for(i==1;i<=5;i++) { vf=vp*pow(1+0.05,i); printf("%d \t %5.2f \n",i,vf); } c- printf("Ano\t valor na conta\n"); for(i=0;i==5;i++) { vf=vp*pow(1+0.05,i); printf("%d \t %5.2f \n",i,vf); } d- printf("Ano\t valor na conta\n"); for(i=0;i<5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); } Errado b- printf("Ano\t valor na conta\n"); for(i=1;i>5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); } Certo e-printf("Ano\t valor na conta\n"); for(i=0;i<=5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); } 3- Considerando com entrada os seguinte números 5 e 8. Marque a alternativa que contém a resposta do programa na tela para os números digitados. int main() { int a,b; scanf("%d",&a); scanf("%d",&b); while (a < b) { printf("%d",a); a = a + 1; } system("pause"); return 0; } 678 56 Certo- 567 5678 67 4- Um programa que contém a linha de comando abaixo: int soma, i = 0; while ( i < 50000) { if ( i % 7 == 0) { soma = soma + i; } i++ ; Qual será a saída: Certo Soma dos números inteiros menores que 50000 divisíveis por 7. Soma dos números inteiros menores que 50000. Errado Soma dos números inteiros menores que 50000 ímpares. Soma dos números inteiros menores que 50000 com resto 7. Soma dos números inteiros menores que 50000 divido por 7. 5- Analise o trecho de código abaixo e determine qual a saída gerada: int i, A = 0, B = 1 ; for (i = 1; i < 5; i++) { A = B; B = i + B * A; } cout << " A = " << A << " B = " << B; A = 6 B = 39 Errado A = 8 B = 67 Certo A = 39 B = 1525 A = 67 b = 4757 A = 0 B = 1 6- Considerando com entrada os seguinte números 5 e 10. Marque a alternativa que contém a resposta do programa na tela para os números digitados. int main() { int a,b; scanf("%d",&a); scanf("%d",&b); while (a < b) { printf("%d",a); a = a + 2; } system("pause"); return 0; } Certo 579 57 Nenhuma das outras alternativas 57911 Errado 56789 7- Qual será a saída do programa abaixo? int main() { int i=0; do { i++; cout << i << endl; } while (i < 2); } Certo() 1 2 ()2 ()1 2 0 ()1 2 0 ()1 8- Na maioria das linguagens de programação, as estruturas de controle de fluxo são fundamentais para a criação de programas elegantes e de fácil entendimento. Assinale a alternativa correta com relação aos comandos de controle de fluxo da linguagem C, sabendo que o comando for apresenta a seguinte forma geral: for (inicialização;condição;incremento) declaração; Certo Pode-se omitir a declaração, e, mesmo assim, o comando for ainda será válido. Errado Não é permitido omitir a condição no comando for, pois não existiria maneira de parar o laço infinito. Sem os comandos de controle de fluxo, só haveria uma maneira de o programa ser executado: de baixo para cima e comando por comando. O comando continue usado dentro de um laço executa a próxima linha de código independentemente do fato de ela estar dentro ou fora do laço. O comando for garante que o laço seja executado pelo menos uma vez.
Compartilhar