// Aufgabe1 #include int main(void) { unsigned int x = 01111; printf("%X\n", x &= 0x7f); printf("%X\n", x ^= 0x7f); printf("%X\n", x |= 0x7f); printf("%X\n", x <<= 5); printf("%X\n", x >>=5); x = x* 011; printf("%X\n", x &= 0x7f); printf("%X\n", x ^= 0x7f); printf("%X\n", x |= 0x7f); printf("%X\n", x <<= 5); printf("%X\n", x >>=5); } // Aufgabe2 #include char text[] ="Die Niebelungenspiele sind da!"; int i=0x4; char * ptr = text + 050; int main(void) { printf("\n\n|0123456789012345678901234567890123456789|\n\n"); printf("|%40s| \n",text); printf("|%s| \n",ptr-26); printf("|%-16s| \n",text + i); printf("|%10.3s|\n",text); puts (text+i*7); } // Aufgabe 3 #include int main() { union x { unsigned short a; unsigned char b[2]; }; union x var_un= { -255}; printf("Byte-1: = %d, Byte-2: = %d \n", var_un.b[0], var_un.b[1]); var_un.a = 257; printf("Byte-1: = %d, Byte-2: = %d \n", var_un.b[0], var_un.b[1]); var_un.b[0] = 0; var_un.b[1] = 1; printf("a: = %d\n", var_un.a); var_un.b[0] = 1; var_un.b[1] = 0; printf("a: = %d\n", var_un.a); var_un.b[0] = 1; var_un.b[1] = 1; printf("a: = %d\n", var_un.a); var_un.b[0] = 1; var_un.b[1] = 2; printf("a: = %d\n", var_un.a); var_un.b[0] = 0; var_un.b[1] = -1; printf("a: = %d\n", var_un.a); var_un.b[0] = -1; var_un.b[1] = 0; printf("a: = %d\n", var_un.a); return 0; } // Aufgabe4 #include void main(void) { int a=10; int b=10; int c=10; for(a = 10; a > 7 ; --a) { for (b = 10; b > (a-b); b--) { for ( c= 10 ; c > ( b-3);c-=2) printf("+"); printf("\n"); } printf("\n"); } } // Aufgabe5 #include int matrix [3][5]={{-4,20,23,-12,8},{18,-13,8,-9,5},{3,12,-99,-48,-5}}; int summe1[3]; int summe2[5]; int summe3; int matrixsumme (int vektor [][5],int feld1[],int feld2[]); int main() { int i,j,gesamtsumme; gesamtsumme =matrixsumme(matrix,summe1,summe2); for(i=0;i<3;++i) printf("%6d\n",summe1[i]); for(j=0;j<5;++j) printf("%6d\n",summe2[j]); printf("%6d\n",gesamtsumme); printf("%6d\n",summe3); return 0; } int matrixsumme (int v[][5],int feld1[],int feld2[]) { int z,sp; for(z=0;z<3;++z) { feld1[z]=0; for(sp=0;sp<5;++sp){ if(sp%2) feld1[z]+=v[z][sp]; } } for(sp=0;sp<5;++sp) { feld2[sp]=0; for(z=0;z<5;++z){ if((z%2)==0) feld2[sp]+=v[z][sp]; } } for (z=0;z<3;z+=1) { summe3 +=v[z][z]; } return (feld1[0]+feld1[1]+feld1[2]); } // Aufgabe6 #include float f1(float *px, float *py); float f2(float *px, float *py); float *f3(float(*pt)(float *px, float *py)); int main(void) { float *pa,*pb; pa = f3(f1); pb = f3(f2); return 0; } float f1(float *px,float *py) { static float z = 3; z*=5.0; printf("f1\n"); printf("%f\n",z); return (z); } float f2(float *px,float *py) { static float r = 10.0; r+=20; printf("f2\n"); printf("%f\n",r); return (r); } float *f3(float (*pt)(float *px, float *py)) {static float a=1.0,b=1.0,c=1.0; c = (*pt)(&a,&b); printf("f3\n"); printf("%f\n",c); return(&c); }