Tartalomjegyzék
C nyelvhez kapcsolódó feladatok
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2022
- Web: https://szit.hu
Bevezetés
Az itt található feladatok a C nyelvhez kapcsolódnak. Azonban több mint kétszáz általános feladatokat találsz az alábbi helyen, amelyek szintén megvalósíthatók C nyelven, az egészen kezdőtől haladóbb szintig:
Néhány feladatban hiányozik a megfelelő tagolás, behúzás, szintaxis kiemelés; ez nem véletlen.
Szintaktikai hibák
A következő feladatok szintaktikai hibákat tartalmaznak, amelyeket meg kell keresned.
Feladat 001
A következő programban keresse meg a hibákat:
- main.c
#include stdio.h main() { int a := 0; printf("Írj be egy száznál nagyobb számot: "); while a < 100 { printf("Szám: "); scanf("%d", &a); } }
A megoldást írja a 001.txt állományba, majd töltse fel a megadott helyre.
Feladat 002
A következő programban keresse meg a hibákat:
- main.c
#inclde <stdio.h> main() { a = 0; printf("Írj be egy száznál nagyobb számot: ") while(a < 100) { printf("Szám: ") scanf("%d", &a) } }
A megoldást írja a 002.txt állományba, majd töltse fel a megadott helyre.
Feladat 003
Keresse meg a következő programban a szintaktikai hibákat.
- main.c
#include <stdio.h> #include <math.h main() { double a, b, c; printf("Háromszög adatai); printf("a: ", &a); printf("b: "); scanf("%lf", &b); printf("c: "); scanf("%lf", &c); if (a + b < c) { printf("Háromszög nem szerkeszthető"); exit(2); } else if (a + c < b) { printf("A háromszög nem szerkeszthető"); exit(2); } else if (c + b < a) { printf("A háromszög nem szerkeszthető"); exit(2); } else { s = (a, + b + c)/2; terulet = sqrt(s*(s-a)*(s-b)*(s-c)) } }
A megoldást írja a 003.txt állományba, majd töltse fel a megadott helyre.
Szemantikai hibák
Feladat 101
A következő programnak ki kell írnia, hogy kérünk egy száznál nagyobb számot, majd be kell kérni egy számot mindaddig amíg 100-nál kisebbet írt be a felhasználó. A program azonban nem ezt csinálja. Hol a hiba?
#include <stdio.h>
main() { a = 0; printf("Írj be egy száznál nagyobb számot: "); while(a > 100) { printf("Szám: "); scanf("%d", &a); } }
A megoldást írja a 101.txt állományba, majd töltse fel a megadott helyre.
Feladat 102
A következő programnak be kell kérnie egy háromszög három oldalát. El kell döntenie, hogy a háromszög megszerkeszthető-e, majd kiszámolnia a területet. A program azonban nem ezt teszi. Hol a hiba?
#include <stdio.h> #include <math.h> main() { double a, b, c; printf("Háromszög adatai"); printf("a: "); scanf("%lf", &a); printf("a: "); scanf("%lf", &b); printf("c: "); scanf("%lf", &a); if (a + b < c) { printf("Háromszög nem szerkeszthető"); exit(2); } else if (a + c < b) { printf("A háromszög nem szerkeszthető"); exit(2); } else if (c + b < a) { printf("A háromszög nem szerkeszthető"); exit(2); } else { s = (a, + b + c)/2; terulet = pow(s*(s-a)*(s-b)*(s-c),s); } }
A megoldást írja a 102.txt állományba, majd töltse fel a megadott helyre.
Feladat 103
A következő programnak be kell kérnie egy számot majd az értéket a képernyőre írnia. A program viszont nem ezt csinálja. Hol a hiba?
#include <stdio.h> main() { double a; printf("Szám: "); scanf("%f", &a); printf("%f\n", a); }
A válaszod mentsd a hoz.txt fájlba.
Feladat 104
#include <stdio.h> int main() { printf("Helló"); return 0; printf("adf"); printf("adf"); printf("adf"); int a; for(a=0; a<10; a++) { printf("Valami"); printf("Másik"); } }
Mit ír a következő program a képernyőre?
Átláthatatlan szintaktikai hibák
Feladat 201
#include <stdio.h> #include <math.h> main() { printf("Ellipszis közelítő kerülete"); double ellipszisatlo1 ellipszisatlo2; double ter1 := 4*((M_PI*ellipszisatlo1*ellipszisatlo2+pow(ellipszisatlo1-ellipszisatlo2,2))\(ellipszisatlo1+ellipszsatlo2)); printf("Terület: %lf\n", ter1) if ter1 < 1200 then { print("Nem elég nagy az ellipszis!\n"); }
Átláthatatlan szemantikai hibák
Feladat 301
A következő program feladata, hogy bekéri két kör sugarát, majd kiszámolja azok kerületét és területét. A kör kerületének képlete 2*r*pi. A kör területének képlete r^2*pi. A ^ karakter egy szám valahányadik hatványát jelöli. A r^2, az r a második hatványon. A program a végén kiírja, hogy melyik nagyobb a területe alapján. A program azonban nem ezt csinálja. Keresse meg a hibákat.
#include <stdio.h> #include <math.h> main( ){ double ter2, r1, ker1, ker2, ter1, r2; printf("Kör 1 sugara: "); scanf("%lf", &r1); printf("Kör 2 sugara: "); scanf("%lf", &r2); ker1 = r1 * M_PI; ker2 = r2 * M_PI; ter1 = pow(r1, 2) * M_PI; ter2 = pow(r2, 2) * M_PI; if (ter1 > ter2) printf("A második kör nagyobb");else printf("Az első kör nagyob"); }
Vegyes hibák
Feladat 401
A következő feladat a húrnégyszögekről szól. A húrnégyszögek olyan négyszögek amelyeknek bármely két szemközti szögének összege 180°. Megfordítva: Ha egy négyszög két szemközti szögének összege 180°, akkor az húrnégyszög. Másként fogalmazva: A húrnégyszög olyan négyszög, amelyhez van olyan kör, amely áthalad a négyszög négy csúcsán. Újabb megfogalmazásban: olyan négyszög, melynek oldalai egy kör húrjai.
A következő programnak ki kell számolnia a húrnégyszög köré írható kör sugarát. Azonban nem ezt teszi. Keresse meg a hibákat!
Segítség
A húrnégyszög kerületének fele:
s = (a+b+c+d)/2;
A húrnégyszög kerülete:
terulet = gyok((s-a)*(s-b)*(s-c)*(s-d));
A húrnégyszög köré írható kör sugara:
sugar = (1/(4*terulet))* gyok((ab + cd)* (ac + bd)* (ad + bc));
A program
#include <stdio.h> #include <math.h> main() {double a, b, c, d; printf("a: "); scanf("%lf", &a); printf("b: "); scanf("%lf, &c); printf("c: "); scanf("lf", &c); print(" b: ", &d); s = (a+b+c+d)/2; t = sqrt((s-a)*(s-b)*(s-c)*(s-d)); r = (1/(4*T))* sqrt((ab + cd)* (ac + bd)* (ad + bc)); }