Exercitii
1. (*1). Sa se execute programul "Hello, world" (&1.1.1).
2. (*1). Pentru fiecare din declaratiile din (&2.1) sa se faca urmatoarele: daca o declaratie nu este o definitie, sa se scrie o definitie pentru ea. Daca o declaratie este o definitie, sa se scrie o declaratie pentru ea, care nu este de asemenea o definitie.
3. (*1). Sa se scrie declaratii pentru urmatoarele: un pointer spre un caracter; un vector de 10 intregi; o referinta spre un vector de 10 intregi; un pointer spre un vector de siruri de caractere; un pointer spre un pointer la un caracter; o constanta intreaga; un pointer spre o constanta intreaga; un pointer constant spre un intreg. Sa se initializeze fiecare din ei.
4. (*1.5). Sa se scrie un program care imprima dimensiunea
tipurilor fundamentale si a pointerului. Sa se utilizeze operatorul sizeof.
5. (*1.5). Sa se scrie un program care imprima literele 'a'..'z' si cifrele '0'..'9' si valorile lor intregi. Sa se faca acelasi lucru pentru alte caractere imprimabile. Sa se faca acelasi lucru, dar utilizind notatia hexazecimala.
6. (*1). Sa se imprime bitii care se folosesc pentru a reprezenta pointerul 0 pe sistemul d-voastra (&2.5.2).
7. (*1.5). Sa se scrie o functie care imprima exponentul si
mantisa unui parametru in dubla precizie.
8. (*2). Care sint valorile cele mai mari si cele mai mici pe sistemul d-voastra pentru tipurile urmatoare: char, short, int, long, float, double, unsigned, char*, int* si void* ? Exista mai multe restrictii asupra valorilor ? De exemplu, poate int* sa aiba o valoare impara ? Care este cadrajul obiectelor de acele tipuri ? De exemplu poate un int sa aiba o adresa impara ?
9. (*1). Care este cel mai lung nume local pe care il puteti utiliza intr-un program C++ pe sistemul d-voastra ? Care este cel mai lung nume extern pe care il puteti utiliza intr-un program C++ pe sistemul d-voastra ? Exista vreo restrictie asupra caracterelor pe care le puteti utiliza intr-un nume ?
10. (*2). Definiti pe unu astfel:
const one = 1;
Incercati sa schimbati valoarea lui one la doi. Definiti pe num prin: const num[] = ; Incercati sa schimbati valoarea lui num[1] la 2.
11. (*1). Scrieti o functie care permuta doi intregi. Sa se utilizeze int* ca tip al argumentului. Scrieti o alta functie de permutare care utilizeaza int& ca tip de argument.
12. (*1). Care este dimensiunea vectorului str in exemplul urmator: char str[] = "a short string";
Care este lungimea sirului "a short string"?
13. (*1.5). Sa se defineasca o tabela de nume continind numele fiecarei luni din an si numarul de zile din fiecare luna. Sa se scrie tabela. Sa se faca aceasta de doua ori: odata utilizind un vector pentru nume si un vector pentru numarul de zile si odata utilizind un vector de structuri, fiecare structura pastrind numele lunii si numarul de zile din ea.
14. (*1). Sa se utilizeze typedef pentru a defini tipurile: unsigned char, constant unsigned char, pointer spre intreg, pointer spre pointer spre char, pointer spre vector de caractere, vector de 7 pointeri intregi, pointer spre un vector de 7 pointeri intregi, vector de 8 vectori de 7 pointeri intregi.
|