1 Yang manakah
dievaluasi pertama:
a.
&&
b.
||
c. !
2 Apakah hasil dari
7/9*9
a.
1
b. 0.08642
c. 0
3 Index Array selalu
mulai dengan nomer
a. 0
b.
1
c.
2
d. \0
4 Nama dari sebuah
variable dikenal sebagai
a. identifier
b.
konstatnta
c.
type data
d. base
5 Apakah ststemen
berikut valid? double price = 7,450.98;
a.
Benar
b. Salah
6
Apakah perbedaan c++ dan ++c?
C++
: lakukan operasi terhadap C dahulu, bilangan berikutnya baru
ditambah 1
++C :
jumlahkan C dengan 1 (awalnya sudah di tambah 1), baru kemudian operasi
terhadap C dilakukan
7 Semua variabel harus
dideklarasi sebelum digunakan
a.
Salah
b. Benar
8 Apakah yang salah? for
(int k = 2,
k <=12,
k++)
for (int k = 2; k
<=12; k++)
a.
increment seharusnya ++k
b.
variable harus selalu menggunakan huruf I untuk foor loop
c.
sebaiknya ada senikolon pada akhir statemen
d. koma sebaiknya
diganti dengan semicolon
9 Apakah yang salah? while(
(i < 10) && (i > 24))
a.
logical operator && tidak dapat digunakan dalam tes kondisi
b.
while loop merupakan exit-condition loop
c. tes kondisi ini
sealu salah
d. tes kondisi ini
sealu benar
10 Jika ada lebih dari
satu statemen dalam sebuah blok dalam sebuah loop for, yang manakah dari
berikut harus ditempatkan pada awal dan akhir blok loop?
a.
parentheses ( )
b. braces { }
c.
brackets [ ]
d. arrows < >
11 Apakah yang salah? (x
= 4 && y = 5) ? (a = 5) ; (b = 6);
a.
Tanda Tanya seharusnya diganti dengan tanda (equal sign)
b.
Semicolon pertama seharusnya colon
c. Ada sangat banyak
variable dalam statemen
d. conditional operator
hanya digunakan dengan apstrings
12 Ketika menggunakan
sebuah built-in function (fungsi bawaan) seharusnya
a. include function's
prototype. b.
include header file yang sesuai
c.
include function's definition.
d. menetapkan panjang
library function
13 Apakah yang dicetak
pada masing masing statement C++ berikut, jika tidak ada katakan "tidak
ada". Anggaplah x=2 dan y=3
a.
cout « x;
2
b.
cout « x + x;
4
c.
cout « " x= ";
x=
d.
cout « " x = " « x;
x
= 2
e.
cout « x + y « "=" « y + x;
5=5
f.
z = x + y;
Tidak
Ada
g.
cin » x » y;
Tidak
Ada
h.
//cou t « "x + Y=" « x + y;
Tidak
Ada
i. cout « " \ n
";
Tidak
Ada
14 Identifikasi dan
perbaiki kesalahan dari bagian program berikut:
salah
a. While (c <= 5 )
product
*= c;
c++;
benar
a.
int product=1;
int
c=1 ;
while
(c <= 5 )
{
product
*= c;
c++;
}
- variabel produk tidak diisi ; ini menyebabkan produk *= c menjadi gagal – int produk harus diberi nilai, seperti 1
- karna ada dua pernyataan di dalam loop sehingga kurung kurawal {} harus diisi
- While diubah menjadi while (w huruf kecil )
salah
b. cin<<value;
benar
cin>>value
symbol input seharusnya (>>)
salah
c.if (gender ==1)
cout<<"woman"<<endl;
else;
cout<<"man"<<endl;
benar
if
(gender ==1)
cout<<"woman"<<endl;
else
cout<<"man"<<endl;
-
hilangkan tanda semicolon pada else (;)
-
boleh tidak memberi kurung kurawal {},
karna hanya ada 1 pernyataan pada 1 kondisi
15 Apakah yang salah
dari struktur repetisi while berikut:
while (z >=0 )
sum += z;
Nilai dari variabel z tidak akan berubah. Oleh karena itu , jika kondisi loop ( z > = 0 ) adalah benar ,maka infinite loop akan dibuat . Untuk mencegah loop tak terbatas , z harus dikurangi, sehingga menjadi kurang dari 0
16 Apakah pernyataan
berikut benar atau salah
a. ekspresi
(x>y&&a<b) adalah benar jika ekspresi x>y benar atau a<b
benar
pernyataan
benar
b.
ekspresi yang mengandung operator ||
adalah benar jika kedua operan benar
pernyataan
salah
17 Temukan kesalahan
pada masing-masing kode berikut dan jelaskan bagaimana memperbaikinya
a.
x = 1;
while
(x <= 10);
x++;
}
benar
int x = 1;
while (x <= 10) {
x++;
}
-
hilangkan semicolon di akhir while
-
beri tanda kurung kurawal pada awal
statement
b.
for (y=.1; y !=1.0; y+=.1)
cout<<
y<<endl;
benar
for (float y=.1; y
<1.0; y+=.1)
cout<<
y<<endl;
-
gunakan float sebagai tipe data y, karna
nilai y berwujud decimal.
-
ubah
!= dengan < sehingga hasilnya akan mengeluarkan deret nilai dari 0.1
sampai 1.0
c.
switch(n) {
case 1 :
cout<< "The number is 1"<<
endl;
case 2 :
cout<< "The number is 2"<<
endl;
break;
default:
cout<< "The number is not 1 and
2"<< endl;
break;
benar
switch(n) {
case 1 :
{
cout<< "The number is 1"<<
endl;
break;}
case 2 :
{
cout<< "The number is 2"<<
endl;
break;}
default:
{
cout<< "The number is not 1 and
2"<< endl;
break;}
- beri tanda kurung
kurawal {} pada setiap statement
- tambahkan break; pada
akhir case 1
d.
Kode berikut seharusnya mencetak nilai
dari 1 sampai 10
n=1;
while(n<10)
cout<<n++<<endl;
benar
int n=1;
while(n<=10)
cout<<n++<<endl;
-
gunakan tipe data int pada n
-
ubah tanda < menjadi <= agar nilai
yang keluar sampai dengan angka 10
18
Temukan kesalahan pada masing-masing kode berikut dan jelaskan bagaimana
memperbaikinya
a) int sum (int x, int y)
{
int result;
result = x + y;
}
benar
int sum (int x, int y) {
int result;
result = x + y;
return result;
}
result adalah variable
local. Fungsi pemanggil tidak bisa menggunakan result. Jadi beri pernyataan
return.
b) int sum (int n)
{
if (n==0)
return 0;
else
n +sum (n-1);
}
benar
int
sum (int n);
{
if
(n==0)
return
0;
else
return
n + sum(n-1); // sum(n) = sum(n-1)+n
}
- tambah pernyataan return
19 Temukan kesalahan
pada masing-masing statement berikut
a.
Anggaplah: char str [ 5 ] ;
char
str [ 5 ] ;
cin>>
str; // User mengetik "he l l o"
benar
char str[5] ;
cin.getline(str,5);
-
gunakan cin.getline untuk fungsi string
input dan tambahkan str, dan panjang str.
-
beri header #include <string.h>
b. Anggaplah: int a[3]
;
cout
« a [ 1 ] << " " << a [ 2 ] << " "
<< a [ 3 ] < < endl ;
benar
cout « a [ 0 ] <<
" " << a [ 1 ] << " " << a [ 2 ] <
< endl ;
- array dinyatakan memiliki tiga element , [ 3 ] bukan bagian dari array , karena deklarasi array adalah dari 0 sampai 2. Untuk memiliki [ 3 ] dalam array , kita harus mendeklarasikan array menjadi empat element .
b. double
f [ 3 ] = {1.1, 10.01, 100.001, 1000.0001 };
benar
double
f [ 3 ] = {1.1, 10.01, 100.001};
- Karena array dideklarasikan dengan tiga elemen , array tidak dapat diisi dengan empat nilai . Untuk mengatasi masalah, elemen terakhir harus dihapus .
d. Anggaplah: double d[
2 ] [ 10 ];
d [ 1, 9 ] = 2.345 ;
benar
d [1][9] = 2.345 ;
- karna ini adalah array 2 dimensi , antara baris dan kolom harus dipisahkan oleh tanda kurung siku , bukan koma .
20 Temukan kesalahan
pada masing-masing segment berikut, jika kesalahan dapat diperbaiki bagaiamana
caranya
a. int *number;
cout << number << endl;
cout << number << endl;
Kesalahan : mencetak nilai pointer yang tidak menunjuk kemanapun .
Koreksi : tambahkan alamat pada variabel integer untuk number
b. double *realPtr;
long *integerPtr;
integerPtr = realPtr;
long *integerPtr;
integerPtr = realPtr;
Kesalahan : Dua pointer yang berbeda tipe diperbandingkan .
Koreksi : Deklarasikan pointer dari jenis yang sama .
c. int * x, y;
x = y;
x = y;
Kesalahan : Ada spasi antara tipe data dan nama variabel .
Koreksi : ubah statement int * x , y ; menjadi int* x , y ;
d.
char s[]
= "this is a character array";
for( ; *s != '\0'; s++ )
cout << *s << ' ';
for( ; *s != '\0'; s++ )
cout << *s << ' ';
Kesalahan : Pointer aritmatika digunakan dalam array tanpa menempatkan alamat dari array di pointer manapun .
Koreksi : (Ada dua koreksi )
Menggunakan subscript array
for (int i = 0 ; s [ i ] = ' \ 0 ' ; ! i ++ ) cout << s [ i ] << ' ' ;
Metode kedua adalah menetapkan alamat dari array ke pointer ,
char * sPtr = s ;
untuk ( ; * sPtr = ' \ 0 '; ! sPtr ++ ) cout << * sPtr << ' ' ;
e. short *numPtr, result;
void *genericPtr = numPtr;
result = *genericPtr + 7;
void *genericPtr = numPtr;
result = *genericPtr + 7;
tidak ada kesalahan
f. double x = 19.34;
double xPtr = &x;
cout << xPtr << endl;
double xPtr = &x;
cout << xPtr << endl;
Kesalahan : tanda bintang ( * ) tidak digunakan dalam pointer deklarasi .
Koreksi : Mengubah pernyataan double xPtr menjadi double* xPtr ;
g. char *s;
cout << s << endl;
cout << s << endl;
Kesalahan : mencetak nilai pointer yang tidak menunjuk ke manapun
Koreksi : Menetapkan alamat dari char s .
Soal dibawah ditulis
dengan tinta warna
Buatlah sebuah fungsi
dengan menggunakan pointer yang menyalin sebuah array seperti berikut:
11.1 33.3 44.4 55.5
66.6 77.7 88.8 99.9
22.2 33.3 44.4 22.2
66.6 77.7 11.1 99.9
22.2 11.1 44.4 55.5
66.6 77.7 88.8 11.1
#include
<iostream>
using namespace std;
int main()
{
float A[8]={11.1, 33.3,
44.4, 55.5, 66.6, 77.7, 88.8, 99.9 };
float B[8]={22.2, 33.3,
44.4, 22.2, 66.6, 77.7, 11.1, 99.9 };
float C[8]={22.2, 11.1,
44.4, 55.5, 66.6, 77.7, 88.8, 11.1 };
int i;
float*aptr,*bptr,*cptr;
aptr=A;
bptr=B;
cptr=C;
for (i=0; i<8; i++){
cout<<*aptr<<" ";
*aptr++;
}
cout<<endl;
for (i=0; i<8; i++){
cout<<*bptr<<" ";
*bptr++;
}
cout<<endl;
for (i=0; i<8; i++){
cout<<*cptr<<" ";
*cptr++;
}
return 0;
}
0 comments:
Post a Comment