Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a 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 Fonte - extensão .txt - editar - executável Código fonte - extensão .c - compilar - executável Código de texto - extensão .txt - editar - fonte Código base - extensão .c - compilar - fonte Respondido em 05/05/2020 07:32:37 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. · 2a Questão Qual seria o menor programa compilável da Linguagem C? main(){} main{}() main()[] main{} main[]{} Respondido em 05/05/2020 07:32:49 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. 3a Questão Qual das características abaixo NÃO pode ser atribuída á linguagem C? Estruturada Rapidez, pois gera executável compacto Portabilidade Modularidade Complexidade porque tem muitas palavras reservadas Respondido em 05/05/2020 07:33:32 Explicação: A linguagem C tem poucas palavras reservadas logo, ela é simples. Complexa, nunca. 4a Questão Em C++, quando temos variáveis do tipo CPF, identidade, matrícula, número do telefone, apesar de serem números não fazemos cálculo com eles. Logo podemos declarar estas variáveis como do tipo: char string int float boolean Respondido em 05/05/2020 07:34:09 Explicação: Um string é um tipo de dado que representa uma cadeia de caracteres, podendo ser estes tanto letras quanto números. 5a Questão Na função main() da linguagem C, declarações, comandos, estruturas e tudo mais que pertence ao corpo da função estão envoltos por dois elementos. Assinale a opção que apresenta esses elementos. [ e ] begin e end; ( e ) { e } begin e end Respondido em 05/05/2020 07:35:03 Explicação: As { } foram escolhidas para envolver todos comandos e/ou funções da função main() e também de algumas estruturas. 6a Questão Arquivos em C podem representar tanto arquivos do sistema quanto dispositivos periféricos, verifique se está correto os arquivos pré-definidos: stdprn = Dispositivo de abertura de txt padrão (normalmente a porta paralela) stdout = Dispositivo de saída de erro padrão (normalmente o monitor) stdin = Dispositivo de entrada padrão (normalmente o teclado) stderr = Dispositivo de saída padrão (normalmente o monitor) stdaux = Dispositivo de saída principal (normalmente a porta usb) Respondido em 05/05/2020 07:36:25 Explicação: Na primeira Aula, estudamos a biblioteca padrão de entrada(in) e de saída(ou): stdio.h std in out Separadamente, stdin(geralmente o teclado) e stdout(geralmente o display). 7a Questão IDE, do inglês Integrated Development Environment ou Ambiente de Desenvolvimento Integrado, é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo.Geralmente os IDEs facilitam a técnica de RAD (de Rapid Application Development, ou "Desenvolvimento Rápido de Aplicativos"), que visa a maior produtividade dos desenvolvedores. Marque a alternativa ERRADA relativa as ferramentas mais comuns encontradas nos IDEs: Compilador (compiler) - compila o código-fonte do programa, editado em uma linguagem específica e a transforma em linguagem de máquina; Ativador - ativa o código fonte para que o mesmo seja executado em qualquer sistema operacional. Editor - edita o código-fonte do programa escrito na(s) linguagem(ns) suportada(s) pela IDE; Linker - liga (linka) os vários "pedaços" de código-fonte, compilados em linguagem de máquina, em um programa executável que pode ser executado em um computador ou outro dispositivo computacional; Depurador (debugger) - auxilia no processo de encontrar e corrigir defeitos no código-fonte do programa, na tentativa de aprimorar a qualidade de software; Respondido em 05/05/2020 07:38:00 Explicação: Não existe uma ferramenta capaz de transformar um código em multiplataforma, as demais opções estão corretas e são ferramentas normalmente encontradas nas IDE's. 8a Questão Qual a vantagem da Linguagem C que está descrita no texto abaixo? 'Um programa que, com pouca ou nenhuma modificação, poderá ser compilado em várias plataformas.' Simplicidade Estruturada Modularidade Portabilidade Rapidez Respondido em 05/05/2020 07:38:47 1a Questão Na Linguagem C, encontramos três funções que podem exibir na tela. Leia com atenção as afirmativas abaixo e selecione a opção correta I A função puts() exibe uma cadeia de caracteres, mas não exibe conteúdo de variáveis. II A função printf() exibe cadeia de caracteres, conteúdo de variáveis de qualquer tipo, resultado de expressões. III A função putchar() exibe uma cadeia de caracteres ou o conteúdo de variáveis do tipo char com um caractere ou um conjunto de caracteres. A afirmativa II é a única correta A afirmativa I está errada e as demais corretas Todas as afirmativas estão corretas A afirmativa II está errada e as demais corretas A afirmativa III está errada e as demais corretas Respondido em 05/05/2020 07:44:12 Explicação: O aluno precisa saber o que cada função é capaz de exibir. Esse conteúdo está na AULA 2. 2a Questão Temos linhas e colunas na tela. A um conjunto de 8 colunas, chamamos de zona. Estudamos os caracteres \n e \t na Aula 2 Se você precisasse exibir VOU na terceira zona de uma linha estando o cursor na primeira coluna dessa linha e GABARITAR na segunda zona de uma linha que tem, antes dela,duas linhas em branco, qual das opções abaixo você escolheria? printf("\t\tVOU\n\n\n\tGABARITAR\n"); printf("\t\t\tVOU\n\tGABARITAR\n"); printf("\t\tVOU\n\n\tGABARITAR\n"); printf("\t\t\tVOU\n\n\tGABARITAR\n"); printf("\t\tVOU\n\tGABARITAR\n"); Respondido em 05/05/2020 07:44:06 Explicação: Assunto bem explorado na Aula 2. 3a Questão Estudamos alguns caracteres especiais que lhe ajudam a formatar a saída de seus programas. Eles também são conhecidos como caracteres de controle ou sequência de escape por serem sempre precedidos pela \ cujo nome em inglês é backslash e por aqui é conhecida como barra invertida ou contra-barra. Observe a linha abaixo e selecione a resposta que mostra e/ou explica o que será exibido no display. printf ("RESULTADO =\\%07d\\\n", 123); RESULTADO =\\0000123\\ RESULTADO =\\0000000123\\ RESULTADO =\0000123\ RESULTADO = 0000123 RESULTADO = 0000000123 Respondido em 05/05/2020 07:44:26 Explicação: O trecho está baseado no conteúdo da AULA 2, pois saberia que para exibirum \ teria que incluir dois \ 4a Questão Quais as funções da biblioteca stdio.h, da linguagem C usadas para exibir mensagens na tela? putchar("string") e puts("string") msg("string") e puts("string") printf("string") e msg("string") printf("string") e puts("string") putchar("string") e printf("string") Respondido em 05/05/2020 07:44:32 Explicação: msg não é uma função da stdio.h, putchar() exibe apenas um caracter, portanto as únicas funções que são capazes de exibir uma mensagem e pertencem a stdio.h são a puts() e a printf() 5a Questão Se executarmos o comando printf(ceil(3.2));.O que será exibido na tela? 0.2 3.2 4.2 3 4 Respondido em 05/05/2020 07:44:38 Explicação: Será exibido na tela o número 4, pois a função ceil() arredonda um número real para o inteiro superior mais próximo. 6a Questão Um aluno precisava fazer uma citação e deveria colocar uma frase entre aspas. Escolha a opção que poderá resolver o problema dele. Como as aspas são usadas para delimitar a cadeia, não se pode fazer isso. A solução seria usar aspas simples duas vezes para substituir printf("''LPI''"); . printf("\"LPI\""); printf("\"LPI\"); printf(\"LPI\"); Respondido em 05/05/2020 07:44:42 Explicação: Esse assunto foi bem explorado na AULA 2. 7a Questão 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. stdio.h - Funções para gráficos. stdlib.h - Funções de entrada e saida. time.h - Funções para manipulação de tempo, apenas horas, minutos e segundos. string.h - Funções para concatenação de strings com inteiros. math.h - Funções matemáticas Respondido em 05/05/2020 07:44:50 Explicação: De acordo com a Linguagem C marque a opção em que o descritivo da biblioteca está correto. stdio.h - Funções para gráficos. Errada, pois esta biblioteca trata de entrada e saída. string.h - Funções para concatenação de strings com inteiros. Errada, pois essa biblioteca contém uma série de funções para manipular strings. stdlib.h - Funções de entrada e saida. Errada, pois stdlib.h é um arquivo cabeçalho da biblioteca de propósito geral padrão da linguagem de programação C. Ela possui funções envolvendo alocação de memória, controle de processos, conversões e outras time.h - Funções para manipulação de tempo, apenas horas, minutos e segundos. Errada, pois time.h é um arquivo cabeçalho que fornece protótipos para funções, macros e definição de tipos da biblioteca padrão da linguagem de programação C para manipulação de datas e horários de modo padrão math.h - Funções matemáticas Correta Gabarito Coment. Gabarito Coment. 8a Questão Se a variável p está armazenando o valor 6, qual valor será armazenado na variável r após ser axecutada a função: r = pow (r,3) 126 18 98 36 216 1a Questão Sabe-se que os códigos das letras Maiúsculas se encontram no intervalo fechado de 65 a 90(A-Z) e os das letras Minúsculas se encontram no intervalo fechado de 97 a 122(a-z) Qual das linhas abaixo apresenta a letra e Minúscula? char c='A'; printf("\nValor de num: %c ",toupper(c)+3); printf("\nValor de c: %f ",c); printf("\nValor de num: %c",tolower(c)+4); printf("\nValor de c: %c ",c); printf("\nValor de c: %d ",c); Respondido em 05/05/2020 07:47:30 Explicação: O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo) e conhecer as finalidades das funções tolower() e toupper() 2a 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. quantidade de memória alocada endereço de memória alocada nenhuma informação pra o sistema operacional tipo de memória alocada qualidade da memória alocada Respondido em 05/05/2020 07:47:35 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. 3a Questão Uma das características da linguagem C++ é a utilização de operadores (Lógicos, aritméticos, de atribuição, etc.) que se baseiam em símbolos que permitem a realização de operações. Basicamente, as regras de precedência desses operadores seguem as regras algébricas. Dentre os símbolos abaixo, quais correspondem respectivamente a Negação Lógica e Resto de Divisão? != e % % e :? ! e % :? e ! :? e % Respondido em 05/05/2020 07:47:40 Explicação: São os seguintes o significado dos operadores lógicos e aritméticos em C/C++. ! negação && E lógico || OU lógico + soma - subtração / divisão * multiplicação % resto de uma divisão entre inteiros 4a Questão Estava pesquisando na internet, quando li, num fórum, um pedido de ajuda que incluía um programa codificado na linguagem C, apresentado abaixo. A pessoa não tinha um compilador e não estava conseguindo analisar o programa. Acompanhei no Teste de Mesa, supondo que eu teria digitado 345 quando foi solicitado um número inteiro de três algarismos. Assinale a resposta CORRETA que apresenta o que foi exibido na tela. 0343 (O valor absoluto do resultado da expressão formatada) 0345 (O valor absoluto do número formatado) 0543(O valor absoluto do número espelhado formatado) - 0.00289(O inverso do número formatado) -0012 ( Representa a soma dos algarismos do número -345 formatado) Respondido em 05/05/2020 07:48:15 Explicação: Analisando a linha abaixo: num2 = abs( (num /100 ) * 100 + ( (num / 10 ) % 10 ) + num / 100 ); A função abs(...) ignora o sinal caso o usuário tenha digitado um número negativo. Como até a Aula 3, não estudamos a estrutura do if, não poderemos testar se o número tem somente três algarismos e partiremos do princípio que tem e será analisado com o número 345 dito no enunciado. Lembrando que inteiro dividido por inteiro, inteiro será num2 = abs( 3 * 100 + (34 % 10 ) + 3 ); num2 = abs( 300 + 4 + 3 ); num2 = 343; Analisando a linha abaixo: printf(¿\n%04d\n¿, num2); %04d significa que o número deverá ser apresentado com quatro casas e se não tiver quatro algarismos, o 0 será colocado na posição mais à esquerda. Logo, 0343 Gabarito Coment. Gabarito Coment. 5a Questão É um nome de variável válido: media_nota2 maça 1X meu 2Cel número Respondido em 05/05/2020 07:48:31 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 6a Questão São todos operadores aritméticos da Linguagem C: %, ||, &&, == MOD, DIV, %, && &&, ||, ! >, >=, <, <=, == +, -, *, / Respondido em 05/05/2020 07:48:32 Explicação: Os operadores aritméticos são: + (soma), - (subtração), * (multiplicação) e / (divisão). 7a QuestãoObserve abaixo várias funções que recebem dados via teclado. Qual delas permite uma leitura formatada? getchar() fgetc() fgets() gets() scanf() Respondido em 05/05/2020 07:48:53 8a Questão Marque a opção abaixo que mostra um nome que não pode ser usado como identificador de uma variável: 1uma duas uma duas2 uma1 1a Questão Assinale a alternativa que apresenta APENAS os exemplos de operadores relacionais. +, - e * &&, >= e || &&, || e ~ <, > e >= =, > e || Respondido em 07/05/2020 07:49:38 Explicação: Conhecer os operadores relacionais e lógicos será fundamental para criarmos a expressão do teste que será usada nas estruturas de decisão (if / if...else) e nas estruturas de repetição(for, while e do...while). Os operadores relacionais são: > , >= , < , <= , == e !=. Sendo assim, a única resposta que só contém operadores relacionais é : <, > e >= . Gabarito Coment. 2a Questão Um aluno de LPI gostaria de testar duas condições, usando somente uma estrutura if. Abaixo as duas condições a serem testadas: a) O ano de nascimento que precisa estar no intervalo fechado de 1989-2007. b) O sexo que precisa ser masculino. Sabe-se que o sexo se encontra em uma variável do tipo char de nome sexo e o ano em uma variável do tipo int de nome ano. Além disso, ele deseja que seja aceita tanto a letra M quanto a letra m. Assinale a opção que resolve o problema desse aluno. if( sexo == 'M' || sexo == 'm' && (ano >= 1989 && ano <= 2007 ) ) if(ano >=1989 && ano <=2007 && (sexo == 'M' || sexo == 'm' ) ) if(ano >= 1989 && ano<= 2007 && sexo== 'M' || sexo == 'm' ) if(sexo == 'M' || sexo == 'm' && ano >= 1989 && ano <= 2007 ) if( sexo == 'M' || (sexo == 'm' && ano >=1989 && ano<=2007 ) ) Respondido em 07/05/2020 08:11:53 Gabarito Coment. Gabarito Coment. 3a Questão Se a minha média for maior ou igual a 6 estarei aprovado, caso contrário, estarei reprovado. Qual dos trechos abaixo escritos em C++ representa esta situação? if (media > 6) cout << "Aprovado"; else cout << "Reprovado"; if (media <= 6) cout << "Aprovado"; else cout << "Reprovado"; if (media >= 6) cout << "Aprovado"; else cout << "Reprovado"; if (media > 6) { cout << "Aprovado"; } else { cout << "Reprovado"; } if (media != 6) { cout << "Aprovado"; } else { cout << "Reprovado"; } Respondido em 07/05/2020 08:20:38 Explicação: if (media > 6) errado pois aprovado apenas aqueles que obtiverem media maior que 6 if (media <= 6)errado pois aprovado apenas aqueles que obtiverem media menor ou igual que 6 if (media != 6)errado pois aprovado apenas aqueles que obtiverem media diferente que 6 if (media >= 6)correto pois aprovado apenas aqueles que obtiverem media maior ou igual que 6 4a Questão A estrutura do if.. else na linguagem C, como em toda linguagem, tem uma sintaxe. Observe as afirmações abaixo e escolha a opção Correta sobre as afirmativas. I As chaves de abertura e fechamento sempre serão obrigatórias. II No teste unimos expressões relacionais com operadores lógicos quando necessário. III A palavra then está presente na estrutura. IV O uso do else nem sempre será necessário. Somente a afirmativa IV está correta. Somente a afirmativa I está correta. As afirmativas II e IV estão corretas. As afirmativas II e III estão corretas .As afirmativas I e III estão corretas. Respondido em 07/05/2020 08:21:02 Explicação: Questão muito conceitual. Não tem o que comentar. 5a Questão 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 ..... Melhor seria substituir, sempre, os ifs encadeados pela estrutura do switch(). 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. Posso substituir ifs encadeados por ifs simples sem prejuízo de qualidade. 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. Posso substituir por vários ifs simples e um if composto, ao final, para criticar a resposta errada do usuário. Respondido em 07/05/2020 08:21:11 6a Questão Marque a opção que apresenta apenas operadores relacionais: > < ++ == >= !+ != == =+ > < == >+ >= > < == <= >= > < == && >= Respondido em 07/05/2020 08:21:29 Explicação: Os operadores relacionais do C são: > < == >= <= != 7a Questão Observe o trecho abaixo: char sexo; int idade; puts("\nEntre com sexo(F/ M) e idade: "); scanf("%c %d", &sexo, &idade); if(toupper(sexo) == 'F' && (idade < 18 || idade > 80)) puts(" \nValor do plano de Saúde com desconto\n"); else puts(" \nValor do plano de Saúde sem desconto\n"); Se o usuário executar três vezes os valores: f 17 / M 17/ F 81, qual opção mostraria as respostas corretas? Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto / Valor do plano de Saúde sem desconto Valor do plano de Saúde com desconto / Valor do plano de Saúde com desconto / Valor do plano de Saúde com desconto Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto Valor do plano de Saúde com desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto Respondido em 07/05/2020 08:21:26 Explicação: Em programação, entender dominar a sintaxe de cada comando/ estrutura é fundamental. Nesse caso, conhecer os operadores relacionais e lógicos também 8a Questão Suponha que as notas digitadas pelo usuário sejam respectivamente (4.5; 8.5; 6.5). int main() { float n1, n2, n3, med; puts("Digites as notas"); scanf("%f", &n1); scanf("%f", &n2); scanf("%f", &n3); med= (n1+n2+n3)/3; if(med>=7) printf("Aluno aprovado com: %.1f\n", med); else printf("Aluno reprovado com: %.1f\n", med); system("pause"); return 0; } Desconsidere a necessidade da declaração das bibliotecas. Qual será a mensagem final exibida para o usuário? Aluno aprovado com: 6.00 Aluno aprovado com: 6.0 Aluno reprovado com: 6.5 Aluno reprovado com: 6.50 Aluno aprovado com: 6.5 1a Questão 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: Soma dos números inteiros menores que 50000 divido por 7. Soma dos números inteiros menores que 50000 com resto 7. Soma dos números inteiros menores que 50000 divisíveis por 7. Soma dos números inteiros menores que 50000. Soma dos números inteiros menores que 50000 ímpares. Respondido em 07/05/2020 08:25:13 2a Questão Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo, supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que contém a série exibida pelo código. 2 4 6 8 19 12 14 16 2 4 6 10 1626 42 2 4 6 10 16 26 42 68 2 4 4 8 12 20 32 52 2 4 4 8 12 20 32 Respondido em 07/05/2020 08:26:13 Gabarito Coment. Gabarito Coment. 3a Questão int main() { int contador = 1; while (contador < 10) { printf("%d ", contador); contador++; } return 0; } 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 Respondido em 07/05/2020 08:26:31 4a Questão João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagem Tenho que estudar. Se fosse você, qual escolheria? int y; for(y=5; y>=25; y+=5); puts("\nTenho que estudar"); Nenhuma vez 19 vezes 5 vezes 6 vezes 1 vez Respondido em 07/05/2020 08:28:08 Explicação: O aluno precisa ter entendido que a estrutura do for usa uma PA ou PG 5a Questão Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0? for ( i = 0; i == num; i++) enquanto (num > 0) while (num == 0) while (num != 0) for (i = num; i > 0; i++) Respondido em 07/05/2020 08:28:36 Explicação: As estruturas de repetição podem testar a condição antes de executar o bloco (for e while) ou executar pelo menos uma vez(do...while) porque testa ao final. Conhecer os operadores relacionais e lógicos será fundamental para criarmos a expressão do teste. A frase enquanto a variável num seja diferente de 0 já nos dá a resposta: while(num != 0). Gabarito Coment. 6a Questão Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduza um número positivo maior que zero: #include < stdio.h> //Retire o espaço depois de < quando for compilar int main() { int x, i=1; printf("Entre com numero: "); scanf("%d", &x); while(i<=x) { if(i%2!=0) printf("%d\n", i); i++; } return 0; } O código mostra os todos os números ímpares menores ou igual a x. O código mostra os todos os números pares menores ou igual a x. O código mostra os todos os divisores ímpares de um número. O código mostra os números divisíveis por 3. O código mostra os números divisíveis por 2. Respondido em 07/05/2020 08:28:32 Explicação: O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja ímpar será mostrado. Assim como o próprio número quando este for ímpar. 7a Questão Considere o trecho de código abaixo. O que será impresso quando o programa for executado? int main() { int contador = 10; while (contador > 1) { printf("%d ", contador); contador--; } return 0; } Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 ... 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 10 9 8 7 6 5 4 3 2 1 Nunca vai parar. 10 10 10 10 10 10 10 10... Respondido em 07/05/2020 08:29:15 Explicação: A estrutura while repete o bloco enquanto o teste for verdadeiro. Se a variável contador começa com 10 e exibe o valor do contador enquanto ele for maior do que, significa que quando ele for decrementado e chegar a 1, interromperá a repetição; Resposta correta: 10 9 8 7 6 5 4 3 2 8a Questão 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 = 0 B = 1 A = 8 B = 67 A = 6 B = 39 A = 39 B = 1525 A = 67 b = 4757 1a Questão Qual das alternativas abaixo possui o comando que devolve o numero de caracteres em um uma string? strcout strcat strcap strlen strcamp Respondido em 07/05/2020 08:31:51 2a Questão Qual o elemento do vetor referenciado por vet[vet[5]]? 9 3 1 4 2 Respondido em 07/05/2020 08:32:07 3a Questão Os chamados vetores e matrizes podem ser considerados como: Comandos de seleção composta Estruturas de dados homogêneas Comandos de seleção Comandos de repetição Estruturas de dados heterogêneas Respondido em 07/05/2020 08:32:14 Explicação: São chamados de Estruturas de Dados Homogêneas porque são formados por dados do mesmo tipo. Gabarito Coment. Gabarito Coment. 4a Questão Um aluno estava estudando a Aula 6 quando se deparou com o trecho abaixo onde dizia que declarava e inicializava o vetor de nome matriculas e do tipo int. int x, matriculas[4]={123,138, 13, 97 }; Ele gostaria de construir um trecho para exibir os dados do vetor na mesma linha. Qual dos trechos abaixo ele usou? for(x=1; x < 4; x++ ) printf("%d\t",matriculas[x]); for(x = 0; x < 4; x++ ) printf("%d\t",matriculas[x]); for(x = 1; x <= 4; x++ ) printf("%d\n",matriculas[x]); for(x = 0; x < 4; x++ ) printf("%d\n",matriculas[x]); for(x = 0; x <= 4; x++ ) printf("%d\n",matriculas[x]); Respondido em 07/05/2020 08:32:48 Explicação: Um trecho que manipula todo o vetor deverá começar em 0 e terminar antes do tamanho. Usar o caractere \t possibilita exibr na mesma linha. 5a 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[] = {10, 15, 20, 25, 30}; char valores = "ABCD"; char valores[] = {'A', 'B', 'C', 'D'}; char valores[5] = {'A', 'B', 'C', 'D'}; int valores[5] = {10, 15, 20, 25, 30}; Respondido em 07/05/2020 08:33:56 Explicação: Errada: char valores = "ABCD"; porque faltam []. Deveria ser assim: char valores[] = "ABCD"; Gabarito Coment. Gabarito Coment. 6a Questão Um programador deve declarar um vetor para armazenar as idades dos alunos de uma turma com 50 alunos. Marque a alternativa correta para a declaração deste vetor, sabendo que o programamdor resolveu identificá-lo como vetorIdade. float vetorIdade[49]; int vetorIdade[50]; double vetorIdade[25]; int vetorIdade[49]; float vetorIdade[50]; Respondido em 07/05/2020 08:35:57 Explicação: A declaração de um vetor é feita na forma identificador [nº de campos], como o dado a ser armazenado é idade que é uma grandeza inteira e necessita-se de 50 posiçoes o correto é int vetorIdade[50]; 7a Questão Em um programa o programador inseriu a seguinte linha de código: float notas [10]. Esta linha quer dizer: notas é uma string com 10 caracteres. notas é um vetor com 10 números reais. notas é uma constante de valor 10. notas é uma função para somar 10 números. notas é uma variável de potência 10. Respondido em 07/05/2020 08:37:16 Explicação: Analisando float notas [10] · float é o tipo do dado armazenado logo, real · notas é o nome do vetor. · [10] é o tamanho do vetor logo, 10 elementos. 8a Questão Um programador declarou os vetores abaixo e gostaria de fazer o trecho de entrada para armazenar códigos dos 43 funcionários e respectivos salários. int x,codigos[43]; float salarios[43]; A dúvida dele está na linha do for. Você poderia indicar qual ele deveria escolher? for(x = 0; x < 44 ; x++ ) for(x = 1; x < 43 ; x++ ) for(x = 0; x < 43 ; x++ ) for(x = 1; x <= 43 ; x++ ) for(x = 0; x <= 43 ; x++ )1a Questão Supondo que está desenvolvendo um programa de cadastro de alunos, qual das opções declara corretamente uma matriz caracter que suporte 30 nomes de até 20 caracteres? char nomes [30]; char nomes [30][20]; char nomes (20,30); char nomes [20][30]; char nomes (30); Respondido em 07/05/2020 08:42:00 Gabarito Coment. Gabarito Coment. 2a Questão O departamento do pessoal de uma empresa precisa de um programa para armazenar nomes, cargos, número de dependentes e salários de 32 funcionários. Um desenvolvedor pensou em algumas linhas que precisariam ser incluídas no código para tornar possível a construção dos trechos de entrada, saída e outros necessários. Observe as declarações abaixo e escolha a que possibilita isso. float sal[32]; int dep[32]; char nomes[32][30], cargos[32][20]; float sal[32]; int dep[32]; char dados[32][20]; float dadosN[32][2]; char dadosC[32][30]; float sal[31]; int dep[31]; char nomes[31][30], cargos[31][20]; float sal[32]; int dep[32]; char nomes[32], cargos[32]; Respondido em 07/05/2020 08:43:43 Explicação: Lembrando que o número que fica dentro dos [ ] significa o total, de fato, que desejamos. O número de caracteres de um nome e profissão são baseados no comum: 25 a 30 caracteres para um nome é razoável. Tipos diferentes não se agrupam. 3a Questão Considere que todas as bibliotecas necessárias foram declaradas. int main() { int mat[3][3], i, j, det; puts("Codigo que calcula o determinante de uma matriz 3x3\n"); ____{ puts("Digite os elementos da matriz\n"); ____(i=0;i<3;i++) ____(j=0;j<3;j++) scanf("%d", &mat[i][j]); fflush(stdin); det= (mat[0][0]*mat[1][1]*mat[2][2]) + (mat[0][1]*mat[1][2]*mat[2][0]) + (mat[0][2]*mat[1][0]*mat[2][1]) - ((mat[0][1]*mat[1][0]*mat[2][2]) + (mat[0][0]*mat[1][2]*mat[2][1]) + (mat[0][2]*mat[1][1]*mat[2][0])); printf("\ndet=%d\n", det); } ____ (det==0); system("pause"); return (0); } Complete as lacunas do código da maneira correta para que o programa funcione corretamente. do-if-for-while while-for-do-for do-while-for-for do-for-for-while do-if-else-while Respondido em 07/05/2020 08:46:35 Gabarito Coment. 4a Questão Um programador precisa armazenar em uma tabela a quantidade de alunos, por turma, que tiraram notas abaixo da méida, exatamente na média e acimma da média. Sabendo que a méida é 6.0 e que esta tabela, chamada de mapa, servirá para armazenar as notas das 30 turmas existentes, e que para o programa que está sendo desenvolvido o melhor será organizar as turmas por linhas na tabela. Marque a alternativa que melhor representa a declaração desta tabela. float turmas[30]notas[3]; int mapa[30][3]; int mapa[3][30]; float mapa[30][30]; int turmas[30]; Respondido em 07/05/2020 08:48:15 Explicação: A declaração de um vetor bidimensional é feita na forma identificador [nº de linhas][nº de colunas], como os dados a serem armazenado são grandezas inteira, isto é quantidade de alunos e necessita-se de 30 posiçoes para linhas que representam as turmas e apenas 3 posiçoes para as colunas, o correto é int mapa[30][3]; 5a Questão Uma matriz é definida como float mat[5][10]; Quantos elementos esta matriz armazena? 36 elementos 10 elementos 45 elementos 5 elementos 50 elementos Respondido em 07/05/2020 08:49:03 6a Questão Analisando o códio a seguir, pode-se afirmar que: #include < stdio.h > #define T 5 int main() { int x[T][T], i,j; for(i=0; i< T; i++) for(j=0; j< T; j++) x[i][j]=j+1; for(i=0; i< T; i++) for(j=0; j< T; j++) if(i==j)printf("x[%d][%d]: %d\t",i, j,x[i][j]); return 0; } O programa não executa; O programa multiplica dois vetores de dimensão igua a 5. O programa cria uma matriz de duas dimensões e exibe os elementos da diagonal principal. O programa cria uma matriz de duas dimensões e exibe todos seus elementos. O programa cria uma matriz de duas dimensões vazia. Respondido em 07/05/2020 08:51:47 Explicação: Neste caso o aluno deve conhecer o conceito de diagonal principal de uma matriz, isto é onde os índices linha e colna são iguais. Assim como temos: for(j=0; j< T; j++) if(i==j)printf("x[%d][%d]: %d\t",i, j,x[i][j]); Pode-se afirmar que: O programa cria uma matriz de duas dimensões e exibe os elementos da diagonal principal. 7a Questão Analisando o códio a seguir, pode-se afirmar que: #include #define T 5 int main() { int x[T][T], i,j; for(i=0; i< T; i++) for(j=0; j< T; j++) x[i][j]=j+1; for(i=0; i< T; i++) for(j=0; j< T; j++) printf("x[%d][%d]: %d\t",i, j,x[i][j]); return 0; } Os valores armazenados nos elementos de uma mesma coluna na matriz são zerados. O programa não executa pois há falta de chaves. Os valores armazenados nos elementos de uma mesma linha na matriz são iguais. Os valores armazenados nos elementos de uma mesma coluna na matriz são iguais. Os valores armazenados nos elementos de uma mesma linha na matriz são zerados. Respondido em 07/05/2020 08:52:10 Explicação: Neste caso o preenchimento da matriz está sendo realizado de forma horizontal, for(j=0; j< T; j++) x[i][j]=j+1; Lembrar que durante esta execução o valor da linha é fixo o que varia é o valor da coluna. isto é preenchendo-se por linha e como as linhas tem valores iguais pode-se afirmar que: Os valores armazenados nos elementos de uma mesma coluna na matriz são iguais. 8a Questão Analise o programa a seguir e escolha a opção que ilustra o que será exibido para o usuário caso ele digite o valor 7 . dia não existe quinta sexta quarta sábado 1. Quando uma função e chamada e recebe como parâmetro o endereço de uma variável, damos o nome a esta forma de passagem de parâmetros de Passagem por: memória endereço ponteiro valor referência Explicação: Há duas formas de passagem de parâmetros em uma função. Quando passamos um valor para a variável, então chamamos passagem por valor. Ou quando passamos o endereço de uma variável chamaos de passagem de parâmetro pro referência. 2. Um desenvolvedor, ao construir um programa, precisou de uma função que calculasse o produto entre dois números inteiros. Ele construiu uma função, tendo considerado a propriedade de fechamento, isto é, o produto de dois inteiros, inteiro será e colocou a linha abaixo no programa. cout << " Produto = " << multiplicar(a,b); Observe as opções abaixo e escolha aquela onde o protótipo da função está presente. float multiplicar(int a, int b) void multiplicar(int a, int b); void multiplicar(int a, int b) int multiplicar(int a, int b) ; int multiplicar(int a, b); Explicação: Se fosse do tipo void, não precisaria de cout. Todo protótipo termina com ; . O tipo de cada parâmetro precisa estar presente 3. Função em C onde são colocados todos os comandos e outras funções que desejamos que sejam executadas systema("pause") return main() end begin 4. Os programas inicialmente eram desenvolvidos em um único bloco, com a introdução da modularização de programas foi possível garantir uma melhora na legibilidade dos códigos, um maior aproveitamento e reuso de códigos e melhora na manutenção de sistemas. Assim o principal elemento da modularização de programas é: structs funções vetor tipo de dados variáveis Explicação: As funções são blocos de programas que proporcionam, um programa dividido em módulos, podendo estas funções serem utilizadas varias vezes no mesmo programa ou ainda em outrosprogramas, garantindo o reuso de código. Como as funções são blocos pequenos de códigos com objetivos bem específicos, o entendimento da funcionalidade do bloco é facilitada, garantindo uma maior legibilidade do programa e em consequ~encia maior facilidade para manutenção do programa. 5. Ao definirmos uma função, podemos afirmar que: I Toda função tem parâmetros II Quando nada retorna, o tipo é void III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas IV Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada Após uma análise das afirmativas acima, escolha a opção correta. As afirmativas I e II estão corretas As afirmativas II, III e IV estão corretas As afirmativas II e IV estão corretas Somente a afirmativa II está correta As afirmativas II e III estão corretas Explicação: Dominar os conceitos iniciais será fundamental para responder a essa questão. Sintaxe na definição de uma função está bem explicada na Aula 8 6. Analise o código a seguir: #include < stdio.h > #include < stdlib.h > void modifica(int v[]) { int temp=v[0]; v[0]=v[1]; v[1]=temp; } int main(int argc, char *argv[]) { int vetor[]={5,3}; modifica(vetor); printf("vetor[0]=%d\tvetor[1]=%d", vetor[0], vetor[1]); return 0; } Marque a alternativa correta: A saída que será exibida é v[0]=3 e v[1]=5 os valores dos campos do vetor são alterados, na função main(). A saída que será exibida é v[0]=5 e v[1]=3 os valores dos campos do vetor não são alterados, na função main(). A saída que será exibida é v[0]=5 e v[1]=5 os valores dos campos do vetor são copiados, na função main(). O programa não executa, pois há erro nas atribuições no corpo da função modifica(int v[]). A saída que será exibida é v[0]=3 e v[1]=3 os valores dos campos do vetor são copiados, na função main(). Explicação: Na função o acesso ocorre exatamente no vetor que foi passado como parâmetro, portanto há alteração do conteúdo do mesmo. 7. Seja a função a seguir, onde são passados como parâmetros um vetor e seu tamanho, respectivamente int v[] e tam: void imprime(int v[], int tam) { int i; for(i=0; i< = tam;i++) printf("v[%d]=%d\n", i, v[i]); } Analise o código da função e marque a alternativa correta: Não há problemas com o código da função, esta pode ser executada sem problemas. Há erro no uso da função printf(), sabendo que um dos argumentos é um elemento do vetor. O laço de repetição está errado pois tenta acessar fora dos limites do vetor. O cabeçalho da função possui erro , pois neste caso não pode-se usar como valor de retorno void. A função printf() não pode ser usada com vetores. Explicação: Como o tamanho do vetor é passado pelo parâmeto tam, o laço de repetição só pode acessar da posição 0 até a posição tam-1. Portanto há erro na tentativa de acesso no vetor. 8. O presidente da construtora Sempre Verde precisou, em um determinado momento, reajustar o salário dos funcionários e, como ele sabia programar porque tinha se dedicado muito à disciplina de Linguagem de Programação I, definiu uma função com o seguinte protótipo: float calcSalario(float salario, float percentual); Baseado nesse protótipo é CORRETO afirmar que a função: Retornará o salário somado ao percentual. Recebe dois valores passados por referência. Recebe dois valores, salário e o percentual de reajuste, passados por valor. Retornará dois valores para a função chamadora. Não retorna nenhum valor para a função chamadora. 1. Quando uma função e chamada e recebe como parâmetro o endereço de uma variável, damos o nome a esta forma de passagem de parâmetros de Passagem por: memória endereço ponteiro valor referência Explicação: Há duas formas de passagem de parâmetros em uma função. Quando passamos um valor para a variável, então chamamos passagem por valor. Ou quando passamos o endereço de uma variável chamaos de passagem de parâmetro pro referência. 2. Um desenvolvedor, ao construir um programa, precisou de uma função que calculasse o produto entre dois números inteiros. Ele construiu uma função, tendo considerado a propriedade de fechamento, isto é, o produto de dois inteiros, inteiro será e colocou a linha abaixo no programa. cout << " Produto = " << multiplicar(a,b); Observe as opções abaixo e escolha aquela onde o protótipo da função está presente. float multiplicar(int a, int b) void multiplicar(int a, int b); void multiplicar(int a, int b) int multiplicar(int a, int b) ; int multiplicar(int a, b); Explicação: Se fosse do tipo void, não precisaria de cout. Todo protótipo termina com ; . O tipo de cada parâmetro precisa estar presente 3. Função em C onde são colocados todos os comandos e outras funções que desejamos que sejam executadas systema("pause") return main() end begin 4. Os programas inicialmente eram desenvolvidos em um único bloco, com a introdução da modularização de programas foi possível garantir uma melhora na legibilidade dos códigos, um maior aproveitamento e reuso de códigos e melhora na manutenção de sistemas. Assim o principal elemento da modularização de programas é: structs funções vetor tipo de dados variáveis Explicação: As funções são blocos de programas que proporcionam, um programa dividido em módulos, podendo estas funções serem utilizadas varias vezes no mesmo programa ou ainda em outros programas, garantindo o reuso de código. Como as funções são blocos pequenos de códigos com objetivos bem específicos, o entendimento da funcionalidade do bloco é facilitada, garantindo uma maior legibilidade do programa e em consequ~encia maior facilidade para manutenção do programa. 5. Ao definirmos uma função, podemos afirmar que: I Toda função tem parâmetros II Quando nada retorna, o tipo é void III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas IV Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada Após uma análise das afirmativas acima, escolha a opção correta. As afirmativas I e II estão corretas As afirmativas II, III e IV estão corretas As afirmativas II e IV estão corretas Somente a afirmativa II está correta As afirmativas II e III estão corretas Explicação: Dominar os conceitos iniciais será fundamental para responder a essa questão. Sintaxe na definição de uma função está bem explicada na Aula 8 6. Analise o código a seguir: #include < stdio.h > #include < stdlib.h > void modifica(int v[]) { int temp=v[0]; v[0]=v[1]; v[1]=temp; } int main(int argc, char *argv[]) { int vetor[]={5,3}; modifica(vetor); printf("vetor[0]=%d\tvetor[1]=%d", vetor[0], vetor[1]); return 0; } Marque a alternativa correta: A saída que será exibida é v[0]=3 e v[1]=5 os valores dos campos do vetor são alterados, na função main(). A saída que será exibida é v[0]=5 e v[1]=3 os valores dos campos do vetor não são alterados, na função main(). A saída que será exibida é v[0]=5 e v[1]=5 os valores dos campos do vetor são copiados, na função main(). O programa não executa, pois há erro nas atribuições no corpo da função modifica(int v[]). A saída que será exibida é v[0]=3 e v[1]=3 os valores dos campos do vetor são copiados, nafunção main(). Explicação: Na função o acesso ocorre exatamente no vetor que foi passado como parâmetro, portanto há alteração do conteúdo do mesmo. 7. Seja a função a seguir, onde são passados como parâmetros um vetor e seu tamanho, respectivamente int v[] e tam: void imprime(int v[], int tam) { int i; for(i=0; i< = tam;i++) printf("v[%d]=%d\n", i, v[i]); } Analise o código da função e marque a alternativa correta: Não há problemas com o código da função, esta pode ser executada sem problemas. Há erro no uso da função printf(), sabendo que um dos argumentos é um elemento do vetor. O laço de repetição está errado pois tenta acessar fora dos limites do vetor. O cabeçalho da função possui erro , pois neste caso não pode-se usar como valor de retorno void. A função printf() não pode ser usada com vetores. Explicação: Como o tamanho do vetor é passado pelo parâmeto tam, o laço de repetição só pode acessar da posição 0 até a posição tam-1. Portanto há erro na tentativa de acesso no vetor. 8. O presidente da construtora Sempre Verde precisou, em um determinado momento, reajustar o salário dos funcionários e, como ele sabia programar porque tinha se dedicado muito à disciplina de Linguagem de Programação I, definiu uma função com o seguinte protótipo: float calcSalario(float salario, float percentual); Baseado nesse protótipo é CORRETO afirmar que a função: Retornará o salário somado ao percentual. Recebe dois valores passados por referência. Recebe dois valores, salário e o percentual de reajuste, passados por valor. Retornará dois valores para a função chamadora. Não retorna nenhum valor para a função chamadora.
Compartilhar