40 marksmarkah. Guna mod Latihan untuk menyemak setiap jawapan, atau mod Peperiksaan untuk menjawab semua soalan dahulu. Sediakan kertas kosong dan pensel untuk menjejak kod arahan baris demi baris.
Bahagian A: soalan objektif
13 marksmarkah
Jawab semua soalan. Pilih satu jawapan yang betul bagi setiap soalan.
1
QuestionSoalan 1
Antara bahasa pengaturcaraan berikut, yang manakah menggunakan pentafsir (interpreter) untuk menterjemah kod arahan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Python, PHP, Perl dan Ruby menggunakan pentafsir. C, C++, Java dan Pascal menggunakan pengkompil (Rajah 3.1, ms. 76).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1
TextbookBuku teksp.ms. 76
2
QuestionSoalan 2
Bahasa pengaturcaraan Python tidak menyokong jenis data double. Jenis data manakah yang digunakan oleh Python untuk mewakili nombor yang mempunyai titik perpuluhan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Python menggunakan jenis data float bagi nombor yang mempunyai titik perpuluhan. int ialah nombor bulat, str ialah rentetan aksara dan bool ialah nilai logik (ms. 79).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.1
TextbookBuku teksp.ms. 79
3
QuestionSoalan 3
Bahasa pengaturcaraan Python tidak mempunyai jenis data char. Dalam Python, satu aksara seperti 'A' diwakili oleh jenis data
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Python tidak mempunyai jenis data char. Semua aksara diwakili oleh jenis data string (ms. 81).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.1
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Fungsi len() menghitung bilangan aksara dalam string. Ruang kosong juga dikira sebagai satu aksara. Sains (5) + ruang (1) + Komputer (8) = 14 (Contoh 3.7, ms. 84).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.1.1
TextbookBuku teksp.ms. 84
5
QuestionSoalan 5
Antara berikut, yang manakah nama pemboleh ubah yang boleh digunakan dalam Python?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Nama pemboleh ubah hanya boleh mengandungi huruf dan digit, tidak boleh dimulakan dengan nombor dan tidak boleh ada ruang kosong. 2markah bermula dengan nombor. markah murid dan jum jualan ada ruang kosong. markah2 sahaja yang betul (ms. 91).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.2
TextbookBuku teksp.ms. 91
6
QuestionSoalan 6
Dalam atur cara yang mengira luas bulatan, nilai π diisytiharkan sebagai pemalar. Mengapakah?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Nilai pemalar tetap dan tidak berubah semasa atur cara dilaksanakan, jadi nilai π kekal sama dalam setiap pengiraan. Nilai pemboleh ubah pula boleh berubah (Jadual 3.4, ms. 92).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.2
TextbookBuku teksp.ms. 92
7
QuestionSoalan 7
Antara berikut, yang manakah fungsi input dalam Python untuk mendapatkan data daripada pengguna?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Python menggunakan input(). print() ialah fungsi output. cout ialah fungsi output C++ dan scanf() ialah fungsi input bahasa C (Jadual 3.5 dan 3.6, ms. 95-97).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teksp.ms. 96
8
QuestionSoalan 8
Diberi x = 12. Antara ungkapan boolean berikut, yang manakah memberikan False?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
x > 10 ialah True (12 lebih besar daripada 10). x <= 12 ialah True (12 sama dengan 12). x == 12 ialah True. x != 12 bermaksud x tidak sama dengan 12, jadi False (Jadual 3.7, ms. 98).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teksp.ms. 98
9
QuestionSoalan 9
Diberi x = 15. Apakah nilai bagi ungkapan berikut?
(x > 10) and (x < 15)
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
x > 10 ialah True tetapi x < 15 ialah False kerana 15 tidak kurang daripada 15. Operator AND memberikan True hanya jika kedua-dua keadaan benar, jadi hasilnya False (Jadual 3.8, ms. 99).
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teksp.ms. 99
10
QuestionSoalan 10
Apakah output bagi kod Python berikut?
print(17 % 5, 17 // 5, 2 ** 3)
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
17 % 5 ialah baki pembahagian = 2. 17 // 5 ialah hasil bahagi tanpa baki = 3. 2 ** 3 ialah 2 dikuasakan 3 = 8. Output: 2 3 8 (Jadual 3.9, ms. 100).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.1.3
TextbookBuku teksp.ms. 100
11
QuestionSoalan 11
Murid menaip kod berikut dalam IDLE Python. Atur cara berhenti tiba-tiba dan memaparkan mesej NameError: name 'markh' is not defined.
1markah = 80
2print(markh)
Apakah jenis ralat ini?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Pemboleh ubah markh tidak pernah ditakrifkan (salah eja markah). Menggunakan pemboleh ubah yang belum ditakrifkan menyebabkan atur cara terhenti tiba-tiba dengan mesej ralat, iaitu ralat masa larian (ms. 106).
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, standard 3.1.4
TextbookBuku teksp.ms. 106
12
QuestionSoalan 12
Aini menulis kod berikut untuk mengira purata dua markah. Atur cara berjalan tanpa mesej ralat tetapi memaparkan 125.0, bukan 85.0.
1a = 80
2b = 90
3purata = a + b / 2
4print(purata)
Apakah jenis ralat dan cara membaikinya?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Tiada mesej ralat tetapi output salah, maka ini ralat logik. Operator bahagi dilaksanakan dahulu: 80 + (90 / 2) = 125.0. Kurungan memaksa tambah dahulu: (80 + 90) / 2 = 85.0 (Contoh 3.20, ms. 110-111).
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 3.1.4
TextbookBuku teksp.ms. 110
13
QuestionSoalan 13
Atur cara perlu memaparkan "Tahniah" sebanyak lima kali. Hafiz menulis lima baris print("Tahniah"). Mei Ling menulis kod berikut.
for i in range(5):
print("Tahniah")
Antara pernyataan berikut, yang manakah penilaian yang paling tepat?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Struktur kawalan ulangan membolehkan kod yang panjang diringkaskan dan lebih mudah ditambah baik (ms. 143). Untuk 50 kali, Hafiz perlu menulis 50 baris tetapi Mei Ling hanya menukar range(5) kepada range(50).
For the teacherUntuk guru: EvaluatingMenilai, hightinggi difficultyaras hightinggi, standard 3.2.1
TextbookBuku teksp.ms. 143
Bahagian B: soalan berstruktur
27 marksmarkah
Jawab semua soalan. Jejak kod arahan baris demi baris. Kod ditulis dalam Python 3.5, seperti dalam buku teks.
14
QuestionSoalan 14
Nyatakan jenis data bagi setiap nilai dalam segmen kod Python berikut.
[1 markmarkah](a)Tulis output jika pengguna memasukkan 85.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Cemerlang
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](b)Tulis output jika pengguna memasukkan 50.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Lulus
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](c)Namakan jenis struktur kawalan pilihan dalam kod di atas.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Struktur kawalan pilihan bersarang
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.2.1
TextbookBuku teksp.ms. 136
19
QuestionSoalan 19
Sebuah taman permainan menjual tiket mengikut umur: kanak-kanak (bawah 13 tahun), dewasa (13 hingga 59 tahun) dan warga emas (60 tahun dan ke atas). Kod berikut ditulis untuk memaparkan jenis tiket.
1umur = int(input("Umur: "))
2if umur >= 13:
3 print("Tiket dewasa")
4elif umur >= 60:
5 print("Tiket warga emas")
6else:
7 print("Tiket kanak-kanak")
[1 markmarkah](a)Tulis output jika pengguna memasukkan 65.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Tiket dewasa
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](b)Output di atas salah. Nyatakan jenis ralat dan terangkan puncanya.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat logik: syarat umur >= 13 benar dahulu, maka elif umur >= 60 tidak pernah dicapai.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](c)Tulis semula baris 2 hingga 5 supaya atur cara memberi output yang betul.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
if umur >= 60: print("Tiket warga emas") elif umur >= 13: print("Tiket dewasa")
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 3.2.2
TextbookBuku teksp.ms. 153
20
QuestionSoalan 20
Teliti segmen kod Python berikut.
1jumlah = 0
2for i in range(1, 5):
3 jumlah = jumlah + i * 2
4print(jumlah)
[1 markmarkah](a)Senaraikan nilai i yang dijana oleh range(1, 5).
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
1, 2, 3, 4
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah](b)Tulis nilai jumlah selepas setiap lelaran, kemudian tulis output atur cara.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
2, 6, 12, 20. Output: 20
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](c)Kod while n > 0: print(n) dengan n = 3 tidak mengubah nilai n dalam gelung. Apakah yang berlaku?
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Gelung tak terhingga
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.2.1
TextbookBuku teksp.ms. 146
21
QuestionSoalan 21
Permainan meneka nombor menggunakan gabungan struktur kawalan. Lengkapkan kod Python berikut. Pemboleh ubah rahsia ialah nombor rahsia yang tidak berubah.
1rahsia = 7
2teka = int(input("Teka nombor: "))
3while teka (a) rahsia:
4 if teka < rahsia:
5 print("Terlalu kecil")
6(b):
7 print("Terlalu besar")
8 teka = (c)(input("Teka lagi: "))
9print("Tahniah!")
[1 markmarkah](a)Pilih operator perbandingan pada (a) supaya gelung berulang selagi tekaan tidak sama dengan nombor rahsia.Show answerTunjuk jawapanHide answerSembunyi jawapan
!=
[1 markmarkah](b)Kata kunci pada (b) bagi cabang apabila tekaan lebih besar.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
else
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](c)Fungsi pada (c) yang menukar input kepada nombor bulat.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
int
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, hightinggi difficultyaras hightinggi, standard 3.2.3
TextbookBuku teksp.ms. 160
22
QuestionSoalan 22
Sebuah kantin menjual buku latihan dengan harga tetap RM8.50 senaskhah. Tulis segmen kod Python yang meminta pengguna memasukkan bilangan buku (nombor bulat), mengira jumlah bayaran dan memaparkan jumlah itu.
[3 marksmarkah]Tulis segmen kod anda.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
harga = 8.50 / bilangan = int(input("Bilangan buku: ")) / jumlah = harga * bilangan / print("Jumlah: RM", jumlah)
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, standard 3.1.5