Faculdade Anglo-Americano
Curso de Ciência da Computação
Linguagem de Programação
Lista de Exercícios 1
1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os.
Main()
{
int a=1; b=2, c=3;
printf(“Os números são: %d %d %d \n, a, b, c)
}
2. Qual será a saída do programa abaixo:
Main()
{
printf(“%s \n%s \n%s”, “um”, “dois”, “tres”);
}
3. Qual será a impressão obtida por cada uma destas instruções? Assuma que fazem parte de um programa
completo.
a)
printf(“Bom dia! Shirley.”);
printf(“Você já tomou café? \n”);
b) printf(“A solução não existe! \n Não insista”);
c) printf(“Duas linhas de saída \n ou uma?”);
4. Identifique o tipo das seguintes constantes:
a) ‘\r’
b) 2130
c) –123
d) 33.28
e) 0x42
f) 0101
g) 2.0e30
h) ‘\xDC’
i) ‘\”’
j) ‘\\’
k) ‘F’
l) 0
m) ‘\0’
5. O que é uma variável em C?
6. Quais os 5 tipos básicos de variáveis em C?
7. Quais dos seguintes nomes são válidos para variáveis em C?
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
l)
3ab
_sim
n_a_o
00FIM
int
A123
X**x
_A
y-2
OOFIM
\meu
*y2
8. Quais as seguintes instruções são corretas?
a)
b)
c)
d)
e)
int a;
float b;
double float c;
unsigned char d;
long float e;
9. O tipo float ocupa o mesmo espaço que _____________ variáveis do tipo char.
10. Verdadeiro ou falso: tipos de variáveis long podem conceber números não maiores que o dobro da
maior variável do tipo int.
11. Escreva um programa que contenha uma única instrução e imprima na tela:
Esta e’a linha um.
Esta e’a linha dois.
12. Escreva um programa que imprima na tela:
um
dois
tres
13. Escreva um programa que declare 3 variáveis inteiras e atribua os valores 1, 2 e 3 a elas; 3 variáveis
caracteres e atribua a elas as letras a, b e c; finalmente imprima na tela:
As variaveis inteiras contem os numeros 1, 2 e 3.
As variaveis caracteres contem os valores a, b e c.
14. Reescreva o programa box.c para que desenhe uma moldura similar, mas que tenha 4 caracteres de
largura e 4 caracteres de altura. Use o caracter , de código BA hexa, para complementar a moldura.
Faculdade Anglo-Americano
Curso de Ciência da Computação
Linguagem de Programação
Lista de Exercícios 2
1.
Qual é o erro deste programa?
Main()
{
int i;
scanf(“%3d”, &i);
printf(“%3d”,i);
}
2.
Este programa tem um erro de lógica. Qual e?
Main()
{
int a, b, c;
printf(“Digite 3 numeros: \n”);
scanf(“%d %d %d”, a, b, c);
printf(“\n%d %d %d”, a, b, c);
}
3.
A função scanf() retorna o número de leituras feitas com sucesso. Considere o seguinte programa:
Main()
{
int i, j, k;
printf(“%d \n”, scanf(“%d %d %d”, &i, &j, &k));
}
Execute-o digitando os seguintes valores:
a)
b)
c)
d)
e)
f)
g)
1
1
a
3
^z
1
3.2
2
2
3
4
5
2
1
3
a
4
2.1
1
^z
2
Verifique os possíveis inteiros retornados por scanf(). Observe que o caractere ^z é obtido pressionando-se,
ao mesmo tempo, as teclas Ctrl e Z.
4.
O programa seguinte tem um erro de execução. Verifique.
Main()
{
int a, b=0;
a=5/b;
}
5.
Quais dos seguintes operadores são aritméticos?
a)
b)
c)
d)
+
&
%
<
6.
Assuma que todas as variáveis são do tipo int. Encontre o valor de cada uma delas e escreva um
programa que as imprima para verificar os resultados:
a)
b)
c)
d)
e)
x=(2+1)*6
y=(5+1)/2*3
i=j=(2+3)/4;
a=3+2*(b=7/2);
c=5+10%4/2
7.
Reescreva a seguinte instrução usando operador de incremento:
Número = número + 1;
8.
Como será interpretada a expressão x+ + +y?
a) x++ + y
b) x + ++y
Escreva um pequeno programa e verifique a interpretação dada em seu compilador.
9.
Reescreva a seguinte instrução usando operador aritmético de atribuição:
Laranja = laranja + x;
10. Considere o código:
int x=1, y=2, z=3;
x+ =y + =z + =7;
Quais serão os valores das variáveis x, y e z? Escreva um programa para checar a sua resposta.
11. Operadores relacionais são usados para:
a)
b)
c)
d)
combinar valores;
comparar valores;
distinguir diferentes tipos de variáveis;
trocar variáveis por valores lógicos.
12. Verdadeiro ou falso:
a) 1 > 2
b) ‘a’ < ‘b’
c)
d)
e)
f)
3= =2
‘1’= =’1’
3 >= 2
‘j’!= ‘j’
13. Qual será o valor de k?
j = 3;
k = j = = 3;
14. A precedência dos operadores determina qual é o operador:
a)
b)
c)
d)
mais importante;
usado primeiro;
mais adequado;
que opera em números maiores.
15. O comentário seguinte é correto?
/* Este é um comentário
/* que se estende em
/* várias linhas
*/
16. Modifique o programa idade.c para que imprima a idade em minutos ao invés de em dias.
17. Escreva um programa que solicite 3 números em ponto flutuante e imprima a média aritmética.
Faculdade Anglo-Americano
Curso de Ciência da Computação
Linguagem de Programação
Lista de Exercícios 3
1- Substituir for por while:
(a)
for (i=0; i <= 20; i++)
{ x = j/3;
printf("%d", x);
}
(b)
for (abc=2, semente= 0; semente <= 100; semente+=2)
{ sem1 = semente *2;
sem2 = semente + 1.5 * abc;
media = (sem1 + sem2) /2;
printf("%f", media);
}
2- Reescreva os trechos de código abaixo, utilizando os comandos indicados:
(a) for
do
{
printf( "%d", x );
x--;
}
while( x > 3 );
(b) if e for
k = 0;
while ( k <10)
{ printf( " Digite i: ");
scanf("%d", &i);
switch( i )
{ case 1: x = i;
case 2: x = j; break;
case 0: x = i + j;
default: x = i * j;
}
printf( "%d \n", x);
k+=2;
}
(c ) do-while
while( i < n )
{ i += 2;
n--;
}
3- Troque os comandos while por for. Faça teste de mesa para os trechos nas duas versões.
(a)
a = 0;
while ( a != 3)
{
a = a + 1;
printf("%d", a);
}
(b)
z = 10;
while( z > 0)
{
z = z - 3;
printf("%d", z);
}
(c )
k = 5;
while( k < 10)
{
k = k + 1.5;
printf("%d", k);
}
4- Transforme do-while em while e em for. Faça teste de mesa para o do-while.
(a)
a = 9;
do
a = a + 1;
while (a <= 10)
(b )
gh = 5; a = 8
do { a+= gh;
printf("%d", a);
}
while (gh != 5);
(c )
t = 0;
do
{ t = t + 1;
printf("%d", t*2);
}
while (t<8);
5- O que será impresso pelos programas a seguir?
(a)
main()
{
int a, b, c, cont;
cont = a = b = 1;
printf("\n%d\n%d",a ,b);
while (cont <= 8)
{
c = a + b;
printf("\n%d", c);
a = b;
b = c;
cont++;
}
}
(b)
main()
{
int x = 8531, s = 0;
while (x > 0)
{
s = s*10 + x % 10;
x = x / 10;
}
printf("\n%d", s);
}
(c )
main()
{
int cont = x = 1;
while (cont <= 8)
{
printf("\n%d",x);
x += cont;
cont++;
}
}
(d)
void main()
{
int x = 0, y = 1;
for( ; y < 100; y += 2 )
x = x + y;
printf( "\ny = %d\nx = %d\n", y, x );
}
(e)
void main()
{
int x = 9, y = 0;
do{
y = (x % 2) + 10 * y;
x = x / 2;
printf( "x = %d, y = %d\n", x, y );
} while( x );
while( y )
{
x = y % 100;
y = y / 10;
printf( "x = %d, y = %d\n", x, y );
};
}
(f)
for (i = 4 ; i+4<10 ; i++) printf ("\n%d",i);
(g)
void main()
{
int i, j, n;
n = 4;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
printf("%5d", j * i);
printf("\n");
}
}
6- Escrever um programa que lê uma seqüência de n valores, um de cada vez, e imprime a quantidade de
valores negativos.
7- Escrever um programa que lê um conjunto de valores, imprimindo, para cada valor: seu quadrado, seu
cubo e sua raiz quadrada. O conjunto é finalizado com o valor zero.
8- Escreva um programa que leia um número inteiro e mostre a tabuada da multiplicação conforme o
formato abaixo. Por exemplo, se n = 2, deverá ser impresso:
2x0=0
2x1=2
2x2=4
2x3=6
....
2 x 10 = 20
9- Escreva um programa para ler um número n (número de termos de uma progressão aritmética), a1 ( o
primeiro termo da progressão) e r (a razão da progressão). Calcular e imprimir os n termos desta progressão,
bem como a soma dos elementos.
10- Escrever um programa que leia 20 valores para uma variável n e, para cada um deles, calcule a tabuada
de 1 até n. Mostre a tabuada na forma:
1xn=n
2 x n = 2n
3 x n = 3n
.......
n x n = n2
11- Escreva um programa que leia um número inteiro positivo N. Calcule e mostre o maior quadrado menor
ou igual a N. Por exemplo, se N for igual a 38, o menor quadrado é 36 (quadrado de 6).
12- Escreva um programa que leia um número inteiro positivo e mostre o seu fatorial.
13- Escrever um programa que leia um número n que indica quantos valores devem ser lidos a seguir. Para
cada número lido, mostre uma tabela contendo o valor lido e o fatorial deste valor.
14- Escreva um programa que leia um número inteiro e indique se o mesmo é primo ou não.
15- Escreva um programa que mostre os 20 primeiros números primos.
16- Escrever um programa que calcula e escreve o produto dos números primos
entre 92 e 1478.
17- Faça um programa que imprime todos os números primos entre 1 e um certo valor m
18- Faça um programa que leia 2 valores: x( real ) e y (inteiro). O programa deve calcular e escrever o valor
de x elevado a y.
19- Imprimir os números entre 1 e 2000 que divididos por 11 dão resto igual a 5.
20- Escrever um programa que leia uma seqüência de números, calcule e imprima a média aritmética. A
seqüência termina quando for digitado o valor zero.
21- Dada uma seqüência com dois ou mais inteiros, contar quantas duplas de números adjacentes são
iguais.
Exemplo: A seqüência 4 2 9 9 3 7 7 7 0 ( 0 indica fim) tem 3 pares.
22) Escreva um programa C que leia um número inteiro de 4 dígitos, calcule e mostre a sua decomposição
em unidade, dezena, centena e milhar. Exemplo: 8531
unidade = 1
dezena = 3
centena = 5
milhar = 8
23) O cardápio de uma casa de hamburger é dado abaixo. Preparar um programa em C para ler a quantidade
de cada item comprado e calcular a conta ao final.
Mona’s Burgers Preço:
Hamburger (R$ 2,50)
Cheeseburger (R$ 3,30)
Batata Frita (R$ 1,50)
Refrigerante (R$ 0,60)
Milkshake (R$ 1,70)
O programa deve ter uma variável para cada item para ler a quantidade e multiplicar pelo preço do
respectivo item, somando tudo ao final, incluindo, também, os 10% dos serviços.
Download

6) Escreva um programa C que leia um número inteiro de 4 dígitos