Humberto Santos(4)

Propaganda
EXERCÍCIOS EM
LINGUAGEM C++
Humberto Santos
Formador: Luís Charneca
01-02-2012
EXERCÍCIOS EM LINGUAGEM C++
Conteúdo
1.
Exercício 1 ................................................................................... 2
2.
Exercício 2 ................................................................................... 2
3.
Exercício 3 ................................................................................... 2
4.
Exercício 4 ................................................................................... 2
5.
Exercício 5 ................................................................................... 3
6.
Exercício 6 ................................................................................... 4
7.
Exercício 7 ................................................................................... 5
8.
Exercício 8 ................................................................................... 5
9.
Exercício 9 ................................................................................... 6
10.
Exercício 10 ............................................................................... 7
11.
Exercício 11 ............................................................................... 8
12.
Exercício 12 ............................................................................... 8
13.
Exercício 13 ............................................................................... 9
14.
Exercício 14 ............................................................................... 9
15.
Exercício 15 .............................................................................. 10
16.
Exercício 16 .............................................................................. 11
17.
Exercício 17 .............................................................................. 12
Página 1 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
Caderno de Exercícios projeto C
1. Exercício 1
Explique porque está errado fazer
if (num=10) ...
R- Nesta situação o sinal (=) está como atribuição e deveria ser como operador
relacional (==).
2. Exercício 2
if(num) ...; é equivalente a if(num!=0) ...;
a. Verdadeiro
b. Falso
R- Falso
3. Exercício 3
Qual o valor de x após a seguinte sequência de comandos:
a = 10;
b = 20;
x = 0;
x = (b > a) ? b : a;
a)
0 b) 2 c) 10 d) 20 e) 40 f) Nenhuma correta
R- Alínea d) x=20
4. Exercício 4
Qual o valor de x após a sequência de comandos:
a = 1;
b = 2;
c = 3;
x = 0;
x = a < b ? a < c ? a : c : b < c ? b : c;
Página 2 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
a)
0 b) 1 c) 2 d) 3 e) Nenhuma correta
R- Alínea c) a=1
5. Exercício 5
Escreva um programa que coloque os números de 1 a 100 no ecrã na ordem
inversa (começando em 100 e terminando em 1).
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int controlo;
for (controlo=100;controlo>=1;controlo=controlo-1)
printf("%d - ",controlo);
system("PAUSE");
return 0;
}
Página 3 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
6. Exercício 6
Escreva um programa que leia uma string, conte quantos caracteres dessa
string são iguais a 'a' e substitua os que forem iguais a 'a' por 'b'. O programa
deve imprimir o número de caracteres modificados e a string modificada.
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
char string[100],letra1,letra2; /* String, ate' 99 caracteres */
int i, cont;
letra1=163; // letra ú
letra2=130; //letra é
printf("\n\n\tDigite uma frase: ");
gets(string);
printf("\n\n\tFrase digitada: %s \n", string);
cont = 0;
for (i=0; string[i] != '\0'; i=i+1)
{
if ( string[i] == 'a' ) /* Se for a letra 'a' */
{
cont = cont +1; /* Incrementa o contador de caracteres */
string[i] = 'b';
}
}
printf("\n\tN%cmero de caracteres a = %d\n\n",letra1, cont);
printf("\n\tA nova frase %c %s\n\n",letra2,string);
system("PAUSE");
Página 4 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
return 0;
}
7. Exercício 7
Escreva um programa que imprima no ecrã todos os números pares entre 1 e
100.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int controlo;
for (controlo=2;controlo<=100;controlo=controlo+2)
printf("%d - ",controlo);
system("PAUSE");
return 0;
}
8. Exercício 8
Escreva um programa que imprima no ecrã todos os números entre 1 e 100
divisíveis por 4.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
Página 5 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
{
int controlo;
int divisivel;
printf("Programa que mostra os numeros divisiveis por 4 ate 100: ");
scanf("%d",&divisivel);
for (controlo=100;controlo>=1;controlo=controlo-1)
{
if(controlo%divisivel==0)
printf("%d - ",controlo);
}
system("PAUSE");
return 0;
}
9. Exercício 9
Faça um programa que inverta uma string: leia a string e guarde-a invertida
numa outra string. Use o ciclo for para percorrer a string até o seu final.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char string1[100], string2[100],letra;
int contador, i, j;
letra=130;
printf("\n\n\tDigite o nome a inverter: ");
scanf("%s", &string1);
Página 6 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
contador = 0;
for (i=0; string1[i] != '\0'; i++) //for para descobrir o tamanho da
string
{
contador += 1;
}
j=contador-1;
for (i=0; string1[i] != '\0'; i++) //for para inverter a string
{
string2[j] = string1[i];
if (j == 0)
break;
j -= 1;
{
string2[contador] = '\0'; //Alteração e relação ao primeiro código
}
}
printf("\n\tO nome invertido %c: %s\n\n",letra, string2);
system("PAUSE");
return (0);
}
10.
Exercício 10
Os trechos de programa a seguir são equivalentes entre si, sob o ponto de
vista do que é impresso:
for (i = 0 ; i < 10; i++) printf("%d", i);
Página 7 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
e
for (i = 0 ; i < 10; ++i) printf("%d", i);
a) . Verdadeiro
b) Falso
R- A resposta correta é a alínea a) verdadeiro
11.
Exercício 11
O trecho de programa a seguir é
switch(num)
{
case 1;
printf("O número é 1 ");
break;
case 2;
printf("O número é 2 ");
break;
default;
printf("O número é diferente de 1 e 2");
break;
}
a) . Válido na linguagem C
b) . Não válido na linguagem C
R- A resposta correta é a alínea b, pois a seguir a um case leva ‘ : ‘ e não ‘ ; ‘
12.
Exercício 12
Sendo num uma variável inteira, o que imprime o trecho de código a seguir?
num = 1;
switch(num)
{
case 1:
printf("O número é 1 ");
Página 8 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
case 2:
printf("O número é 2 ");
default:
printf("O número é diferente de 1 e 2");
}
a)
b)
c)
d)
e)
O número é 1
O número é 2
O número é diferente de 1 e 2
O número é 1 O número é 2
O número é 1 O número é 2 O número é diferente de 1 e 2
R- A resposta correta é a alínea e “O número é 1 O número é 2 O número é
diferente de 1 e 2”
13.
Exercício 13
O ciclo for a seguir:
int i;
for ( i = 0 ; i <= 5; i++ , printf("%d ", i));
a)
b)
c)
d)
e)
Imprime 0 1 2 3 4 5
Não funciona, pois tem sintaxe errada
Imprime 1 2 3 4 5 6
Imprime 1 2 3 4 5
Nenhuma das opções anteriores
R- A resposta correta é a alínea c) 1 2 3 4 5 6
14.
Exercício 14
Elabore um programa que escreva no ecrã o carácter «*» 80 Vezes, utilizando
apenas um printf – ciclo while.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a=1;
Página 9 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
while (a<=81)
{ printf ("*");
a++;}
system("PAUSE");
return 0;
}
15.
Exercício 15
Refaça o programa anterior com o ciclo do.. while e o ciclo for.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a=1;
while (a<81){
printf ("*");
a++; }
{ for(a=1;a<=80;a++)
printf ("#",a); }
/* duas formas de fazer com comando do/while ou seja neste caso
antes de iniciar já vem com o valor de oitenta do comando
for e tem de se retirar
do
Página 10 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
{ printf ("$");
a--;}
while (a>1); */
a=1;
do { printf ("$");
a++; }
while (a<81);
system("PAUSE");
return 0;
}
16.
Exercício 16
Elabore um programa que faça a média de 3 números inseridos pelo utilizador
utilizando um ciclo.
// programa para pedir ao utilizador 3 números e achar a média
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x,let1,let2;
float media=0,a1;
let1=144; // É
let2=163; //ú
Página 11 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
printf ("\n\n\t\tPROGRAMA QUE MOSTRA A M%cDIA DE TRES
N%cMEROS\n\n",let1,let2);
for (x=1;x<=3 ;x++) {
printf ("\n\t\ INTRODUZA VALOR %d: ",x);
scanf("%f",&a1);
media=media+a1; // media += a1;
printf ("\n\n\tA M%cDIA DOS VALORES %c: %.2f
VALORES\n\n",let1,let1,(media)/x);
}
system("PAUSE");
return (0);
}
17.
Exercício 17
Elabore um programa que faça a média de N números inseridos pelo utilizador
utilizando um ciclo. O utilizador dirá quantos números pretende inserir.
#include <stdio.h>
#include <stdlib.h>
int main4567654(int argc, char *argv[])
{
int quant,x,let1,let2,let3;
float valor,media=0;
let1=144; // É
let2=163; //ú
Página 12 de 13
IMSI_002
Humberto Santos
EXERCÍCIOS EM LINGUAGEM C++
let3=160; // à
printf ("\n\n\t\tPROGRAMA QUE MOSTRA A M%cDIA DE V%cRIOS
N%cMEROS\n",let1,let3,let2);
printf ("\n\t\QUAL O N%cMERO DE NOTAS A INTRODUZIR : ",let2);
scanf("%d",&quant);
for (x=1;x<=quant;x++) //x++ é igual a x=x+1
{
printf ("\n\tQUAL A NOTA DO TESTE %d: ",x);
scanf ("%f",&valor);
media=media+valor;
}
printf ("\n\n\tA M%cDIA DOS TESTES %c: %.2f
VALORES\n\n",let1,let1,media/quant);
system("PAUSE");
return (0);
}
Página 13 de 13
IMSI_002
Humberto Santos
Download