Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nome: Renan Rossetto das Neves R.A: 83512 Indique quais afirmações são falsas e quais são verdadeiras: 1.1A condição dentro de um laço while e do...while tem que ser colocada sempre dentro de parênteses. (V) 1.2Os laços while e for executam SEMPRE, pelo menos uma vez, o corpo do laço.(F) 1.3O laço do...while executa SEMPRE, pelo menos uma vez, o corpo do laço.(V) 1.4As três componentes, dentro de parênteses, do laço for são todas obrigatórias.(F) 1.5As três componentes, dentro de parênteses, do laço for são todas facultativas. (V) 1.6Quando em um laço for se tem que realizar mais do que uma carga inicial ou mais do que um incremento, as diversas instruções, em cada uma das componentes, devem ser separadas por vírgula e não ponto-e-vírgula, de forma a manter o formato do laço for. (V) 1.7A instrução de um laço é sempre executada. (F) 1.8No laço for, o número de vezes que as cargas iniciais são executadas é sempre igual ao número de iterações do laço. (F) 1.9No laço for ou while, o número de vezes que a condição é testada é sempre igual ao número de iterações do laço. (F) 1.10No laço for, o número de vezes que a instrução é executada é sempre igual ao número de vezes que é executada a pós-instrução. (V) 1.11Um laço, quando está dentro de outro laço, necessita de chaves. (F) 1.12Não há limite para o número de laços dentro de outros laços. (V) 1.13No laço do...while, a instrução é sempre executada pelo menos uma vez. (V) 1.14Em todos os laços, a condição é sempre testada pelo menos uma vez. (V) 1.15Os laços while e do...while incrementam automaticamente a variável de controle. (F) 1.16Os laços são executados até que a condição escrita se verifique. (F) 1.17O laço do...while aparece escrito menos freqüentemente do que qualquer dos outros. (V) 1.18Um break, quando presente dentro de um laço, termina o programa. (F) 1.19No laço while, antes de se executar a instrução continue, deve-se atualizar a variável de controle do laço. (V) 1.20Qualquer dos laços pode ser sempre escrito a partir do laço while. (V) 2.Escreva genericamente o laço do…while como um laço while. R: instrução; While (condição) { Instrução; } 3.Escreva genericamente o laço for como um laço while. R: valorInicial; while (condição) { Instrução; Pós instrução; } 4.Escreva genericamente o laço while como um laço for. For (inicio;condição;) 5.Qual a diferença de execução da instrução break quando presente em um for e em um while? No caso do for a instrução break vai parar o laço, já no caso do while, ele serve para prevenir um loop infinito. 6.Qual a diferença de execução da instrução continue quando presente em um for e em um while? R:Ele para o laço, porém continua o código. 7.Reescreva o seguinte trecho de um programa, utilizando o laço while: for (i=1 ; i<=20 ; i++) if (i==10) continue; else printf("%d\n",i); R: i=1; while(i<=20){ if (i==10) continue; else printf("%d\n",i); i++; } 8.[Exercício de Exame] Escreva um programa que coloque na tela meia árvore de natal com asteriscos. O número de ramos deverá ser introduzido pelo usuário. Exemplos com 3,4 e 5 ramos: * * * ** ** ** *** *** *** **** **** ***** Int ramos; Printf (“Digite o numero de ramos desejados”); Scanf(“%i”, &ramos); For (int i=0; i<=0;i++) { For (int j=0; j<=0; j++) { putchar (‘*’); putchar (‘\n’); } } 9.[Exercício de Exame] Altere o programa anterior de forma que, em vez de asteriscos, sejam escritas letras em cada nível, começando o nível inicial com a letra ‘A’. Exemplos com 3, 4 e 5 ramos. A B B BB BB BB CCC CCC CCC DDDD DDDD EEEEE Int ramos; Printf (“Digite o numero de ramos desejados”); Scanf(“%i”, &ramos); For (int i=0; i<=0;i++) { For (int j=0; j<=0; j++) { putchar (‘A’+i-1); putchar (‘\n’); } } 10.Escreva um programa que solicite um número ao usuário até que o valor deste esteja entre os valores 1 e 100. int num =0; Do { printf (“Digite um valor de 1 a 100”); scanf (“%i”, &num); if (num>100||num<1) printf ("\nNumero invalido, digite novamente!\n\n"); (num>100||num<1); } while(num>100||num<1); printf("\n O numero digitado e %d \n\n",num); return(0); } 11.[Exercício de Exame] Escreva um programa em C que escreva na tela toda a tabela ASCII (0..255 chars), escrevendo em cada linha o código ASCII e o caractere correspondente. Exemplo: ... 65 --> A 66 --> B 67 --> C ... A fim de que o usuário possa ver todos os caracteres escritos, a tela deve ser parada de 20 em 20 linhas, até que o usuário pressione a tecla 'c' ou 'C' seguida de <ENTER> para continuar a mostrar os próximos 20 caracteres (20 linhas). 1: #include <stdio.h> 2: 3: main() 4: { 5: int i,conta; 6: char ch; 7: for (i=0,conta=1 ; i<=255 ; i++) 8: { printf("%3d --> %c\n",i, (char) i); 9: if (conta == 20) 10: { 11: do 12: { printf("Pressione c ou C para continuar ..."); 13: scanf(" %c", &ch); 14: } 15: while (ch != 'c' && ch != 'C'); 16: conta=1; 17: } 18: else 19: conta++; 20: } 21: } 12.[Exercício de Exame] Escreva um programa completo em C que solicite ao usuário dois números inteiros entre 0 e 255 e escreva na tela todos os caracteres da tabela ASCII cujos códigos variem entre os dois números introduzidos, escrevendo em cada linha o código ASCII e o caractere correspondente. Exemplos: Introd. dois Nos: 65 120 65 --> A 66 --> B 67 --> C ... Introd. dois Nos: 120 65 65 --> A 66 --> B 67 --> C ... R: 1: #include <stdio.h> 2: 3: main() 4: { 5: int i,nmin,nmax,tmp; 6: 7: do 8: { 9: printf("Introd. um Nº entre 0 e 255: "); 10: scanf("%d",&nmin); 11: } 12: while (nmin < 0 || nmin > 255); 13: 14: do 15: { 16: printf("Introd. outro Nº entre 0 e 255: "); 17: scanf("%d",&nmax); 18: } 19: while (nmax < 0 || nmax > 255); 20: 21: /* Verificar se é necessário trocar os valores das variáveis */ 22: 23: if (nmin > nmax) 24: { 25: tmp = nmin; 26: nmin = nmax; 27: nmax = tmp; 28: } 29: 30: for (i=nmin ; i<=nmax ; i++) 31: printf("%3d --> %c\n",i, (char) i); 32: 33: } 13.[Exercício de Exame] Qual a diferença (se existir) entre as duas seguintes instruções:x= ++iex= i++? Dê exemplos. R: No primeiro caso ele atribui e depois implementa, já no segundo ele implementa e depois atribui. 14.Se uma variável x se encontrar isolada, ++x e x++ são equivalentes? R: Não são equivalentes pois um é uma atribuição e a outra é um incremento (Gabarito diz que sim). 15.Pode-se utilizar os operadores ++ e -- em constantes? R: Não pode por ser uma constante. 16.Qual a diferença entre a=-2 e a-=2? R: No primeiro temos uma atribuição (a=-2) e no segundo temos a subtração de -2. 17.Qual o resultado do seguinte programa: n=0; do { printf(" ..."); n=n+1; } while (n!=0); R: Ele será incrementado sempre que o n for diferente de zero. 18.[Exercício de Exame] Qual a diferença entre os dois trechos de código: i = 0; while (i++) printf("%d\n",i); i = 0; while (++i) printf("%d\n",i); R: No primeiro caso ele irá falhar pois 0 é falso, já no segundo ele vai entrar em um loop sempre incrementando o código. 19.O que faz o seguinte código: for (i=1; i<=200 ; i++) ; printf("%d\n",i); R:É um contador, que vai de 1 a 200 20.Quantas vezes são executadas as instruções dos seguintes laços: 20.1for (i=1 ; i<=20 ; i++) ... 20 vezes se i começar com valor 1. 20.2for (i=1 ; i<=20 ; i+=2) ... 10 vezes. 20.3for(i= -20 ; i<=20 ; i++) ... 41 vezes se i começar com valor -20. 20.4for (i=1 ; i<=10 ; i++) 50 vezes se i começar com valor 1. 20.5for (j=1; j<=5; j++) ... 5 vezes se j começar com valor 1. 21.[Exercício de Exame] Preencha os espaços em branco com o valor das respectivas colunas, depois de executada a instrução à sua esquerda. Nota: Devem ser utilizados os valores alterados das variáveis em cada uma das linhas.
Compartilhar