Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista de Exercícios
Linguagem de programação
Profº Nelson
Curitiba
2010
Programação Básica – fluxo de controle – bases
numéricas
1)a)27 f)35
b)28 g)1B
c)29 h)1C
d)33 i)1D
e)34
2) x=12
x=10
x=18
int main(){
int n;
while(1){
scanf("%d",&n);
printf("\n%x\n",n);}
return 0; }
b) #include <stdio.h>
int main(){
int n;
while(1){
scanf("%x",&n);
printf("\n%d\n",n); }
return 0; }
c) #include <stdio.h>
int main(){
int n;
while(1){
scanf("%x",&n);
printf("\n%o\n",n);}
return 0; }
d) #include <stdio.h>
int main(){
int n;
while(1){
scanf("%o",&n);
printf("\n%x\n",n);}
return 0; }
e) #include <stdio.h>
int main(){
int n;
while(1){
scanf("%o",&n);
printf("\n%d\n",n);}
return 0; }
f) #include <stdio.h>
int main(){
int n;
while(1){
scanf("%d",&n);
printf("\n%o\n",n);}
return 0; }
4)
Linguagem de programação (exercícios)
1) #include <stdio.h>
#include <conio.h>
int main()
int base,n,resultado;
while(1){
scanf("%d",&base);
scanf("%d",&n);
resultado=potencia(base,n);
printf("\n\n%d^%d = %d\n",base,n,resultado);
printf("\n(FIM DO PROGRAMA)\n\n\n\n\n");
getch();
return 0;
int x,y,i;
for(i=0,y=1;n>i;i++)
y = y*base;
return y; }
2) #include <stdio.h>
int main()
int base,n,resultado2,resultado3,resultado5;
while(1){
n = 0;
base = 2;
resultado2=potencia(base,n);
++n;
while (n<=3){
resultado2=potencia(base,n);
printf("%d,",resultado2);
++n;}
resultado2=potencia(base,n);
printf("%d\n",resultado2);
n = 0;
base = 3;
resultado3=potencia(base,n);
++n;
while (n<=3){
resultado3=potencia(base,n);
printf("%d,",resultado3);
++n;}
resultado3=potencia(base,n);
printf("%d\n",resultado3);
n = 0;
base = 5;
resultado5=potencia(base,n);
++n;
while (n<=3){
resultado5=potencia(base,n);
printf("%d,",resultado5);
++n;}
resultado5=potencia(base,n);
printf("%d\n",resultado5);
printf("\n(FIM DO PROGRAMA)\n\n\n\n\n");
getchar ();
return 0;
int x,y,i;
for(i=0,y=1;n>i;i++)
y = y*base;
return y; }
3) #include <stdio.h>
int main()
int base,n,resultado;
while(1){
n = 0;
base = 5;
resultado=potencia(base,n);
printf("A menor potencia de cinco que eh maior que seis milhoes eh: %d",resultado);
getchar ();
return 0;
return 0;
int x,y,i;
x = base;
i = 5;
y = 1;
while (x<=6000000){
x = x*i;
y = ++y;
return(y); }
4)
5)
6) #include <stdio.h>
#include <math.h>
int main()
/* f(x)=30*(sen(15*x)+45 */
double x,y;
x = 2;
x = f(x);
printf("f(2) = %.2lf\n",x);
x = 0;
x = f(x);
printf("f(0) = %.2lf\n",x);
x = 5.5;
x = f(x);
printf("f(5) = %.2lf\n",x);
x = 20;
x = f(x);
printf("f(20) = %.2lf\n",x);
getchar ();
double f(double x)
x = 30*(sin(15*x))+45;
return x; }
7) #include <stdio.h>
#include <conio.h>
int main()
while (1){
int num,q,fatorial;
printf("Digite o numero que deseja calcular seu fatorial: "); //funciona de 0 a 19.
scanf("%d",&num);
if (num<0){
else{
fatorial = calculo(num);
printf("\n%d! = %d\n",num,fatorial);}
q=getch();
if (q==0x71 || q==0x51){
return 0;}
int calculo(int x)
int cont,fat;
fat = 1;
for (cont=1;cont<=x;++cont)
fat=fat*cont;
return fat; }
8) #include <stdio.h>
#include <conio.h>
#include <math.h>
int entrada,resultado,x,y;
int main(){
while (1){
printf("(se voce digitar um numero decimal o programa nao funcionara\ne seu cu nao sera
perdoado)\n");
printf("x = ");
scanf("%d",&x);
printf("\n");
printf("y = ");
scanf("%d",&y);
printf("\n1)Soma\n2)Subtracao\n3)Multiplicacao\n4)Divisao\n5)Potenciacao\n\nOpcao:");
scanf("%d",&entrada);
switch(entrada){
case 1:
resultado = soma(x,y);
case 2:
resultado = subtracao(x,y);
break;
case 3:
resultado = multiplicar(x,y);
break;
case 4:
resultado = dividir(x,y);
if (resultado==0){
break;}
if (x%y!=0){
printf("\nresto = %d\n\n\n\n\n",x%y);
break;}
printf("\nresto = 0\n\n\n\n\n");
break;
case 5:
resultado = potencia(x,y);
break;
/*default:
getch();*/
} //fim do switch
getch();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
} // fim do while
} // fim do main
int result;
result=x+y;
return result;
{ int result;
result=x-y;
return result;
mult = x;
while(y>1){
x=x+mult;
y=--y;}
result = x;
return result;
int dividir (int x,int y) /*miguelei essa parte porque não consegui fazer apenas com + e - */
{ int result,q;
if(y==0){
return 0;
result = x/y;
return result;}
{ int i,pot;
for(i=0,pot=1;y>i;i++)
pot = pot*x;
return pot; }
9) #include <stdio.h>
#include <conio.h>
/*
//int d, m, a;
int main()
{while(1){
int d, m, a;
scanf("%d/%d/%d",&d,&m,&a);
d++;
printf("\ndata invalida\n");
getch();
return 0;}
if(d>dias_do_mes(m,a)){
m++;
d = 1;
if (m>12){
m = 1;
a++;
getch();
return 0;}
getch();
int d;
d = 31;
return d;}
d = 30;
return d;}
/*São bissextos todos os anos múltiplos de 400, p.ex: 1600, 2000, 2400, 2800
Não são bissextos todos os múltiplos de 100 e não de 400, p.ex: 1700, 1800, 1900, 2100,
2200, 2300, 2500…
São bissextos todos os múltiplos de 4 e não múltiplos de 100, p.ex: 1996, 2004, 2008, 2012,
2016…*/
d = 29;
return d;}
else if(m==2)
d = 28;
return d;}
Funções
1) Para que serve a palavra reservada "extern"?
R: Para definir na função que a variável usada é externa a ela, está por exemplo
declarada no arquivo-fonte.
Ex: f();
int ehnois;
f(){
Se não fosse definido “extern” dentro da função, ehnois seria uma nova variável
local e não uma cópia da variável externa.
3) Imagine e descreva alguns exemplos onde você desejará usar "static" para uma
variável externa!
Global
Local
Local
5 - O que é passagem por valor?
R: A função recebe uma cópia da variável que é fornecida quando é invocada. Todas as
alterações feitas dentro da função não vão afetar os valores originais.
R: Neste caso o que é enviado para a função é uma referência às variáveis utilizadas, e
não uma simples cópia, pelo que as alterações realizadas dentro da função irão
certamente alterar os valores contidos nessas variáveis. Obrigatório o uso de
apontadores.
7- Por que se deve usar a palavra reservada static quando se cria uma tabela de
constantes dentro de uma função?
8)
Getchar e Putchar
1)a)Pedirá para o usuário uma digitação finalizada pelo enter, tornando o caracter em um
numero inteiro que pode ser o código do caracter (na tabela ascii) ou o valor -1
correspondendo ao fim do ficheiro. É escrita no cabeçalho stdio.h
b)Escreve o caracter cujo codigo é representado na tabela ascii tendo como o argumento
um número de 0 a 255. É escrita no cabeçalho stdio.h
c)Essa função serve para limpar os buffer.Como por exemplo fflush(stdin) limpa os buffer
de entrada. É escrita no cabeçalho stdio.h
e)Responsável pela entrada/saída. Funções desta bibliotéca: fprintf, printf, fscanf, scanf,
getchar, putc, getc, fopen, fclose.
f) access, alarm, brk, chdir, chroot, chown, close, confstr, crypt, ctermid, cuserid, dupdup2, encrypt,
execl, execle, execlp, execv, execve, execvp, exit, fchown, fchdir, fdatasync, Fork, fpathconf, Fsync,
ftruncate, Getcwd, getdtablesize, getegid, geteuid, Getgid, getgroups, gethostid, getlogin,
getlogin_r, getopt, getpagesize, getpass, getpgid, getpgrp, getpid, getppid, getsid, getuid, getwd,
isatty, lchown, link, lockf, lseek, nice, pathconf, pause, pipe, pread, pthread_atfork, pwrite, read,
readlink, rmdir, sbrk, setgid, setpgid, setpgrp, setregid, setreuid, setsid, setuid, sleep, swab,
symlink, sync, sysconf, tcgetpgrp, tcsetpgrp, truncate, ttyname, ttyname_r, ualarm, unlink, usleep,
vfork, write.
g) Funções desta bibliotéca: abort, abs, atexit, atof, atoi, atol, bsearch, calloc, div, exit, free,
getenv, labs, ldiv, malloc, mblen, mbstowcs, mbtowc, qsort, rand, realloc, srand, strtod, strtol,
strtoul, system, wcstombs, wctomb, itoa
2)Nesse programa ele irá pegar o primeiro digito e imprimilo novamente e após essa
impressão ele imprime o “digito+1(decimal)” na tabela ascii.Por exemplo se eu digitar ‘A’
que é o número 65(decimal) da tabela ascii a saída será: “AB”;sendo que ‘B’é o número
66(decimal) na tabela ascii.
3) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra;
while((letra=getchar())!=EOF){
putchar(letra);
if(letra!=0xA){putchar (letra+1);}
printf("\nACABOU!!!\n\n\n");
return 0; }
4) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra;
while((letra=getchar())!=EOF){
printf("\nTermino!!!\n\n\n");
return 0; }
5) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra;
while((letra=getchar())!=EOF){
printf("\nTermino!!!\n\n\n");
return 0; }
6)
7) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,linhas;
linhas=0;
while((letra=getchar())!=EOF){
if(letra==0xA){linhas++;}
putchar(letra);}
return 0; }
8) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,characteres;
characteres=0;
while((letra=getchar())!=EOF){
if(letra>=0x20){++characteres;}
putchar(letra);}
return 0; }
9) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,contagem;
contagem=0;
contagem++;
while((letra=getchar())!=EOF){
putchar(letra);}
return 0; }
10) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,espacos;
while((letra=getchar())!=EOF){
if(letra==0x20){espacos++;}
else{espacos=0x0;}
if(espacos<2){putchar(letra);}
printf("\nFim!!!\n\n\n");
return 0; }
#include <unistd.h>
#include <stdlib.h>
int main()
int letra;
while((letra=getchar())!=EOF){
printf("\nACABOU!!!\n\n\n");
return 0; }
12) #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,palavras;
palavras=0;
while((letra=getchar())!=EOF){
if(letra==0xA){palavras++;}
if(letra==0x20){palavras++;}}
printf("\nSão %d palavras\n\n",palavras);
return 0; }
#include <unistd.h>
#include <stdlib.h>
int main()
int letra,linha,characteres;
linha=0;
characteres=0;
while((letra=getchar())!=EOF){
if (letra==0xA){linha++;}
if (letra!=0xA){characteres++;}
putchar(letra);}
#include <unistd.h>
#include <stdlib.h>
int main()
int letra;
while((letra=getchar())!=EOF){
if(letra==0x20){putchar(0xA);}
if(letra!=0x20){putchar(letra);}
printf("\nAcabou!!!\n");
return 0; }
15)
16)
17)
18)