Informatika2-2014/Gyakorlat14

A MathWikiből
(Változatok közti eltérés)
54. sor: 54. sor:
 
</c>
 
</c>
  
'''4.''' Az alábbi programkód minden jelölt sora mellett adjuk
+
'''4.''' Az alábbi programkód minden sora mellett adjuk
meg a ’t’ tömb tartalmát!
+
meg a ’t’ tömb tartalmát! (Az utólagos ellenőrzéshez töröljük ki // jeleket a printf-ek elől.)
  
 
<c>
 
<c>
void fuggveny(void) {
+
#include <stdio.h>
     int t[4] = {1,3,5,7}, *p;
+
 
 +
int main(void) {
 +
     int t[3] = {1,3,5}, *p;
 
     p = &t[0];
 
     p = &t[0];
     t[0] = (*p)++;
+
     //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
     t[1] = *p++;
+
     t[0] = *++p; // kiértékelés jobbról-balra
     t[2] = ++*p;
+
     //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
     t[3] = *++p;
+
    t[1] = ++*p; // kiértékelés jobbról-balra
 +
     //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
 +
    t[2] = *p++; // a pointert növeli nem azt az értéket, ahová mutat
 +
    //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
 +
 
 +
    return 0;
 
}
 
}
 
</c>
 
</c>
71. sor: 78. sor:
  
 
<c>
 
<c>
void fuggveny(void) {  
+
#include <stdio.h>
     int t[4], *p, i;  
+
 
    t[0] = 2; t[1] = 3;  
+
int main(void) {
    for( i=2; i<4; i++)
+
     int t[4]={2,3,5,8}, *p, i;  
        t[i] = t[i-1]+t[i-2]
+
        p = &t[1];
    p = &t[1];  
+
// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
    t[0] = *p++;  
+
t[0] = *p++;
    t[1] = (*p)++;  
+
// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
    t[2] = *++p;
+
t[1] = *++p;
    t[3] = ++*p;  
+
// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
    *p+=*p;  
+
t[2] = ++*p;
 +
// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
 +
*p += *p;
 +
// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
 +
 
 +
    return 0;
 
}
 
}
 
</c>
 
</c>
 +
  
 
'''6.''' Írjunk egy rekurzív és egy iteratív C függvényt, mely
 
'''6.''' Írjunk egy rekurzív és egy iteratív C függvényt, mely

A lap 2014. május 6., 18:26-kori változata

Gyakorlás

1. Minden PRINT-et tartalmazó sornál határozzuk meg a kimenet értékét!

#include <stdio.h>
#define PRINT(int) printf("%d\n",int)
 
int main(void) {
    int i, j, k=5;
    i = 17 - 17/k*k; PRINT(i); 
    k += j = i *= 3;
    k -= i == j; PRINT(k);
    i=2; j=3; k=5; 
    PRINT( i & j | k );
    PRINT( !i || j && k);
    i=4; j = 3; i <<= j; PRINT( i );
    k = i<32 ? ++i : --i; PRINT( k );
    return 0;
}

2.

#include <stdio.h> 
#define PRINT(int) printf("%d\n",int) 
 
int main(void) { 
    int i, j, k=2; 
    i = (8+7)%6/2; PRINT(i); 
    k *= j = i = 3; 
    k += i == j; PRINT(k); 
    i=2; j=3; k=0; 
    PRINT( i && j || k );
    PRINT( !i || j ); 
    PRINT( i++ - --j );
    i=1; j = 4; i <<= j; PRINT( i ); 
    k = i<j ? i | j : i & j; 
    PRINT( k );
    return 0; 
}


3. Az alábbi kódrészletet töltsük ki úgy, hogy a ’b’ tömbbe az ’a’ mátrix transzponáltja kerüljön!

int i,j,a[3][2]={{1,2},{2,0},{3,3}}, b[2][3];
for( i=0; i<3; i++ ) {
 
 
 
}

4. Az alábbi programkód minden sora mellett adjuk meg a ’t’ tömb tartalmát! (Az utólagos ellenőrzéshez töröljük ki // jeleket a printf-ek elől.)

#include <stdio.h>
 
int main(void) {
    int t[3] = {1,3,5}, *p;
    p = &t[0];
    //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
    t[0] = *++p; // kiértékelés jobbról-balra 
    //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
    t[1] = ++*p; // kiértékelés jobbról-balra 
    //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
    t[2] = *p++; // a pointert növeli nem azt az értéket, ahová mutat
    //printf("%d %d %d %p\n", t[0], t[1], t[2], p);
 
    return 0;
}

5.

#include <stdio.h>
 
int main(void) {
    int t[4]={2,3,5,8}, *p, i; 
        p = &t[1];
	// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
	t[0] = *p++;
	// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
	t[1] = *++p;
	// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
	t[2] = ++*p;
	// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
	*p += *p;
	// printf("%d %d %d %d %p\n", t[0], t[1], t[2], t[3], p);
 
    return 0;
}


6. Írjunk egy rekurzív és egy iteratív C függvényt, mely kiszámítja az n-edik Fibonacci-számot (f(0)=0, f(1)=1,...), ahol n nemnegatív egész!

7. Mit ír ki?

#include <stdio.h>
#define EVEN 0
#define ODD 1
int main()
{
    int i = 3;
    switch (i & 1)
    {
        case EVEN: printf("Even");
                break;
        case ODD: printf("Odd");
                break;
        default: printf("Default");
    }
    return 0;
}


8. Hányszor írja ki, hogy ,,ez az?

#include<stdio.h>
int main()
{
    int i = -5;
    while (i <= 5)
    {
        if (i >= 0)
            break;
        else
        {
            i++;
            continue;
        }
        printf("ez az");
    }
    return 0;
}

9. Mi a kimenete az alábbi programnak?

#include <stdio.h>
int main()
{
    int i = 3;
    while (i--)
    {
        int i = 100;
        i--;
        printf("%d ", i);
    }
    return 0;
}


10. Mi a kimenet? (beugratós)

#include <stdio.h>
int main()
{
    int x = 3;
    if (x == 2); x = 0;
    if (x == 3) x++;
    else x += 2;
 
    printf("x = %d", x);
 
    return 0;
}
Személyes eszközök