NIM:____________________
D. 5 5 15
B. 5 10 15
E. 5 5 5
C. 10 5 15
2. Diketahui sebuah fungsi berikut:
int what(int a, int b) {
if (b <= 1) return a;
else return a+what(a, b - 2);
}
Nilai dari what(10,5) adalah ..
A. 50
D. 20
1
KODE SOAL:
B. 40
NIM:____________________
E. 10
C. 30
3. Diketahui sebuah fungsi berikut:
void what(unsigned a) {
while (a > 0) {
printf("%d", a % 2);
a = a >> 2; //shift kanan dua bit
}
}
Jika dipanggil dengan what(23), maka akan menampilkan output .....
A. 1011
D. 101
B. 111
E. 011
C. 11
D. ritme algoritme
B. algor algoritme
E. algoritme algor
C. algor algor
5. Perhatikan program berikut:
#include <stdio.h>
main() {
char *b[] = {"ipb","bogor"};
char *z=&b[1][1];
char *w=b[1];
printf("%s", z);
printf("%s", w);
return 0;
}
Output program tersebut adalah .....
A. bogorbogor
D. ogorbogor
B. ipbipb
E. bogoripb
C. pbbogor
2
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
D. 30
B. 30
E. 30
C. 30ab
D. (*p)->x
B. p->x
E. y.x
C. (*p).x
8. Perhatikan program berikut:
#include <stdio.h>
main() {
char *s1="ipb\0bogor";
while (*s1++);
printf("%s\n", s1);
return 0;
}
Output program tersebut adalah .....
A. ipbbogor
D. Program error
3
KODE SOAL:
NIM:____________________
B. ipb
C. bogor
9. Perhatikan deklarasi variabel berikut:
int y = 5;
int *yPtr;
Instruksi yang mengarahkan yPtr ke alamat y adalah ..
A. yPtr = &y;
D. &y = yPtr;
yPtr = *y;
E. *y = yPtr;
B.
C. y = yPtr;
10. Jika diketahui variabel array b dan variabel pointer bPtr, maka pernyataan berikut yang
BENAR setelah ada instruksi bPtr = &b[0]; adalah:
A.
B.
C.
D.
E.
D. 4
B. 2
E. 5
C. 3
12. Perhatikan program berikut:
#include <stdio.h>
#define n 5
main() {
int a[n]={1,2,3,4,5};
int i;
for (i=0; i<n/2; i++) a[i]=a[n-i-1];
for (i=0; i<n; i++) printf("%d",a[i]);
return 0;
}
Output program tersebut adalah .....
4
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
A. 54321
D. 12345
B. 12321
E. 12312
C. 54345
13. Ukuran array karakter untuk menampung string
A. 9
B. 10
C. 11
"algor\n\t/s"
adalah
D. 12
E. 13
A. 15 7 3 1
D. 15 7 3
B. 1 3 7 15
E. 1
C. 3 7 15
15. Perhatikan fungsi Insertion Sort berikut:
void sort(int t[50], int n) {
int i, j, index;
for (i=1; i<n; i++) {
index = t[i]; j = i;
while ((j>0) && (t[j-1]>index)) {
t[j] = t[j-1]; j = j-1;
}
t[j] = index;
}
}
Jika diketahui array
D. 10,20,40,50,30
B. 10,30,40,50,20
E. 10,40,50,20,30
C. 10,20,30,40,50
5
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
16. Instruksi yang dapat digunakan untuk membaca string dari keyboard dan disimpan ke dalam
variabel bernama inp adalah ...
A. scanf("%c", inp);
B. scanf("%c", &inp);
E. fgets(inp);
C. scanf("%s", &inp);
D. int *ptr;
B. char *st[]={"satu","dua"};
E. float gaji;
int a,b;
C. struct person {
string name;
int age;
};
18. Perhatikan program berikut:
#include <stdio.h>
main() {
char *st="ipb bogor\n/";
int n=0;
while (*st++) n++;
printf("%d\n", n);
return 0;
}
Output dari program di atas adalah .
A. 10
D. 13
B. 11
E. Program error
C. 12
19. Potongan program yang benar untuk membaca data matrik karakter berikut adalah (baris
pertama adalah ukuran matrik).
3 10
..****....
******..**
**...**..*
6
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
D. number = *sPtr;
B. *++z;
E. &aPtr = z[1];
C. *number = zPtr;
7
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
3. Diketahui deklarasi global berikut untuk menggambarkan sebuah koordinat titik (x,y):
struct titik {
int x,y;
};
Dengan menggunakan tipe struct titik di atas dan pernyataan penugasan (assignment),
buatlah definisi sebuah variabel t1 yang merupakan sebuah titik dengan koordinat (10,5), dan
variabel t2 yang merupakan pointer ke t1.
4. Perhatikan program berikut:
#include <stdio.h>
main() {
int i;
int a[5]={10,20,30,40,50};
int *b=&a[1];
8
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
9
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN
KODE SOAL:
NIM:____________________
LEMBAR JAWABAN
UJIAN AKHIR SEMESTER GANJIL 2010-2011
ALGORITME DAN PEMROGRAMAN
A.PILIHAN GANDA
Silanglah Jawaban yang Benar
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
B. ISIAN SINGKAT
Tuliskan Jawaban dengan Singkat dan Tepat pada Kotak
yang telah disediakan
1.
2.
3.
4.
10
HANYA UNTUK LATIHAN TIDAK DIPERJUALBELIKAN