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 | + | '''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> | ||
− | + | #include <stdio.h> | |
− | int t[ | + | |
+ | int main(void) { | ||
+ | int t[3] = {1,3,5}, *p; | ||
p = &t[0]; | p = &t[0]; | ||
− | t[0] | + | //printf("%d %d %d %p\n", t[0], t[1], t[2], p); |
− | t[ | + | 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[ | + | 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> | ||
− | + | #include <stdio.h> | |
− | int t[4], *p, i; | + | |
− | + | 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> | </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; }