Anda di halaman 1dari 18

1.

Bahasa C adalah sebuah bahasa pemrograman terstruktur, dimana


terdapat kecuali:
a. Blok program
c. Fungsi
d. If

b. Class

Alur program bahasa C dimulai dari bagian utama program, dilaksanakan


per baris, menggunakan prosedur hingga ke bagian akhir program:
a. Constant b. Procedural
c. Portable d. Variable
3. Versi paling awal C adalah:
a. ANSI C b. Kernighan &Ritchie C
c. Borland C

d. C#

Lokasi penyimpanan yang terletak di memori, digunakan untuk menyimpan


nilai yang tidak berubah selama jalannya program:
a. Constant
b. Procedural
c. Portable
d. Dangerous
5.
Konstanta yang digunakan untuk melakukan tabulasi horizontal adalah:
a. Karakter Escape
b. Numerik Pecahan
c. Karakter dan String
d. Numerik Integer
6.
File yang digunakan untuk menyimpan fungsi-fungsi adalah:
a. File . C
b. File Header
c. File Pustaka
d. File .CPP
7.
Statement yang berfungsi untuk mengendalikan proses dari program:
a. Compound Statement
b. Null Statement
c. Control Statement
d. Expression Statement
SOAL NOMOR 8 - 11

#include <stdio.h>
char pesan [3] [100] = { "Ini ", "sebuah ", "pesan." }; main()
{
int x;
for (x=1; x<3; x++) puts(pesan[x]);

puts("Ini bagian akhir!"); fflush(stdin);


getchar();
}

8.
Sebuah fungsi pustaka C yang sebuah karakter ASCII dari buffer
keyboard, dimana karakter tersebut ditampilkan pada layar dan menunggu
penekanan tombol enter:
a. puts()
c. fputs()

b. getch()
d. getchar()

9. Pada program di atas, terdapat sebanyak .... elemen dari array pesan
a. 1
b. 25
c. 100
d. 3
10. Sebuah fungsi pustaka C yang digunakan untuk menampilkan string ke
layar monitor dan
memindahkan kursor ke baris baru adalah:
a. puts()
c. fputs()

b. getch()
d. getchar()

11. Keluaran dari program di atas adalah:


a. Ini sebuah pesan. Ini bagian akhir!
c. Ini sebuah
d. sebuah
sebuah
pesan

b. sebuah pesan. Ini bagian akhir!

pesan.
Ini bagian akhir!

Ini bagian akhir!


12. Yang bukan termasuk modifier adalah:
a. long
b. verylong
c. unsigned d. short
13.
Jika suatu nilai bertipe double dioperasikan dengan tipe int, maka nilai yang
dihasilkan adalah
bertipe:
a. char
b. double
c. int
d. long int
14.
Jika sebuah nilai, yaitu x=20, maka --X akan menghasilkan nilai:
a. 22

b. 19
c. 20
d. 21
15.
Operator bitwise digunakan untuk memanipulasi bit-bit nilai data bertipe,
kecuali:
a. int
b. long int
c. double
d. char
Fungsi yang digunakan untuk melakukan perbandingan antar dua buah nilai
bertipe string adalah:
a. strcpy() b. strcat()
c. strerror ()

d. strcmp ()

17.
Fungsi yang mengembalikan karakter dari buffer keyboard, yang tidak akan
tampak pada layar
adalah:
a. getch()
b.gets()
c. putch()
d. puts()
18.
Untuk mengambil string yang diakhiri karakter tertentu dengan scanf,
menggunakan format:
a. *^\n+
b. %c
c. %s
d. %d
19.
Jika nilai mystring adalah HeyHello, nilai len=4, maka statement
printf("%.*s<<<<\n\n",len,
mystring); akan menghasilkan :
a. Hell<<<<
b. Hell>>>>
c. Hello>>>>
d. HeyH<<<<
SOAL NOMOR 20 - 23
/* Program to calculate the product of two numbers. */
#include <stdio.h>
3:
4: int a,b,c; 5:
6: int product(int x, int y); 7:
main()
{
/* Input the first number */
printf("Enter a number between 1 and 100: ");
scanf("%d", &a);
13:
/* Input the second number */

printf("Enter another number between 1 and 100: ");


scanf("%d", &b);
17:
18:
c = product(a, b);
printf ("%d times %d = %d\n", a, b, c);
return 0;
}
24:
25:
int product(int x, int y)
{
return (x * y);
}

20. Bagian manakah dari program di atas yang disebut sebagai


fungsi utama?
a. baris 6
c. baris 2

b. baris 26 - 29
d. baris 8 23

Baris 2 berfungsi untuk:


tempat dimulainya pelaksanaan program
menyimpan data ke lokasi penyimpanan
deklarasi sebuah fungsi
memasukkan fungsi dari file header ke dalam program
Baris 6 berfungsi untuk:
melakukan pemanggilan fungsi product dan mengirimkan nilai a
dan b
melakukan input a dan b
deklarasi sebuah fungsi
memasukkan isi dari file header ke dalam program
Jika nilai a=25 dan b=50, maka nilai c adalah:
a. 805
b. 125
c. 1250
d. 825
24. Fungsi yang tidak dapat digunakan untuk input tidak
terformat adalah:
a. getch() b. getchar()
c. getche() d. puts()
SOAL NOMOR 25 - 29
#include <stdio.h>
void exchange ( int *a, int *b );
main()
{
int a = 31, b = 15;
printf("From main: a = %d, b = %d\n", a, b); exchange(&a, &b);
printf("Back in main: "); printf("a = %d, b = %d\n", a, b); fflush(stdin);
getchar();

}
void exchange ( int *a, int *b )
{
int temp;
temp = *a; *a = *b;*b = temp; printf("From function exchange: "); printf("a =
%d, b = %d\n", *a, *b);
}

25. Jika baris void exchange ( int *a, int *b ); dihilangkan, maka yang terjadi
adalah:
a. Nilai a=7 dan b=5
b. Nilai a dan b tetap
c. Terjadi kesalahan pada program d. Meminta inputan nilai
Badan dari sebuah function yang dapat berupa sebuah instruksi atau blok
instruksi yang berada di antara kurung kurawal:
a. Statement
b. Argument
c. Type
d. Parameter
27. Nilai variabel a yang berada di dalam function exchange adalah:
a. 17 b. 25
c. 31 d. 15
28. Metode yang digunakan untuk melewatkan nilai dari main() ke function
exchange adalah:
a. Prototyping
b. Recursive
c. Pass by reference
d. Pass by value
29.
Nilai variabel b di main() setelah function exchange selesai dieksekusi:
a. 17
b. 25
c. 31
d. 15
30.
Blok instruksi yang akan dieksekusi ketika dipanggil dari bagian lain dalam suatu
program
disebut sebagai:
a. Pointer
b. Function
c. Argument
d. Array
Pada struktur kendali perulangan for, bentuk umumnya adalah:
for (initial; statement; condition) increment
for (increment; initial; statement ) condition
for (initial; condition; increment) statement

tidak ada jawaban benar


Jika kondisi perulangan tidak terpenuhi, struktur kendali .... akan
melaksanakannya paling sedikit satu kali:
a. break
b. while
c. for d. do while
33. Kumpulan nilai data dengan tipe yang sama dalam urutan tertentu yang
menggunakan sebuah
nama yang sama:
a. Array
b. Pointer
c. Struct

d. Statement

34. Statement yang digunakan untuk keluar dari suatu perulangan:


a. break
b. while
c. for d. do while
6

SOAL NOMOR 35 - 37
#include <stdio.h> #include <string.h> main()
{
int umur=0; char nama[41];
printf("Masukkan Umur: "); scanf("%d", &umur); printf("Masukkan Nama: "); scanf("%s",
nama);
if (strcmp(nama, "Bruce") == 0 && (umur < 13 || umur > 19)) printf("Andalah yang kami
cari!\n");
else
printf("Anda bukanlah yang kami cari\n");
fflush(stdin);
getchar();
}
35. Sebuah array dari karakter yang berada di dalam tanda kutip ganda, dan diakhir
dengan karakter

null disebut:
a. Larik
b. Function
c. Character

d. String

36. Jika variabel umur=15 dan nama=Bruce maka outputnya:


a. Andalah yang kami cari!
b. error!
c. program meminta inputan nama d. Andalah bukanlah yang kami cari!
37. Statement if (strcmp(nama, "Bruce") == 0 && (umur < 13 || umur > 19))
akan memiliki nilai
benar jika:
a. nama=Spike dan umur=13
c. nama=Bruce dan umur=21

b. nama=Tom dan umur=15


d. nama=Jerry dan umur=11

38. Fungsi yang digunakan untuk menggabungkan antara 2 buah string adalah:
a. strcpy() b. strcmp()
c. strerr()

d. strcat()

39. Sebuah variabel yang berisi alamat lokasi suatu variabel lain disebut
sebagai:
a. Array
c. Struct

b. Pointer
d. Reference

40. Berikut ini yang tidak termasuk ke dalam whitespace characters adalah:
a.Linefeed b. Newline
c. Oldline d. Tab
SOAL NOMOR 41 - 43 main ()
{
int n;
int harga[4];
for (n=0; n<4; n++)
{
harga[n]=0;
}
int *p;
p = harga; *p = 700; *p = 2500;
p = &harga[2]; *p = 575; *(p+1) = 450;

for (n=0; n<4; n++)


{
printf ("%d, ", harga[n]);
}
fflush(stdin);
getchar();
}
Operator yang digunakan untuk mengetahui alamat lokasi penyimpanan
dari suatu variabel adalah:
a. -- b. * (Reference)
c. CLS
d. & (Address)
42. nilai harga[1] dari program di atas adalah:
a. 0 b. 700
c. 2500

d. 450

43. nilai harga[3] dari program di atas adalah:


a. 450
b. blank
c. 2500
d. 575

44. Untuk mencari sisa hasil pembagian, maka digunakan operator:


a. ++ b. -c. $ d. %
45. Perhatikan potongan program di bawah ini:
for (number = start; number < start + count; number = number + 1)
{
printf("The divisors of %i are: ", number );
for (divisor = 1; divisor <= number; divisor = divisor + 1)
{
if (number % divisor == 0) printf("%i ", divisor);
}
printf("\n");
}
Jika nilai start=1 dan count=3, maka output dari program di atas adalah:
a. The divisors of 1 are: 1
b. The divisors of 1 are: 1
The divisors of 2 are: 1
2
The divisors of 2 are: 2
The divisors of 3 are: 1
3
The divisors of 3 are: 3
c. The divisors of 1 are: 1
d. The divisors
The divisors of
*
The divisors of
The divisors of
3
The divisors of

of 1 are: 3
2 are: 1
2 are: 2
3 are: 1
3 are: 1

Suatu struktur data yang mengabungkan dengan berbagai tipe data yang
memiliki ukuran yang berbeda (heterogen) dikelompokkn dalam satu deklarasi
unik dan saling berkaitan disebut
sebagai:
a. Array

b. Pointer

c. Struct

d. Reference

47. Perhatikan potongan program di bawah ini:

struct fruits
{
char name [30];
float price;
};
fruits apple;
fruits orange, melon;
Yang merupakan nama dari model struktur di atas adalah:
a. apple
b. orange
c. melon

d. fruits

Pernyataan yang kurang tepat tentang struct:


struct dapat digabungkan dengan array
struct dapat dikirimkan ke function sebagai parameter
struct tidak dapat didelarasikan secara bertingkat
kita dapat membuat banyak object dari satu model
Fungsi pustaka strcpy() dan strcat() terdapat pada file header:
a. stdio.h b. string.h
c. conio.h

d. math.h

Karakteristik yang ingin dicapai dalam pengembangan awal


bahasa C:
High Level Programming
Machine Independent Programming
Memungkinkan bagi programmer untuk mengatur perilaku
informasinya
Jawaban a, b, dan c benar

10

Anda mungkin juga menyukai