Documente Academic
Documente Profesional
Documente Cultură
Rezultatul unui operator logic, operator de relaţie sau operator de egalitate este
1 (true) sau 0 (false) şi are tipul int.
Operatorii logici pe biţi sunt: ~ - complement faţă de 1, << - deplasare la
stânga, >> - deplasare la dreapta, & - şi logic pe biţi, ^ - sau exclusiv logic
pe biţi, | - sau logic pe biţi. Aceşti operatori se aplică la operanzi de tip int.
Exemple de programe:
Exemplul 2.1. Programul citește două numere şi apoi le afişează în ordine
crescătoare.
#include <stdlib.h>
#include <stdio.h>
int main()
{ float a,b;
scanf(“%f %f”,&a,&b);
printf(“Numerele citite: %f\t%f\n”,a,b);
printf(“Numerele ordonate: %f\t%f”, a>b ? b : a, a>b ? a: b );
return 0; }
Exemplul 2.2. Programul citeşte trei cifre şi apoi determină dacă numărul
format din aceste trei cifre este divizibil prin trei.
#include <stdlib.h>
#include <stdio.h>
int main()
{ unsigned a,b,c;
scanf(“%u %u %u”,&a,&b,&c);
(a+b+c)%3==0 ? printf(“Da”) : printf(“Nu”);
; return 0; }
Exemplul 2.6. Programul citeşte un număr întreg s şi determină cel mai mic
număr impar care nu este mai mic decât s.
#include <stdlib.h>
#include <stdio.h>
int main(void)
{ int s;
scanf(“%d”,&s);
printf(“s=%-d\ts|1=%-d”, s, s|1 );
return 0; }
Probleme de rezolvat:
Elaboraţi programe pentru sarcinile ce urmează. Salvaţi programele pe server.
2.0. Introduceţi şi verificaţi, lansând la execuţie, programele din exemplele 2.1 -
2.6.
2.1. Programul citeşte un număr x de tip float, calculează y = 3.5x3 -3.5x2 + 3.5x
- 3.5 şi afişează valorile pentru x, y.
2.2. Programul citeşte un număr x de tip int, calculează p = 3x2 + 7x + 17 şi
afişează valorile pentru x, p.
Încercaţi pentru x = 1, 10, 100, 1000. Explicaţi de ce unele rezultate nu sunt
corecte.
2.3. Programul citeşte un număr x de tip double, calculează a = x19 + x15 + x9 +
x5+1 şi afişează valorile pentru x și a.
Folosiţi funcţia pow(x,y) pentru a calcula xy.
Încercaţi pentru x=1, 10, 100, 1000. Explicaţi de ce unele rezultate nu sunt
corecte.
2.4. Programul citeşte argumentul x şi coeficienţii c0, c1, c2, c3, c4 de tip double
ai polinomului q = c4x4 + c3x3 + c2x2 + c1x + c0, calculează valoarea polinomului
q şi afişează valorile lui x şi q.
2.5. Programul citeşte cu ecou o literă minusculă ( majusculă ) şi apoi o afişează
ca literă majusculă ( minusculă ).
Ce se întâmplă dacă tastaţi un caracter diferit de litera cerută?
2.6. Programul citeşte două numere întregi şi afişează numerele citite şi media
lor geometrică ce are două zecimale.
2.7. Programul citeşte valoarea unui unghi exprimată în grade, minute şi
secunde prin trei numere întregi g, m, s şi afişează valoarea unghiului în radiani
şi valoarea funcției sinus de unghiul respectiv.
Folosiţi funcţia sin( x ).
2.8. Programul citeşte un număr n de tip int şi altul r de tip double şi afişează
0, dacă r>n şi -1 în caz contrar. Folosiți operatorul condițional.
2.9. Programul citeşte un număr w şi afişează 2000, dacă 1000 < = w < = 2000
şi 1000 în caz contrar. Folosiți operatorul condițional.
2.10. Programul citeşte un număr întreg care semnifică un an calendaristic şi
afişează 1, dacă anul e bisect şi 0 în caz contrar. Folosiţi operatorul condițional
Anul e bisect, dacă se împarte fără rest la 4 şi nu se împarte la 100 sau, dacă se
împarte fără rest la 400.
2.11. Programul citeşte un număr întreg ce semnifică un an calendaristic şi
afişează anul şi numărul de zile din anul respectiv. Folosiţi operatorul
condițional.
2.12. Programul citeşte un număr x, calculează 5x2 + 4.5x, 5x2 + 4.5x + 3.5 şi
(5x2 + 4.5x - 1.5) / (5x2 + 4.5x + 1.5) şi apoi afișează valorile lui x şi ale expresiilor
respective.
2.13. Programul citeşte un număr x, calculează x15, x25, x35, x45 şi afişează
rezultatele. Unele rezultate pot fi greşite. Explicaţi de ce.
2.14. Programul citeşte un număr x, afişează x, [ x ] – partea întreagă, { x }–
partea fracţionară şi valorile expresiilor 8x2 - 2x + 4, 8[x]2 - 2[x] + 4, 8{x}2 -2{x} +
4.
2.15. Programul citeşte un număr întreg nenegativ şi apoi afişează numărul citit
şi rădăcina pătrată din el.
Folosiţi funcţia sqrt( x ).
2.16. Programul citeşte un număr întreg n şi apoi afişează valoarea fracţiei (n -
1) / (n + 1) cu 13 semne zecimale.
2.17. Programul citeşte două numere şi apoi îl afişează pe cel mai mare.
Folosiţi operatorul condițional.
2.18. Programul citeşte două numere şi apoi afişează cel mai mare din modulele
lor.
Folosiţi operatorul condițional.
2.19. Programul citeşte un număr x şi apoi afişează z = 4x2 + 9x - 2000, dacă x
< 0, z = 2000, dacă x = 0 şi z = 4x2 - 2000, dacă x > 0.
Folosiţi operatorul condițional.
Întrebări de control:
2.1. Ce este o expresie, un operand, un operator; ce operatori cunoaşteţi?
2.2. Ce este o expresie logică? Ce valori poate avea o expresie logică şi care este
tipul lor?
2.3. Explicaţi regula conversiilor implicite.
2.4. Ce este o expresie cast? Explicaţi operatorul de conversie explicită.
2.5. Explicaţi cum se utilizează operatorii sizeof şi &.
2.6.Explicaţi cum se utilizează operatorii condiţionali ? şi : .
2.7. Ce specificatori de format se folosesc pentru a citi şi a scrie date de tip
caracter şi şiruri de caractere?
2.8. Ce specificatori de format se folosesc pentru a citi şi a scrie date întregi?
2.9. Ce specificatori de format se folosesc pentru a citi şi a scrie date numerice
flotante de precizie ordinară ( tipul float )?
2.10. Ce specificatori de format se folosesc pentru a citi şi a scrie date numerice
flotante de precizie dublă ( tipul double )?
2.11. Ce specificatori de format se folosesc pentru a citi şi a scrie date numerice
flotante de tipul long double?
2.12. Ce tip au constantele: ‘c’, 3, 3.14, 3.14l, “3.14”?
2.13. Ce este prototipul unei funcţii, unde şi cum se foloseşte?
2.14. În care fişier se află prototipurile funcţiilor pow( x, y ), poly( x, n, c[ ] ), cos(
x ), sqrt( x )?
2.15. Care este diapazonul pentru valorile de tip: int, long, unsigned, long
unsigned?
2.16. Care este diapazonul pentru valorile de tip: float, double, long double?
2.17. Care este diapazonul pentru valorile de tip: char, unsigned char?
2.18. Cum se evaluează expresia ( Pi < 2 )+3.4 şi care este tipul valorii acestei
expresii, dacă pi este de tipul float?
2.19. Fie unsigned int x; long y; Cum se evaluează expresia x + y?
2.20. Fie char c; c=’R’ + ’b’ - ‘B’; Care este tipul valorii calculate şi ce va
afişa printf ( “%d”, c );?
2.21. Fie int x = 2, y; y = x++; x = --y; Care este valoarea lui x?
2.22.Fie const int x = 3.14, y = 2.72; x = y; Care sunt valorile lui x şi y şi ce tip
au?
2.23.Fie int x = 1; x = 5, x = 4, x = 3, x = 2; Care-i valoarea lui x?
2.24. Fie int n = 1, m = 2, t = 3, z = 4; t = n/m; z = n%m; Care sunt valorile lui t
şi z?
2.25. Explicaţi cum lucrează funcţiile abs( ), ceil( ), floor( ). Utilizaţi help-ul.