C++ Sınav Soruları ve Cevapları

C++ Sınav Soruları ve Cevapları

Ara Sınav soruları ve çözümleri;

1) (35 puan) Belirsiz sayıda (a,b) pozitif tamsayı ikilileri giriliyor.

i) Her (a,b) ikilisi için obeb(a,b)’yi obeb isimli fonksiyonda hesaplayan ve bu değeri geri döndüren,

ii) a değerleri içinde en büyük ve en küçüğünü ana programda bulduran,

iii) b değerlerinin aritmetik ortalamasını ana programda hesaplayan,ve sonuçları ekrana yazdıran C programını yazınız.

 

#include<stdio.h>
#include<conio.h>

int obeb(int a,int b)
{
int c;
if (a<b)
{
c=a;
a=b;
b=c;
}
if (a % b == 0)
return b;
else
return obeb(b,a % b);
}

void main()
{
int a,b,maxa,mina,btop=0,bs=0;
char c;

bas:
printf("\na ve b degerlerini giriniz :");
scanf("%d %d",&a,&b);
printf("obeb(%d,%d)=%d\n",a,b,obeb(a,b));
if (btop==0)
{
maxa=a;
mina=a;
}
if (a>maxa)
maxa=a;
if (a<mina)
mina=a;
btop+=b;
bs++;
printf("Baska veri var mi ? E/H");
c=getch();
if (c=='e' || c=='E') goto bas;
printf("\nMax a : %d",maxa);
printf("\nmin a : %d",mina);
printf("\nb aritmetik ort : %f",btop/(bs*1.0));
}

2) (35 puan) main fonksiyonunda 50 adet pozitif tamsayı veriliyor. Bu sayılardan bazılarının 3 basamaklı olduğu biliniyor. Verilen sayının 3 basamaklı olup olmadığını main fonksiyonunda araştıran ve
a) sayı 3 basamaklı ise bu sayıyı ayır() isimli bir fonksiyona gönderip, orada sayının basamaklarını buldurup, çağıran fonksiyonda yazdıran,
b) bu rakamları esitsizlik() isimli bir fonksiyona gönderip, bu rakamları sırasıyla x,y,z şeklinde isimlendirdiğimizde (örneğin sayı 512 ise x=5,y=1, z=2) , kaç tanesinin
x+4y+5z5
2x+3y-z6
3x+2y+2z4
eşitsizliğini sağladığını ve bu eşitsizliği sağlayan sayıların ortalamasını bulup, sonuçları ana fonksiyonda yazdıran bir C programı yazınız.

#include<stdio.h>

int es=0,top=0;

void ayir(int sayi,int *x,int *y,int *z)
{
*x=sayi/100;
*y=(sayi-(*x)*100)/10;
*z=sayi%10;
}

void esitsizlik(int x,int y,int z)
{
if (x+4*y+5*z<=5 && 2*x+3*y-z<=6 && 3*x+2*y-2*z<=4)
{
es++;
top+=x*100+y*10+z;
}
}

void main()
{
int i,sayi,x,y,z;

for (i=1;i<=3;i++)
{
printf("\n%d. tamsayiyi giriniz : ",i);
scanf("%d",&sayi);
if (sayi>=100 && sayi<=999)
{
ayir(sayi,&x,&y,&z);
printf("%d 'nin basamaklari : yuzler:%d, onlar:%d, birler:%d",sayi,x,y,z);
esitsizlik(x,y,z);
}
}
if (es!=0)
printf("\n%d adet sayi esitsizligi sagliyor ve ortalamalari : %f",es,top/(es*1.0));
else
printf("\n0 adet adet sayi esitsizligi sagliyor");
}

 3) (30 puan) a) C dilinde Fonksiyon nasıl tanımlanır?. Fonksiyonlara parametre aktarımı kaç türlü yapılır. Açıklayınız. b) İşaretçi değişken nedir? Nasıl tanımlanır? Bir işaretçi değişkene nasıl değer aktarılır? Örnek vererek açıklayınız.


Yorumlar1

levent yangöz demiş ki;
19.10.2010
2009-2010 c++ sınav soruları

Yorumlarınızı Bekliyoruz


Yorum Yazın

Yorum Yapın