Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Java Practice Solutions

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

CSc

 2010,  Fall  2013  


Final  Exam  -­‐  Practice  Problems  for  Java  n-­‐  SOLUTIONS  
 
MULTIPLE  CHOICE  QUESTIONS  
 
(1)  Which  of  the  following  reserved  words  in  Java  is  used  to  create  an  instance  of  a    
class?  
 
a)  class  
b)  public  
c)  public  or  private,  either  could  be  used  
d)  import  
e)  new  
 
(2)  If  a  method  does  not  have  a  return  statement,  then  
 
a)  it  will  produce  a  syntax  error  when  compiled  
b)  it  must  be  a  void  method  
c)  it  can  not  be  called  from  outside  the  class  that  defined  the  method  
d)  it  must  be  defined  to  be  a  public  method  
e)  it  must  be  an  int,  double,  or  String  method  
 
(3)  What  is  the  value  of  the  String  S  after  the  following  line?  
 
String S = (new String("arach")).substring(0,2) +
(new String("nophobia")).substring(3);
 
(a)  "arachobia"  
(b)  "arnophobia"  
(c)  "arhobia"  
(d)  "rachobia"  
 
 
(4)  The  method  twist  is  defined  as  follows:  
 
public void twist(String[] w) {
String temp = w[0].substring(0, 1);
w[0] = w[1].substring(0, 1) + w[0].substring(1);
w[1] = temp + w[1].substring(1);
}  
 
What  is  the  output  of  the  following  code  segment?  
 
String[] words = {"HOW", "NEAT"};
twist(words):
System.out.println(words[0] + " " + words[1]);
 
     
(a) NOW NOW
(b) HOW HOW
(c) NOW HOW
(d) HOW NEAT
(e) NOW HEAT
   
(5)  What  is  the  output  of  the  following  code?  
 
THIS  TOPIC  NOT  COVERED  IN  CLASS  –  PLEASE  IGNORE  
 
String barb = "BARBARA";
scramble(barb);
System.out.println(barb);
 
The  method  scramble  is  defined  as  follows:  
 
public static String scramble(String str) {
if (str.length() >= 2){
int n = str.length() / 2;
str = scramble(str.substring(n)) + str.substring(0, n);
}
return str;
}
 
     
 (1)  BARBARA  
 (b)  ARBABAR  
 (c)  AABAR  
 (d)  ARBABARB  
 (e)  ARABARBARB  
   
(6)  What  are  the  values  in  arr  after  the  following  statements  are  executed?  
 
int[] arr = {1, 1, 0, 0, 0};

for (int i = 2; i < arr.length; i++)


arr[i] = arr[i-1] + arr[i-2];

     
 (a)  11011  
 (b)  11210  
 (c)  11222  
 (d)  11235  
 (e)  11248  
   
 
   
(7)  Given  
 
double x = 5, y = 2;
 
What  is  the  value  of  m  after  the  following  statement  is  executed?  
 
int m = (int)(x + y + x / y - x * y - x / (10 * y));
   
(a)    -­‐1  
(b)  -­‐0.75  
(c)    -­‐0.5  
(d)  0  
(e)  1  
   
(8)  What  is  the  value  of  sum  after  the  following  code  segment  is  executed?  
 
int p = 3, q = 1, sum = 0;
while (p <= 10) {
sum += p % q;
p++;
q++;
}
     
 (a)  0  
 (b)  10  
 (c)  12  
 (d)  14  
 (e)  52  
   
(9)  Consider  the  following  method:  
 
THIS  TOPIC  NOT  COVERED  IN  CLASS  –  PLEASE  IGNORE  
 
public int goFigure(int x) {
if (x < 100)
x = goFigure(x + 10);
return (x - 1);
}
 
What  does  goFigure(60)  return?  
 (a)  59  
(b)  69  
(c)  95  
(d)  99  
(e)  109  
   
(10)  What  are  the  values  of  m  and  n  after  the  following  code  runs?  
 
int m = 20, n = 2, temp;

for (int count = 1; count <= 20; count++) {


temp = m;
m = n + count;
n = temp - count;
}
 
(a)  m  =  230        n  =  -­‐208  
(b)  m  =  30          n  =  -­‐8  
(c)  m  =  12          n  =  -­‐10  
(d)  m  =  -­‐12        n  =  8  
(e)  m  =  -­‐190      n  =  212  
 
Show  the  EXACT  output  the  following  programs  generate:  
 
(1)  
 
public class e21 {
public static void main (String args[]) {
int num = 4;

printNumbers(num);
}

private static void printNumbers(int n) {

for (int i=1; i <= n; i++) {


for (int k=1; k <= 2*(i-1)+1; k++)
System.out.print(i);
System.out.println();
}
}
}
 
 
1
222
33333
4444444
 
 
(2)  
   public class f5 {
public static void main(String args[]) {
int m=63,n=0;

for (;m>0; n++,m/=2);

System.out.println("n = " + n);


}
}

n = 6

   PROGRAMS  TO  WRITE:  


 
(1)  Write  a  class  method  that  takes  as  input  a  String  object  whose  value  is  an  English  
sentence.  The  method  should  return  the  last  word  in  the  sentence.  You  may  assume  
that  the  sentence  contains  words  separated  by  one  space  and  the  sentence  
terminates  with  a  period.  For  example  the  following  would  be  a  valid  sentence:  
 
"The  cat  ate  the  rat."  
 
Make  sure  that  the  period  at  the  end  of  the  sentence  is  not  included  in  the  result  that  
is  returned  by  the  method.  
 
private static String getLastWord(String str) {
str=str.substring(str.lastIndexOf(' ')+1, str.length()-1);
return str;
}
 
Write  a  main  method  that  reads  a  sentence  from  the  keyboard,  calls  the  above  
method  to  get  the  last  word,  and  prints  the  last  word  to  the  screen.  
 
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a sentence: ");
String sentence = sc.nextLine();
System.out.println(getLastWord(sentence));
}
 
   
(2)  Write  a  static  method  named  vowelCount  that  accepts  a  String  as  a  parameter  
and  produces  and  returns  an  array  of  integers  representing  the  counts  of  each  
vowel  in  the  String.  The  array  returned  by  your  method  should  hold  5  elements:  the  
first  is  the  count  of  A’s,  the  second  is  the  count  of  E’s,  the  third  I’s,  the  fourth  O’s,  and  
the  fifth  U’s.  Assume  that  the  string  contains  no  uppercase  letters.  
 
For  example,  the  call    
 
vowelCount("i  think,  therefore  i  am");  
 
should  return  the  array    
 
{1,  3,  3,  1,  0}.  
 
private static int[] vowelCount(String str) {
int[] arr = { 0, 0, 0, 0, 0 };
for (int i = 0; i < str.length(); i++)
if (str.charAt(i) == ‘a’)
arr[0]++;
else if (str.charAt(i) == ‘e’)
arr[1]++;
else if (str.charAt(i) == ‘i’)
arr[2]++;
else if (str.charAt(i) == ‘o’)
arr[3]++;
else if (str.charAt(i) == ‘u’)
arr[4]++;

return arr;
}
 
(3)  Write  a  method  named  minGap  that  accepts  an  integer  array  as  a  parameter  and  
returns  the  minimum  'gap'  between  adjacent  values  in  the  array.  The  gap  between  
two  adjacent  values  in  a  array  is  defined  as  the  second  value  minus  the  first  value.    
 
For  example,  suppose  a  variable  called  array  is  an  array  of  integers  that  stores  the  
following  sequence  of  values.  
 
int[] array = {1, 3, 6, 7, 12};
 
The  first  gap  is  2  (3  -­‐  1),  the  second  gap  is  3  (6  -­‐  3),  the  third  gap  is  1  (7  -­‐  6)  and  the  
fourth  gap  is  5  (12  -­‐  7).  Thus,  the  call  of  minGap(array)  should  return  1  because  
that  is  the  smallest  gap  in  the  array.  Notice  that  the  minimum  gap  could  be  a  
negative  number.  For  example,  if  array  stores  the  following  sequence  of  values:  
 
{3,  5,  11,  4,  8}  
 
The  gaps  would  be  computed  as  2  (5  -­‐  3),  6  (11  -­‐  5),  -­‐7  (4  -­‐  11),  and  4  (8  -­‐  4).  Of  these  
values,  -­‐7  is  the  smallest,  so  it  would  be  returned.  
 
This  gap  information  can  be  helpful  for  determining  other  properties  of  the  array.  
For  example,  if  the  minimum  gap  is  greater  than  or  equal  to  0,  then  you  know  the  
array  is  in  sorted  (nondecreasing)  order.  If  the  gap  is  greater  than  0,  then  you  know  
the  array  is  both  sorted  and  unique  (strictly  increasing).  
 
If  you  are  passed  an  array  with  fewer  than  2  elements,  you  should  return  0.  
 
 
private static int minGap(int[] value) {
if (value.length < 2)
return 0;
int min = value[1]-value[0];
for(int i=1;i<value.length-1;i++)
if(min>value[i+1]-value[i])
min = value[i+1]-value[i];
return min;
}
 
 
(4)  Write  a  method  named  toBinary  that  accepts  an  integer  as  a  parameter  and  
returns  a  string  of  that  number's  representation  in  binary.  For  example,  the  call  of  
toBinary(42)  should  return  "101010".  
 
We  will  assume  a  positive  parameter.  
 
private static String toBinary(int num) {
if (num == 0)
return "0";
String str="";
while (num != 0) {
str = (num%2)+str;
num /= 2;
}
return str;
}  

You might also like