BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
ARA SINAVI
1(25p)
2(5p)
3(10p)
Sınav Tarihi:
A.S. İlk Harfleri:
No:
4(5p)
5(10p)
6(25p)
7(20p)
T(100p)
18 KASIM 2014, 17.00
/
İmza:
SORULAR
1. Aşağıda arayüzü ve c kodu verilen program için verilen
soruları yanıtlayınız.
struct deneme{
int a,b,c;
deneme (int A,int B,int C);
void goster( );
void girisA(int A){a=A;};
void girisB(int B){b=B;};
void girisC(int C){c=C;};
};
deneme::deneme(int A, int B, int C){
a=A; b=B; c=C;
}
void deneme::goster( ){
ShowMessage(IntToStr(a)+""+IntToStr(b)+""+IntToStr(c));
}
deneme Test(125,133,1453);
void __fastcall TForm1::Button1Click(TObject *Sender)
{
/*Edit 1, Edit2 ve Edit3 girişlerindeki verileri Test
struct içerisindeki değişkenlere alan c kodunu
yazınız. Struct fonksiyonları kullanmak zorunludur.
(10p)*/
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
/*Test struct içerisindeki bilgileri mesaj olarak
ekranda gösteren c kodunu yazınız. (5p)*/
}
/*Test struct içerisindeki a,b,c değerlerinin karesini
alan void kare_al (struct deneme *sptr) işlevinin c
kodunu yazınız. (10p)*/
2. union Bilecik {
double a;
int b[10];
char c;
}bm; (10p)
// (size of double = 8 byte, size of int = 4 byte, size of char = 1 byte)
// Yukarıdaki union ifadesinin bellekte kapladığı alanı (byte) bulunuz. (5p)
3. struct abc {
char *name;
union
{
char *sval;
} u;
} xyz[10];
// Yukarıdaki kod parçasına göre sval dizisinin (string) ilk karakterini ekrana basan kod satırını yazınız. (10p)
/* LÜTFEN SORU VE CEVAP KÂĞIDINA ADINIZIN VE SOYADINIZIN BAŞ HARFLERİNİ YAZINIZ.
SINAV SÜRESİNCE DERSLE İLGİLİ TÜM NOTLAR SERBESTTİR. */
/* Sınav Süresi : 60 dk’dır.
Başarılar U.Y. */
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
ARA SINAVI
4. union dem {
int ival;
float fval;
};
void main( ) {
union dem r;
r.ival = 5;
printf("%2.2f", r.fval); // Ekran çıktısını bulunuz. (5p)
}
5. // Aşağıdaki kodlar çalıştırıldığında Ekran çıktıları ne olur? (10p)
struct point {
int x, y;
};
struct notpoint {
int x, y;
};
void foo(struct point);
int main( ) {
struct notpoint p1 = {1, 2};
foo(p1);
}
void foo(struct point p) {
printf("%d\n", p.x);
}
#include <stdio.h>
struct student {
char *name;
};
struct student fun(void) {
struct student s;
s.name = "mustafa";
return s;
}
void main( ) {
struct student m = fun();
printf("%s", m.name+3);
}
6. Bir şirketin alış-satışlarına ilişkin bilgiler bir veri yapısı (struct) aracılığıyla alış-veriş yapılan şirketin adı, yapılan
alışverişin türü (alış/satış), alış-veriş tutarı, alışverişin tarihi (gün, ay, yıl) ve alışveriş açıklaması tutulacaktır.
a. 1000 şirkete ilişkin bilgileri tutabilmek için gerekli veri yapısını tanımlayınız.(10p)
b. Bu veri yapısına bilgilerin önceden girildiğini varsayarak şirketin ne kadar satış, ne kadar alış yaptığını hesaplayan
işlevi yazınız. (15p)
7. Aşağıda verilen makro örnekleri için Ekran çıktılarını bulunuz. (20p)
A. #include <stdio.h>
#define foo(x, y) x / y + x
int main( )
{
int i = -6, j = 3;
printf("%d\n",foo(i + j, 3));
}
B. #include<stdio.h>
#define FUN(i, j) i##j
int main( )
{
int va1=10;
int va12=20;
printf("%d\n", FUN(va1, 2));
return 0;
}
C. #include <stdio.h>
#define MAN(x, y) ((x) > (y)) ? (x) : (y);
int main( )
{
int i=10, j=5, k=0;
k = MAN(++i, j++);
printf("%d, %d, %d\n", i, j, k);
return 0;
}
D. #include <stdio.h>
#define ABC(x, y) int m; m=x, x=y, y=m;
int main( )
{
int a=10, b=12;
ABC(a, b);
printf("a = %d, b = %d\n", a, b);
return 0;
}
/* LÜTFEN SORU VE CEVAP KÂĞIDINA ADINIZIN VE SOYADINIZIN BAŞ HARFLERİNİ YAZINIZ.
SINAV SÜRESİNCE DERSLE İLGİLİ TÜM NOTLAR SERBESTTİR. */
/* Sınav Süresi : 60 dk’dır.
Başarılar U.Y. */
Download

Bilgisayar Programlama Vize Soruları