Tartalomjegyzék

< Speciális

C nyelvhez kapcsolódó feladatok

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));
    
}