2.5.12. Functia printf - EXERCITII

2019/01/08 in Programare in C

2.7. Sa se scrie un program care afiseaza pe o linie, intre doua caractere asterisc, caracterul citit de la terminal prin getchar, apoi trece cursorul in coloana intai din linia urmatoare.

#include <stdio.h>
#include <conio.h>

main()
{
   printf("*%c*\n", getchar());
   puts("Actionati o tasta pentru a termina");
   getch();
}

2.8. Sa se modifice programul precedent astfel incat caracterul citit prin getchar sa se afiseze intre doua caractere procent.

#include <stdio.h>
#include <conio.h>

main()
{
   printf("%%%c%%\n", getchar());
   puts("Actionati o tasta pentru a termina");
   getch();
}

2.9. Programul de mai jos afiseaza textul "Limbajul C++" folosind urmatorii specificatori de format:

%s, %15s, %-15s, %10s, %15.10s si %-15.10s

Pentru a pune in evidenta campul afisat prin specificatorii respectivi, vom include de fiecare data campul intrecaractere asterisc.

#include <stdio.h>
#include <conio.h>

#define V "Limbajul C++"

main()
{
    printf("*%s*\n", V);
    printf("*%15s*\n", V);
    printf("*%-15s*\n", V);
    printf("*%10s*\n", V);
    printf("*%15.10s*\n", V);
    printf("*%-15.10s*\n", V);
    puts("Actionati o tasta pentru a termina");
    getch();
}

Rezultatele executiei programului sunt:

*Limbajul C++*
*   Limbajul C++*
*Limbajul C++   *
*Limbajul C++*
*     Limbajul C*
*Limbajul C     *
Actionati o tasta pentru a termina

2.10. Sa se scrie un program care citeste un caracter cu getchar si afiseaza codul sau ASCII

#include <stdio.h>
#include <conio.h>

main()
{
    printf("%d\n", getchar());
    puts("Actionati o tasta pentru a termina");
    getch();
}

2.11. Sa se scrie un program care citeste un caracter care nu corespunde codului ASCII si afiseaza codul sau returnat pringetch.

Amintim ca pentru a citi caractere care nu corespund codului ASCII, se apeleaza getch de doua ori. La primul apel getch returneaza 0. La cel de-al doilea apel se returneaza un cod specific caracterului citit.

#include <stdio.h>
#include <conio.h>

main()
{
    printf("%d\n", getch());
    printf("%d\n", getch());
    puts("Actionati o tasta pentru a termina");
    getch();
}

2.12. Sa se scrie un program care afiseaza constanta 12345 in decimal, octal si hexazecimal.

#include <stdio.h>
#include <conio.h>

#define V 12345

main()
{
    printf("zecimal %d\n", V);
    printf("octal %o\n", V);
    printf("hexazecimal %x\n", V);
    puts("Actionati o tasta pentru a termina");
    getch();
}

2.13. Sa se scrie un program care afiseaza constanta 123456789 in decimal, octal si hexazecimal.

#include <stdio.h>
#include <conio.h>

#define V 123456789

main()
{
    printf("zecimal %ld\n", V);
    printf("octal %lo\n", V);
    printf("hexazecimal %lx\n", V);
    puts("Actionati o tasta pentru a termina");
    getch();
}

2.14. Programul urmator afiseaza constanta 123 cu diferiti specificatori de format.

#include <stdio.h>
#include <conio.h>

#define V 123

main()
{
    printf("%d\n", V);
    printf("%7d\n", V);
    printf("%-7d\n", V);
    printf("%07d\n", V);
    puts("Actionati o tasta pentru a termina");
    getch();
}

Rezultatele executiei programului sunt:

123
    123
123    
0000123
Actionati o tasta pentru a termina

2.15. Programul urmator afiseaza numere neintregi folosind diferiti specificatori de format.

#include <stdio.h>
#include <conio.h>

#define A 47.389
#define X -123.5e20

main()
{
    printf("A=%f\n", A);
    printf("A=%.3f\n", A);
    printf("A=%.2f\n", A);
    printf("A=%.1f\n", A);
    printf("A=%.0f\n", A);
    printf("X=%e\n", X);
    printf("X=%.4e\n", X);
    printf("X=%.3e\n", X);
    printf("X=%.2e\n", X);
    printf("X=%.1e\n", X);
    printf("A=%g X=%G\n", A, X);
    printf("%20f\n%20e\n%20g\n", 1.25, 1.25, 1.25);
    printf("%20f\n%20e\n%20g\n", .25, .25, .25);
    printf("%20f\n%20e\n%20g\n", 123e-1, 123e-1, 123e-1);
    printf("%20f\n%20e\n%20g\n", 12.3e4, 12.3e4, 12.3e4);
    printf("%30.20Le\n", 356.782143657891213891);
    printf("%40.30Le\n", 31415926535897932384526434e-251);
    puts("Actionati o tasta pentru a continua");
    getch();
}

Rezultatele executiei programului sunt:

A=47.389000
A=47.389
A=47.39
A=47.4
A=47
X=-1.235000e+022
X=-1.2350e+022
X=-1.235e+022
X=-1.240e+022
X=-1.2e+022
A=47.389 X=-1.235E+022
            1.250000
      1.2500000e+000
                1.25
            0.250000
      2.5000000e-001
                0.25
           12.300000
       1.230000e+001
                12.3
       123000.000000
       1.230000e+005
              123000
   3.56782143657891200000e+002
   3.141592653589793400000000000000e-226
Actionati o tasta pentru a continua

2.6. Functia scanf