COMP-202B - Introduction to Computing I (Winter 2011) - All Sections Example Questions for In-Class Quiz

Similar documents
Faculty of Science COMP-202A - Introduction to Computing I (Fall 2009) - All Sections Midterm Examination

Faculty of Science COMP-202B - Introduction to Computing I (Winter 2010) - All Sections Midterm Examination

Faculty of Science COMP-202B - Introduction to Computing I (Winter 2009) Midterm Examination

Faculty of Science Midterm. COMP-202B - Introduction to Computing I (Winter 2008)

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Midterm Examination

COMP-202 Unit 4: Programming With Iterations. CONTENTS: The while and for statements

Last Class. While loops Infinite loops Loop counters Iterations

Midterm Examination (MTA)

CIS 1068 Program Design and Abstraction Spring2016 Midterm Exam 1. Name SOLUTION

CIS 1068 Design and Abstraction Spring 2017 Midterm 1a

1. What is the difference between a compiler and an interpreter? Also, discuss Java s method.

Final Exam. COMP Summer I June 26, points

Object Oriented Programming. Java-Lecture 6 - Arrays

Faculty of Science COMP-202A - Foundations of Computing (Fall 2012) - All Sections Midterm Examination

AP CS Unit 3: Control Structures Notes

Final Examination Semester 3 / Year 2007

McGill University School of Computer Science COMP-202A Introduction to Computing 1

Loops. CSE 114, Computer Science 1 Stony Brook University

Exam 2. Programming I (CPCS 202) Instructor: M. G. Abbas Malik. Total Marks: 40 Obtained Marks:

M105: Introduction to Programming with Java Midterm Examination (MTA) Makeup Spring 2013 / 2014

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 25, Name: KEY A

CSC Algorithms and Data Structures I. Midterm Examination February 25, Name:

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal

CMPS 12A Winter 2006 Prof. Scott A. Brandt Final Exam, March 21, Name:

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Fall 2016 Howard Rosenthal

Question: Total Points: Score:

CSE 20. SAMPLE FINAL Version A Time: 180 minutes. The following precedence table is provided for your use:

Term 1 Unit 1 Week 1 Worksheet: Output Solution

Arrays. Weather Problem Array Declaration Accessing Elements Arrays and for Loops Array length field Quick Array Initialization Array Traversals

Introduction to Computer Science Unit 2. Notes

Introduction to Computer Science Unit 2. Notes

Arrays. Eng. Mohammed Abdualal

Over and Over Again GEEN163

COMP-202: Foundations of Programming. Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016

Module Contact: Dr Gavin Cawley, CMP Copyright of the University of East Anglia Version 1

C212 Early Evaluation Exam Mon Feb Name: Please provide brief (common sense) justifications with your answers below.

! definite loop: A loop that executes a known number of times. " The for loops we have seen so far are definite loops. ! We often use language like

SFWR ENG/COMP SCI 2S03 Principles of Programming SOLUTIONS

Intro to Programming in Java Practice Midterm

Ch. 6. User-Defined Methods

Arrays and Lists CSC 121 Fall 2015 Howard Rosenthal

ANSWERS. Birkbeck (University of London) Software and Programming 1 In-class Test Feb Student Name Student Number. Answer all questions

ANSWERS. Birkbeck (University of London) Software and Programming 1 In-class Test Feb Student Name Student Number. Answer all questions

CSEN202: Introduction to Computer Science Spring Semester 2017 Midterm Exam

1 Short Answer (5 Points Each)

Warm-Up: COMP Programming with Iterations 1

University of Cape Town ~ Department of Computer Science. Computer Science 1015F ~ 2007

Warm up Exercise. What are the types and values of the following expressions: * (3 + 1) 3 / / 2.0 (int)1.0 / 2

1 Short Answer (10 Points Each)

Arrays and Lists CSC 121 Fall 2016 Howard Rosenthal

STUDENT LESSON A12 Iterations

CS 1063 Introduction to Computer Programming Midterm Exam 2 Section 1 Sample Exam

H212 Introduction to Software Systems Honors

Place your name tag here

1.00 Introduction to Computers and Engineering Problem Solving. Quiz 1 March 7, 2003

Make sure the version number is marked on your scantron sheet. This is Version 1

Chapter 3 Selections. Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved.

CS Introduction to Programming Midterm Exam #1 - Prof. Reed Fall 2009

Section 004 Spring CS 170 Exam 1. Name (print): Instructions:

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 11, Name: KEY

Arrays and Lists CSC 121 Fall 2014 Howard Rosenthal

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017

1 Short Answer (10 Points Each)

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Arrays

COS 126 Midterm 1 Written Exam, Fall 2009

1 Short Answer (10 Points Each)

Conditional Programming

Lecture 8 " INPUT " Instructor: Craig Duckett

Top-Down Program Development

Oct Decision Structures cont d

St. Edmund Preparatory High School Brooklyn, NY

Example: Computing prime numbers

Faculty of Science COMP-202A - Foundations of Computing (Fall 2013) - All Sections Midterm Examination

Faculty of Science COMP-202A - Foundations of Computing (Fall 2013) - All Sections Midterm Examination

Chapter 3: Operators, Expressions and Type Conversion

Last Class. Introduction to arrays Array indices Initializer lists Making an array when you don't know how many values are in it

Loops. GEEN163 Introduction to Computer Programming

CSE 142, Autumn 2008 Midterm Exam, Friday, October 31, 2008

Sample Examination. Family Name:... Other Names:... Signature:... Student Number:...

Computer Programming, I. Laboratory Manual. Experiment #3. Selections

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Last Class. More on loops break continue A bit on arrays

Tasks for fmri-setting (Tasks of first and second pilot study at the end)

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

CONTENTS: While loops Class (static) variables and constants Top Down Programming For loops Nested Loops

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to define and invoke void and return java methods

COMP-202 Unit 4: Programming with Iterations

CSE 114 Midterm 1. Please leave one seat between yourself and each of your neighbors.

Final Exam Practice. Partial credit will be awarded.

CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types. COMP-202 Unit 6: Arrays

ASSIGNMENT 1 Expressions, Data Types, and Simple Calculations

Give one example where you might wish to use a three dimensional array

Chapter 2. Elementary Programming

Chapter 5 Lab Methods

COMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015

2. What are the two main components to the CPU and what do each of them do? 3. What is the difference between a compiler and an interpreter?

COMP-202: Foundations of Programming. Lecture 2: Variables, and Data Types Sandeep Manjanna, Summer 2015

Computer Science is...

It is a constructor and is called using the new statement, for example, MyStuff m = new MyStuff();

CEN 414 Java Programming

Transcription:

COMP-202B - Introduction to Computing I (Winter 2011) - All Sections Example Questions for In-Class Quiz The in-class quiz is intended to give you a taste of the midterm, give you some early feedback about your progress in the course, and encourage you to review course concepts. The quiz will take place in class on the following dates: Section 1 Feb. 9 Section 2 Feb. 10 Section 3 Feb. 9 To ensure that the first course section to write the quiz is not at a disadvantage, we are providing all students with 12 sample quiz questions. These sample questions are a selection of the shorter, easier questions from past midterms. In each section, the quiz will consist of up to 3 questions that are very similar (although not necessarily identical) to the ones in this document. It is possible that all three sections will be assigned identical questions. It is possible that all three sections will be assigned different questions. Important notes: Students must write the quiz at the time specified for the section in which they are registered, unless permitted otherwise in writing by their section instructor. If you have an unavoidable conflict with your quiz timeslot, please e-mail your section instructor immediately. You must bring your McGill student ID to class on the day of the quiz. The quiz will be closed book; only pencils/pens will be allowed on your desk. (i.e. no calculators, cell phones, etc.) Students who are absent from the in-class quiz MUST justify their absence to the satisfaction of their section instructor with documentary evidence by February 18, 2011. For students who satisfy this requirement, the weight of the quiz in their final grade will be transferred to the midterm examination; that is, for these students, the midterm examination will be worth 22% of their final grade. Students who fail to provide satisfactory justification for their absence will receive a grade of 0 for the quiz. You will be given between 30 and 40 minutes to write the quiz. 1

COMP-202B - Winter 2011 - Example Quiz Questions Page 2 1. What will be displayed to the screen after the following program is executed? public class WhatWillBeDisplayed { public static void main(string[] args) { String s1, s2, s3; char a = \n ; s1 = "=="; s2 = "*"; s3 = s2; s2 = s1; System.out.println(1 + 2 + s3 + 4 + 5 + a + 4 * 5); } } int x = 9; double j = (int) 12.9; while(x+1 <= 11){ j = j / 4; x++; } System.out.println(j); WRITE THE PROGRAM S OUTPUT IN THE SPACE BELOW:

COMP-202B - Winter 2011 - Example Quiz Questions Page 3 2. The following program prints a shape to the screen using the characters * and @. Draw the program s exact output in the grid below. Each square in the grid can hold exactly one symbol or space. You MUST assume that the program prints its output starting at the top left corner. public class Exercise { public static void main(string[] args) { final int LINES = 5; for (int y = 1; y <= LINES; y++) { for (int z = 1; z <= LINES - y; z++) // The String being printed below contains 3 spaces System.out.print(" "); for (int w = y; w >= 1; w--) // The String being printed below contains 2 spaces System.out.print(" " + * ); for (int w = 2; w <= y; w++) // The String being printed below contains 2 spaces System.out.print(" " + @ ); } } } System.out.println();

COMP-202B - Winter 2011 - Example Quiz Questions Page 4 3. Consider the following program: 1 public class Errors 2 public static void Main(String[] args) { 3 4 5 for (int p = 2; p <= 15; p--) { 6 int i = (int) (Math.pow(2, p) - 1); 7 8 if (isprime(i)) 9 System.out.println(p + "\t" + i + " is prime!"); 10 System.out.println(); 11 else System.out.println("Not prime. Reversal\t" 12 + reversal(i)); 13 } 14 } 15 16 public static boolean isprime(int num) { 17 if (num == 2) { 18 return true; 19 } 20 21 for (int i = 2; i <= num / 2; i++) { 22 if (num % i = 0) { 23 return false; 24 } 25 } 26 return true; 27 } 28 29 public static int reversal(int num) { 30 final int result = 0; 31 32 while (num!= 0) { 33 {int lastdigit = num % 10;} 34 result = result * 10 + lastdigit; 35 num = num / 10; 36 } 37 } 38 } The above program is designed to check whether numbers x of the form 2 p 1 are prime for integer values of p between 2 and 15, inclusive. The program should display the result for each x. For example, for the number 7 it should display: 3 7 is prime! If a particular value of x is not prime, the program should also display this value of x in reverse. For example, 15 is not prime, so the program should print 51 along with a message about 15 not being prime, as follows: Not prime. Reversal 51

COMP-202B - Winter 2011 - Example Quiz Questions Page 5 However, there are 8 errors in this program. Find all the errors and list them. For each error you list, you MUST provide the line number at which the error occurs, the type of error (compile-time, run-time, logical), and a description of the error. Suggesting a solution is NOT necessary. Do not list more than 8 errors, as you will be penalized for every error in excess of 8.

COMP-202B - Winter 2011 - Example Quiz Questions Page 6 4. Consider the following program: 1 public class Mystery { 2 public static void main(string[] arg) { 3 int[] result = {4, 3, 44, 9, 5}; 4 int i; 5 dosomething(result); 6 for(i = result.length - 1; i >= 0; i--) 7 System.out.println(result[i]); 8 System.out.println(i); 9 } 10 11 public static int[] dosomething(int[] input) { 12 int[] temp = new int[input.length]; 13 int[] result = input; 14 temp[3] = 0; 15 input = temp; 16 input[0] = result[result[1]]; 17 result = input; 18 if(input[0] < result.length-1) 19 result[0] = input[0] - 1; 20 return result; 21 } 22 } Answer the following four questions. a) What is stored in the variable result after line 3 is executed?

COMP-202B - Winter 2011 - Example Quiz Questions Page 7 b) What is stored at input[0] and input[1] after line 12 is executed? c) What is stored at input[0] and input[1] after line 16 is executed? d) What is displayed on the screen when this program is executed?

COMP-202B - Winter 2011 - Example Quiz Questions Page 8 5. Consider the following statement, where p, q, r, and e are all variables of type boolean: e = (p &&!q) (q &&!r)!p r; Complete the following truth table by calculating the value of e for each possible combinations of values for p, q, and r, and entering the result in the corresponding row of the truth table. p q r e false false false false false true false true false false true true true false false true false true true true false true true true

COMP-202B - Winter 2011 - Example Quiz Questions Page 9 6. What will be displayed to the screen after each of the following code fragments is executed? (a) int H = 44; int a = 55; System.out.println("H" + "a"); System.out.println(H + a); (b) int i1 = 3; int i2 = 4; double[] a1 = {5.0, 2.0, 3.5, 4.0, 1.0}; double[] a2 = a1; a1[0] = a1[0] + a1[1]; a2[1] = i1 / i2; a2[2] = (int)a2[2] * 3; a2[3] *= a2[3] + 1.0; a2[4] = 3.0 * (i1 % i2); System.out.println("a2[0]: " + a2[0]); System.out.println("a2[1]: " + a2[1]); System.out.println("a2[2]: " + a2[2]); System.out.println("a2[3]: " + a2[3]); System.out.println("a2[4]: " + a2[4]); (c) String pig = "catch-22"; String dog = "catch-" + 22; System.out.println("Animals are equal: " + pig == dog);

COMP-202B - Winter 2011 - Example Quiz Questions Page 10 7. For each of the following conditions, write a boolean expression that evaluates to true if and only if the condition is true. You are not allowed to use any methods from the Java Platform API (that is, the Java standard library) to answer this question. (a) The values stored in variables m (which specifies the number of a month, where January is month 1) and d (which specifies the number of a day within a month), both of type int, represent a statutory holiday in the Winter 2010 semester. There are only two such holidays: March 26 (Good Friday) and March 29 (Easter Monday). (b) The character stored in variable c (of type char) is a letter (upper-case or lower-case) (c) Exactly two of the values stored in variables a, b and c (all of type int) are odd.

COMP-202B - Winter 2011 - Example Quiz Questions Page 11 8. In this question, you will write a part of a program which reads lines of text from the keyboard and inserts them in an array until the user signals that he/she does not want to enter more lines. At this point, the program displays the contents of the array in lexicographical order and terminates. Write a class called ArrayUtils. This class defines a single public and static method called insert(), which takes as parameters an array of Strings as well as a single String, and returns an array of Strings. The parameter array contains a number of Strings exactly equal to its length; in other words, it does not contain any null elements. Furthermore, the Strings it contains appear in lexicographical order. The method returns a NEW array whose length is equal to the length of the parameter array, plus one. The contents of the new array consist of the elements of the parameter array as well as the parameter String. All of these Strings also appear in lexicographical order in the returned array. For example, suppose the length of the parameter array is 4, and that the array contains the Strings "Alfa", "Bravo", "Delta", and "Echo", in this order; also suppose that the parameter String is "Charlie". In this case, the array returned by the method will have length 5 and will contain the Strings "Alfa", "Bravo", "Charlie", "Delta", and "Echo", in this order. You MAY assume that parameter values satisfy all of the following preconditions: The array parameter is not a null reference. The single String parameter is not a null reference. The number of Strings stored in the parameter array is exactly equal to the length of the array; in other words, the array does not contain any null elements. The Strings in the parameter array appear in lexicographical order. In other words, your method does not have to handle cases where one or more of the above conditions are not satisfied. On the other hand, your method MUST handle the case where the length of the parameter array is 0; in such a case, simply return an array of length 1 containing the parameter String. Hint: Use the fact that the Strings in the parameter array are already sorted in lexicographical order.

COMP-202B - Winter 2011 - Example Quiz Questions Page 12 WRITE YOUR ArrayUtils CLASS IN THE SPACE BELOW:

COMP-202B - Winter 2011 - Example Quiz Questions Page 13 9. In a computer, all information (including program instructions) is represented as numbers in the binary number system. In this system, there are only two digits, 0 and 1, which are often referred to as bits. A binary editor allows one to view information stored in a computer as series of bits. However, the binary number system is often impractical. Therefore, many binary editors convert binary numbers to the hexadecimal number system before displaying them. The hexadecimal number system has 16 digits: the well-known decimal digits from 0 to 9, and the letters from A to F. Converting a binary number to the hexadecimal number system is fairly straightforward: Break down the binary number into groups of 4 bits Convert each group of 4 bits to one hexadecimal digit according to the following conversion table: Binary Hexadecimal Binary Hexadecimal 0000 0 1000 8 0001 1 1001 9 0010 2 1010 A 0011 3 1011 B 0100 4 1100 C 0101 5 1101 D 0110 6 1110 E 0111 7 1111 F Write a class called ConvertToHexadecimal, which contains only a main() method that does the following: Ask the user to enter a String; this String will represent a binary number. Convert the binary number entered by the user to the hexadecimal number system, and display the resulting hexadecimal number. Ask whether the user wants to convert another binary number to the hexadecimal number system. If the user answers "y", "Y", "yes", "YES", or any other meaningful combination of these letters such as "YeS", then the program will repeat the steps listed above, otherwise it will terminate. Sample session: Enter a binary number: 11011110101011011011111011101111 The corresponding value in hexadecimal: DEADBEEF Would you like to convert more? Enter "y" or "yes" to continue: yes Enter a binary number: 11001010111111101011101010111110 The corresponding value in hexadecimal: CAFEBABE Would you like to convert more? Enter "y" or "yes" to continue: no You MAY assume that the String entered by the user contains no characters other than 0 and 1. You MAY also assume that the length of the String entered by the user is a multiple of 4.

COMP-202B - Winter 2011 - Example Quiz Questions Page 14 WRITE YOUR ConvertToHexadecimal CLASS IN THE SPACE BELOW:

COMP-202B - Winter 2011 - Example Quiz Questions Page 15 10. Consider the swap() method, declared in the following Swapper class: public class Swapper { public static void swap(int a, int b) { int temp; } temp = a; a = b; b = temp; public static void main(string[] args) { int v1 = 3; int v2 = 4; } } System.out.println("Swapping..."); swap(v1, v2); System.out.println("v1 s new value: " + v1); System.out.println("v2 s new value: " + v2); The above swap() method above is intended to swap the values of the actual parameters passed to the method. For example, suppose the swap() method works as intended, and the main() method is executed; after the call to the swap() method, the value stored in variable v1 should be 4 (that is, the value that was stored in variable v2 before the call to the swap() method), while the value stored in variable v2 should be 3 (that is, the value that was stored in variable v1 before the call to the swap() method). Does the above swap() method work as it is intended to? That is, will it effectively swap the values of the actual parameters? BRIEFLY explain your answer.

COMP-202B - Winter 2011 - Example Quiz Questions Page 16 11. Consider the following program, saved in a file called Minimum.java: 1 import java.util.scanner; 2 3 public class Minimum { 4 public static int minimum(int[] a) { 5 int minsofar; 6 7 minsofar = a[0]; 8 for (int i = 1; i <= a.length; i++) { 9 if (a[i] > minsofar) { 10 minsofar = a[i]; 11 } 12 } 13 return minsofar; 14 } 15 16 public static void main(string[] foo) { 17 Scanner keyboard = new Scanner(System.in); 18 int[] array; 19 int size; 20 int min; 21 22 System.out.print("Enter the number of values to be stored " + 23 "in the array: "); 24 size = keyboard.nextint(); 25 26 array = new int(size); 27 for (int i = 0; i < array.length; i++) { 28 System.out.print("Enter the value at position " + i + ": "); 29 array[i] = keyboard.nextint() 30 } 31 32 min = minimum(array); 33 System.out.println("The minimum value in the array is: " + min); 34 } 35 } The above program is designed to determine the minimum value in an array whose values are entered by the user (the number of values in the array is intended to be equal to the size of the array, which is also entered by the user), and display this minimum value. However, there are 5 errors in the above program. Find all the errors and list them. For each error you list, you MUST include the number of the line where the error occurs, the type of error (compile-time, run-time, logical) and a description of the error. Do not list more than 5 errors, as you will be penalized for every error in excess of 5 that you list. Note that the line numbers to the left of the above program are included solely to help you make it easier for you to list the line numbers where errors occur; they are not part of the actual program.

COMP-202B - Winter 2011 - Example Quiz Questions Page 17 LIST THE ERRORS YOU FIND IN THE PROGRAM HERE:

COMP-202B - Winter 2011 - Example Quiz Questions Page 18 12. Suppose that on the first day of each month, you save a fixed amount of money a m in a savings account with annual interest rate r y. You can calculate the amount of money in your savings account at the beginning of a given month using the following formula: ( a i = a i 1 1 + r ) m + a m 100 where a i is the amount of money in the account at the beginning of the current month a i 1 is the amount of money in the account at the beginning of the previous month r m is the monthly interest rate; it is equal to r y /12, where r y is the yearly interest rate a m is the amount being deposited in the savings account each month Note that the initial amount in the account, denoted a 1, is equal to the amount being deposited in the savings account each month (that is, a m ). For example, suppose that you decide to save $100.00 each month into a savings account with a yearly interest rate of 6% (the monthly interest rate is therefore 0.5%). At the beginning of the first month, you deposit $100.00 in the account. At the beginning of the second month, there will be $100.00 (1 + 0.005) + $100.00 = $200.50 in the account. At the beginning of the third month, there will be $200.50 (1 + 0.005) + $100.00 = $301.5025 in the account. Write a class called SavingsCalculator, which contains only a main() method that does the following: Ask the user to enter a yearly interest rate, an amount to be deposited in the saving accounts each month, as well as a number of months, and read all these values from the keyboard. The yearly interest rate and the amount being deposited in the savings account are real numbers, while the number of months is an integer. Note that the user specifies the yearly interest rate as a percent; in other words, to specify a yearly interest rate of 6%, the user will enter 6.0 or simply 6, NOT 0.06. Calculate the amount in the savings account after the number of months entered by the user has passed. Display this value, with an appropriate explanatory message. This value does not have to be formatted in any particular fashion; in particular, the number of significant digits displayed does not matter. Sample session: Enter the yearly interest rate: 6.0 Enter the amount to be deposited each month: 100.0 Enter the number of months: 3 After 3 months, there will be $301.5025 in the savings account Your program MAY assume that the values entered by the user are of the correct type and that they are in the proper range; in other words, your program does not have to handle cases where a value entered by the user is invalid in any way (such as a negative interest rate or number of months).

COMP-202B - Winter 2011 - Example Quiz Questions Page 19 WRITE YOUR SavingsCalculator CLASS IN THE SPACE BELOW: