C Final - Fa13
C Final - Fa13
By filling in the above and signing my name, I confirm I will complete this exam with the
utmost integrity and in accordance with the Policy on Integrity of Scholarship.
CSE 11
Final
Fall 2013
This exam is to be taken by yourself with closed books, closed notes, no electronic devices.
You are allowed both sides of an 8.5"x11" sheet of paper handwritten by you.
(Partial) Operator Precedence Table
Operators Associativity
! ++ -- (pre & post inc/dec) right to left
* / % left to right
+ - left to right
< <= > >= left to right
== != left to right
&& left to right
|| left to right
= right to left
1) What is stored in the memory location allocated for the variable x for the following: _______
int x = -99;
3) What is stored in the memory location allocated for the variable x for the following: _______
String x = "-99";
4) What are the values of the indicated variables after the following code segments are executed? Remember
short-circuit evaluation with && and ||.
int a = 7, b = 3, c; a =
boolean bool1 = !(b > 6) && (a >= 3) && (a <= 4) || (b > 6);
b =
if ( a++ >= 4 && --b >= 2 )
c = ++a + b--; c =
else
c = a++ + --b; bool1 =
int x = 7, y = 3, z; x =
boolean bool2 = !((x > 4) && (y <= 6)) == ((y <= 4) || (x > 6));
y =
if ( x++ >= 4 || --y >= 3 )
z = --x + y++; z =
else
z = x-- + ++y; bool2 =
1
5) What gets printed?
public class Question5
{
public static void main( String[] args )
{
final int MAX = 7, MIN = 2; 24
int i = 2, j = 5; 21
31
while ( i < MAX )
42
{
while ( j >= MIN ) 53
{ 64
--j; 61
System.out.println( i + " " + j ); 76
j -= 2;
}
j = i;
i++;
}
125, 2
Put your answer here: __________
What is printed if the line if ( foo > a ) was changed to if ( foo <= a )? 35, 7
__________
What is printed if the line if ( foo > a ) was changed to if ( foo >= a )? __________
125, 4
What is printed if the line if ( foo > a ) was changed to if ( foo < a )? __________
35, 0
What is printed if the line if ( foo > a ) was changed to if ( foo == a )? __________
42, 0
What is printed if the line if ( foo > a ) was changed to if ( foo != a )? __________
65, 9
7) In the statement
A) Center point of oval and x diameter and y diameter
g.drawOval( 30, 30, 50, 50 );
B) Upper left corner and lower right corner of bounding box
the arguments represent ______ C) Center point of oval and width and height of bounding box
(write the letter representing your D) Upper left corner and width and height of bounding box
answer in the blank above.) E) Center point of oval and x radius and y radius
2
8) What is the output of the following program?
public class Tricky
{
public static void main( String[] args )
{
System.out.println( "I" ); I
message1( "Java" );
System.out.println( "II" );
Java-0
message2( "Finals" ); II
System.out.println( "III" ); Finals-1
message3( "Fall" ); Finals-2-0
}
Finals-3
public static void message1( String s ) III
{ Fall-4
System.out.println( s + "-0" );
} Fall-5-1
Fall-5-2-0
public static void message2( String s ) Fall-5-3
{
System.out.println( s + "-1" );
Fall-6
message1( s + "-2" );
System.out.println( s + "-3" );
}
9) Which part of the method mystery() below is the base case (part labeled A or B)? _____
B
Which part of the method mystery() below is the recursive case (part labeled A or B)? _____
A
What is printed when this program is run? Drawing stack frames for each method call will probably help.
public class Test9
{ Output
public static void main( String[] args )
{
System.out.println( mystery( 6 ) ); // Print returned value 1: 1
}
2: 4
public static int mystery( int n ) 3: 9
{ 4: 16
int result; 5: 25
if ( n > 1 ) // A 6: 36
{
result = 2 * n - 1 + mystery( n - 1 );
System.out.println( n + ": " + result );
}
else // B
{
result = 1;
System.out.println( n + ": " + result );
}
return result;
}
}
87 = 312
System.out.println( a + b + (c + " = ") + a + (b + c) ); ________________________________
3
11) Given the following class definitions and hierarchy:
Snow
class Snow
{
public void method2() method2
{
System.out.println("Snow 2"); method3
method3();
}
4
12)
What gets printed by the following code? _______
16 13
What gets printed by the following code? _______
if ( x >= 15 ) if ( x >= 10 )
{ {
x += 4; x += 4;
} }
System.out.println( x ); System.out.println( x );
16
What gets printed by the following code? _______ What gets printed by the following code? _______
13
if ( x <= 12 ) if ( x >= 15 )
{ {
x += 4; x += 4;
} }
System.out.println( x ); System.out.println( x );
5
public interface Printable
{
13) Given the following definitions: public abstract String print( boolean duplex );
}
public String print( boolean duplex ) public String print( boolean duplex )
{ {
return this.str + " duplex = " + duplex; return this.str + " duplex = " + duplex;
} }
Thing1 thing1 = new Thing1(); Hint: What does the compiler know about
Thing2 thing2 = new Thing2(); any reference variable at compile time (vs.
Printable printable; run time)?
What gets printed with the following statements (each statement is executed in the order it appears). If there is a
compile time error, write "Error" and assume that line is commented out when run.
printable = thing1;
Not sure about the following:
System.out.println( printable.print() ); Error
______________________________________________
6
14) Using only the statements below, select the order of the statements to draw an E such that the width of the E
is size pixels and the height of the E is twice size pixels. Do not worry about where it is drawing. Assume
the turtle is pointing up when the method is called, the pen is down, and it is positioned at the upper left corner
of where we want to draw the E. Start drawing the E at the upper left corner of the E. Have the turtle end at the
bottom right corner of the E.
Write the letter corresponding to each statement in the correct order to draw an E. Do it in exactly 12
statements.
public void drawE( int size )
A) this.forward( size );
{ B) this.turn( 90 ); // right
_____
B C) this.forward( -size );
D) this.turn( -90 ); // left
A
_____
C
_____
B
_____
A
_____
D
_____
A
_____
C
_____
B
_____
A
_____
D
_____
A
_____
}
15) What is the equivalent Java expression for the following expression such that no ! operators are used?
What gets printed if the value of the actual What gets printed if the value of the actual
argument passed to this method is 5? ________
7 5
argument passed to this method is 2? ________
if ( x <= 1 ) if ( x <= 1 )
y = 3; y = 3;
else if ( x <= 2 ) if ( x <= 2 )
y = 5; y = 5;
else if ( x == 3 || x >= 4 ) if ( x == 3 || x >= 4 )
y = 7; y = 7;
else else
y = 9; y = 9;
System.out.println( y ); System.out.println( y );
} }
7
Use the numbers below to identify various program parts.
16) Consider the following program?
A) local variable F) static variable
1 public class Test16 B) instance variable G) formal parameter
2 {
3 private int a; C) static method H) constructor
4 private int b; D) class definition (type) I) instance method
5 private static int c = 5; E) actual argument
6 public static void main( String[] args ) F c on line 5
7 {
_____
H Test16() on line 11 _____
8 Test16 ref = new Test16( 2 ); E 2 on line 8
_____ _____
G a on line 11
9 ref.method1( ref.b );
10 } _____
C main() on line 6 A? x on line 17
_____
15 public void method1( int x ) Where in the Java Runtime environment does each of the
16 {
17 int c = x;
following live?
18 int b; stack heap
c on line 39 ___________ a on line 3 ____________
19 b = a;
20 a = c; a on line 11 ___________
stack c on line 5 ____________
heap
50 return x + 5; x = ________
51 } a = ________
14
52 }
b = ________
2
c = ________
7
8
Given the following class definitions for class Foo, class Fubar, and class FubarTest:
public class Foo public class FubarTest
{ {
public Foo() public static void main( String[] args )
{ {
this( 42, 420 ); Foo ref = new Fubar( 42, 420 );
System.out.println( "Foo ctor #1" );
} System.out.println( "+++++" );
public String toString() 17) What is the output when we run FubarTest as in
{ java FubarTest
System.out.println( "Foo" );
return "Foo.toString";
} Foo ctor #2
} Foo ctor #1
Fubar ctor #3
Fubar ctor #1
Fubar ctor #2
public class Fubar extends Foo +++++
{ Fubar
public Fubar( int x, int y, int z ) Foo
{ Fubar + Foo.toString
this();
System.out.println( "Fubar ctor #1" );
}
public Fubar()
{
System.out.println( "Fubar ctor #3" );
}
Given the initial order of ints in an array as: 4, 7, 10, 9, 1, 2, 6 what is the order of the elements after 3
iterations of the selection sort algorithm? Recall the selection sort algorithm finds the index of the smallest
value in the unsorted partition and exchanges (swaps) that value with the value at the index of the first element
of the unsorted partition, then increments the index of the unsorted partition.
1 ____
____ 2 ____
4 ____
9 ____
10 ____
7 ____
6
What Java annotation did we use for methods like equals() and toString() in subclasses to ensure the same
signature was being used in the subclass as was defined in the superclass? ____________________________
this?
9
18) Given the definition of class Swap below, indicate the output of each println statement?
(Hint: Draw stack frames)
public class Swap public class SwapTest
{ {
private int a; public static void main( String[] args )
{
public int getA() int a = 42; Swap ref1;
{ int b = 64; Swap ref2;
return a;
} ref1 = new Swap(7);
ref2 = new Swap(2);
public void setA(int a)
{ ref2 = ref1.swap(ref2, a);
this.a = a;
} 42
System.out.println(ref1.getA()); _________
public Swap(int a) 2
System.out.println(ref2.getA()); _________
{
this.a = a;
} ref1 = new Swap(7);
ref2 = new Swap(2);
public int swap(int a)
{ ref1.setA(ref1.swap(ref2.getA()));
this.a = a;
2
System.out.println(ref1.getA()); _________
return a;
} 2
System.out.println(ref2.getA()); _________
10
0
19) What is the default initial value of a local variable that is defined as an int? ____________
false
What is the default initial value of an instance variable that is defined as a boolean? ____________
What is the default initial value of an instance variable that is defined as an object reference? ____________
null
0.0
What is the default initial value of an instance variable that is defined as a double? ____________
Assume a program had the following definitions (a Point has an x and a y value):
Point p1 = new Point( 420, 42 );
Point p2 = new Point( p1 );
Point p3 = p2;
What results would be produced by evaluating the following expressions?
p1 == p2 false
____________ p1 == p3 false
____________ p2 == p3 true
____________
true
p1.equals(p2) ____________ true
p1.equals(p3) ____________ true
p2.equals(p3) ____________
p3.translate(1, 1); // Add 1 to the x and y coordinates in the Point object ref'ed by p3
false
p1.equals(p2) ____________ false
p1.equals(p3) ____________ true
p2.equals(p3) ____________
You type java Foo2 at the command line and you get the following:
Exception in thread "main" java.lang.NumberFormatException: For input string: "123b5"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
at java.lang.Integer.parseInt(Integer.java:490)
at java.lang.Integer.parseInt(Integer.java:531)
at FooBar.foo2(BarNone.java:69)
at Foo2.main(Foo2.java:28)
2)
11
Scratch Paper
12
Scratch Paper
13