Aufgabe "Operatoren"
← Logik | ● | If + Switch →
a) Was würde das folgende Programm ausgeben?
int main()
{
int a=10, b, c;
a *= 5+10; printf("%d\n", a);
a *= b = c = 20; printf("%d\n", a);
b = b==c; printf("%d\n", b);
a >>= b+2; printf("%d\n", a);
a &= 0x3e; printf("%d\n", a);
a=1;
b=1;
a *= b += a+b; printf("a=%d, b=%d\n", a, b);
return(0);
}
b) Was würde das folgende Programm ausgeben?
int main()
{
int a=0, b=0, c=0;
a=b=1;
a = b++; printf("a=%d, b=%d, c=%d\n", a, b, c);
c = a++-1; printf("a=%d, b=%d, c=%d\n", a, b, c);
c += a++ + ++b; printf("a=%d, b=%d, c=%d\n", a, b, c);
c = a/++b; printf("a=%d, b=%d, c=%d\n", a, b, c);
a += --b; printf("a=%d, b=%d, c=%d\n", a, b, c);
return(0);
}
c) Formulieren Sie die Bedingung, dass die Fliesskomma-Variablen a,b,c im Intervall [0,1] liegen. Formulieren Sie die negierte Bedingung ohne den !-Operator.
d) Berechnen Sie das Maximum von zwei Zahlen a und b mit der bedingten Bewertung. Formulieren Sie ausgehend davon das Maximum von drei Zahlen a,b,c und geben Sie das Ergebnis für a=−10, b=7, c=23 aus.
e) Berechnen Sie die Steigung zwischen zwei Punkten $a=(a_x,a_y)$ und $b=(b_x,b_y)$ und berechnen sie die entsprechenden Zwischenergebnisse (d.h. die Differenzen der jeweiligen Komponenten). Geben Sie das Ergebnis für $a=(-1,2)$ und $b=(3,4)$ aus.
Q Wie würden Sie eine Division durch Null vermeiden?
← Logik | ● | If + Switch →