CS-140 Fall 2018 Test 2 Version Practice Nov. 12, Name:

Similar documents
CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018

CS-140 Fall 2017 Test 1 Version Practice Practice for Nov. 20, Name:

Prelim 2[Solutions] Solutions. 1. Short Answer [18 pts]

Solutions. Prelim 2[Solutions]

CMSC 132, Object-Oriented Programming II Summer Lecture 6:

Introduction to Computing II (ITI1121) FINAL EXAMINATION

Course Announcements. John Jannotti (cs32) Scope, Collections & Generics Feb 8, / 1

Introduction to Computing II (ITI 1121) FINAL EXAMINATION

Elementary Sorts 1 / 18

SFWR ENG/COMP SCI 2S03 Principles of Programming

Java Programming. Final Examination on December 13, 2015 Fall 2015

Lecture 5: Sep. 23 &25

CMSC 132, Object-Oriented Programming II Summer Lecture 12

Report of Dragable Notebook

CS1083 Week 4 : Polymorphism

CS Java. Introduction to Java. Andy Mroczkowski Department of Computer Science Drexel University

public void run ( ) { i f ( this. id == 0) System. out. p r i n t ( 3 ) ; bro. j o i n ( ) ; else System. out. p r i n t ( 2 ) ;

Python. chrysn

MURA Office hours Thurs at 12-1pm in CIT 546 Contact for more info.

Introduction to Computing II (ITI 1121) MIDTERM EXAMINATION

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ;

Tou has been released!

1 Java Night Countdown (30%)

6.001 Recitation 22: Streams

Computer Science Introductory Course MSc - Introduction to Java

ITI Introduction to Computing II

Thomas Jefferson Invitational Open in Informatics

1 ListElement l e = f i r s t ; / / s t a r t i n g p o i n t 2 while ( l e. next!= n u l l ) 3 { l e = l e. next ; / / next step 4 } Removal

Introduction to Programming (Java) 3/12

A Java introduction SDK, FC 15/12/2009 UMR AMAP. SDK, FC (UMR AMAP) A Java introduction 15/12/ / 50

Lab Exercise 6 CS 2334

Introduction to Algorithmic Complexity. D. Thiebaut CSC212 Fall 2014

Instance Methods and Inheritance (1/2)

CS Exam 3 Study Guide and Practice Exam

Techniques of Java Programming

CSE 311: Foundations of Computing. Lecture 26: Cardinality

Übung Informatik I - Programmierung - Blatt 7

ITI Introduction to Computing II

Lecture 5: Jun. 10, 2015

CSEN202: Introduction to Computer Programming Spring Semester 2014 Final Exam

Voortgezet Programmeren

Notater: INF3331. Veronika Heimsbakk December 4, Introduction 3

CMSC 132, Object-Oriented Programming II Summer Lecture 10:

CS 61B Asymptotic Analysis Fall 2017

DM507 - Algoritmer og Datastrukturer Project 1

BoardGame: A MiniDraw extension

Running Time. Overview. Case Study: Sorting. Sorting problem: Analysis of algorithms: framework for comparing algorithms and predicting performance.

n CS 160 or CS122 n Sets and Functions n Propositions and Predicates n Inference Rules n Proof Techniques n Program Verification n CS 161

Take-home Lab 1. Arrays

Liquid or Gas. New Mexico Super Computing Challenge Final Report April 1, 2006 Team #74 Oñate High School

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 09/06/2014 SESSION 8:30-10:30

Lecture 4: Stacks and Queues

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00

SFWR ENG 3S03: Software Testing

DNHI Homework 2 Solutions Recursion

CMSC 132, Object-Oriented Programming II Summer Lecture 1:

SDS developer guide. Develop distributed and parallel applications in Java. Nathanaël Cottin. version

Object Oriented Software Design (NTU, Class Even, Spring 2009) Final Examination Problem Sheet TIME: 06/16/2009, 14:20 17:20

Practice Midterm Exam

Compiling Techniques

Code Listing for Problem 4

Chapter 5: Section 5-1 Mathematical Logic

CMSC 132, Object-Oriented Programming II Summer Lecture 11:

Remainders. We learned how to multiply and divide in elementary

highlights proof by contradiction what about the real numbers?

CS177 Fall Midterm 1. Wed 10/07 6:30p - 7:30p. There are 25 multiple choice questions. Each one is worth 4 points.

Basic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University

Lecture 14: Nov. 11 & 13

More About Methods. Hsuan-Tien Lin. Deptartment of CSIE, NTU. OOP Class, March 8-9, 2010

1 import java. u t i l. ArrayList ; 2 import java. u t i l. L i s t ; 4 /

Binary Search Trees. Motivation

INF2220: algorithms and data structures Series 1

Lecture 19: Universality and Computability

Stacks. Definitions Operations Implementation (Arrays and Linked Lists) Applications (system stack, expression evaluation) Data Structures 1 Stacks

Fundamental Questions. Universality. What is a general purpose computer? Computability. Are there problems that no machine can solve?

Discovering Spam On Twitter

Lists, Stacks, and Queues (plus Priority Queues)

E23: Hotel Management System Wen Yunlu Hu Xing Chen Ke Tang Haoyuan Module: EEE 101

CSE505, Fall 2012, Final Examination December 10, 2012

CS Exam 1 Study Guide and Practice Exam

Round 5: Hashing. Tommi Junttila. Aalto University School of Science Department of Computer Science

Extensibility Patterns: Extension Access

INF Models of concurrency

Generics. Hsuan-Tien Lin. OOP Class, May 23, Department of CSIE, NTU. H.-T. Lin (NTU CSIE) Generics OOP 05/23/ / 16

Mathematical Induction. How does discrete math help us. How does discrete math help (CS160)? How does discrete math help (CS161)?

Constructors - Cont. must be distinguished by the number or type of their arguments.

6.001 SICP September? Procedural abstraction example: sqrt (define try (lambda (guess x) (if (good-enuf? guess x) guess (try (improve guess x) x))))

Read all questions and answers carefully! Do not make any assumptions about the code other than those that are clearly stated.

Discrete Math in Computer Science Solutions to Practice Problems for Midterm 2

CompA - Complex Analyzer

More Asymptotic Analysis Spring 2018 Discussion 8: March 6, 2018

A JML Specification of the Design Pattern Visitor

CSE 373: Data Structures and Algorithms Pep Talk; Algorithm Analysis. Riley Porter Winter 2017

1. Write a program to calculate distance traveled by light

Sharing Objects. Pieter van den Hombergh. Fontys Hogeschool voor Techniek en Logistiek. February 15, 2017

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

2 Getting Started with Numerical Computations in Python

Associated code files to read, execute in Hugs, modify: Intro.lhs, Trans1.hs, IntroFuns.lhs, ListOps.hs, Tuples.lhs. 12/5/2003. Author: J. Nino.

Turing Machine Recap

Imperative Data Parallelism (Correctness)

Transcription:

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018 Name: 1. (10 points) For the following, Check T if the statement is true, or F if the statement is false. (a) T F : If a child overrides its parent s method, it can still invoke the parent method with the super keyword, but if it does so, then it must invoke the parent method first. (b) T F : It is possible to create a concrete class in Java which does not support the tostring method. (c) T F : The compiler will not compile a concrete class which implements an interface, but fails to implement all the methods in that interface. (d) T F : A GUI contains code that manipulates a rectangular array of pixels, where each pixel is represented by three color values. (e) T F : An abstract class is used to prevent a child class from overriding specific methods (such as a checkpassword method.) (f) T F : Under the covers, the backing store for an ArrayList is an array of Object references. (g) T F : In Java there is an expectation that if two objects are equal, they will have the same hashcode. (h) T F : An interface defines the list of fields that must be provided by a class that implements that interface (i) T F : An abstract class can implement an interface without implementing all the methods in the interface. The methods not yet implemented are considered abstract methods. (j) T F : A child class cannot inherit the class methods of its parent. 2. (5 points) Given an array of strings such as String [] arr = { abc, acd,... ;, check all of the following which are valid ways to convert the array into an arraylist. List<String> list = new ArrayList<>(); for(string str : arr) list. add(str); List<String> list = arr; List<String> list = new ArrayList<>(); list.addall(arrays.aslist(arr)); List<String> list = arr.toarraylist(); List<String> list = new ArrayList<>(Arrays.asList(arr)); String [] list = new ArrayList<>(Arrays.asList(arr)); Page 1 of 11

3. (5 points) In the java library, there is an interface called CharSequence, which defines the methods charat(int index), chars(), length(), subsequence(int start, int end), and tostring(). Note that the String class implements the CharSequence interface. Given the following Java line of code: CharSequence csq = Welcome to Java! ; Check all of the following which are valid invocations of methods: csq.length() csq.charat(3) csq.concat( Enjoy the ride! ) csq.equals( Bienvenido a Java ) CharSequence.subSequence(0,3) Answer the following questions by filling in the blanks. 4. (10 points) Given the following Java lambda expressions and argument values, what result will the lambda expression produce? (a) x >x+3 with argument 3.0, (a) (b) x > x x + 2 x + 1 with argument 3, (b) (c) (x,y) >(x y) (x y) with arguments 9 and 2 (c) (d) (x,y) >x.lst.compareto(y.lst)==0? x.lst.compareto(y.lst) : x. fst. compareto(y.fst) with arguments n1 and n2 where n1 and n2 are objects with public fst and lst fields with values: n1[ fst= Tom lst= Smith ], n2[fst= Tom lst= Smith ] (d) (e) (x) > { if (0==x%2) return 0; if (0==x%3) return 3; return 1; with argument 21 (e) Page 2 of 11

5. (10 points) Given the Java classes in Listing 1 on page 7, Listing 2 on page 7, Listing 3 on page 7, and Listing 4 on page 7, (a) If you execute until just before the first for loop in the Debate main method, complete the following graphical display of memory: (b) If you run java -cp test2.debate, what will get printed to the screen? Page 3 of 11

6. (20 points) Given the class in Listing 5 on page 8, (a) What is the string produced by Frac f=new Frac(1,2); f.mult(new Frac(1,3)).toString()? (b) Write the code for the add method of the Fraction class so that fraction addition is performed using a the formula: b + c d = ad+bc bd. (c) Given two instances of class Fraction, Fraction frac1 and Fraction frac2, such that frac1. hashcode()==frac2.hashcode(), will frac1. equals( frac2) be true? Why or why not? (d) Given two instances of class Fraction, Fraction frac1 and Fraction frac2, such that frac1.equals(frac2), will frac1==frac2 be true? Why or why not? (e) (5 points (bonus)) If you create a new Fraction(3,0), will the Fraction class work? If not, what is the first code that will break? Page 4 of 11

7. (10 points) Given the Java class in Listing 6 on page 8: (a) The constructor for the Square class invokes the getfont routine to get the value of the Font field associated with this square. How can the value for the font field be anything other than null, since this Square object has just been created? (b) The actionperformed method does not use the argument ActionEvent arg0. Why is it valid for the actionperformed method to ignore its argument? (c) Once the choose method is invoked on a specific Square object, can the actionperformed method ever get invoked? (d) The actionperformed method returns immediately instead of allowing the computer to have a turn if the TicTacToe checkwinner method returns a true value. Can you speculate what the return value from checkwinner means? Page 5 of 11

8. (10 points) For the following question, refer to the zoo package in Listing 7 on page 9, Listing 8 on page 9, Listing 10 on page 10, Listing 9 on page 9, and Listing 11 on page 10 (a) What would get printed to the screen if you run the main method from the Zoo class? (b) Write a new sub-class of animal to put in a zoo. Your class should have a no-argument constructor. (c) Which line of code in the zoo package demonstrates the concept of polymorphism? Explain why that line shows polymorphism. 9. (10 points) What will get printed by the main method in the Java code in Listing 12 on page 10? 10. (10 points) What output is produced by the main method in the Mapper class in Listing 13 on page 11: Page 6 of 11

Tear-off Pages Listing 1: Subconscious.java public class Subconscious { private S t r i n g name ; public Subconscious ( S t r i n g name) { this. name = name ; public S t r i n g getname ( ) { return name ; public void pr omi se ( ) { System. out. p r i n t l n (name + promises not to keep any promises. ) ; public void claim ( ) { System. out. p r i n t l n (name + w i l l r u l e the world! ) ; Listing 2: Red.java public class Red extends Subconscious { public Red( S t r i n g name) { super (name ) ; @Override public void pr omi se ( ) { System. out. p r i n t l n ( super. getname()+ w i l l b u i l d a wall. ) ; @Override public void claim ( ) { System. out. p r i n t l n ( super. getname()+ w i l l make America g r e a t again. ) ; Listing 3: Blue.java public class Blue extends Subconscious { public Blue ( S t r i n g name) { super (name ) ; @Override public void pr omi se ( ) { System. out. p r i n t l n ( super. getname()+ w i l l pay your c o l l e g e t u i t i o n. ) ; @Override public void claim ( ) { System. out. p r i n t l n ( super. getname()+ says we re s t r o n g e r t o g e t h e r! ) ; Listing 4: Debate.java public class Debate { public static void main ( S t r i n g [ ] args ) { Blue dem = new Blue ( H i l l a r y ) ; Red rep = new Red( Donald ) ; Subconscious [ ] p a r t i e s = { rep, dem ; for ( Subconscious party : p a r t i e s ) { party. promise ( ) ; for ( Subconscious party : p a r t i e s ) { party. claim ( ) ; Page 7 of 11

Tear-off Pages Listing 5: Fraction.java public class Fraction { private long numerator ; private long denominator ; public Fraction ( long numerator, long denominator ) { this. numerator = numerator ; this. denominator = denominator ; normalize ( ) ; public double todouble ( ) { return ( double ) numerator / denominator ; public void normalize ( ) { i f ( denominator <0) { denominator= denominator ; numerator= numerator ; long g = gcd (Math. abs ( numerator ), denominator ) ; i f ( g>1) { numerator /=g ; denominator /=g ; public Fraction add ( Fraction that ) { // Code not s u p p l i e d public Fraction mult ( Fraction that ) { return new Fraction ( this. numerator that. numerator, this. denominator that. denominator ) ; @Override public int hashcode ( ) { f i n a l int prime = 3 1 ; int r e s u l t = 1 ; r e s u l t = prime r e s u l t + ( int ) ( denominator ˆ ( denominator >>> 3 2 ) ) ; r e s u l t = prime r e s u l t + ( int ) ( numerator ˆ ( numerator >>> 3 2 ) ) ; return r e s u l t ; @Override public boolean e q u a l s ( Object obj ) { i f ( this == obj ) return true ; i f ( obj == null ) return f a l s e ; i f ( g e t C l a s s ( )!= obj. g e t C l a s s ( ) ) return f a l s e ; Fraction other = ( Fraction ) obj ; i f ( denominator!= other. denominator ) return f a l s e ; i f ( numerator!= other. numerator ) return f a l s e ; return true ; @Override public S t r i n g t o S t r i n g ( ) { return Fraction [ numerator= + numerator +, denominator= + denominator + ] ; static private long gcd ( long x, long y ) { i f ( x==y ) return x ; i f ( x<y ) return gcd ( y x, x ) ; return gcd ( x y, y ) ; Listing 6: Square.java public class Square extends JButton implements A c t i o n L i s t e n e r { Page 8 of 11

Tear-off Pages private static f i n a l long s erialversionuid = 1L ; int row ; int c o l ; TicTacToe game ; public Square ( TicTacToe game ) { this. game = game ; setfont ( getfont ( ). derivefont ( ( float ) 4 0. 0 ) ) ; s e t P r e f e r r e d S i z e (new Dimension ( 7 0, 7 0 ) ) ; setmargin (new I n s e t s ( 30, 30, 30, 30)); settext ( ) ; addactionlistener ( this ) ; public void choose ( S t r i n g val ) { settext ( val ) ; setenabled ( f a l s e ) ; @Override public void actionperformed ( ActionEvent arg0 ) { choose ( X ) ; i f ( game. checkwinner ( ) ) return ; game. computerturn ( ) ; game. checkwinner ( ) ; Listing 7: Animal.java package zoo ; public class Animal { S t r i n g food ; S t r i n g motion ; S t r i n g k i d s ; public Animal ( S t r i n g food, S t r i n g motion, S t r i n g k i d s ) { this. food = food ; this. motion = motion ; this. k i d s = k i d s ; S t r i n g eat ( ) { return I eat + food +. ; S t r i n g move ( ) { return I move + motion +. ; S t r i n g b i r t h ( ) { return I j u s t had + k i d s +. ; Listing 8: Tiger.java package zoo ; public class Tiger extends Animal{ public Tiger ( ) { super ( small animals, s i l e n t l y and s n e a k i l y, two cubs ) ; pacakge zoo ; Listing 9: Elephant.java Page 9 of 11

Tear-off Pages public c l a s s Elephant extends Animal { public Elephant ( ) { super ( l e a v e s and g r a s s, with a lumbering walk, one c a l f ) ; Listing 10: Snake.java package zoo ; public c l a s s Snake extends Animal { public Snake ( ) { super ( mice, on my b e l l y, 20 h a t c h l i n g s ) ; @Override S t r i n g b i r t h ( ) { return I l e f t 20 eggs to hatch. ; Listing 11: Zoo.java package zoo ; public class Zoo { ArrayList <Animal> animals ; public Zoo ( ) { this. animals = new ArrayList<Animal >(); public boolean add ( Animal e ) { return animals. add ( e ) ; public s t a t i c void main ( S t r i n g [ ] a r g s ) { Zoo zoo=new Zoo ( ) ; zoo. add (new Elephant ( ) ) ; zoo. add (new Tiger ( ) ) ; zoo. add (new Snake ( ) ) ; for ( Animal a : zoo. animals ) { System. out. p r i n t l n ( a. eat ( ) + + a. move ( ) + + a. b i r t h ( ) ) ; public class LinkedList { private int value ; private LinkedList next ; Listing 12: LinkedList.java public LinkedList ( int value ) { this. value = value ; public LinkedList add ( int value ) { i f ( next==null ) next=new LinkedList ( value ) ; else next. add ( value ) ; return this ; public int get ( int n ) { i f ( n==0) return value ; i f ( next==null ) throw new IllegalArgumentException ( I l l e g a l index ) ; return next. get (n 1); public LinkedList r e v e r s e ( ) { i f ( next==null ) return this ; return next. r e v e r s e ( ). add ( value ) ; public S t r i n g t o S t r i n g ( ) { S t r i n g r e s u l t= + value ; i f ( next!= null ) r e s u l t = r e s u l t + > + next. t o S t r i n g ( ) ; Page 10 of 11

Tear-off Pages return r e s u l t ; public s t a t i c void main ( S t r i n g [ ] a r g s ) { LinkedList l s t = new LinkedList ( 2 1 ) ; l s t. add ( 3 3 ) ; l s t. add ( 1 9 ) ; l s t. add ( 4 4 ) ; l s t. add ( 1 9 ) ; l s t. add ( 1 9 ) ; System. out. p r i n t l n ( The t h i r d element i s + l s t. get ( 2 ) ) ; System. out. p r i n t l n ( L i s t : + l s t ) ; l s t=l s t. r e v e r s e ( ) ; System. out. p r i n t l n ( The t h i r d element i s now + l s t. get ( 2 ) ) ; System. out. p r i n t l n ( L i s t : + l s t ) ; import java. u t i l. Arrays ; import java. u t i l. f u n c t i o n. Function ; Listing 13: Mapper.java public class Mapper { public double [ ] map( double [ ] rawdata, Function<Double, Double> f n ) { double [ ] r e s u l t=null ; i f ( rawdata!= null ) { r e s u l t = new double [ rawdata. l e n g t h ] ; for ( int i =0; i <rawdata. l e n g t h ; i ++) { r e s u l t [ i ]= fn. apply ( rawdata [ i ] ) ; return r e s u l t ; public s t a t i c void main ( S t r i n g [ ] a r g s ) { Mapper f o r a l l = new Mapper ( ) ; double [ ] data = { 1. 5, 2. 5, 3. 5, 4. 5 ; double [ ] big = f o r a l l. map( data, d >{ i f (d>3.0) return d ; else return 3. 0 ; ) ; double [ ] l i t t l e = f o r a l l. map( data, d >(d<=3.0)?d : 3. 0 ) ; System. out. p r i n t l n ( Big : + Arrays. t o S t r i n g ( big ) ) ; System. out. p r i n t l n ( L i t t l e : + Arrays. t o S t r i n g ( l i t t l e ) ) ; Page 11 of 11