Anda di halaman 1dari 4

Quiz

Matakuliah : Dasar Pemrograman Komputer (DPK)


Waktu : 90 menit
Sifat : Tutup Buku/Catatan/Laptop/dan HP
Pilihlah jawaban yang benar (bisa lebih dari 1 jawaban)

5. Diberikan potongan program sebagai berikut:

1. Diberikan program sebagai berikut:

char s1[20] = well;


char s2[20] = come;
int len;

#include <iostream.h>
void main()
{
float y[ ] = {-2, 5, 7, -8, 3}, Jumlah = 0;
int
i;

Jika diberikan perintah:


s1[strlen (s1) 1] = \0; dan
strcpy (s1, s);

for (i=1; i<=3; i++) Jumlah = Jumlah + y[i];


cout << "Jumlah = " << Jumlah << endl;

maka pernyataan berikut yang paling tepat adalah:


a. s1 = 20 dan s1 = 20;
b. s1 = wel dan s1 = come
c. s1 = 19 dan s1 = s
d. s1 = 19 dan s1 = comes
e. s1 = well dan s1 = comes.

}
Keluaran program adalah:
a. 10
b. 2
c. 5
d. 4
e. 7

6. Eksekusi pada setiap program Bahasa C++, dimulai dari fungsi:


a. Pustaka (library)
b. Preprocessor
c.main
d. Prototipe fungsi yang telah dideklarasi
e. Bergantung perintah yang dibuat oleh pemrogram.

2. #include <iostream.h>
void selisih (int);
int main()
{
selisih (0);
return 2;
}
void selisih (int)
{
static int sel;
--------sel;
cout << "Selisih : " << sel << endl;
}

7. Asumsikan program berikut ini benar.


#include <iostream.h>
#include <stdio.h>
void main()
{
int
F, X = 17, Y = 4, Z;
bool A, B;

Jika program dieksekusi, maka hasilnya adalah:


a. Selisih : -8
b. Selisih : -6
c. Selisih : -4
d. Error, karena nilai balikannya = 2 (return 2)
e. Error, karena perintah -------- sel tidak legal.

A = true;
B = false;
Z = B + !X ^ ~Y;
F = ~X || Y + Z true + A;

3. Jumlah karakter maksimum yang dapat disimpan


pada variabel bertipe char adalah:
a. 1
b. 2
c. 8
d. 16
e. Bergantung pada pendeklarasian variabel tersebut.

cout << "Keluaran = " << Z << endl;


cout << "Keluaran = " << F << endl;
}
Keluaran program tersebut adalah:
a. Keluaran = -5
Keluaran = 1
b. Keluaran = 12
Keluaran = -7
c. Keluaran = true
Keluaran = true
d. Keluaran = true
Keluaran = false
e. Keluaran = false
Keluaran = false

4. Pendeklarasian array x yang terdiri dari 50 elemen


bilangan integer dan 50 elemen bilangan pecahan, adalah:
a. x[int 50][float 50];
b.int x[50], float x[50];
c. int, float x[50,50];
d. int, float x[50][50];
e. Tidak dapat dilakukan.

8.

#include <iostream.h>

c. Proses perulangan akan lebih cepat, karena


variabel register memiliki kecepatan yang
lebih tinggi dibandingkan variabel biasa.
d. Dideklarasikan dengan menggunakan kata
kunci register.
e. Nilai variabel register tidak disimpan di dalam
memori utama (RAM).

int main()
{
int* pInt;
pInt = new int[5];
*pInt = -2;
*(pInt + 0) = 1;
*(pInt + 1) = 3;
*(pInt + 2) = 2;
*(pInt + 1) = 4;
*(pInt + 3) = 0;

11. Perhatikan pernyataan-pernyataan berikut.


1. Array dapat memiliki sejumlah nilai, sedangkan variabel biasa hanya mempunyai sebuah
nilai saja.
2. Elemen pertama dari sebuah array dimulai
dengan indeks 1 (satu)
3. Bahasa C++ menyediakan tipe data khusus
untuk nilai string
4. Ukuran suatu array selalu diinisialisasi secara
eksplisit.
5.
Dimensi pertama dari array dimensi 2
menunjukkan baris, sedangkan dimensi
keduanya menunjukkan kolom.
Dari pernyataan di atas, pernyataan yang salah
adalah pernyataan:
a. 1, 2, dan 3
b. 2, 3, dan 4
c. 3, 4, dan 5
d. 2, 4, dan 5
e. Semua pernyataan di atas benar.

for (int i=0; i<4; i++)


cout << *(pInt + i) << endl;
delete [ ] pInt;
return -3;
}
Keluaran program berikut adalah:
a. 1
3
2
4
b. 1
4
2
0
c. -2
1
3
2
d. -3
0
0
0
e. Error, return -3 tidak didefinisikan.
9.

12. Jika n = 24, maka keluaran potongan program


berikut adalah:
switch (n)
{
case 24 : cout << A;
case 6 : cout << B;
break;
case 7 : cout << C;
case 5 : cout << D;
default : cout << E;

Perhatikan program berikut:


#include <iostream.h>
void main()
{
int i;
for (i=3; i<=7;);
cout << " "<< i; i += 2; endl;
}

a. ABCDE
b. ABCD
c. DBCA
d. AB
e. CDE

Eksekusi program, akan menghasilkan keluaran:


a. 3 3 3 3 3 ...... (terus menerus/berulangulang)
b. 3 5 7
c. Program error, tidak ada nilai increment
atau decrement dari variabel i.
d. Program error, pada baris cout << " "<< i; i
+= 2; endl.
e. Program tidak ada keluarannya saat
dieksekusi.

13. Ada 3 (tiga) tipe struktur kontrol dalam Bahasa


C++. Masing-masing struktur kontrol tersebut
adalah:
a. if, if else, dan if else if
b. for, while, dan do while
c. Sekuensial, modular, dan seleksi.
d. switch case, break exit(), dan continue
e. goto label, function call, dan return.
14. Diberikan potongan program sebagai berikut:

10. Sifat variabel register yang tidak tepat, ditunjukkan oleh pernyataan:
a. Diterapkan pada variabel global, yang bertipe: integer maupun long integer
b. Digunakan untuk mengendalikan proses perulangan (looping).

i = 7;
j = ++i;
cout << i = << i << , j = << j << endl;
Keluaran potongan program tersebut adalah:
a. i = 7, j = 7
b. i = 7, j = 8

c. i = 7, j = 1
d. i = 8, j = 8
e. i = i, j = j

while (strg[j] != '\0')


{
char kar = strg[j];
if (kar >= 'a' && kar <= 'z')
strg[j] = strg[j] - 30; j++;
}

15. Diberikan set pernyataan sebagai berikut:


(1) Operator modulus (%) hanya dapat digunakan pada operand integer
(2) Operator aritmatika *, /, %, +, dan -, mempunyai level urutan yang berbe-da.
(3) Setiap variabel harus dideklarasikan dahulu
sebelum digunakan, kecuali variabel register
(4) Setiap variabel harus diberi tipe pada saat dideklarasikan, kecuali variabel register.
(5) Variabel dengan nama bilangan dan
biLAngAN di dalam pemrograman Bahasa C,
adalah identik.
Dari set pernyataan tersebut, pernyataan yang
salah adalah pernyataan:
a. (1), (2), dan (3)
b. (2), (3), dan (4)
c. (3), (4), dan (5)
d. (1), (3), dan (5)
e. (1), (2), dan (4)

}
a.
b.
c.
d.
e.

Program C++
program c++
program C-PROGRAM C-PTQITCO C++

18. Disajikan listing program sebagai berikut.


#include <iostream.h>
void desm (int bil, int rad);
int main()
{
Int bil_asal;
Int rdx;

16. #include <iostream.h>

rdx = 2;
cout <<"Nilai = ";
cin >> bil_asal;
cout << endl;
cout <<"Hasil Transformasi = ";
desm (bil_asal, rdx);
cout << endl;
return (-2);

void main()
{
int x, *ptrx;
x = 10.23;
*ptrx = 5;
cout << "Nilai x = " << x << endl;
cout << "Nilai x = " << ptrx + 2 << endl;

void desm (int bil, int rad)


{
if (bil > 0)
{
desm (bil/rad, rad);
cout << bil % rad;
}
}

Bila program tersebut dijalankan, maka keluarannya adalah:


a. Program error pada perintah x = 10.23, karena variabel x bertipe bukan integer.
b. Nilai x = 10. 23
Nilai x = 7
c. Nilai x = 10
Nilai x = 7
d. Program sukses dikompail, namun tidak
memberikan keluaran apapun.
e. Nilai x = 10;
Nilai x = Ox0012FF84

Jika Nilai = 37, maka besarnya Hasil Transformasi adalah:


a. 25
b. 45
c. 2123
d. 011001
e. 100101

17. Keluaran program berikut adalah:


#include <iostream.h>
void geser (char strg[ ]);

19. Diberikan potongan deklarasi program sebagai


berikut:

int main()
{
char word[ ] = "Program C++";
geser (word);
cout << "Hasil = " << word << endl;
return (0);
}

int
float
double

i = 10;
x = 3.8;
d = 4.2;

maka ekspresi i / 3 * 3.0 akan bernilai:


a.
b.
c.
d.
e.

void geser (char strg[ ])


{
int j = 0;

1.111111
9.999999
9.0
Error in expression
Tidak menghasilkan keluaran apapun

20.Untuk nilai n = 100, maka keluaran potongan


program berikut adalah:

int whatIsThis (int b[], int size)


{
if (size == 1)
return b[0];
else
return b[size-1] + whatIsThis (b, size-1);
}

if (n > 50)
{
if (n <= 200)
cout << A;
}
else if (n > 20)
if (n % 2 == 0)
cout << B;
else
cout << C;
a.
b.
c.
d.
e.

Eksekusi program akan menghasilkan keluaran:


a. 18
b. 15
c. 12
d. 9
e. 6

A
B
C
A B
B C

24. Cermati pernyataan berikut.


(1) Argumen yang dilewatkan dalam sebuah
fungsi haruslah sepadan, baik jumlah, tipe,
maupun urutannya dengan parameter yang
ada dalam fungsi tersebut.
(2) Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri, baik langsung maupun
tidak langsung.
(3) Nilai konstanta enumerasi dimulai dari 1, dan
diincrement 1.
(4) Fungsi rand() berguna untuk membangkitkan
bilangan integer secara random, dari
RAND_MIN sampai dengan RAND_MAX.

21. Pemodifikasian tipe data unsigned dapat diterapkan pada data yang bertipe:
a. char
b. short
c. int
d. long
e. float.
22. (1) Variabel statis didapat dengan menambahkan kata kunci static di depan tipe variabel
pada pernyataan pendefinisian.
(2) Fungsi bertipe void memerlukan nilai balikan
dengan menggunakan pernyataan return.
(3) Secara prinsip, dalam Bahasa C tidak diperkenankan menggunakan perulangan bersarang (nested) dengan menggunakan pernyataan do-while.
(4) Eksekusi suatu program dapat dihentikan
dengan menggunakan fungsi exit().
Keempat pernyataan tersebut, yang bernilai benar adalah pernyataan:
a.
b.
c.
d.
e.

Dari ke empat pernyataan tersebut, pernyataan


yang bernilai salah adalah pernyataan:
a.
b.
c.
d.
e.

(1) dan (2)


(2) dan (3)
(3) dan (4)
(1) dan (3)
(2) dan (4)

25.Coercion adalah istilah yang terdapat dalam Bahasa C. Istilah tersebut berkaitan dengan:
a. Pemakaian operator cast secara eksplisit (tertulis
dalam program), dalam mengkonversi suatu nilai
pada suatu varibel.
b. Penggunaan nilai konstanta yang dideklarasikan
secara global dalam pemrograman Bahasa C++.
c. Peningkatan presisi bilangan floating point atau
double, sehingga mempunyai jangkauan (range)
yang lebih besar.
d. Pemanfaatan file header dalam pustaka (library)
Bahasa C++, yang digunakan untuk konversi
bilangan integer ke string.
e. Pengaktifan file checker pada compiler, sehingga
memudahkan pemrogram dalam mengembangkan program.

(1) dan (2)


(1) dan (3)
(1) dan (4)
(2) dan (3)
(2) dan (4)

23. Perhatikan program berikut ini.


#include <iostream>
using std::cout;
using std::endl;
int whatIsThis (int [], int);
int main()
{
const int arraySize = 5;
int a[arraySize] = {1, 2, 3, 4, 5};
int result = whatIsThis (a, arraySize);
cout << "Result is : " << result << endl;
return 0;
}

Anda mungkin juga menyukai