CBDS2103 - struktur data - contoh jawapan kepada latihan dalam buku modul (UNIT 1)
CBDS2103 - struktur data - contoh jawapan kepada latihan dalam buku modul
perhatian:
1 jangan terus salin jawapan; cuba buat sendiri dahulu soalan latihan tersebut sebelum melihat kepada jawapan.
2 tidak semua latihan saya sempat cari jawapannya
3 jawapan ini hanyalah untuk pelajar di bawah tutoran saya sahaja
4 walaupun usaha sebaik mungkin telah diambil untuk memastikan jawapan adalah tepat, tidak ada jaminan semua
jawapan adalah semestinya tepat
latihan 1.1
(a) float nombor[30];
(b) char aksara[126];
latihan 1.2
(a) int ganjil[12]={1,3,5,7,11,13,15,17,19,21,23};
(b) float pemalar[6]={0.02,-0.45,5.77,-2.55,7.50,-5.00};
latihan 1.3
1(a) abc[0]=0; abc[1]=2;abc[2]=4;...............
1(b) c[0]=2.0;c[1]=0.5;c[2]=1.2;........
1(c) xyz[0]=5;xyz[1]=10;zyz[2]=0;..........
2(a) M[4]=2*2*3=12
(b) R[3]=R[1]*5=(R[0]*8)*5=8*8*5=320
lat 1.4 [not done yet]
lat 1.5 [not done yet]
lat 1.6 [not done yet]
lat 1.7 [not done yet]
lat 2.1
(a) aksara - sah
(b) rentetan - sah
(c) tak sah - takda tanda kutip
(d) tak sah - tanda kutip rentetan mesti berganda
(e) tak sah - bukan aksara 'next line' yang sah
(f) tak sah - tak ada tanda kutip penutup
lat 2.2
1 (a) status[0]='B'; status[1]='E';........
(b) status[0]='B';status[1]='E';.........status[6]='\0';
(c) status[0]='P';status[1]='A';.....status[5]='\0';
2(a) char arah[]="UTARA";
(b) char ipt[6]={'O','U','M'};
lat 2.3
P0n2a4u6c8
lat 2.4
(a) 75
(b) 49
lat 2.5 [not done yet]
lat 2.6 [not done yet]
lat 2.7 [not done yet]
lat 3.1
1 - boleh gabungkan jenis data yg berbeza
2 - no matrik - integer, nama - rentetan 30 aksara, kursus - rentetan 30 aksara
lat 3.2
1
struct tarikh {
int hari;
int bulan;
int tahun;
} tarikhSaya;
2 (a) perlu tambah noktah bertindih pada hujung aturcara
(b) perlu tambah perkataan struct pada kiri baris aturcara: struct orang orang;
lat 3.3
1(a) pelanggan.nama;
(b) pelanggan.nomPelanggan;
(c) pelanggan.nomTelefon;
2(a) strcpy(pelanggan.nama,"Aisyah");
(b) pelanggan.nomPelanggan=1226;
(c) strcpy(pelanggan.nomTelefon,"011-333011");
lat 3.4
(a)
#include
#define BIL 50
struct BUKU {
char tajuk[50];
int tahun;
float harga;
} buku[50];
void bacaMaklumat(struct BUKU[]);
void main() {
bacaMaklumat(buku);
}
void bacaMaklumat(struct BUKU b[]) {
FILE *fail;
int i;
fail = fopen("data.dat","r");
for (i=0; i
#define BIL 50
struct BUKU {
char tajuk[50];
int tahun;
float harga;
} buku[50];
void bacaMaklumat(struct BUKU[]);
void cetakMaklumat(struct BUKU[]);
void main() {
bacaMaklumat(buku);
cetakMaklumat(buku);
}
void bacaMaklumat(struct BUKU buku[]) {
FILE *fail;
int i;
fail = fopen("data.dat","r");
for (i=0; i
fscanf(fail,"%d",&(buku[i].tahun));
fscanf(fail,"%f\n",&(buku[i].harga));
}
fclose(fail);
}
void cetakMaklumat(struct BUKU buku[]) {
int i;
for (i=0; i
}
}
2 - not yet done
lat 4.1
1(a) penunjuk p kepada pembolehubah berjenis int
(b) penunjuk q kepada pembolehubah berjenis float
(c) pembolehubah a diisytiharkan sebagai jenis int
penunjuk p diumpukkan nilai alamat a
2(a) 10 10
(b) 17.500000
lat 4.2
nota: sebelum aturcara ini dilaksanakan pembetulan perlu dilakukan kepada kedua-dua pernyataan printf, di mana
mereka mestilah dalam bentuk ini: printf("a=%d, b=%d\n",a,b);
dan bukannya printf("a=%.2f, b=%.2f\n",a,b);
(a) a=50, b=4
(b)
a=10 b=5
a=50 b=4
lat 4.3
1 yg tidak sah adalah pernyataan t=p oleh kerana nama tatasusunan (t) adalah suatu penuding kepada unsur pertama tatasusunan.
2
[saya menganggap p=n]
p+3 adalah alamat lokasi ingatan (-42) manakala *(p+3) adalah nilai dalam tatasusunan yang ke 1+3=4 iaitu 40
lat 4.4
segmen aturcara sepatutnya ditulis seperti berikut:
int *n; int bil;
n=(int *) malloc (bil *sizeof(int));
soalan tutorial - belum dibuat