Exercícios básicos sobre a linguagem C

As seguintes questões foram extraídas do material '300 ideias para Programar', de Virgílio Vasconcelos Vilela 10 questões pra você resolver, sobre saída.

Para que você aprenda bem a linguagem C e seja um programador profissional, é de suma importância que tente fazer todos os exercícios de nossa apostila de C;

Clique aqui e saiba como obter seu certificado de programação C! Entre já no Mercado de Trabalho!


Use a função printf para resolver os seguintes exercícios:


1. Frase na tela  - Implemente um programa que escreve na tela a frase "O primeiro programa a
gente nunca esquece!".

2. Etiqueta - Elabore um programa que pede seu nome, endereço, CEP e telefone. Ele deve imprirmir seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.

3. Frases assassinas - Faça um programa que mostre na tela algumas frases assassinas, que são
aquelas que fazem com muitas idéias sejam perdidas antes que amadureçam ou seja aprofundadas.
Eis alguns exemplos (bole também os seus):
"Isto não vai dar certo"
"Você nunca vai conseguir"
"Você vai se estrepar"
"Não vai dar em nada"
"Está tudo errado!"

4. Mensagem - Escreva uma mensagem para uma pessoa de que goste. Implemente um programa
que imprima essa mensagem, e envie-a.

5. Ao mestre - Escreva um bilhete ao seu professor, informando seus objetivos nesta disciplina e o
que espera dela e do professor. Implemente um programa que mostra seu bilhete na tela.

6. Quadrado - Escrever um programa que mostre a seguinte figura no alto da tela:

XXXXX
X   X
X   X
X   X
XXXXX

7. Tabela de notas - Escreva um programa que produza a seguinte saída na tela:
ALUNO(A)          NOTA
=========         =====
ALINE              9.0  
MÁRIO              DEZ
SÉRGIO             4.5    
SHIRLEY            7.0

8. Letra grande - Elabore um programa para produzir na tela a letra C, de C Progressivo, usando a própria. Se fosse
‘C’, seria assim:
CCCCC
C
C
CCCCC

9. Menu - Elabore um programa que mostre o seguinte menu na tela:
Cadastro de Clientes
0 - Fim
1 - Inclui
2 - Altera
3 - Exclui
4 - Consulta
Opção: 

10. Pinheiro  - Implemente um programa que desenhe um "pinheiro" na tela, similar ao abaixo.
Enriqueça o desenho com outros caracteres, simulando enfeites.
       X
      XXX
     XXXXX
    XXXXXXX
   XXXXXXXXX
  XXXXXXXXXXX
 XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
       XX
       XX
      XXXX

26 comentários:

Anônimo disse...

Boa tarde amigo, muito obrigado pelo curso.
Estou começando agora em programação,terminei os conceitos básicos de C e terminei os exercicios básicos, só não compreendi como faço o exercicio número 2-Etiqueta, ele pedi que a pessoa escreva seu nome e vai imprimir depois, mais como fazer imprimir mais de uma letra, sendo o tipo CHAR podendo imprimir apenas um caractere.
Desde já obrigado.

Thiago disse...

Para imprimir e ler mais de um caractere, você deve usar o "%s", ou simplesmente "s", no identificador. Porém, perceba que isso funciona apenas com o "scanf", todavia, ele não reconhece espaços, então, digitando o nome completo ele só pegará a primeira palavra; para pegar todas as palavras, incluindo os espaços, use o "gets". Ex.:

char palavra[30];

printf("Digite uma palavra: ");
gets(palavra);
printf("A palavra digita foi: %s\n", palavra);

Anônimo disse...

Por que o programa da etiqueta está dando erro na hora de por o CEP? Aparece que o programa "parou de funcionar"

int main()
{
char nome[10], endereco[30];
int cep;

printf("Qual seu nome \n\n");
gets(nome);
printf("Seu nome e %s\n\n\n",nome);

printf("Qual seu endereco \n\n");
gets(endereco);
printf("Seu endereco e %s\n\n\n",endereco);

printf("Qual seu cep\n");
scanf("%d",cep);
printf("Seu cep e %d",cep);



system("pause");
return(0);


}

Ayres Rodrigues Junior disse...

como se declara uma variável do tipo string no C

killua Z. D. disse...

Anonimo seu programa da erro pois vc nao incluiu o "&" dentro do scanf, por exemplo
scanf("%s", &nome);

Rodrigo Mendes disse...

Ola, estou adorando o curso e muito facil de aprender, estou fazendo o exercicio 2 das etiquetas e nao estou conseguindo fazer 2 coisas, apos digitar o nome, ele fica parado esperando digitar mais alguma coisa, apos digitar ele desce todos de uma vez so, mesmo eu tendo dado o espaço antes dos outros % no scanf, segue meu codigo abaixo:

/*2. Etiqueta - Elabore um programa que pede seu nome, endereço, CEP e telefone.
Ele deve imprirmir seu nome completo na primeira linha, seu endereço na segunda,
e o CEP e telefone na terceira.*/
#include

int main ()
{
char nome, sobrenome, logradouro;
int endnumero, cep, ddd, telenumero;
printf("Digite seus dados a seguir: \n");
//Nome
printf("NOME: ");
scanf(" %s\n", &nome);
printf("SOBRENOME: ");
scanf(" %s\n", &sobrenome);

//enderço
printf("LOGRADOURO: ");
scanf(" %s\n", &logradouro);
printf(" NUMERO: ");
scanf(" %i\n", &endnumero);


// CEP
printf("CEP: ");
scanf(" %i\n", &cep);

// telefone
printf("DDD: ");
scanf(" %i\n", &ddd);
printf("NUMERO: ");
scanf(" %i\n", &telenumero);

//Etiqueta
printf("NOME:%c %c\n", nome, sobrenome);
printf("ENDERECO:%c %i\n", logradouro, endnumero);
printf("CEP:%i TELEFONE:%i %i\n", cep, ddd, telenumero);
}

Anônimo disse...

Rodrigo, quando se lê uma string ("%s"), não é necessário colocar o & antes do nome da variável.
Na exibição da etiqueta o mais usual seria:
"printf("NOME:%s %s\n", nome, sobrenome);"

Tenta assim e vê se dá certo ;)

Anônimo disse...

#include
#include

int main()
{

char nome[30], ende[30], celu[30], cep[30];


printf("Digite seu nome: ");
gets(nome);


printf("Digite o seu endereco: ");
gets(ende);

printf("Digite seu numero de celular: ");
gets(celu);


printf("Digite seu CEP: ");
gets(cep);


printf("Nome: %s\n", nome);

printf("Endereco: %s\n", ende);

printf("Celular: %s\n", celu);

printf("CEP: %s\n", cep);


system("pause");

return 0;
}

Douglas Silva disse...

Rodrigo Mendes, você tem que declarar o char como arrays, afinal de contas uma string é um array de muitos char!

Exemplo:

char nome[30];
char sobrenome[30];...

e por ai vai continuando :)
Espero que minha dica lhe sirva de ajuda

Arucard disse...

O código que eu fiz e funcionou na questão 2 foi o seguinte:

#include

int main()
{
char nome[30], cep[100], tel[100], end[200];
printf("digite seu nome: ");
gets(&nome);
printf("digite seu endereco: ");
gets(&end);
printf("digite seu CEP: ");
gets(&cep);
printf("digite seu telefone: ");
gets(&tel);

printf("Nome: %s \n", nome);
printf("Endereco: %s \n", end);
printf("CEP e telefone:%s e %s", cep, tel);

//gets para digitar palavras e numeros com espaço sem dar erro na hora de mostrar
}

Brittivaldo disse...

Aprendi muito Hoje.
Obrigado!

Anônimo disse...

Não conseguir achar o erro,o resultado sai assim:

Digite seu nome:
blablabla
Seu endereco
Rua:blalbalba
N:3434
CEP:43434344
DDD:324
Telefone:43434343


Nome:blablabla
Endereco:blalbalba N:0.000000
CEP: 648518509866265860.000000 DDD:(68071646331837108000000000000000000000000000
000000000000000.000000)680716447390276790000000000000000000000000000000000000000
00.000000

Process returned 170 (0xAA) execution time : 13.332 s
Press any key to continue.

Eis o meu codigo

#include

int main()
{
//2. Etiqueta - Elabore um programa que pede seu nome, endereço, CEP e telefone.
//Ele deve imprirmir seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.

char nome[30],rua[50];
int numerocasa, cep, ddd, tel;

printf("Digite seu nome:\n");gets(nome);

printf("Seu endereco\n");

printf("Rua:"); gets(rua);

printf("N:"); scanf("%f",&numerocasa);
fflush(stdin);

printf("CEP:"); scanf("%f",&cep);
fflush(stdin);

printf("DDD:"); scanf("%f",&ddd);
fflush(stdin);

printf("Telefone:"); scanf("%f",&tel);
fflush(stdin);

printf("\n\nNome:%s\n",nome);
printf("Endereco:%s N:%f\n",rua,numerocasa);
printf("CEP: %f DDD:(%f)%f\n",cep,ddd,tel);

Brittivaldo disse...

Observei que existe um erro de programação no seu código anônimo:

Aqui em negrito >> printf("N:"); scanf("%f",&numerocasa); << o mesmo acontece no printf(...);

"%f" é um string de controle de formado usado apenas para tipo
fracionas/ flutuantes (float) [Ex.: 10.5];

"%i" é um string de controle de formado usado apenas para tipo
inteiro (int) [Ex.: 105];

&numerocasa é uma variável do tipo inteiro (int),
então invés de "%f" use corretamente "%i".

Eu não testei, mas acho que seja esse o seu problema.

Otavio disse...

segue:

#include
#include

int main()
{

char nome[101] = " ", endereco[51]=" ", cep[11]="", fone[11]="";

printf("\n\n#########################################################\n\n");

printf("Digite Seu nome Completo\n");
scanf("%[^\n]s", &nome); // O [^\n] significa que todos os caracteres serão lidos menos a quebra de linha
printf("________________________________\n");

__fpurge(stdin);
printf("Digite Endereço\n");
scanf("%[^\n]s", &endereco);
printf("________________________________\n");

__fpurge(stdin);
printf("Digite seu CEP\n");
scanf("%[^\n]s", &cep);
printf("________________________________\n");

printf("Digite o numero do seu telefone\n");
scanf("%s", &fone);
printf("________________________________\n");


printf("\n\t Os dados digitados foram:\n\n");

printf("Nome : %s\n", nome);
printf("Endereco : %s\n", endereco);
printf("CEP %s e Telefone %s\n", cep, fone);

printf("\n\n#########################################################\n\n");
}

Anônimo disse...

segue:

#include
#include

int main()
{

char nome[101] = " ", endereco[51]=" ", cep[11]="", fone[11]="";

printf("\n\n#########################################################\n\n");

printf("Digite Seu nome Completo\n");
scanf("%[^\n]s", &nome); // O [^\n] significa que todos os caracteres serão lidos menos a quebra de linha
printf("________________________________\n");

__fpurge(stdin);
printf("Digite Endereço\n");
scanf("%[^\n]s", &endereco);
printf("________________________________\n");

__fpurge(stdin);
printf("Digite seu CEP\n");
scanf("%[^\n]s", &cep);
printf("________________________________\n");

printf("Digite o numero do seu telefone\n");
scanf("%s", &fone);
printf("________________________________\n");


printf("\n\t Os dados digitados foram:\n\n");

printf("Nome : %s\n", nome);
printf("Endereco : %s\n", endereco);
printf("CEP %s e Telefone %s\n", cep, fone);

printf("\n\n#########################################################\n\n");
}

John Santos disse...

--------------------------------------------------------------------------------------------------------------------
2. Etiqueta - Elabore um programa que pede seu nome, endereço, CEP e telefone. Ele deve imprirmir
seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.
---------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
char nome;

printf("Preencha o Cadastro a Seguir:\n");

printf("\nNome Completo: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", 74,111,104,110,
32,83,97,110,116,111,115,32,83,111,117,122,97);

printf("\nEndereço Completo: Rua %c%c%c%c%c%c%c%c%c%c%c%c%c Bairro: %c%c%c%c%c%c\n",
83,97,111,32,80,101,100,114,111,32,110,52,55,67,101,110,116,114,111);

printf("\nCEP: %c%c%c%c%c-%c%c%c TEL: (%c%c)%c%c%c%c-%c%c%c%c\n\n",52,52,57,51,
48,48,48,48,55,52,56,56,48,49,48,48,48,48);

return 0;
}

John Santos disse...

----------------------------------------------------------------------------------------------------------------------
6. Quadrado - Escrever um programa que mostre a seguinte figura no alto da tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c\n",88,88,88,88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c%c%c%c%c\n",88,88,88,88,88);

return 0;
}



----------------------------------------------------------------------------------------------------------------------
7. Tabela de notas - Escreva um programa que produza a seguinte saída na tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c%c%c%c %c%c%c%c\n",65,76,85,78,79,40,65,41,78,79,84,65);
printf("%c%c%c%c%c%c%c%c%c %c%c%c%c%c\n",61,61,61,61,61,61,61,61,61,61,61,61,61,61);
printf("%c%c%c%c%c %c%c%c\n",65,76,73,78,69,57,46,48);
printf("%c%c%c%c%c %c%c%c\n",77,65,82,73,79,68,69,90);
printf("%c%c%c%c%c%c %c%c%c\n",83,69,82,71,73,79,52,46,53);
printf("%c%c%c%c%c%c%c %c%c%c\n",83,72,73,82,76,69,89,55,46,48);

return 0;
}



-------------------------------------------------------------------------------------------------------------------------
8. Letra grande - Elabore um programa para produzir na tela a letra C, de C Progressivo, usando a própria. Se fosse
‘C’, seria assim:
------------------------------------------------------------------------------------------------------------------ ------
#include

int main(void)
{
printf("%c%c%c%c%c\n",67,67,67,67,67);
printf("%c\n",67);
printf("%c\n",67);
printf("%c%c%c%c%c\n",67,67,67,67,67);

return 0;
}

John Santos disse...

----------------------------------------------------------------------------------------------------------------------
6. Quadrado - Escrever um programa que mostre a seguinte figura no alto da tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c\n",88,88,88,88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c%c%c%c%c\n",88,88,88,88,88);

return 0;
}



----------------------------------------------------------------------------------------------------------------------
7. Tabela de notas - Escreva um programa que produza a seguinte saída na tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c%c%c%c %c%c%c%c\n",65,76,85,78,79,40,65,41,78,79,84,65);
printf("%c%c%c%c%c%c%c%c%c %c%c%c%c%c\n",61,61,61,61,61,61,61,61,61,61,61,61,61,61);
printf("%c%c%c%c%c %c%c%c\n",65,76,73,78,69,57,46,48);
printf("%c%c%c%c%c %c%c%c\n",77,65,82,73,79,68,69,90);
printf("%c%c%c%c%c%c %c%c%c\n",83,69,82,71,73,79,52,46,53);
printf("%c%c%c%c%c%c%c %c%c%c\n",83,72,73,82,76,69,89,55,46,48);

return 0;
}



-------------------------------------------------------------------------------------------------------------------------
8. Letra grande - Elabore um programa para produzir na tela a letra C, de C Progressivo, usando a própria. Se fosse
‘C’, seria assim:
------------------------------------------------------------------------------------------------------------------ ------
#include

int main(void)
{
printf("%c%c%c%c%c\n",67,67,67,67,67);
printf("%c\n",67);
printf("%c\n",67);
printf("%c%c%c%c%c\n",67,67,67,67,67);

return 0;
}

John Santos disse...

----------------------------------------------------------------------------------------------------------------------
6. Quadrado - Escrever um programa que mostre a seguinte figura no alto da tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c\n",88,88,88,88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c %c\n",88,88);
printf("%c%c%c%c%c\n",88,88,88,88,88);

return 0;
}



----------------------------------------------------------------------------------------------------------------------
7. Tabela de notas - Escreva um programa que produza a seguinte saída na tela:
----------------------------------------------------------------------------------------------------------------------
#include

int main(void)
{
printf("%c%c%c%c%c%c%c%c %c%c%c%c\n",65,76,85,78,79,40,65,41,78,79,84,65);
printf("%c%c%c%c%c%c%c%c%c %c%c%c%c%c\n",61,61,61,61,61,61,61,61,61,61,61,61,61,61);
printf("%c%c%c%c%c %c%c%c\n",65,76,73,78,69,57,46,48);
printf("%c%c%c%c%c %c%c%c\n",77,65,82,73,79,68,69,90);
printf("%c%c%c%c%c%c %c%c%c\n",83,69,82,71,73,79,52,46,53);
printf("%c%c%c%c%c%c%c %c%c%c\n",83,72,73,82,76,69,89,55,46,48);

return 0;
}



-------------------------------------------------------------------------------------------------------------------------
8. Letra grande - Elabore um programa para produzir na tela a letra C, de C Progressivo, usando a própria. Se fosse
‘C’, seria assim:
------------------------------------------------------------------------------------------------------------------ ------
#include

int main(void)
{
printf("%c%c%c%c%c\n",67,67,67,67,67);
printf("%c\n",67);
printf("%c\n",67);
printf("%c%c%c%c%c\n",67,67,67,67,67);

return 0;
}

Anônimo disse...

/* Elabore um programa que pede seu nome, endereço, CEP e telefone.
* Ele deve imprirmir seu nome completo na primeira linha, seu
* endereço na segunda, e o CEP e telefone na terceira. */

#include

int main(){

char nome[30], endereco[50];
int cep, telefone;

// nome
printf("Qual o seu nome? ");
gets(nome);

//endereço
printf("Qual o seu endereco? ");
gets(endereco);

//CEP
printf("Qual o CEP da sua residencia? ");
scanf("%d", &cep);

//telefone
printf("Qual o seu telefone? ");
scanf("%d", &telefone);

printf("\n\n");
printf("Segue abaixo os seus dados pessoais:\n\n");
printf("Nome: %s\n", nome);
printf("Endereco: %s\n", endereco);
printf("CEP: %d\tTelefone: %d\n\n", cep, telefone);

return 0;
}

Anônimo disse...

Estaria certo assim, exercicio 10.

#include
#include

int main () {

printf(" X \n");
printf(" XXX \n");
printf(" XXXXX \n");
printf(" XXXXXXX \n");
printf(" XXXXXXXXX \n");
printf(" XXXXXXXXXXX \n");
printf(" XXXXXXXXXXXXX \n");
printf(" O X O \n");
printf(" X \n");
printf(" XXX \n\n\n\n\n");

system("pause");
return 0;
}

Anônimo disse...

Olá, sou iFantasy, esse aqui é o codigo q escrevi pra questao 2
char nome[30], rua[10];
int cep[30], tel[30];
printf("Digite seu nome completo: ");
gets(nome);
fflush(stdin);

printf("Digite seu endereco: ");
gets(rua);
fflush(stdin);

printf("Digite seu CEP: ");
getw(cep);
fflush(stdin);

printf("Digite seu telefone: ");
getw(tel);
fflush(stdin);

printf("Nome: %s\n", nome);
printf("Endereco: %s\n",rua);
printf("CEP: %s\n",cep);
printf("Telefone: %s\n",tel);
}
Quando vou digitar o CEP, o programa para de funcionar. o que estou fazendo de errado?

Anônimo disse...

o que é o getw?

tenta usar scanf

Anthony disse...

#include
int main(){
char palavra[34],endere[34];
int cep;
printf("Digite o seu nome: ");
gets(palavra);
printf("Seu nome e %s\n",palavra);
fflush(stdin);
printf("Digite o seu cep: ");
scanf(" %d",&cep);
printf("Seu CEP e %d\n",cep);
fflush(stdin);
printf("Agora digite o seu endereco: ");
gets(endere);
printf("Seu endereco e %s",endere);
return(0);
}
esse é um dos modos de resolver a etiqueta.

Ana Maria disse...

Alguem poderia me ajudar? Fiz o exercicio 2 com o codigo abaixo, mas não consigo fazer com que o programa leia todos os caracteres do comando. Ja tente: char nome[10]... e mesmo assim não vai.

int main ()
{
char nome, end;
int cep, fone;

printf ("Digite seu nome: \n");
nome= getc(stdin);

fflush(stdin);

printf("Digite seu endereço: \n");
end=getc(stdin);

fflush(stdin);

printf("Digite seu cep: \n");
cep= getc(stdin);

fflush(stdin);

printf("Digite seu telefone/celular: \n");
fone= getc(stdin);

printf("Confirme seus dados cadastrais abaixo: \n");
printf("NOME:'%c' \n",nome);
printf("ENDERECO:'%c' \n",end);
printf("CEP:'%c' \n", cep);
printf("FONE/CELULAR: '%c' \n", fone);
}

Anônimo disse...

boa tarde muito bom este curso,
como faço pra resolver este exercicio
Escreva uma mensagem para uma pessoa de que goste. Implemente um programa
que imprima essa mensagem, e envie-a.

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.