COE 211/COE 212 Computer/Engineering Programming. Welcome to Exam II Thursday December 20, 2012

Similar documents
COE 212 Engineering Programming. Welcome to Exam II Monday May 13, 2013

COE 212 Engineering Programming. Welcome to Exam II Thursday April 21, Instructors: Dr. Salim Haddad Dr. Joe Tekli Dr. Wissam F.

COE 212 Engineering Programming. Welcome to Exam II Tuesday November 28, 2018

COE 212 Engineering Programming. Welcome to Exam II Friday November 27, 2015

COE 212 Engineering Programming. Welcome to Exam I Tuesday November 11, 2014

COE 212 Engineering Programming. Welcome to Exam II Friday April 20, Instructors: Dr. Dima El-khalil Dr. Wissam F. Fawaz

COE 212 Engineering Programming. Welcome to the Final Exam Monday May 18, 2015

COE 212 Engineering Programming. Welcome to Exam I Thursday June 21, Instructor: Dr. Wissam F. Fawaz

COE 212 Engineering Programming. Welcome to Exam II Wednesday November 30, 2016

COE 212 Engineering Programming. Welcome to the Final Exam Thursday December 15, 2016

COMP 202. Programming With Iterations. CONTENT: The WHILE, DO and FOR Statements. COMP Loops 1

Problem Grade Total

Java Flow of Control

COE 212 Engineering Programming. Welcome to the Final Exam Tuesday December 15, 2015

COE 211 Computer Programming. Welcome to Exam I Tuesday March 13, 2018

CSE 1223: Exam II Autumn 2016

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

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

1 Short Answer (10 Points Each)

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

AP COMPUTER SCIENCE A

Question: Total Points: Score:

CMPT 125: Lecture 4 Conditionals and Loops

Selection Statements and operators

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

Bjarne Stroustrup. creator of C++

Term 1 Unit 1 Week 1 Worksheet: Output Solution

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

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

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

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

Introduction to Computer Science Unit 2. Exercises

Introduction to Java & Fundamental Data Types

Selection Statements and operators

Following is the general form of a typical decision making structure found in most of the programming languages:

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

CSC 1051 Algorithms and Data Structures I. Final Examination May 2, Name:

Control Structures in Java if-else and switch

Loops. CSE 114, Computer Science 1 Stony Brook University

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

STUDENT LESSON A12 Iterations

Chapter 3. Selections

Selection and Repetition Revisited

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 24, Name: KEY 1

Question: Total Points: Score:

Oct Decision Structures cont d

CSE 114 Computer Science I

Chapter 3: Program Statements

Exceptions Chapter 10. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Introduction to Computer Science Unit 2. Notes

CSC 1051 Algorithms and Data Structures I. Final Examination December 17, Name:

Program Development. Java Program Statements. Design. Requirements. Testing. Implementation

Handout 4 Conditionals. Boolean Expressions.

CIS 110 Introduction To Computer Programming. February 29, 2012 Midterm

CSC 1051 Algorithms and Data Structures I. Final Examination May 2, Name:

CSC 1051 Algorithms and Data Structures I. Final Examination May 2, Name: Question Value Score

Top-Down Program Development

Conditionals and Loops

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

Java I/O and Control Structures

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

CS212 Midterm. 1. Read the following code fragments and answer the questions.

Repetition. Chapter 6

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

Programming with Java

Introduction to the Java Basics: Control Flow Statements

Repetition. Chapter 6

Introduction to Arrays

CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2013

CSEN202: Introduction to Computer Science Spring Semester 2017 Midterm Exam

Flow of Control: Loops. Chapter 4

Data Structures COE 312 ExamII Preparation Exercises

CS 170 Section 3, Spring 2015 Programming in Java Midterm Exam 1. Name (print):

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

Introduction to Computer Science, Shimon Schocken, IDC Herzliya. Lectures Control Structures

Topics. Chapter 5. Equality Operators

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

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

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

CS111: PROGRAMMING LANGUAGE II

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

Manipulating One-dimensional Arrays

Midterm Review Session

CSC 1051 Data Structures and Algorithms I

Java for Python Programmers. Comparison of Python and Java Constructs Reading: L&C, App B

Section 003 Fall CS 170 Exam 1. Name (print): Instructions:

Happy Cinco de Mayo!!!!

Java I/O and Control Structures Algorithms in everyday life

Selection and Repetition

Selection and Repetition Revisited

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

Question: Total Points: Score:

Practice Midterm 1 Answer Key

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

Algorithms and Conditionals

CSC 1051 Villanova University. CSC 1051 Data Structures and Algorithms I. Course website:

The Irving K. Barber School of Arts and Sciences COSC 111 Final Exam Winter Term II Instructor: Dr. Bowen Hui. Tuesday, April 19, 2016

CSCI 1226 Sample Midterm Exam

CS111: PROGRAMMING LANGUAGE II

CONDITIONAL EXECUTION

Transcription:

1 COE 211/COE 212 Computer/Engineering Programming Welcome to Exam II Thursday December 20, 2012 Instructor: Dr. George Sakr Dr. Wissam F. Fawaz Dr. Maurice Khabbaz Name: Student ID: Instructions: 1. This exam is Closed Book. Please do not forget to write your name and ID on the first page. 2. You have exactly 115 minutes to complete the 7 required problems. 3. Read each problem carefully. If something appears ambiguous, please write your assumptions. 4. Do not get bogged-down on any one problem, you will have to work fast to complete this exam. 5. Put your answers in the space provided only. No other spaces will be graded or even looked at. Good Luck!!

2 Problem 1: comprehension oriented (20 minutes) [16 points] For each question, choose the single correct answer. 1) Consider the program segment given below. Its output is : String theword = emordnila ; for(int i=0; i < theword.length()/2; i++) System.out.print(theWord.charAt(i)); a. alindrome b. emordnila c. emord 2) Consider the method shown below. How would you best describe its return value: public int method1(int x) { int z = 1; for(int i = 1; i < x; i++) z *= i; return z; a. x x (x raised to x th power). b. x z (x raised to z th power). c. x! (factorial of x). 3) Which of the following cannot be used as a parameter for the switch statement? a. int j = 1; b. boolean k = true; c. byte b = (byte) 2; d. char c = c ; 4) Consider the following code that will assign a letter grade of A, B, C, D, or F depending on a student s test score. if(score >= 90) grade = A ; if(score >= 80) grade = B ; if(score >= 70) grade = C ; if(score >= 60) grade = D ; else grade = F ; a. This code will work correctly in all cases b. This code will work correctly only if score < 70 c. This code will work correctly only if score < 60 5) What is wrong, logically, with the following code? if(x > 10) System.out.println( Large ); else if(x> 6 && x <= 10) System.out.println( Medium ); else System.out.println( Small ); a. The logical error is that no matter what value x is, Large is always printed out. b. The logical error is that no matter what value x is, Small is always printed out. c. There is no logical error, but there is no need to have (x<=10) in the second conditional. d. There is nothing wrong with the logic at all.

6) The break statement does which of the following? a. Transfers control out of the current control structure such as loop or switch b. Ends the program c. Denotes the ending of a switch statement d. Indicates the end of line when using System.out.print 7) If x is an int where x = 0 initially, what will x be after the following loop terminates? while(x < 100) x *= 2; a. This is an infinite loop b. 64 c. 128 8) How many times will the body of the following loop be executed? int x = 10; while(x > 0) { System.out.println(x); x--; a. 9 times b. 10 times c. 11 times 9) Assume that x and y are int variables with x = 5, y = 3, and a and b are char variables with a = a and d = A. Examine the following conditions : Condition1: (x < y && x > 0) Condition 2: (a!= d && 9 > a d < a ) Condition 3: (x > y a == A d!= A ) a. All 3 conditions are false b. Only condition 3 is true c. Condition 2 and Condition 3 are true only 10) Which of the following is part of the java standard class library? a. Iterator b. Comparable c. All of the above d. None of the above 11) The statement if(x < 0) y = x; else y = 0; can be rewritten using a conditional operator as: a. (x < 0)? y = x; y = 0 b. x = (x < 0)? y : 0; c. y = (x < 0)? 0 : x; 3

12) If x is currently equal to 5, what will be the value of x after following the switch statement executes? switch(x) { case 4: x += 2; case 5: x+=3; case 7: x+=2; default: x--; a. 8 b. 10 c. 11 d. 9 13) Given that s is a String, what does the following loop do? for(int j = s.length(); j > 0; j--) System.out.print(s.charAt(j-1)); a. It prints s out forwards b. It prints s out backwards after skipping the last character of s c. It prints s out backwards but does not print the first character of s d. It prints s out backwards 14) The following nested loop structure will execute the innermost statement (x++) how many times? for(int j=0; j < 100; j++) for(int k = 100; k > 0; k--) x++; a. 10000 times b. (99 * 99) times c. 200 times d. 100000 times 15) Static methods cannot: a. Reference static instance data b. Reference non-static instance data c. Invoke other static methods d. None of the above 16) In order to implement Comparable in a class, what method(s) must be defined in that class? a. Equals b. Compares c. All of the above d. None of the above 4

5 Problem 2: Short true or false questions (5 minutes) [10 points] 1. The break statement is needed in the last case preceding the default case in a switch selection statement. 2. In Java, it is possible to create an infinite loop out of while and do...while loops, but not out of for loops. 3. The statement while(a <= b) {a++; b--; will do the same thing as the statement while(!(b < a)) {b--; a++;. 4. When an if statement has an else clause associated with it, the body of the if must be delineated with a pair of curly braces. 5. The contents of two strings can be compared using either equality operator (==) or the equals() method of the String class. 6. The output of the segment of code shown below is: sum: 0. int sum; for(sum = 0; sum >= 0; sum--) sum++; System.out.println( sum: + sum); 7. An if-else statement could be rewritten using two if statements without an else. 8. The following if statement: if(name.length() = 3) can be used to check if the length of the String variable called name is 3 characters long. 9. Code in Java that uses the && logical operator could be rewritten without &&, using an additional if statement instead. 10. A code in Java that uses the logical operator can be rewritten without, using an additional if statement instead.

Problem 3: Evaluating java expressions (10 minutes) [7 points] For each of the following code fragments, what is the value of x after the statements are executed? (1) int x=1, i=0; do { x *= i; i++; while(i < 5); x += i; Answer: x =5 (2) int x = 0; for(int i=1; i <= 3; i++) for(int j=0; j <= (i/2); j++) x += (i+j); Answer: x =10 (3) boolean y=true, z=true, w=false; String x= Hi ; x +=!(y && z) (w==y); Answer: x =Hifalse (4) int z=0 w= 1234, x=0; do { z = w%10; if(z>x) x=z; w/=10; while(w > 0); Answer: x =4 (5) int sum=0, x=0, i=6, j=9; while(j >= i) { sum = sum + j; j--; x=sum/(j-i); Answer: x =-30 (6) int x; for(int i=1; i<=4; i++) {int sum = 0; sum = sum + i; x = sum; Answer: x =4 (7) boolean x=true; for(int i=-2; i<=0; i++) if(i < 0) x = x && ((2+i) <= 0); Answer: x =false 6

7 Problem 4: Code Analysis (12 minutes) [12 points] 1) Consider the method given below. What would be the output if this were called using the statement: method1();? a. 2 b. 27531 c. 1357 void method1(){ int x = 13572 ; while(x > 10) x = x/10 ; System.out.print(x) ; 2) Consider the code segment given below. Its output is: a. 7531 b. 156 c. 16 int x = 1357; int z = 0; for(int i=x; i>0; i=i/10) z = z + (i%10); System.out.print(z); 3) Consider the method given below. What would be the output if this were called using the statement: System.out.println(method2(65432);? a. 12345 b. 5 c. 23456 d. 1 void method2(int number){ int x = number; int y = 0; while(x > 0) { y = y*10 + x % 10; x = x/10 ; return y ;

8 Problem 5: Method definition (15 minutes) [9 points] You are given below the headers of 3 methods called reversestring, removenonalphabets, and isplaindromephrase. Your job is to complete the definition of each one of these methods as per the provided guidelines. 1. reversestring() is a method that accepts a String and returns a reversed version of the input String. public String reversestring(string s) { String str = new String( ); for (int i = s.length()-1; i >= 0; i--) str += s.charat(i); return str; 2. removenonalphabets() is a method that accepts a String parameter and returns the same string with all non-alphabetic characters removed. public String removenonalphabets(string word) { String str = new String( ); char letter; for (int j = 0; j <= word.length()-1; j++) { letter = word.charat(j); if ((letter >= A && letter <= Z ) letter >= a && letter <= z )) str += letter; return str; 3. palindromephrase() is a method that accepts a String parameter and returns true if the string is a palindrome and false otherwise. However, all nonalphabetical characters are ignored. For example, Lonely Tylenol and Madam, I m Adam are both considered to be palindromes. This method must make use of the 2 above-presented methods. public boolean palindromephrase(string phrase) { phrase = removenonalphabets(phrase); String reversedphrase = reversestring(phrase); return(phrase.equals(reversedphrase));

9 Problem 6: Debugging Problem (10 minutes) [6 points] Consider the following program, which is supposed to print out the powers of 3 from 3 0 up to and including, where is a non-negative integer that is entered by the user. 1 import java.util.scanner; 2 public class PowersOfThreeBuggy { 3 public static void main(string[] args){ 4 Scanner scan = new Scanner(System.in); 5 int N = scan.nextline(); 6 int i = 1; 7 int base = 3; 8 while (i < N){ 9 System.out.println("3^" + i + 10 " = "+ Math.pow(base, i)); 11 i++; 12 This program has three bugs. A. Which bug prevents the program from compiling successfully? Identify the line number where the bug appears and give a correct version of this line of code. Line number _5 Correct version: int N = scan.nextint(); B. Identify the line numbers where the two logical errors appear and give a correct version of each line of code. Line number 6 Correct version: int i = 0; Line number 8 Correct version: while(i <= N)

10 Problem 7: Coding (40 minutes) [40 points] 1. Write a program named EvenDigitAv that reads an integer from the user and prints the average of all its even digits. For example if the user enters 158621, your program will display the average of its even digits namely, 8, 6 and 2. Sample output Enter a number: 269914 The average of all the even digit in 269914 is: 4.0 import java.util.scanner; public class EvenDigitAv { public static void main (String[] args) { Scanner scan = new Scanner (System.in); System.out.print( Enter an integer: ); int num = scan.nextint(); int sum = 0; int count = 0; while (num > 0) { int d = num % 10; if (d % 2 == 0) { count++; sum += d; num /= 10; System.out.println( Average of even digits is: + (double) sum/count);

11 2. Write a program named CountCaps that reads a String from the user and prints the number of uppercase letters and the number of lowercase letters found in the string. Sample output Enter a sentence: This is a FUN EXAM Uppercase count: 8 Lowercase Count: 6 import java.util.scanner; public class CountCaps { public static void main (String[] args) { Scanner scan = new Scanner (System.in); System.out.print ( Enter a string: ); String str = scan.nextline(); int countup = 0, countlow = 0; char letter; for (int j = 0; j <= str.length() 1; j++) { letter = str.charat(j); if (letter >= A && letter <= Z ) countup++; if (letter >= a && letter <= z ) countlow++; System.out.println( Uppercase count: + countup); System.out.println( Lowercase count: + countlow);

12 3. Write a program called SumOfPows that reads from the user an integer base b and a maximum integer exponent n and then prints the sum of all the powers of b from 0 up to n inclusive (i.e. b 0 + b 1 + b 2 + b n ). Sample output Enter base: 2 Enter Max Exponent: 3 The sum of the powers of 2 is: 15 import java.util.scanner; public class SumOfPows { public static void main (String[] args) { Scanner scan = new Scanner (System.in); System.out.print( Enter an integer base: ); int b = scan.nextint(); System.out.print( Enter an integer exponent: ); int n = scan.nextint(); int sum = 0; for (int j = 0; j <= n; j++) sum += (int) Math.pow(b,j); System.out.println( The sum of the powers of +b+ is: + sum);

13 4. Write a program to read a list of exam scores given as integers stored in a file called grades.txt. These grades are in the range of 0 to 100. The program has to write the following to a file called gradestat.txt : 1. The total number of grades that was read. 2. The average of these grades. 3. The number of grades in each letter-grade category as follows: A: 90 to 100. B: 80 to 89. C: 70 to 79. D: 60 to 69. F: 0 to 59. import java.util.scanner; import java.io.*; public class ExamScores { public static void main (String[] args) { File f1 = new File( grades.txt ); Scanner filescan = new Scanner(f1); File f2 = new File( gradestat.txt ); FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); PrintWriter pw = new PrintWriter(bw); int counta = 0, countb = 0, countc = 0, sum = 0, countd = 0, countf = 0, counttotal = 0, while (filescan.hasnext()) { String gradeline = filescan.nextline(); Scanner gradescan = new Scanner(gradeLine); while (gradescan.hasnext()) { counttotal++; int grade = Integer.parseInt( gradescan.next()); sum += grade; switch(grade / 10){ case 9: counta++; break; case 8: countb++; break; case 7: countc++; break; case 6: countd++; break; default: if (grade == 100) counta++; else countf++; pw.println( The total number of grades is: + counttotal);

14 pw.println( The average is: + (double) sum/counttotal); pw.println( A: + counta); pw.println( B: + countb); pw.println( C: + countc); pw.println( D: + countd); pw.println( F: + countf); pw.close();