C ile Uygulamalar 2 - Cevaplar Cevap-1: //Soru 1 void degistir(int *,int *); //Fonksiyonun prototipi tanımlanmaktadır. int a=1,b=2; printf("a=%d ve b=%d",a,b); degistir(&a,&b); //a ve b'nin adresleri üzerinden işlem yapılmak üzere degistir fonksiyonu çağrılmaktadır. printf("\nyer Degistirme Islemi Sonucu a=%d ve b=%d",a,b); void degistir(int *x,int *y) //Yer değiştirme işleminin yapıldığı fonksiyon. int gecici=0; gecici=*x; *x=*y; *y=gecici; omeryucel.wordpress.com 1
Cevap-2: //Soru 2 char girilen; printf("bir Karakter Giriniz:"); scanf("%c",&girilen); //Kullanıcıdan bir karakter alınmaktadır. if(girilen>='0' && girilen<='9') printf("\ngirilen Karakter Bir Rakamdir."); else if(girilen>='a' && girilen<='z' girilen>='a' && girilen<='z') printf("\ngirilen Karakter Bir Harftir."); else printf("\ngirilen Karakter Ozel Bir Karakterdir."); omeryucel.wordpress.com 2
Cevap-3: //Soru 3 int altsinir,ustsinir; int i,j; short kosul; printf("alt Siniri Giriniz:"); scanf("%d",&altsinir); //Kullanıcıdan alt sınır alınmaktadır. printf("ust Siniri Giriniz:"); scanf("%d",&ustsinir); //Kullanıcıdan üst sınır alınmaktadır. printf("\ngirilen Araliktaki Asal Sayilar:\n"); for(i=altsinir;i<=ustsinir;i++) kosul=1; for(j=2;j<i;j++) if(i%j==0) kosul=0; if(kosul==1) //Bir üstteki if koşuluna girilmemesi halinde kosul=1 olarak kalmakta ve i sayısı bir asal sayı olarak ekrana yazdırılmaktadır. printf(" %d ",i); omeryucel.wordpress.com 3
Cevap-4: //Soru 4 #include <string.h> //String ifadelerle (katar) işlem yapan fonksiyonların bulunduğu başlık dosyası. char kelime[10]; int i; printf("bir Kelime Giriniz:"); scanf("%s",&kelime); i=strlen(kelime); //Girilen kelimenin uzunluğu i değişkenine atanmaktadır. printf("\nkelimenin Tersten Yazilmis Hali:"); while(i>=0) printf("%c",kelime[i]); //Girilen kelime ters olarak ekrana yazdırılmaktadır. i--; omeryucel.wordpress.com 4
Cevap-5: //Soru 5 int dizi[5]; int gecici; for(int i=0;i<5;i++) printf("sayi Giriniz:"); scanf("%d",&dizi[i]); //Sayılar kullanıcıdan alınmaktadır. for(int j=0;j<5;j++) //Sayılar dizi içinde küçükten büyüğe doğru sıralanmaktadır. for(int k=j+1;k<5;k++) if(dizi[j]>dizi[k]) gecici=dizi[k]; dizi[k]=dizi[j]; dizi[j]=gecici; printf("\ndizinin Siralanmis Hali:\n"); for(int k=0;k<5;k++) printf(" %d ",dizi[k]); //Sayılar ekrana yazdırılmaktadır. omeryucel.wordpress.com 5
Cevap-6: //Soru 6 #include <ctype.h> //Karakterler ile işlem yapan fonksiyonların bulunduğu başlık dosyası. void buyukharf(char *); //Fonksiyonun prototipi tanımlanmaktadır. char cumle[20]; printf("bir Cumle Giriniz:"); gets(cumle); buyukharf(cumle); //cumle değişkeninin adresi üzerinden işlem yapılmak üzere buyukharf fonksiyonu çağrılmaktadır. printf("\ncumlenin Yeni Hali:%s",cumle); void buyukharf(char *ifade) //Büyük harflere dönüştürme işleminin yapıldığı fonksiyon. while(*ifade!='\0') //ifade'nin string sonu karakterine gelinmediği müddetçe döngü devam etmektedir. if( islower(*ifade) ) //ifade'de küçük harf tespit edilmesi halinde if yapısına girilmektedir. *ifade=toupper(*ifade); //Küçük harfler büyük harflere dönüştürülmektedir. ++ifade; omeryucel.wordpress.com 6
Cevap-7: //Soru 7 char karakter; int kenaruzunlugu; int i,j; printf("bir Karakter Giriniz:"); scanf("%c",&karakter); //Kullanıcıdan bir karakter alınmaktadır. printf("kenar Uzunlugu Giriniz:"); scanf("%d",&kenaruzunlugu); //Kullanıcıdan kenar uzunluğu alınmaktadır. printf("\n"); for(i=kenaruzunlugu;i>0;i--) for(j=0;j<i;j++) printf("%c ",karakter); printf("\n"); omeryucel.wordpress.com 7
Cevap-8: //Soru 8 long AUlkesi=10000000,BUlkesi=40000000; float artis1=0.25,artis2=0.12; int yilsayisi=0; printf("a Ulkesinin Bugunku Nufusu %d dur.\n",aulkesi); printf("b Ulkesinin Bugunku Nufusu %d dur.\n",bulkesi); while(1) //Ülkelerin nüfus artışları ile geçen yıl hesaplanmaktadır. AUlkesi*=(1+artis1); //AUlkesi=AUlkesi*(1+artis1); BUlkesi*=(1+artis2); //BUlkesi=BUlkesi*(1+artis2); yilsayisi+=1; //Geçen yıl sayısı her hesaplamadan sonra bir arttırılmaktadır. if(aulkesi>bulkesi) //A ülkesinin nüfusu, B ülkesinin nüfusunu geçtiği zaman if yapısına girilmektedir. printf("\na Ulkesinin Nufusu B Ulkesinin Nufusunu %d Sene Sonra Gececektir.",yilSayisi); break; //Sonsuz döngüden çıkılmaktadır. omeryucel.wordpress.com 8
Cevap-9: //Soru 9 int onluksayi,ikiliksayi=0; int basamakcarpani=1; printf("onluk Tabanda Bir Sayi Giriniz:"); scanf("%d",&onluksayi); while(onluksayi>0) //Onluk tabandaki sayı, ikilik tabandaki karşılığına çevrilmektedir. ikiliksayi+=(onluksayi%2)*basamakcarpani; //ikiliksayi=ikiliksayi+(onluksayi%2)*basamakcarpani; onluksayi/=2; //onluksayi=onluksayi/2; basamakcarpani*=10; //basamakcarpani=basamakcarpani*10; printf("\nsayinin Ikilik Tabandaki Karsiligi:%d",ikilikSayi); omeryucel.wordpress.com 9
Cevap-10: //Soru 10 #include <string.h> //String ifadelerle (katar) işlem yapan fonksiyonların bulunduğu başlık dosyası. char *isimler[10]="ahmet","veli","mesut","yildirim","cem","mustafa","hasan","ozgur","ali","onat"; char girilen[10]; short kosul=0; printf("bir Isim Giriniz:"); scanf("%s",&girilen); for(int i=0;i<10;i++) if( strcmp(girilen,isimler[i])==0 ) //Girilen isim ile dizide bulunan isimler karşılaştırılmaktadır. kosul=1; break; //Döngüden çıkılmaktadır. if(kosul==1) printf("\ngirilen Isim Dizide Bulunmaktadir."); else printf("\ngirilen Isim Dizide Bulunmamaktadir."); omeryucel.wordpress.com 10