Question: Total Points: Score:

Similar documents
Question: Total Points: Score:

Question: Total Points: Score:

Question: Total Points: Score:

Question: Total Points: Score:

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

Place your name tag here

Question: Total Points: Score:

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

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

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

Question: Total Points: Score:

Question: Total Points: Score:

CS 170 Exam 1. Version: B Fall Name (as on OPUS):

CS 170 Exam 1. Version: C Fall Name (as on OPUS):

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

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

Question: Total Points: Score:

Question: Total Points: Score:

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions:

Question: Total Points: Score:

Instructor: Yu Wang 11/16/2012

Question: Total Points: Score:

CS 170 Exam 2. Version: A Fall Name (as in OPUS) (print): Instructions:

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions:

Question: Total Points: Score:

CS 170 Exam 2. Section 004 Fall Name (print): Instructions:

CS170 (005): Introduction to Computer Science Exam 2

CS 190 Exam 2 Fall 2014

CS 110 Exam 2 Fall 2011

CS 110 Exam 2 Spring 2011

Exam Percentage: / 55 = %

Question: Total Points: Score:

CS 155 Exam 2 Spring 2015

CS 1301 Exam 1 Fall 2010

CS 1301 Exam 1 Fall 2010

CS 2316 Exam 4 Fall 2011

CS 1301 Exam 1 Fall 2011

Java Foundations: Introduction to Program Design & Data Structures, 4e John Lewis, Peter DePasquale, Joseph Chase Test Bank: Chapter 2

Midterm Examination (MTA)

CS 101 Fall 2005 Midterm 2 Name: ID:

CS 1803 Fall 2010 Exam 1

Programming with Java

CS 1301 Exam 2 A Fall 2015

CS 190 Exam 1 Fall 2010

CS 110 Exam 1 Fall 2011

Your (printed!) Name: CS 1803 Exam 3. Grading TA / Section: Monday, Nov. 22th, 2010

CS 1301 Exam 3 Fall 2014

Chapter 3. Selections

Chapter 3: Operators, Expressions and Type Conversion

CS 1301 Exam 3 Spring 2014

CS 1301 Exam 2 A Fall 2015

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

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

CS 1301 Exam 1 Fall 2013

Loops. CSE 114, Computer Science 1 Stony Brook University

Introduction to Computer Science Midterm 3 Fall, Points

CS 2316 Exam 1 Spring 2014

CS 2316 Exam 4 Fall 2011

JAVA OPERATORS GENERAL

CS 1301 Exam 1 Answers Fall 2009

CS 1301 Exam 1 Fall 2013

COMP 202 Java in one week

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

CS 1803 Fall 2010 Exam 1

CS 152: Data Structures with Java Hello World with the IntelliJ IDE

ITERATION WEEK 4: EXMAPLES IN CLASS

CS 101 Spring 2007 Midterm 2 Name: ID:

Question Possible Points Earned Points Graded By GUI 22 SQL 24 XML 20 Multiple Choice 14 Total Points 80

STUDENT LESSON A12 Iterations

COS 126 Midterm 1 Written Exam, Fall 2009

CS 1301 Exam 1 Spring 2011

CS 1301 Exam 1 Fall 2014

CS 2316 Exam 3 Fall 2011

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

CS 1301 Exam 2 Fall 2013

CS Exam 2 - Spring 2010

CS 2316 Exam 4 Fall 2012

CEN 414 Java Programming

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

CS 2316 Exam 1 Spring 2013

Date: Dr. Essam Halim

Lesson 7 Part 2 Flags

CS Exam 3 - Spring 2010

CS 1301 Exam 1 Spring 2015

Mid Term Exam 1. Programming I (CPCS 202) Instructor: M. G. Abbas Malik Date: Sunday November 3, 2013 Total Marks: 50 Obtained Marks:

School of Computer Science CPS109 Course Notes 5 Alexander Ferworn Updated Fall 15

Computer Programming, I. Laboratory Manual. Experiment #2. Elementary Programming

Handout 4 Conditionals. Boolean Expressions.

CS 1301 Exam 1 Fall 2014

CS 1301 Exam 1 Fall 2009

CS 1301 Exam 1 Spring 2014

CS 455 Midterm Exam 1 Fall 2015 [Bono] Thursday, Oct. 1, 2015

CS 2316 Exam 2 Summer 2011

COMP 202. Java in one week

H212 Introduction to Software Systems Honors

CS Exam 3 - Spring 2010

Chapter 4: Control Structures I

CS 2316 Exam 4 Fall 2014

New York University Intro to Computer Science (CSCI-UA.101) Fall 2014 Midterm #1 Test G. Instructions:

Combined Assignment Operators. Flow of Control. Increment Decrement Operators. Operators Precedence (Highest to Lowest) Slide Set 05: Java Loops

Transcription:

CS 170 Exam 1 Section 000 Fall 2014 Name (print): Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do NOT communicate with anyone other than the professor/proctor for ANY reason in ANY language in ANY manner. This exam is closed notes, closed books, and no calculator. Turn all mobile devices off and put them away now. You cannot have them on your desk. Write neatly and clearly indicate your answers. What I cannot read, I will assume to be incorrect. Stop writing when told to do so at the end of the exam. I will take 5 points off your exam if I have to tell you multiple times. Academic misconduct will not be tolerated. Suspected academic misconduct will be immediately referred to the Emory Honor Council. Penalties for misconduct will be a zero on this exam, an F grade in the course, and/or other disciplinary action that may be applied by the Emory Honor Council. Time: This exam has 10 questions on 15 pages including the title page. Please check to make sure all pages are included. You will have 50 minutes to complete this exam. I commit to uphold the ideals of honor and integrity by refusing to betray the trust bestowed upon me as a member of the Emory community. I have also read and understand the requirements and policies outlined above. Signature: Question: 1 2 3 4 5 6 7 8 9 10 Total Points: 6 4 6 8 12 8 12 12 10 22 100 Score: 1

1. (6 points) Describe what function the + operator performs in the following statements: (a) Given that: int a = 1, b = 2; a + b Solution: Arithmetic Operators ( Additive operator ), return the sum of the two operands. (b) a + 1 Solution: Arithmetic Operators ( Additive operator ), the character a will be casted/promoted to integer, the return value is an integer too. (c) "a" + "b" Solution: concatinate/join two strings a and b 2. (4 points) Describe what function the operators containing the symbol = perform in the following statements: Given that: int a = 1, b = 2; (a) a += b Solution: Assignment operator, equivalent to a = a + b; increment a on itself by b; (b) a == b Solution: Equality operator, returns a boolean value; This expression returns true because a is equal to b. 2

3. (6 points) Convert the following binary numbers to decimal equivalents. (Show your work for partial credit) (a) 10001 2 (a) 17 (b) 111000 2 (b) 56 4. (8 points) Convert the following decimal number to their binary. (Show your work for partial credit) (a) 57 (a) 111001 (b) 62 (b) 111110 3

5. (12 points) Evaluate each expression. Then give the result of the evaluation and the data type of the result. If the expression cannot be evaluated or is not proper Java syntax, you may simply write error for the value. The first row has been done for you. int i = 5, j = 3; char c1 = A, c2 = B ; double d1 = 7.0, d2 = 4.0; String s1 = "llama", s2="glama"; Expression Value Type i % j 2 int i + d2 9.0 double i + (int)d2 9 int i + d2 < j + d1 true boolean i--!= j++ true boolean c1 + 1 66 int c1 < c2 true boolean c1 + 1 == c2 true boolean s1 + c1 llamaa String i + c1 + s2 70glama String s1 + "c1" llamac1 String s1.charat(1) == s2.charat(1) true boolean s1.charat(2)+1 ==s2.charat(2)+1.0 true boolean Notes: The parenthesis operator has the highest precedence of all operators. The logical not operator and the casting operator have higher precedence than arithmetic operators, relational/comparison operators, and the other logical operators. Arithmetic operators have higher precedence than relational/comparison or logical operators. Relational/comparison operators have higher precedence than logical operators. Assignment operators have the lowest precedence of all operators 4

6. (8 points) You are writing a program, trying to count how many letter g are in a string. The line numbers are given on the left. 1: public class Checking{ 2: public static void main(string[] args){ 3: 4: String check_word = "Debugging"; 5: int count; 6: int i=0; 7: while(i < check_word.length()){ 8: count=0; 9: if ( check_word.charat(i)== g ){ 10: count++; 11: 12: i++; 13: 14: System.out.println("There re "+count+" g in this word"); 15: 16: 17: (1) What is the output if check_word is "bugg"? Solution: (1 point ) There re 1 g in this word (2) What is the output if check_word is "glue"? Solution: (1 point ) There re 0 g in this word (3) From (1) and (2), is this result correct? If not, identify the bug and correct it. You do not need to rewrite the entire program, just the lines which contains the error. Solution: The variable count is initialized inside the while loop. Thus at teach loop it will be initialized with 0 again. The solution is to move it in front of the while loop. 5

... 7: count=0; 8: while(i < check_word.length() ){... grading: 2 points: identify the bug 4 points: fix the bug correctly 6

7. (12 points) In Emory we have two swimming pools, one in Woodruff PE center, the other is in Clairmont Campus. Here is a program for query swimming pool open hour. Suppose this program compiles and runs without error. We use 1-7 to represent Sun, Mon,..., Sat We use 0-23 to represent 24 hours in a day (0=midnight, 12=noon). import java.util.scanner; public class Pool { public static void main(string[] args) { Scanner in = new Scanner(System.in); System.out.println("Welcome to Emory Pool Hour Query System!"); System.out.print("Please input a day of week in integer(1-7): "); int day = in.nextint(); System.out.print("please input a time of day in integer(0-23): "); int time = in.nextint(); boolean woodruff=false; boolean clairmont=false; switch ( day ) { case 2: case 4: case 6: if ( time >=12 && time <=20 ) clairmont = true; if (time >= 7 && time <=8 time >= 12 && time <=13) woodruff = true; break; case 3: case 5: if ( time >=12 && time <=20 ) clairmont = true; if ( time >= 11 && time <=13) woodruff = true; break; case 1: case 7: if (time >=10 && time <=17 ) clairmont = true; if (time >=13 && time <=16 ) woodruff = true; break; 7

default: System.out.println("invalid day!"); break; System.out.println("On day "+day+" at the time "+time+":"); if(clairmont) System.out.println("Swimming pool in Clairmont campus is open!"); if(woodruff) System.out.println("Swimming pool in Woodruff PE center is open!"); if(!(clairmont woodruff)) System.out.println("no pool is open!"); (1)Suppose we want to check if any pool is open on Wednesday morning, 11am. Write down the output result if we enter 4 for day and 11 for time (2)Suppose we want to check if any pool is open on Friday afternoon, 1pm. Write down the output result if we enter 6 for day and 13 for time Solution: (1) On day 4 at the time 11: no pool is open! (2) On day 6 at the time 13: Swimming pool in Clairmont campus is open! Swimming pool in Woodruff PE center is open! grading: 6 points for each question; within each question: 2 points for the output format first message 4 points for the correctness of workflow 8

8. (12 points) Our task is to form a triangle using matchsticks. Suppose all the matchsticks are of the same length, and we ignore the width of the matchstick. You want to write a program that reads in two integers as the length of two edges, (e.g. if we input 3 and 4, then we use 3 matchsticks to form one edge, and 4 matchsticks to form another edge) then print out all the possible lengths for the third edge (an integer, representing the number of matchsticks) to form the 3 rd side. Hint: For the 2 given edge, suppose a is the length of the shorter edge, b is the longer edge. then the length of the third ege c should satisfy: b - a < c < b + a. import java.util.scanner; public class Triangle { public static void main(string[] args) { Scanner myscanner = new Scanner(System.in); System.out.print("Enter length of the first edge: "); int a = myscanner.nextint(); System.out.print("Enter length of the second edge: "); int b = myscanner.nextint(); /*------ Your code here -------*/ 9

Solution: if ( a > b ){ int c = a; a = b; b = c; int i=b-a+1; while (i < a+b){ System.out.println(i); i++; grading: 4 points: swap a,b; or handling both a < b and a > b 2 points: variable initialization 2 points: loop terminate correctly 2 points: output 2 points: Format, programming style, naming convention, etc. 10

9. (10 points) The Chinese Remainder Theorem (CRT) will determine a number n that when divided by some given divisors leaves given remainders. For example: If we know the following remainders of an integer: remainder a if divided by 3 remainder b if divided by 5 remainder c if divided by 7 Then we can find the smallest possible such number using CRT. YOUR JOB: Write a program in order to validate the CRT. In this program, it well read in the following numbers from user: a: the remainder if the number is divided by 3 b: the remainder if the number is divided by 5 c: the remainder if the number is divided by 7 n: the maximum integer we want to try The program will print all numbers between 0 and n(inclusive) which satisfy the following rules: The remainder when the number is divided by 3 is a; The remainder when the number is divided by 5 is b; The remainder when the number is divided by 7 is c; Hint: Use while loop, and try all the integers from 1 to n. if this integer satisfies: (1) has remainder a if divided by 3; (2) has remainder b if divided by 5; (3) has remainder c if divided by 7, then print them out. import java.util.scanner; public class CRT { public static void main(string[] args) { Scanner in = new Scanner(System.in); System.out.println("Input remainder a, if divided by 3:"); int a = in.nextint(); System.out.println("Input remainder b, if divided by 5:"); int b = in.nextint(); 11

System.out.println("Input remainder c, if divided by 7:"); int c = in.nextint(); System.out.print("Please input the maximum positive integer: "); int n = in.nextint(); System.out.println("\nNow, find all the integers that satisfies:"); System.out.println(" *has remainder of "+a+" if divided by 3"); System.out.println(" *has remainder of "+b+" if divided by 5"); System.out.println(" *has remainder of "+c+" if divided by 7"); /*------ Your code here -------*/ Solution: int i=0; while(i <= n){ if( (i % 3 ==a) && (i % 5 == b) && (i % 7 ==c)){ System.out.println(i); i++; grading: 2 points: use a,b,c,n correctly 3 points: loop terminates correctly 3 points: conditions on a, b and c 2 points: output 12

10. (22 points) You want to write a program that reads in an email address from the user, and checks: Hint: how many upper case letter(s) are in the user name how many lower case letter(s) are in the user name how many numbers are in the username user name is the part before character @ You might need the ASCII table (attached at the end) to identify the ranges for letters and numbers: Examples of running this program: >>> java CheckUserName Enter your email address: Txu28@emory.edu # of upper case letter: 1; # of lower case letter: 2; # of numbers: 2 >>> java CheckUserName Enter your email address: xin.chen2@emory.edu # of upper case letter: 0; # of lower case letter: 7; # of numbers: 1 13

import java.util.scanner; public class CheckUserName { public static void main(string[] args) { Scanner myscanner = new Scanner(System.in); System.out.print("Enter your email address: "); String s = myscanner.next(); /*------ Your code here -------*/ Solution: int i = 0; int numofupper = 0; int numoflower = 0; int numofnum = 0; while(s.charat(i)!= @ ){ int ascii = (int)s.charat(i); //or char ascii=s.charat(i); if( ascii <= 57 && ascii >=48){ numofnum++; else if( ascii >=65 && ascii <=90){ numofupper++; 14

else if( ascii >=97 && ascii <=122){ numoflower++; i++; System.out.println("# of upper case letter: " + numofupper); System.out.println("# of lower case letter: " + numoflower); System.out.println("# of number: " + numofnum); grading: 3 points: variable initialization 3 points: loop ends at symbol @ 12 points: 4 points for each of the counter 2 points: iter++ (or using for loop correctly) 2 points: output 15