Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




EXERCITII REZOLVATE

c


EXERCITII REZOLVATE

Sa se scrie o functie invert (x , p , n) care inverseaza bitii 0 cu 1 si 1 cu 0 incepand cupozitia p pentru n biti.

  P 0




n biti

main()

int invert(x,p,n);

int x,p,n;

masca = masca <<p-1;

for (i=1 ; i< n ; i++)

return (m);

Sa se scrie o functie numbit (x) care numara numarul de biti de 1.

main()

int numbit (x)

int x;

else masca =masca << 1;

return (n);

3.Sa se scrie o functie rotdr(n , b) care efectueaza rotatia dreapta cu b pozitii:

main()

int rotdr(n,b)

int n,b;

Sa se scrie o functie care calculeaza complementul fata de 2.

int compl_2(int x)

return (x);

Evaluarea expresiilor:

/* Program pentru ilustrarea proprietatilor de */

/* asociativitate si prioritate a operatorilor */

#include <stdio.h>

main()

Regula de evaluare pentru operatorul += este de la dreapra la stanga, rezulta ca evaluarea se va face astfel:

c+=d   c=c+d apoi   b=b+c apoi a=a+b

Rezultatul care se afiseaza va fi :

d=8

e=15

b=21

a=26

Pentru expresia 2 evaluarea decurge conform prioritatilor operatorilor. Operatorii pe care ii gasim sunt in ordinea proritatilor ++ , -- , - , +;

Expresia d=a++ + b + c + -d se va evalua astfel:

d= a+b+c+ (-d);

Dupa folosirea valorii lui a se va incrementa a cu o unitate si dupa folosirea valorii lui c se va decrementa c cu o unitate.

Deci dupa executie a=6 , b=6 ,c=6 ,d=8.

Expresia va avea valoarea 5+6+7-8=10.

Pentru expresia 3 avem :

d= a% b% c= (a%b) %c

Rezultatul va fi (7%6)%5=1%5=1.

Evaluarea expresiilor 2 :

/*Program 2 pentru evaluarea expresiilor*/

#include <stdio.h>

main()

Expresia 1 este echivalenta cu

  t = ( x < ( z+t ) < y)

Evaluarea se face de la stanga la dreapta

  z+t=7

  x=1

  1< 7 deci x< (z+t) va avea valoarea 1

  1 < y rezulta ca t va avea valoarea 1.

Expresia 2 este echivalenta cu :

  t = (x == (z<(t+y)))

  t+y=6

  z < t+y va avea valoarea 1 deoarece expresia e adevarata.

  X == 1 este o expresie adevarata deci t = 1.

Expresia 3 este echivalenta cu:

  t= (x *= (z< (y+y)))

  y+t = 6

  z< y+t este o expresie cu valoarea adevarata deci va avea valoarea 1.

  t=(x=x+1) rezulta t=1

/* folosirea operatorului (tip)*/

#include <stdio.h>

main()

(int) 3.7 /2 =1

(int) (float) 3.7 /2=1

(float) 3 /2 = 1.500000

Asociativitatea este dreapta pentru operatorul tip.



Document Info


Accesari: 2231
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )