AP Computer Science A, 7th Edition - Moore Public Schools
BARRON'S
The Leader in Test Preparation
AP*
COMPUTER SCIENCE A
MOST UP-TO-DATE REVIEW AND PRACTICE TESTS CURRENTLY AVAILABLE
7TH EDITION
Roselyn Teukolsky, M.S.
n4 full-length practice tests with explained answers, including one online
nExpert advice on the best way to approach the test
nReview covers all relevant topics, including the new AP Computer Science A labs and changes to the Java subset
Everything you need
to get a 55
BOOK ONLINE
*AP and Advanced Placement Program are registered trademarks of the College Board, which was not involved in the production of, and does not endorse, this product.
Now Available!
BARRON'S Online
AP Exams
Go to AP/compsci/
to take a free sample AP Computer Science A test,
complete with answer explanations and
automated scoring.
*This online test was created for devices that support Adobe Flash Player. To access the test on an Apple iPad or iPhone you will need to install a web browser that supports Flash (check the iTunes App Store for free options).
BARRON'S
AP*
COMPUTER SCIENCE A
7TH EDITION
Roselyn Teukolsky, M.S.
Formerly, Ithaca High School Ithaca, New York
*AP and Advanced Placement Program are registered trademarks of the College Board, which was not involved in the production of, and does not endorse, this book.
About the Author: Roselyn Teukolsky has an M.S. degree from Cornell University, and has been teaching programming and computer science since 1980. She has published articles in The Mathematics Teacher and in the National Council of Teachers of Mathematics Yearbook. She is the author of Barron's ACT Math and Science Workbook and coauthor of Barron's SAT 2400: Aiming for the Perfect Score. She has received the Edyth May Sliffe Award for Distinguished Mathematics Teaching and the Alfred Kalfus Distinguished Coach Award from the New York State Math League (NYSML).
c Copyright 2015, 2013, 2010 by Barron's Educational Series, Inc. Previous editions c copyright 2007 under the title AP Computer Science Levels A and AB, 2003 under the title How to Prepare for the AP Computer Science Advanced Placement Examination, JAVA Version, and 2001 under the title How to Prepare for the AP Computer Science Advanced Placement Examination by Barron's Educational Series, Inc. All rights reserved. No part of this publication may be reproduced or distributed in any form or by any means without the written permission of the copyright owner. All inquiries should be addressed to: Barron's Educational Series, Inc. 250 Wireless Boulevard Hauppauge, New York 11788 ISBN: 978-1-4380-0594-2 ISBN (with CD-ROM): 978-1-4380-7553-2 ISSN (Print): 2169-5571 ISSN (Print with CD-ROM): 2169-558X
PRINTED IN THE UNITED STATES OF AMERICA
987654321
Contents
Preface
ix
Introduction
xi
General Information About the Exam . . . . . . . . . . . . . . . . . . . . . . . xi
Hints for Taking the Exam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
The Multiple-Choice Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
The Free-Response Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
How to Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Practice Exam One / Diagnostic Test
1
Computer Science Section I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Computer Science Section II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Answer Key (Section I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Diagnostic Chart for Practice Exam . . . . . . . . . . . . . . . . . . . . . . . . . 45
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Chapter 1. Introductory Java Language Features
57
Packages and Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Javadoc Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Types and Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Storage of Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Hexadecimal and Octal Numbers . . . . . . . . . . . . . . . . . . . . . . . . . 62
Final Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Relational Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Assignment Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Increment and Decrement Operators . . . . . . . . . . . . . . . . . . . . . . . 66
Operator Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Escape Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Control Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Decision-Making Control Structures . . . . . . . . . . . . . . . . . . . . . . . 69
Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Errors and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Multiple-Choice Questions on Introductory Java Language Concepts . . 77
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
iii
iv Contents
Chapter 2. Classes and Objects
92
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Public, Private, and Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Types of Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Method Overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
The this Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Reference vs. Primitive Data Types . . . . . . . . . . . . . . . . . . . . . . . . 101
The Null Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Method Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Multiple-Choice Questions on Classes and Objects . . . . . . . . . . . . . . . 111
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Chapter 3. Inheritance and Polymorphism
131
Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Superclass and Subclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Inheritance Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Implementing Subclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Declaring Subclass Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Dynamic Binding (Late Binding) . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Using super in a Subclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Type Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Downcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
The ClassCastException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Abstract Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Abstract Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
The abstract Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Defining an Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
The implements Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
The Comparable Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Multiple-Choice Questions on Inheritance and Polymorphism . . . . . . . 150
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Chapter 4. Some Standard Classes
174
The Object Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
The Universal Superclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Methods in Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
The String Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Constructing String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
The Concatenation Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Comparison of String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Other String Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Wrapper Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 The Integer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 The Double Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 The Math Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Random Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Multiple-Choice Questions on Standard Classes . . . . . . . . . . . . . . . . . 187 Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Chapter 5. Program Design and Analysis
207
The Software Development Life Cycle . . . . . . . . . . . . . . . . . . . . . . . 207
The Waterfall Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Program Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Program Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Program Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Testing and Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Program Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Object-Oriented Program Design . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Identifying Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Identifying Behaviors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Determining Relationships Between Classes . . . . . . . . . . . . . . . . . . 211
UML Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Implementing Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Implementing Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Vocabulary Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Program Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Program Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Multiple-Choice Questions on Program Design and Analysis . . . . . . . . 221
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Chapter 6. Arrays and Array Lists
233
One-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Length of Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Traversing an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Arrays as Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Array Variables in a Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Array of Class Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Analyzing Array Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Array Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
The Collections API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
The Collections Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Collections and Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Auto-Boxing and -Unboxing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
The List Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Contents v
vi Contents
The Methods of List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 The ArrayList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Using ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Collections and Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Definition of an Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 The Iterator Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Using a Generic Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Two-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Matrix as Array of Row Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Processing a Two-Dimensional Array . . . . . . . . . . . . . . . . . . . . . . . 251 Two-Dimensional Array as Parameter . . . . . . . . . . . . . . . . . . . . . . 253 Multiple-Choice Questions on Arrays and Array Lists . . . . . . . . . . . . 255 Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Chapter 7. Recursion
290
Recursive Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
General Form of Simple Recursive Methods . . . . . . . . . . . . . . . . . . . 291
Writing Recursive Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Analysis of Recursive Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Sorting Algorithms That Use Recursion . . . . . . . . . . . . . . . . . . . . . . 295
Recursive Helper Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Recursion in Two-Dimensional Grids . . . . . . . . . . . . . . . . . . . . . . . . 298
Sample Free-Response Question 1 . . . . . . . . . . . . . . . . . . . . . . . . . 300
Sample Free-Response Question 2 . . . . . . . . . . . . . . . . . . . . . . . . . 303
Multiple-Choice Questions on Recursion . . . . . . . . . . . . . . . . . . . . . 308
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Chapter 8. Sorting and Searching
324
Sorts: Selection and Insertion Sorts . . . . . . . . . . . . . . . . . . . . . . . . . 324
Selection Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Insertion Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Recursive Sorts: Mergesort and Quicksort . . . . . . . . . . . . . . . . . . . . 325
Mergesort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Sorting Algorithms in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Sequential Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Binary Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Multiple-Choice Questions on Sorting and Searching . . . . . . . . . . . . . 331
Answer Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Answers Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Chapter 9. The AP Computer Science A Labs
351
The Magpie Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Special Emphasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
The Elevens Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Special Emphasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- history of computer science
- textbooks andlearningmaterials program zambia
- computer science a college board
- an introduction to computer networks
- computer science information technology
- computer science one
- introduction to computing
- introduction to computer science introduction
- ap computer science a 7th edition moore public schools
- think complexity exploring complexity science in python
Related searches
- moore public schools calendar 2019 20
- moore public schools parent portal
- moore public schools website
- moore public schools infinite campus
- computer science a level pdf
- computer science a level notes
- moore public schools student portal
- ap computer science pdf
- moore public schools district
- computer science a level note
- computer science a level papers
- ap computer science barron s pdf