Anda di halaman 1dari 14

1. Cari error pada masing-masing segment kode berikut dan jelaskan bagaimana memperbaiki kode berikut: a.

x = 1;

while ( x <= 10 ); x++; } b. for ( y = .1; y != 1.0; y += .1 )

printf( "%f\n", y ); c. switch ( n ) {

case 1: printf( "The number is 1\n" ); case 2: printf( "The number is 2\n" ); break; default: printf( "The number is not 1 or 2\n" ); break; } d. Kode berikut seharusnya mencetak kode 1 sampai 10.

n = 1; while ( n < 10 ) printf( "%d ", n++ );

2. Cari error pada masing-masing segment kode berikut (kemungkinan terdiri dari lebih dari

satu error) a. For ( x = 100, x >= 1, x++ )

printf( "%d\n", x ); b. Kode berikut seharusnya mencetak apakah mencetak integer genap atau ganjil:

switch ( value % 2 ) { case 0: printf( "Even integer\n" ); case 1: printf( "Odd integer\n" ); c. Kode berikut seharusnya meng-input sebuah integer dan sebuah karakter dan mencetaknya. Anggaplah user mengetik inputan 100 A.

scanf( "%d", &intVal ); charVal = getchar(); printf( "Integer: %d\nCharacter: %c\n", intVal, charVal ); d. for ( x = .000001; x == .0001; x += .000001 ) {

printf( "%.7f\n", x ); } e. Kode berikut seharusnya mempunyai output integer ganjil dari 999 sampai 1.

for ( x = 999; x >= 1; x += 2 ) { printf( "%d\n", x ); } f. Kode berikut seharusnya mengeluarkan output integer genap dar 2 sampai 100.

counter = 2; Do { if ( counter % 2 == 0 ) { printf( "%d\n", counter ); } counter += 2; } While ( counter < 100 ); g. Kode berikut seharusnya menjumlahkan integer dari 100 sampai dengan 150 (anggaplah total diinisialisasi dengan 0).

for ( x = 100; x <= 150; x++ ); { total += x; }

3. Tulislah sebuah statemen atau sebuah set statemen untuk menyelesaikan masingmasing tugas berikut a. Jumlahkan integer ganjil antara 1 dan 99 menggunakan for statement. Anggaplah variabel integer sum dan count telah didefinisikan b. Mencetak nilai 444.567899 pada field dengan panjang 15 karakter dengan presis i 1, 2, 3, 4 dan 5. Output rata kiri. Berapakah 5 nilai yang tercetak?

c. Hitung nilai 2.5 pangkat 3 dengan menggunakan fungsi pow. Cetak hasil dengan presisi 2 dengan panjang field 10. Berapakah nilai yang tercetak? d. Cetak integer dari 1 sampai 20 menggunakan whileloop dan variabel counter x. Anggaplah bahwa variabel x telah didefinisikan tapi tidak diinisialisasi. Cetak hanya 5 integer per line. [Petunjuk: Gunakan hitungan x % 5. Ketika nilai ini adalah 0, cetak sebuah newline character, sebaliknya cetak sebuah tab character]

4. Buatlah sebuah fungsi yang mengembalikan nilai paling kecil dari tiga bilanga n floating point! 5. Buatlah sebuah fungsi jarak yang menghitung jarak antara dua titik (x1, y1) d an (x2, y2). Semua nilai yang dikembalikan memiliki type double! 6. Cari error pada masing-masing segment program berikut dan jelaskan bagaimana memperbaikinya!

a. double cube( float ); /* function prototype */ cube( float number ) /* function definition */ { return number * number * number; } b. int randomNumber = srand(); c. double y = 123.45678; int x; x = y; printf( "%f\n", (double) x ); d. double square( double number ) { double number; return number * number; } e. int sum( int n ) { if ( n == 0 ) { return 0; } else { return n + sum( n ); } } 7. Cari error pada masing-masing segment program berikut dan jelaskan bagaimana memperbaikinya! a. #define SIZE 100; b. SIZE = 10; c. Anggaplah: int b[ 10 ] = { 0 }, i;

for ( i = 0; i <= 10; i++ ) { b[ i ] = 1; } d. #include <stdio.h>; e. Anggaplah: int a[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } }; a[ 1, 1 ] = 5; f. #define VALUE = 120

C:\Users\Bayu\Desktop\1.jpg 8. Cari error pada masing-masing segment program berikut! a. Angaplah: char str[ 5 ]; scanf( "%s", str ); /* User mengetik mereka */ b. Angaplah: int a[ 3 ]; printf( "$d %d %d\n", a[ 1 ], a[ 2 ], a[ 3 ] ); c. double f[ 3 ] = { 1.1, 10.01, 100.001, 1000.0001 }; d. Angaplah: double d[ 2 ][ 10 ]; d[ 1, 9 ] = 2.345; 9. Apakah output dari program di bawah:

C:\Users\Bayu\Desktop\2.jpg 10. Apakah output dari program di bawah:

C:\Users\Bayu\Desktop\1.jpg 11. Apakah output dari program di bawah:

12. Cari error pada masing-masing segment program berikut! Anggaplah: int *zPtr; /* zPtr will reference array z */ int *aPtr = NULL; void *sPtr = NULL; int number, i; int z[ 5 ] a. ++zptr; b. /* gunakan pointer untuk mendapatkan nilai pertama dari array ; anggaplah zPt r dinisialisasi */ number = zPtr; c. /* assign array element 2 (nilainya 3) untuk number; Anggaplah zPtr diinisialisasi */ number = *zPtr[ 2 ]; d. /* cetak seluruh array z; Anggaplah zPtr diinisialisasi */ for ( i = 0; i <= 5; i++ ) { printf( "%d ", zPtr[ i ] ); } e. /* assign value yang ditunjukkan oleh sPtr untuk number */ number = *sPtr; f. ++z;

13. Cari error pada masing-masing segment program berikut! Jika error dapat dipe rbaiki, jelaskanlah!: a. int *number; printf( "%d\n", *number ); b. float *realPtr; long *integerPtr; integerPtr = realPtr; c. int * x, y; x = y; d. char s[] = "this is a character array"; int count; for ( ; *s != '\0'; s++) printf( "%c ", *s ); e. short *numPtr, result; void *genericPtr = numPtr; result = *genericPtr + 7; f. float x = 19.34; float xPtr = &x; printf( "%f\n", xPtr ); g. char *s; printf( "%s\n", s ); 14. Apakah fungsi strcpy, strcat, strlen dan berikan contoh penggunaannya! 15. Apakah yang salah dari deklarasi struktur berikut: struct automobile { int year; char model[8]; int engine_power;

float weight; } 16. Berapakah banyak variabel struktur didefinisikan dalam statement berikut: struct x {int y; char z} u, v, w; 17. Diberikan sebuah deklarasi struktur:

struct automobile { int year; char model[8]};

dengan dua model mobil, Taurus dan Accord yang dibuat tahun 1997, buatlah inisia lisasi sebuah array dari dua element mobil dari struktur automobile. 18. Apakah yang salah dari segment berikut:

a. FILE *fptr; int c; if ((fptr = fopen( test1.txt , r )) == NULL){ while ((c=fgetc(fptr)) != EOF){ putchar(c); } } fclose(fptr); b. FILE *fptr; int c; if ((fptr = fopen( test2.txt , r )) != NULL){ while ((c=fgetc(fptr)) != EOF){ fputc(c, fptr); } fclose(fptr); } c. FILE *fptr1, *fptr2; int c; if ((fptr1 = fopen( test1.txt , while ((c=fgetc(fptr1)) != EOF){ putchar(c); } } fclose(fptr1); if ((fptr2 = fopen( test2.txt , while ((c=fgetc(fptr1)) != EOF){ fputc(c, fptr2); } w )) != NULL){ r )) != NULL){

} fclose(fptr2);

19. Buatlah program dengan menggunakan fungsi untuk mencari nilai maksimum dan minimum dari lima urutan bilangan desimal! Anggaplah user yang menginputkan lima bilangan tsb. Selanjutkan pada program yang sama buatlah fungsi untuk mengurutka n kelima bilangan tersebut dari yang paling kecil ke yang paling besar dan sebalik nya. Jadi dalam program tersebut ada 4 fungsi.

20. Buatlah program dengan meng-input-kan Nama Lengkap anda, kemudian gantilah s etiap karakter nama anda menjadi karakter yang ke 15 dalam alphabet. Misalnya A menjad i O, B menjadi P, C menjadi Q dst. Siapakah sekarang nama Lengkap Anda?