update,
This commit is contained in:
331
it114105/itp3914/Test/Revision/21-22/README.md.original
Normal file
331
it114105/itp3914/Test/Revision/21-22/README.md.original
Normal file
@@ -0,0 +1,331 @@
|
||||
## Q1
|
||||
(a) (4 marks) Name the most suitable primitive data types in Java that can store the
|
||||
following data:
|
||||
|
||||
(1) the price of a notebook computer (e.g. 6888.5)
|
||||
|
||||
(2) the number of visits to Facebook in 2019
|
||||
|
||||
```
|
||||
(1) double
|
||||
(2) int
|
||||
```
|
||||
|
||||
(b) (5 marks) Identify whether the statments below are valid in Java.
|
||||
| code | valid | invalid |
|
||||
| ---- | ----- | ------- |
|
||||
| byte b = 12.2; | [] | [v] |
|
||||
| double x = (int) 28.05; | [v] | [] |
|
||||
| float f = 26.0; | [] | [v] |
|
||||
| char c = "c"; | [] | [v] |
|
||||
| int[3] arr = {1, 2, 3}; | [] | [v] |
|
||||
|
||||
(c) (4 marks)
|
||||
|
||||
(1) What is the size (number of bytes) of a float variable?
|
||||
|
||||
(2) What is the size (number of bytes) of a long variable?
|
||||
|
||||
```
|
||||
(1) 32(bits)/8 = 4 bytes
|
||||
(2) 64(bits)/8 = 8 bytes
|
||||
```
|
||||
|
||||
(d) (4 marks) Identify whether the identifier names below are valid in Java.
|
||||
|
||||
| code | valid | invalid |
|
||||
| ---- | ----- | ------- |
|
||||
| $12_3 | [] | [v] |
|
||||
| a:b | [] | [v] |
|
||||
| 4x | [] | [v] |
|
||||
| Java | [v] | [] |
|
||||
|
||||
## Q2
|
||||
|
||||
(9 marks) Given x, y and z are integers and x = 2, y = 3 and z = 8, write down the output of
|
||||
the following statements:
|
||||
|
||||
(a) System.out.println( "\\\""+x+"\"\\" );
|
||||
```
|
||||
Answer:
|
||||
\""\
|
||||
```
|
||||
(b)
|
||||
System.out.println( x+y+"\t"+z+"\n"+y+z+"\t"+x );
|
||||
```
|
||||
Answer:
|
||||
5 8
|
||||
38 2
|
||||
```
|
||||
(c)
|
||||
z += (x+z)/y - (x+z)%y;
|
||||
System.out.println(z);
|
||||
```
|
||||
Answer:
|
||||
10
|
||||
```
|
||||
|
||||
## Q3
|
||||
(9 marks) What will be printed by the program fragment below?
|
||||
```
|
||||
int x=3, y=7, z=4;
|
||||
z = --x + y++;
|
||||
System.out.println("x=" + x);
|
||||
z = x-- + y++ + z;
|
||||
System.out.println("y=" + y);
|
||||
System.out.println("z=" + z);
|
||||
```
|
||||
```
|
||||
Answer:
|
||||
x=2
|
||||
y=9
|
||||
z=19
|
||||
```
|
||||
|
||||
## Q4
|
||||
(a) (6 marks) Write a Java program statement to declare and initialize a variable/constant
|
||||
for each of the cases below. The identifier names MUST be meaningful and follow Java
|
||||
convention.
|
||||
|
||||
(1) A variable to store the average mark of a student in a semester, with initial value 0.0.
|
||||
```
|
||||
Answer: double avgMark = 0.0;
|
||||
```
|
||||
(2) A constant to represent the maximum number (value 10) of items a user can borrow.
|
||||
```
|
||||
Answer: final int maxBorrowNum = 10;
|
||||
```
|
||||
|
||||
(b) (4 marks) Rewrite the following Mathematical equation in Java. Assume that all variables
|
||||
in the equation are of double type and initialized properly.
|
||||
```
|
||||
Answer: double x = (x + (y/6)) / (3 * (x * x - 1))
|
||||
```
|
||||
|
||||
## Q5
|
||||
(a) (4 marks) What is the output of the following statements:
|
||||
```
|
||||
int x = 2, y = 5;
|
||||
if ( !(x>y && x<=y) && x>y)
|
||||
System.out.println("AAA");
|
||||
else
|
||||
System.out.println("BBB");
|
||||
System.out.println( (x<=3 || !(y!=7)) ? "XXX" : "YYY");
|
||||
```
|
||||
|
||||
```
|
||||
Answer:
|
||||
BBB
|
||||
XXX
|
||||
```
|
||||
|
||||
(b) (2 marks) Consider the following statements.
|
||||
```
|
||||
if (i==20 || i==50 || i==60)
|
||||
j=1;
|
||||
else if (i==10 || i==30)
|
||||
j=2;
|
||||
else
|
||||
j=3;
|
||||
System.out.println("j=" + j);
|
||||
```
|
||||
(1) What is the output of the above statements if i has the value 30.
|
||||
(2) What is the output of the above statements if i has the value 33.
|
||||
|
||||
```
|
||||
Answer:
|
||||
(1) j=2
|
||||
(2) j=3
|
||||
```
|
||||
|
||||
(c) (6 marks) Rewrite the above if-else statement using a switch structure.
|
||||
```
|
||||
Answer:
|
||||
|
||||
switch(i){
|
||||
case 20:
|
||||
case 50:
|
||||
case 60:
|
||||
j = 1;
|
||||
break;
|
||||
case 10:
|
||||
case 30:
|
||||
j=2;
|
||||
break
|
||||
default:
|
||||
j=3;
|
||||
}
|
||||
```
|
||||
## Q6
|
||||
(14 marks)
|
||||
|
||||
(a) (1) What is the output of the following program segment?
|
||||
```
|
||||
int a=10, x=0;
|
||||
do {
|
||||
a-=1;
|
||||
x+=2;
|
||||
if (a<=6)
|
||||
break; //(*)
|
||||
} while (a>4);
|
||||
System.out.println("x=" + x);
|
||||
```
|
||||
(2) What is the output if the word break at the line marked with (*) is changed to
|
||||
continue?
|
||||
|
||||
```
|
||||
Answer:
|
||||
(1) x=8
|
||||
(2) x=12
|
||||
```
|
||||
|
||||
(b)
|
||||
Complete the following program fragment which prints a pattern as below. The number
|
||||
of lines in the pattern is determined by the int variable numLine.
|
||||
```
|
||||
Output:
|
||||
// numLine is 3
|
||||
531
|
||||
31
|
||||
1
|
||||
// numLine is 5
|
||||
97531
|
||||
7531
|
||||
531
|
||||
31
|
||||
1
|
||||
|
||||
Answer:
|
||||
int numLine;
|
||||
// code skipped - read the value of numLine
|
||||
for (int i= numLine; i>=1; ____i--_____) {
|
||||
// print space
|
||||
for (int j=1; j<=____numLine - i____; ___j++____)
|
||||
System.out.print (____" "____);
|
||||
// print numbers
|
||||
for (int j=i; j>=___1___; ___j--____)
|
||||
System.out.print (____j*2-1_____);
|
||||
// advance a line
|
||||
System.out.____println_____();
|
||||
}
|
||||
```
|
||||
|
||||
## Q7
|
||||
(a) (6 marks) Write a for-loop to find and print the integer answer of the mathematical
|
||||
expression: 2×5 - 3×7 + 4×9 - 5×11 + 6×13 - 7×15
|
||||
You only need to write statements for variable declaration(s), the loop and the output
|
||||
statement. You are NOT required to write a complete Java program.
|
||||
|
||||
```
|
||||
Answer:
|
||||
int answer = 0;
|
||||
for(int i = 2, j = 5; i <=7 && j <=15; i++, j+=2)
|
||||
if (i % 2 == 0)
|
||||
answer += i*j;
|
||||
else
|
||||
answer -= i*j;
|
||||
System.out.println(answer);
|
||||
```
|
||||
|
||||
(b) (9 marks)
|
||||
(1) Write ONE statement to declare an array with the following settings:
|
||||
```
|
||||
Array variable: quotas
|
||||
Data type: int
|
||||
Size: 5
|
||||
elements Values: 1, 2, 3, 4, 5
|
||||
```
|
||||
```
|
||||
int[] quotas = {1,2,3,4,5};
|
||||
```
|
||||
|
||||
(2) What is the value of quotas.length?
|
||||
```
|
||||
5
|
||||
```
|
||||
|
||||
(3) Write a for loop to find the average value in the array quotas and store the result in
|
||||
mean.
|
||||
```
|
||||
int sum = 0;
|
||||
double mean;
|
||||
for(int i = 0; i < quoatas.length; i++)
|
||||
sum += quotas[i];
|
||||
mean /= quotas.length;
|
||||
```
|
||||
|
||||
(4) Write a for loop to add 2 to all the elements in the array quotas.
|
||||
```
|
||||
for(int i = 0; i < quotas.length; i++)
|
||||
quotas[i] += 2;
|
||||
```
|
||||
|
||||
## Q8
|
||||
(14 marks) Complete the program below which calculates the shipping cost of a courier
|
||||
service. The cost is calculated by weight×rate, where rate is based on weight as shown in
|
||||
the table below.
|
||||
|
||||
| weight (in kg) | rate ($ per kg) |
|
||||
| -------------- | --------------- |
|
||||
| weight >= 50 | 18 |
|
||||
| 50 > weight >= 40 | 20 |
|
||||
| 40> weight >=20 | 25 |
|
||||
| weight < 20 | 30 |
|
||||
|
||||
Shown below is a sample execution of the program. Those in bold underline are user inputs.
|
||||
Your program MUST check whether the weight inputted is greater than or equal to zero, or
|
||||
otherwise print an error message and ask the user to input again. You may assume user will
|
||||
always input an integer for the variable weight. The program will repeat running until the
|
||||
user inputs zero (0).
|
||||
|
||||
```
|
||||
C:\> java ShippingCost
|
||||
Enter weight: -12
|
||||
Invalid input! Please input again.
|
||||
Enter weight: 55
|
||||
The shipping cost is 990
|
||||
Enter weight: -6
|
||||
Invalid input! Please input again.
|
||||
Enter weight: 30
|
||||
The shipping cost is 750
|
||||
Enter weight: 0
|
||||
Thank you for using this program. Bye!
|
||||
```
|
||||
```
|
||||
import java.util.Scanner;
|
||||
public class ShippingCost {
|
||||
public static void main( String[] args ) {
|
||||
int weight; // parcel weight - inputted by user
|
||||
int rate=0; // shipping rate - determined by the value of weight
|
||||
Scanner input = new Scanner( System.in );
|
||||
while (true) {
|
||||
|
||||
// Answer:
|
||||
|
||||
weight = input.nextInt();
|
||||
if (weight == 0)
|
||||
break;
|
||||
|
||||
if (weight < 0)
|
||||
System.out.println("Invalid input! Please input again.");
|
||||
else{
|
||||
|
||||
if (weight >= 50)
|
||||
rate = 18;
|
||||
else if (weight >= 40)
|
||||
rate = 20;
|
||||
else if (weight >= 20)
|
||||
rate = 25;
|
||||
else
|
||||
rate = 30;
|
||||
|
||||
System.out.println("The shipping cost is " + (weight * rate));
|
||||
|
||||
}
|
||||
|
||||
|
||||
} // while (true) - end
|
||||
System.out.println("Thank you for using this program. Bye!");
|
||||
}
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user