C Çalışması Uygulamaları

Sınav öncesi yaptığımız C çalışmasının örnek kodları. Tek ve çok boyutlu diziler, dosya okuma, yazma, fprintf, fscanf, bit işlemleri, struct, union ve enum örnekleri gibi konular var.

#include <stdio.h>

void topla(int aktar[]){
  int i, toplam = 0, boyut = 0;
  boyut = sizeof(aktar)/sizeof(int);
  for(i = 0; i < boyut; i++)
    toplam += aktar[i];
  printf("Bulunan toplam: %d\n", toplam);
}

void EkranaBas(int dizi[5]);

int main(void){
  int aktar[] = {1,3,5,7,9};

  topla(aktar);
  EkranaBas(aktar);

  return 0;
}

void EkranaBas(int dizi[5]){
  int i = 0;
  for(i = 0; i < BOYUT; i++)
    printf("%d. Eleman:  %d\n", i+1, dizi[i]);
}
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void ekranaBas(int [10][20]);

int main(void){
  srand(time(NULL));

  int a[10][20];
  int i,j;
  for(i = 0; i < 10; i++){
    for(j = 0; j < 20; j++){
      a[i][j] = (rand()%100) + 1;
    }
  }
  ekranaBas(a);

  return 0;
}

void ekranaBas(int a[10][20]){
  int i,j;
  for(i = 0; i < 10; i++){
    for(j = 0; j < 20; j++){
      printf("%4d",a[i][j]);
    }
    printf("\n");
  }
}
#include <stdio.h>

int main(void){
  int dizi[10] = {8,6,12,24,4,5,6,432,434,765};
  int i,j, temp;
  for(i = 0; i < 10; i++){
    for(j = i; j < 10; j++){
      if(dizi[i]>dizi[j]){
        temp = dizi[i];
        dizi[i] = dizi[j];
        dizi[j] = temp;
      }
    }
  }
  for(i = 0; i < 10; i++){
    printf("%d\n",dizi[i]);
  }

  return 0;
}
#include <stdio.h>

void kareal(int* x){
  *x = (*x) * (*x);
}

int main(void){
  int a = 10;
  kareal(&a);
  printf("Karesi: %d\n", a);

}
#include <stdio.h>

void hesapla(int a, int b, int (*f)(int f, int g)){
  int c;
  c = (*f)(a ,b);
  printf("%d\n",c);
}

int toplama(int x, int y){
  return x+y;
}

int cikarma(int x, int y){
  return x-y;
}

int main(void){
  int abc = 100;
  int def = 200;
  hesapla(abc, def, toplama);
  hesapla(abc, def, cikarma);

  return 0;
}
#include <stdio.h>
#include <string.h>
int main(void){
  int i = 0;
  for( i = 0; i < 256; i++){
    putchar(i);
  }

  return 0;
}
#include <stdio.h>
#include <string.h>
int main(void){
  char isim[100] = "Guray yildirim";
  puts(isim);

  printf("%s\nismi gir:", isim);
  scanf("%s", isim);

  puts(isim);
  return 0;
}
#include <stdio.h>
#include <string.h>
int main(void){
  char isim1[20] = "Guray";
  char isim2[20] = "Eray";
  char karma[100] = "İsimler: ";  
  int a;

  if(strcmp(isim1,isim2) == 0)
    printf("Karşılaştırma sonucu: Eşitler.\n");

  strcat(karma,isim1);
  strcat(karma, " - ");
  strcat(karma,isim2);
  puts(karma);

  strcpy(isim1,isim2);
  puts(isim1);
  puts(isim2);

  a = strcmp(isim1,isim2);
  printf("Karşılaştırma sonucu: %d\n",a);

  if(strcmp(isim1,isim2) == 0)
    printf("Karşılaştırma sonucu: Eşitler.\n");

  return 0;
}
#include <stdio.h>

int main(void){
  char str[10];
  str[0] = 'G';
  str[1] = 'u';
  str[2] = 'r';
  str[3] = 'a';
  str[4] = 'y';
  str[5] = '\0';

}
#include <stdio.h>
#include <string.h>

struct calisan{
  int id;
  char adsoyad[100];
  char tel[12];
};

int main(void){
  struct calisan kisi1, kisi2;

  strcpy(kisi1.adsoyad, "Kişi ismi 1" );
  strcpy(kisi2.adsoyad, "Kişi ismi 2" );
  puts(kisi1.adsoyad);
  puts(kisi2.adsoyad);

  kisi1.id = 1907;
  kisi2.id = 1903;
  printf("%d - %d\n", kisi1.id, kisi2.id);
  return 0;
}
#include <stdio.h>
#include <string.h>

struct calisan{
  int id;
  char adsoyad[100];
  char tel[12];
};

typedef struct calisan kisi;
void f(kisi *yapi);

int main(void){
  kisi kisi1, kisi2;

  strcpy(kisi1.adsoyad, "Kişi ismi 1" );
  strcpy(kisi2.adsoyad, "Kişi ismi 2 );
  kisi1.id = 1907;
  kisi2.id = 1903;
  printf("%d - %d\n", kisi1.id, kisi2.id);

  f(&kisi1);
  printf("%d\n", kisi1.id);
  return 0;
}

void f(kisi *yapi){
  puts(yapi->adsoyad);
  (*yapi).id = 10;
  printf("%d\n", yapi->id);
}
#include <stdio.h>

typedef unsigned char degisken; /* degisken a= 3; eşittir unsigned char a = 3;*/

union birlik{
  int x;
  float y;
  //char z[20];
};

int main(void){
  union birlik orn;

  orn.x = 5;
  printf("%d\n", orn.x);
  orn.y = 10.3;
  printf("%d\n", orn.x);
  printf("%f\n", orn.y);
  return 0;
}
#include <stdio.h>

typedef unsigned char degisken; /* degisken a= 3; = unsigned char a = 3;*/
void goster(unsigned char sayi);

int main(void){
  /*
  & and. 11 & 10 => 10
  | or. 110 | 100 => 110
  ^ xor. 1100 ^ 1010 => 0110
  ~ not. 1010 => 0101
  01010101
  */
  unsigned char x = 123;
  goster(x);

  return 0;
}

void goster(unsigned char sayi){
  unsigned int maske = 1 << 7;
  int i;
  for( i = 1; i <= 8; i++){
    putchar(sayi&maske?'1':'0');
    sayi <<= 1;
    if(i%8 == 0)
      putchar(' ');
  }
}
#include <stdio.h>

enum mevsimler{SET_BY_DEFAULT, CLOSED_BY_SYSTEM, SONBAHAR, KIS};

int main(void){

  int x = 1;
  switch(x){
  case SET_BY_DEFAULT:
    printf("Varsayılan\n");
    break;
  case CLOSED_BY_SYSTEM:
    printf("Kapandı\n");
    break;
  }

  return 0;
}
#include <stdio.h>

int main(void){
  FILE *yaz, *oku;
  if((yaz = fopen("dosya.txt", "w")) == NULL){
    printf("Dosya açılamadı.");
    return 1;
  }
  /* write dosya yoksa oluşturur, varsa siler tekrar oluşturur.
  append dosya yoksa oluşturur, varsa silmez, sonuna ekler. */
  fprintf(yaz, "Merhaba dünya!\nby Birisi.");

  fclose(yaz);

  return 0;
}
#include <stdio.h>

int main(void){
  FILE *yaz, *oku;
  int n, dizi[5], i;
  if((oku = fopen("data.txt", "r")) == NULL){
    printf("Dosya açılamadı.");
    return 1;
  }
  /* write dosya yoksa oluşturur, varsa siler tekrar oluşturur.
  append dosya yoksa oluşturur, varsa silmez, sonuna ekler. */
  fscanf(oku, "%d", &n);
  printf("%d tane sayı okunacak.", n);

  for( i = 0; i < n; i++ ){
    fscanf(oku, "%d", &dizi[i]);
  }
  for(i = 0; i < n; i++){
    printf("\n%d\n", dizi[i]);
  }

  fclose(oku);

  return 0;
}
#include <stdio.h>

int main(void){
  FILE *yaz, *oku;
  int n, dizi[5], i;
  if((oku = fopen("data.txt", "r")) == NULL){
    printf("Dosya açılamadı.");
    return 1;
  }
  /* write dosya yoksa oluşturur, varsa siler tekrar oluşturur.
  append dosya yoksa oluşturur, varsa silmez, sonuna ekler. */
  fscanf(oku, "%d", &n);
  printf("%d tane sayı okunacak.", n);

  while(!feof(oku)){
    fscanf(oku, "%d", &n);
    printf("%d\n",n);
  }

  fclose(oku);

  return 0;
}
#include <stdio.h>
#include <string.h>

struct eleman{
  int i;
  char ad[100];
};

int main(void){
  FILE *yaz, *oku;
  int n, dizi[5], i;
  if((yaz = fopen("veriler.db", "wb+")) == NULL){
    printf("Dosya açılamadı.");
    return 1;
  }
  struct eleman kisi;

  for(i = 0; i < 100; i++){
    kisi.i = i;
    strcpy(kisi.ad, "Varsayilan");
    fwrite(&kisi, sizeof(kisi), 1, yaz);
  }
  /* rewind(dosya); */
  fseek(yaz, sizeof(kisi)*5, SEEK_SET);/*_END SONDAN, _CUR ŞU AN */
  fread(&kisi, sizeof(kisi),1,yaz);
  printf("%d - %s", kisi.i, kisi.ad);

  fclose(yaz);

  return 0;
}