Informatika2-2014/Gyakorlat14

A MathWikiből
(Változatok közti eltérés)
(A lap tartalmának cseréje erre: ld. [http://wiki.math.bme.hu/view/Informatika2-2014/2.ZH-ra itt])
 
(egy szerkesztő 4 közbeeső változata nincs mutatva)
1. sor: 1. sor:
= Gyakorlás =
+
ld. [http://wiki.math.bme.hu/view/Informatika2-2014/2.ZH-ra itt]
 
+
'''1.''' Minden PRINT-et tartalmazó sornál határozzuk meg a kimenet értékét!
+
 
+
<c>
+
#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;
+
}
+
</c>
+
 
+
'''2.'''
+
 
+
<c>
+
#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;
+
}
+
</c>
+
 
+
 
+
'''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!
+
<c>
+
int i,j,a[3][2]={{1,2},{2,0},{3,3}}, b[2][3];
+
for( i=0; i<3; i++ ) {
+
 
+
 
+
 
+
}
+
</c>
+
 
+
'''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.)
+
 
+
<c>
+
#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;
+
}
+
</c>
+
 
+
'''5.'''
+
 
+
<c>
+
#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;
+
}
+
</c>
+
 
+
 
+
'''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?
+
<c>
+
#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;
+
}
+
</c>
+
 
+
 
+
'''8.''' Hányszor írja ki, hogy ,,ez az''?
+
 
+
<c>
+
#include<stdio.h>
+
int main()
+
{
+
    int i = -5;
+
    while (i <= 5)
+
    {
+
        if (i >= 0)
+
            break;
+
        else
+
        {
+
            i++;
+
            continue;
+
        }
+
        printf("ez az");
+
    }
+
    return 0;
+
}
+
</c>
+
 
+
'''9.''' Mi a kimenete az alábbi programnak?
+
 
+
<c>
+
#include <stdio.h>
+
int main()
+
{
+
    int i = 3;
+
    while (i--)
+
    {
+
        int i = 100;
+
        i--;
+
        printf("%d ", i);
+
    }
+
    return 0;
+
}
+
</c>
+
 
+
 
+
'''10.''' Mi a kimenet? (beugratós)
+
 
+
<c>
+
#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;
+
}
+
</c>
+

A lap jelenlegi, 2014. május 8., 14:25-kori változata

ld. itt

Személyes eszközök