REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

10
EEEFM “Belmiro Teixeira Pimenta” Curso Técnico em Informática Lista de Exercícios Avaliativos em C - profª Neide Oliveira Data de Entrega: 20/04/2011 Valor: 15,0 1.Faça um programa para ler um número do usuário e determinar se este número é par ou ímpar. (2 pontos) – OK! #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int numero, par, impar; puts ("\nForneca um numero do tipo inteiro:\ n"); scanf ("%d", &numero); if (numero % 2 == 0){ par = numero; printf ("\n O numero %d, e Par\n",par); }else{ impar = numero; printf ("\nO numero %d, e Impar\ n",impar); } system("PAUSE"); return 0; }

Transcript of REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

Page 1: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

Curso Técnico em InformáticaLista de Exercícios Avaliativos em C - profª Neide Oliveira

Data de Entrega: 20/04/2011 Valor: 15,0

1. Faça um programa para ler um número do usuário e determinar se este número é par ou ímpar. (2 pontos) – OK!

#include <stdio.h>#include <stdlib.h>

int main(int argc, char *argv[]){ int numero, par, impar; puts ("\nForneca um numero do tipo inteiro:\n"); scanf ("%d", &numero); if (numero % 2 == 0){ par = numero; printf ("\n O numero %d, e Par\n",par); }else{ impar = numero; printf ("\nO numero %d, e Impar\n",impar); } system("PAUSE"); return 0;}

2. Faça um programa para receber valores inteiros X, Y e Z do usuário e determinar se estes valores podem formar os lados de um triângulo. Em

Page 2: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

caso afirmativo, informar se o triângulo é eqüilátero, isósceles ou escaleno. (2,5 pontos) – OK!

#include <stdio.h>#include <stdlib.h>#include <math.h>

int main(int argc, char *argv[]){ int X, Y, Z; printf("\n Informe a primeira medida:\n"); scanf ("%d", &X); printf("\n Informe a segunda medida:\n"); scanf ("%d", &Y); printf("\n Informe a terceira medida:\n"); scanf ("%d", &Z); if ((X<Y+Z)||(Y<X+Z)||(Z<X+Y)||(X<=Y+Z)||(Y<=X+Z)||(Z<=X+Y)||(X>Y+Z)||(Y>X+Z)||(Z>X+Y)||(X>=Y+Z)||(Y>=X+Z)||(Z>=X+Y)){ if ((X==Y)&&(Y==Z)){ printf("\n Os numeros: %d %d %d, Formam um Triangulo Equilatero\n", X,Y,Z); }else if ((X==Y)||(X==Z)||(Z==Y)){ printf("\n Os numeros: %d %d %d, Formam um Triangulo Isosceles\n", X,Y,Z); }else if ((X!=Y)&&(X!=Z)&&(Y!=Z)){ printf("\n Os numeros: %d %d %d Formam um Triangulo Escaleno\n", X,Y,Z); }else{ printf("\n Os numeros fornecidos: %d %d %d, Nao Formam um Triangulo\n",X,Y,Z); }} system("PAUSE"); return 0;}

3. Construa uma mini calculadora, com as operações matemáticas básicas (adição, subtração, divisão e multiplicação), ao receber o símbolo correspondente do usuário (+, -, / ou *) e dois números reais deve retornar

Page 3: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

o resultado da operação recebida sobre estes dois números. (2 pontos) – OK!

#include <stdio.h>#include <stdlib.h> main(){ int prim_num,seg_num,soma,subtrai,divide,multiplica,result; char opcao; printf ("Digite uma das opcoes abaixo:\n"); printf ("opcao + Soma\n"); printf ("opcao - Subtracao\n"); printf ("opcao / Divisao\n"); printf ("opcao * Multiplicacao\n"); printf ("\n"); scanf ("%c",&opcao); printf ("Forneca o Primeiro Numero\n"); scanf ("%d", &prim_num); printf ("Forneca o Segundo Numero\n"); scanf ("%d", &seg_num); if (opcao == '+'){ soma = prim_num + seg_num; printf ("A Soma dos numeros e igual a: %d\n",soma); printf("\n"); }else if (opcao == '-'){ subtrai = prim_num - seg_num; printf ("A Subtracao dos numeros e igual a: %d\n",subtrai); printf("\n"); }else if (opcao == '/'){ divide = prim_num / seg_num; printf ("A Divisao dos numeros e igual a: %d\n",divide); printf("\n"); }else if (opcao == '*'){ multiplica = prim_num * seg_num; printf ("A Multiplicacao dos numeros e igual a: %d\n",multiplica); printf("\n"); }else{ printf ("Opcao Invalida!\n"); } system("PAUSE"); return 0;}4. Faça um programa para mostrar os 100 primeiros termos da série de Fibonacci. (2 pontos) – OK!

#include <stdio.h>#include <stdlib.h>

Page 4: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

int fibonacci(int num);

int main(int argc, char *argv[]){ int Qtde_Serie, contador; puts("\nInforme a quantidade desejada da serie de Fibonacci:\n"); scanf("%d", &Qtde_Serie);

for(contador=0; contador<=Qtde_Serie-1; contador++){ printf("\nO Fibonacci do Numero: %d e: %d\n", contador+1, fibonacci(contador+1)); } system("PAUSE"); return 0;}int fibonacci(int num){ if ((num==1)||(num==2)){ return 1; }else{ return fibonacci(num-1)+fibonacci(num-2); }}

5. Faça um programa no qual o usuário vai entrando sucessivamente com valores positivos. Quando o usuário entrar com um valor negativo o programa pára de pedir valores e calcula a média dos valores já fornecidos. (2 pontos) – OK!

#include<stdio.h>#include<stdlib.h>

Page 5: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

main(){ int numero, soma=0, cont=0; float media; printf ("\nDigite um numero inteiro (negativo para sair): "); scanf ("%d", &numero); while(numero>0) { soma=soma+numero; cont=cont+1; printf ("\nDigite um numero inteiro positivo: "); scanf ("%d", &numero); } if (cont>=1) { media=(float)soma/cont; printf ("\nA media calculada foi %.2f\n", media); } else printf ("\nNenhum valor positivo foi digitado!\n"); system("pause");}

6. Faça um programa que sorteie um número de 0 a 100 e que permita que o usuário (sem conhecer o número sorteado) tente acertar. Caso não acerte, o programa deve imprimir uma mensagem informando se o número sorteado é maior ou menor que a tentativa feita. Ao acertar o número, o programa deve imprimir a quantidade de tentativas feitas. (2,5 pontos)-OK!

#include <stdio.h>#include <stdlib.h>#include <time.h>

Page 6: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

int main(){ int randomico,numero, cont;

srand ((unsigned) time(NULL)); randomico = rand() %100 +1; //printf ("%d\n",randomico); printf ("Digite um numero para verificar se voce acertou o corteio\n"); scanf ("%d", &numero); for (cont=1;randomico!=numero;cont++){ if (numero > randomico){ printf ("\nO numero %d e maior que o numero sorteado\n",numero); printf("\n"); printf ("Digite Novamente um numero para verificar se voce acertou o corteio\n"); scanf ("%d", &numero);}

if (numero < randomico){ printf ("\nO numero %d e menor que o numero sorteado\n",numero); printf("\n"); printf ("Digite Novamente um numero para verificar se voce acertou o corteio\n"); scanf ("%d", &numero);} } printf ("\n Parabens voce acertou! O numero sorteado foi: %d", randomico); printf("\n"); printf ("\n Voce tentou %d vezes", cont); printf("\n"); system ("Pause"); return 0;}

7. Diferencie as estruturas de repetição citando suas diferenças. (for; while; do-while) (1 ponto) OK

O FOR, normalmente é utilizado quando se conhece a quantidade de vezes que um determinado processo deve ser executado, embora isto não seja totalmente verdade, pois em algumas linguagens esses comandos de loop podem ser utilizados de diversas maneiras.

O WHILE e o DO ... WHILE são utilizados quando o programador não sabe quantas vezes uma determinada parte do código precisa ser executada. Um exemplo clássico pode ser exemplificado pela leitura de um arquivo texto qualquer, onde não se conhece

Page 7: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

a quantidade de linhas que tem no arquivo, caso a intenção seja ler o arquivo completo, será necessário usar um desses loops.

O WHILE faz o teste logo quando é chamado, ou seja, dependendo da condição testada, não vai executar o processo sequer uma única vez. (exemplo: se o arquivo de texto estiver vazio).

O DO ... WHILE faz o teste ao final da execução, sendo assim, será processado, pelo menos, 1 vez, mesmo que o teste não satisfaça a sentença lógica.

8. Cite a biblioteca padrão para entrada e saída de dados em C, demonstre a sua sintaxe. (1 ponto) OK

A Biblioteca padrão para entrada e saída de dados é : #include <stdio.h>Sua sintaxe na Linguagem C é:

#include <stdio.h>Main(){ <Declaração do tipo de variáveis>; if <Condição>; { <Comandos>; } else {

Page 8: REVISÃO PARA A PROVA DE TÉCNICAS DE PROGRAMAÇÃO

EEEFM “Belmiro Teixeira Pimenta”

<Comandos>;

System (“Pause”); Return 0;}

9. Faça um programa que mostre se o número fornecido pelo usuário forma ou não um quadrado perfeito e no final imprima a sua raiz caso ele forme um quadrado perfeito. Caso contrário, informar que o número digitado pelo usuário não forma um quadrado perfeito.

#include<stdio.h>#include<conio.h>#include<math.h>main(){ int numero,raiz; numero=0; raiz=0; //clrscr(); printf("\n\t\t\tSABER SE E UM QUADRADO PERFEITO"); printf("\n\n\nDigite um numero INTEIRO: "); scanf("%d",&numero); raiz=sqrt(numero); //sqrt----->raiz quadrada if (pow(raiz,2)==numero)//pow ----> potenciacao { printf("\n\nO numero digitado %d e um quadrado perfeito sua raiz quadrada e: %d",numero,raiz); } else { printf("\n\nO numero digitado %d nao e um quadrado perfeito",numero); } printf("\n\n\nTecle enter para sair"); getch();}