rendered paste body// Aufgabe1
#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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<stdio.h>
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 <stdio.h>
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);
}