Przed zaliczeniami i egzaminem

Koleżaniki i Koledzy, napisałam para przykładów w formie programiku - warto pododawać mu jeszcze PRINTF-y i pierw rozważcie SAMI wyniki, potem zapuście program i porównajcie. Jeżeli coś nie jasne - prosze pisać do mnie. Przedy wszystkim, ĆWICZCIE!!! t.zn. możecie sami powymyślać wszelkie kombinacje operatorów/ pętel/.... Prostszej jest jeżeli każdy programik jest osobno - jasniej widać gdzie, co, jak... Na 8-ym zieździe zrobimy zaliczenie - podobne przykłady + tablicy, struktury, pliki (?)
Powodzenia!
T. D-Grekow

1. Jakie wartości przyjmują poszczególne zmienne w wyniku wykonania następnych funkcji?
#include
#include
#include
#define MAX 200

int main(int argc, char *argv[])
{
int x=1, y=2, z=3, k=4, l=5, m=6;
float a=12, b=131, c=34.34;
char zn1=67, zn2=90, txt1[MAX], *txt2;

//1. Co będzie w zn1, zn2?, a txt1 i txt2?
txt2 = "Ala ma kota";
strcpy(txt1, txt2);
strcat(txt1, "1234");
x = strlen(txt1);
x/=2;
zn1 = txt1[x++];
zn2 = txt2[x];
printf("zn1 = %c, zn2 = %c", zn1, zn2);
printf("txt1 = %s, txt2 = %s\n", txt1, txt2);


//2. Co będzie w x, y, z?
x-=5;
y=++m+(!(m||zn1)) +z--;
x%=y;
z+=x;//y=10; x=-4; z=-2
printf("\nx =%d, y = %d, z = %d ", x, y, z);

//3. Co będzie w a, b, c?
a/=4*(!((b/x)&&(!(zn1++))));
b+=(!(!!(x&&(!zn2))));
c-=(b/(--a))||((zn1&&(!c*a*b/x)));
printf("\na = %f, b = %f, c = %f\n", a, b, c);

//4. Co się wydrukuje?
x=7;
for(;;)
{ if (!x) break;
--x;
if (x<4) continue;
if(a&&x) printf("*");
}

//5. Co się wydrukuje?
x=5; y =15;
do {
if(!(x*y)) printf("X");
else printf("0");
x--;
if (!(y%x)) break;
} while(1);
system("PAUSE");
return 0;
}