You are on page 1of 14

CDCP2103SEPT08/F

PART A / BAHAGIAN A

INSTRUCTION / ARAHAN:
Answer ALL questions / Jawab SEMUA soalan.

QUESTION /SOALAN Marks/ Markah

1. Write a representation of pseudocode or flowchart which receive a positive integer


value as input and then output the message “Even Number” or “Odd Number”.
(4)
Tuliskan perwakilan bagi pseudokod atau carta alir yang menerima nilai integer positif
Sebagai input dan kemudian menghasilkan output dengan mesej “Even Number” atau “Odd
Number”.

Example / Contoh:

Input Enter Your Number: 7


Output Odd Number
Input Enter Your Number: 8
Output Even Number

1
CDCP2103SEPT08/F

QUESTION /SOALAN Marks/ Markah

2. Trace the execution of the following for loop for the data 3, 3, -5, and 7. What is
printed? (4)
Jejak perlaksanaan bagi gelung for berikut dengan data 3, 3, -5, dan 7. Apakah yang
dicetak?

sum = 0;
for(i = 0; i < 4; i++) {
scanf(“%d”,&NEXT);
if(NEXT >= 0)
sum+= NEXT;
else
sum -= NEXT;
}
print(“sum=%d\n”,sum);

3. Trace the execution of the following while loop. What is printed? (4)
Jejak perlaksanaan gelung while berikut. Apakah yang dicetak?

prod = 1;
m = 1;
while(m <= 5) {
prod = prod * m;
printf(%d\t%d\n”,m,prod);
m++;
}

2
CDCP2103SEPT08/F

QUESTION / SOALAN Marks/ Markah

4. Given the following data declaration: (4)


Diberikan pengisytiharan data berikut:

float d1 = 4.0, d2 = 2.3, d;


int i1 = 5, i2 = 10, i;

What the value for following expression?


Apakah nilai bagi ungkapan berikut?

i. i = i1 % i2 + 2
ii. d = i2 / d1 * 4 / i1 + 2

5. Write the expression of C language which is equivalent with the following


mathematic expressions: (4)
Tuliskan ungkapan dalam bahasa C yang setara dengan ungkapan matematik berikut:

i. b2 – 4ac
ii. (a + b) ( c + d) (e + f)

6. Convert the following if statement to the statement which is using conditional


operator(?): (4)
Tukarkan pernyataan if berikut kepada pernyataan yang menggunakan operator bersyarat
(?):

if (x > y)
max = x;
else
max = y;

3
CDCP2103SEPT08/F

QUESTION / SOALAN Marks/ Markah

7. Observe the following program segment: (4)


Perhatikan segmen atur cara berikut:

float x, y;
scanf(“%d”, %x);
if(x > 3.0)
if(x < 12.0)
y = x / 100 * 5;
else
y = 2.0 * x / 2;
else
y = x / 6.0 * 2;
print(“y = %f\n”,y);

What the output, if the input is:


Apakah ouputnya, jika input adalah:

i. 5.0
ii. 3.0

4
CDCP2103SEPT08/F

QUESTION / SOALAN Marks/ Markah

8. What is the value that is returned by the following function count, if it called by
count (3)? (4)
Apakah nilai yang dipulangkan oleh fungsi count, jika ia dipanggil oleh count (3)?

int count(int n)
{
if(n == 0)
return 0;
else
return 2 + n + count (n – 1);
}

9. Given the following function: (4)


Diberikan fungsi berikut:

int fungsi(int p, int q, char c)


{
int n =0, i;
switch( c ) {
case ‘+’ : for(i = p; i <= q; i++)
n+=q;
return n;
case ‘*’ : for(i = p; i <= q; i++)
n*=q;
return n;
}

For each of the following statement, what are the values for result?
Bagi setiap pernyataan berikut, apakah nilai bagi result?

i. result = fungsi(12, 18, ’+’);


ii. result = fungsi(2, 6 ,’*’);

5
CDCP2103SEPT08/F

QUESTION / SOALAN Marks/ Markah

10. Change the following segment program using for statement: (4)
Tukarkan segmen atur cara berikut menggunakan pernyataan for:

int bil = 1, tot_marks=0;


while ( bil <= 10)
{
printf(“ %d:”,bil);
scanf(“%d”,&marks);
tot_marks += marks);
bil++;
}
printf(“Total marks = %d\n”,tot_marks);

6
CDCP2103SEPT08/F

PART B / BAHAGIAN B

INSTRUCTIONS / ARAHAN:
Part B contains THREE questions. Answer TWO ONLY.
Bahagian B mengandungi TIGA soalan. Jawab DUA sahaja.

QUESTION / SOALAN 1 Marks/ Markah

a) A chemist uses the decision table in Table 1 below to determine whether a solution is
very acidic, acidic, neutral, alkaline, or very alkaline. Write a program that will read in
the value of pH for a solution and display its type. (12)

Table 1
pH range Type of solution
>= 12 very alkaline
8 – 12 alkaline
7 neutral
3–6 acidic
<= 2 very acidic

b) Write a function called KuasaTiga which has an integer parameter called m, and this
function will return m*m*m. (8)
(Total / Jumlah : 20)

7
CDCP2103SEPT08/F

a) Seorang ahli kimia menggunakan jadual keputusan dalam Jadual 1 di bawah untuk
menentukan sama ada penyelesaian adalah sangat berasid, berasid, neutral, beralkali,
atau sangat beralkali. Tuliskan atur cara yang boleh membaca nilai pH bagi satu
penyelesaian dan memaparkan jenisnya.

Jadual 1
Julat pH Jenis penyelesaian
>= 12 sangat beralkali
8 – 12 beralkali
7 neutral
3–6 berasid
<= 2 sangat berasid

b) Tuliskan fungsi yang dinamakan sebagai KuasaTiga yang mempunyai parameter integer
yang dinyatakan sebagai m, dan fungsi ini akan memulangkan m*m*m.

8
CDCP2103SEPT08/F

QUESTION / SOALAN 2 Marks/ Markah

Write a program which read the input in second and then output it in hour, minute and
second.

Example:

Enter number of second : 3770


3770 second = 1 hour 2 minute 50 second
(20)
(Total / Jumlah : 20)

Tuliskan atur cara yang akan membaca input dalam saat dan kemudian menghasilkan output
dalam jam, minit dan saat.

Contoh:

Masukkan jumlah saat : 3770


3770 saat = 1 jam 2 minit 50 saat

9
CDCP2103SEPT08/F

QUESTION / SOALAN 3 Marks/ Markah

A company pays its salespeople on a commission basis. The salespeople receive RM200
per week plus 9 percent of their gross sales for that week. For example, a salesperson
who grosses RM5000 in sales in a week receives RM200 plus 9 percent of RM5000, or a
overall total of RM650.

Write a program (using an array) that determines how many of the salesperson earned
salaries in each of the following ranges (assume that each salesperson’s salary is
truncated to an integer amount). Your program will terminate when the input entered is
negative.

1. RM200 – RM299
2. RM300 – RM399
3. RM400 – RM499
4. RM500 – RM599
5. RM600 – RM699
6. RM700 – RM799
7. RM800 – RM899
8. RM900 – RM999
9. RM1000 and so on
(20)
(Total / Jumlah : 20)

10
CDCP2103SEPT08/F

Satu syarikat membayar jurujualnya dalam bentuk komisyen. Jurujual menerima RM200
seminggu dan 9 peratus daripada jualan kasar untuk minggu tersebut. Contohnya, seorang
jurujual yang berpendapatan RM5000 bagi jualan untuk seminggu menerima RM200 dan 9
peratus daripada RM5000, atau berjumlah RM650 secara keseluruhan.

Tuliskan satu atur cara (menggunakan satu tatasusunan) yang menentukan bilangan jurujual
yang mendapat gaji dalam julat berikut (andaikan bahawa gaji setiap jurujual dibulatkan kepada
jumlah integer) bagi suatu minggu. Atur cara anda boleh berhenti apabila input yang
dimasukkan adalah negatif.

1. RM200 – RM299
2. RM300 – RM399
3. RM400 – RM499
4. RM500 – RM599
5. RM600 – RM699
6. RM700 – RM799
7. RM800 – RM899
8. RM900 – RM999
9. RM1000 dan seterusnya

11
CDCP2103SEPT08/F

PART C / BAHAGIAN C

INSTRUCTIONS / ARAHAN:
Part C contains TWO questions. Answer ONE ONLY.
Bahagian C mengandungi DUA soalan. Jawab SATU sahaja.

QUESTION / SOALAN 1 Marks/ Markah

Write a program which generates a diagram as shown in the example below. Your
program should read a positive integer value which it represent number of ‘*’ in
horizontal and vertical of triangle.

Example:
If input given is 5
Then output is as follows:

*****
****
***
**
*
Your program only can use a combination of printf(“*”) and printf(“\n”)
statements and loop.
(20)
(Total / Jumlah : 20)

12
CDCP2103SEPT08/F

Tuliskan satu aturcara yang akan menghasilkan gambarajah seperti ditunjukkan di dalam
contoh di bawah. Aturcara anda harus membaca nilai integer positif yang mewakili bilangan
‘*’ dalam segitiga melintang dan menegak.

Contoh:
Jika input diberi ialah 5
Maka output adalah seperti berikut:

*****
****
***
**
*
Program anda hanya boleh menggunakan kombinasi pernyataan printf(“*”) dan
printf(“\n”) sahaja beserta dengan gelung.

13
CDCP2103SEPT08/F

QUESTION / SOALAN 2 Marks/ Markah

For a positive integer n, n factorial is denoted by n! and is defined to be the product of


the integers from 1 through n; 0! is defined as 1. A for loop is the natural repetition
structure used in calculating factorials. Write a program that reads several nonnegative
integers and calculates and displays the factorial of each. Use a function to calculate the
factorials.

Example:
Enter a positive integer: 5
5! = 120
(20)
(Total / Jumlah : 20)

Bagi satu integer positif n, faktorial n, ditunjukkan oleh n! dan ditakrifkan sebagai hasil darab
integer daripada 1 hingga n; 0! ditakrifkan sebagai 1. Gelung for adalah struktur pengulangan
semula jadi yang digunakan untuk mengira faktorial. Tuliskan satu atur cara yang dapat
membaca beberapa integer bukan negatif dan mengira dan memaparkan faktorial bagi
setiapnya. Gunakan fungsi untuk mengira faktorial tersebut.

Contoh:
Masukkan satu integer positif: 5
5! = 120

END OF QUESTION PAPER / KERTAS SOALAN TAMAT

14

You might also like