김진식 destiny738.tistory.com

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
어서와 Java는 처음이지! 제3장선택과 반복.
프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
7장 배열 ②.
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
Chapter 7. 조건문.
#include <stdio.h> int main(void) { float radius; // 원의 반지름
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
10장 예외 Lab 10-1.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
명품 JAVA Essential.
Lesson 3. 입출력과 제어문.
7장 배열 ②.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Chapter 04 C 연산자의 이해.
어서와 Java는 처음이지! 제3장선택과 반복.
명품 Java Programming.
Java practice If Syntax Kim Jinsik... destiny738.tistory.com.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Power Java 제4장 자바 프로그래밍 기초.
For/While Syntax & Practice!!
2주차: 변수, 수식, Control Flow.
Tail-recursive Function, High-order Function
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
KIM HEESANG PL/SQL 2 KIM HEESANG
C#.
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
8주차: Strings, Arrays and Pointers
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
2nd day Indexing and Slicing
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
SPL3D Printer If 조건문.
Lecture 02 프로그램 구조 및 문법 Kwang-Man Ko
7주차: Functions and Arrays
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
어서와 C언어는 처음이지 제21장.
Presentation transcript:

김진식 destiny738.tistory.com 작년 중간고사 풀이 김진식 destiny738.tistory.com

1번. Variable define <문제> 다음 자바 문들 중 맞는 것을 선택하세요. int value = “10”; int value = 10.8; float number = 3.5; double number = 7; <문제> 다음 자바 문들 중 맞는 것을 선택하세요. int value = 10; // or String value = “10”; int value = 10; // or (int)10.8; float number = (float)3.5; double number = 7; <풀이> “ ” string 초기화시 사용 ex) String str = “Kim jinsik”; ‘ ’ char 초기화시 사용 ex) char flag = “Y”; 정수 모든 숫자 Type 초기화시 사용 ex) int intNum = 3; double doubleNum = 3; 실수 double 초기화시 사용 ex) double doubleNum = 3.5; ※ 주의점 : Java의 실수체계의 기본 Type은 double 입니다. 따라서, 소수를 초기화하게 되면 double로 인식을 하게 됩니다!!

2번. Identifier <문제> 다음 식별자들 중 틀린 것을 선택하세요. 5silly Silly$ Silly5 <풀이> * 식별자 규칙 - 첫 번째 글자는 문자이거나 ‘$’, ‘_’이어야 한다. (숫자는 맨 앞에 나올 수 없다!) - 두 번째 이후의 글자는 숫자, 문자, ‘$’, ‘_’이어야 한다. - 길이의 제한은 없다. - 키워드나 상수값은 사용할 수 없다.

3. Escape character <문제> 다음 출력문이 출력하는 결과를 선택하세요. System.out.println(“This \tis a \“funny\”” + “\nstring.”); <풀이> * Escape character(\) - tab, Enter기능과 Print 문안에서 “ ”를 출력하고 싶을 때 사용 \t tab \n Enter \” ” \“ “ Answer. This is a “funny” string. <문제> System.out.println(“Sum of \“3” + “\”+\“5\”” + “\n\t= ” + 3 + 5 ); Answer. Sum of “3” + “5” = 35

4. Casting <문제> 다음과 같이 변수 선언문들이 주어진다면 아래 배정문들 중 틀린 것을 선택하세요. byte b; int i; double d; char c; i = b; b = (byte) i; i = c; i = d; <풀이> * 강제 형변환 - 타입이 나타낼 수 있는 범위에 따라서 형변환이 달라진다. - 범위가 넓은 것 = 범위가 작은 것 - 범위가 작은 것 = (작은 것 type)범위가 넓은 것 - 정수형 = (정수type)실수형 위 문제에서, D번 i = d에서는 범위가 큰 double에서 int로 casting 없이 형변환하여 틀리게 된다.

5. if문 <문제> 다음 코드가 실행된 후에 변수 result에 어떤 값이 저장되는가? int socre = 75; if ( score >= 90 ) result = ‘A’; else if ( score >= 60 ){ if ( score >= 80 ) result = ‘B’; else if ( score >= 70 ) result = ‘C’; if ( score >= 60 ) result = ‘D’; }else result = ‘F’; <풀이> if에 모두 동그라미를 친다. (else if는 제외) 동그라미가 나오면 score 값은 한번 더 비교 할 것이 틀림없다. 맨 위 동그라미에서 score가 90보다 작기 때문에 else if 문으로 들어올 것이다. 두 번째 동그라미에서 score가 80보다 작기 때문에 else if 문으로 들어올 것이다. 여기서 score가 70보다 크기 때문에 result = ‘C’가 될 것이다. 하지만, 마지막 동그라미가 남아 있는 것을 볼 수 있다. (이는 예전 if문에서 올바른 소스코드를 고르는 것과 연관이 깊다.) 이에 따라 정답은 result = D가 될 것이다.

Select correct coding! 1. If Syntax 점수의 분포에 따라 다음과 같이 성적을 준다. 80점 이상 90점 미만은 B, 70점 이상 80점 미만은 C. 70점 미만은 D if ( score >= 90 ) { grade = ‘A’; }else if ( score >= 80 ) { grade = ‘B’; } else if ( score >= 70 ){ grade = ‘C’; } else { grade = ‘D’; } Best! if ( score >= 90 ) { grade = ‘A’; } if ( score >= 80 ) { grade = ‘B’; if ( score >= 70 ) { grade = ‘C’; if ( score < 70 ){ grade = ‘D’; Worst! Error! 7

6. Switch / break if ( criterion == ‘q’ || criterion == ‘Q’ ) { System.out.println(“Goodbye!”); System.out.println(“Enjoy!”); }else{ } <문제> 다음 프로그램의 출력결과는? public class IfSwitch{ public static void main(String[] args){ char criterion = ‘q’; if ( criterion == ‘q’ || criterion == ‘Q’ ) System.out.println(“Exiting...”); else System.out.println(“Keep playing!”); switch ( criterion ) { case ‘q’ : case ‘Q’ : System.out.println(“Goodbye!”); default : System.out.println(“Enjoy!”); } <풀이> switch문의 특징 : break가 없으면 해당 밑 부분을 지속 실행!

7. for loop <문제> 다음 코드의 출력 결과는? int I; for ( I = 0 ; I < 10 ; ++I ) ++I; System.out.println(I); 20 자바 문법 오류이다. 10 5 <문제> 다음 코드의 출력 결과는? int I; for ( I = 0 ; I < 10 ; ++I ) ++I; System.out.println(I); 20 자바 문법 오류이다. 10 5 <풀이> for문을 while문으로 풀어보아라. int I = 0 while ( I < 10 ){ ++I; } System.out.println(I); I는 loop한 바퀴당 2씩 증가한다. I가 10이 되면(5바퀴 회전) while문이 false가 되어 반복이 종료된다. 자바 문법 오류는 무한반복이 일어나느냐를 묻는 것이다.

8. switch 문제 <문제> 1. input = a | output = ? 다음 문제들를 해결하시오? 2. input = b | output = ? 3. input = c | output = ? 4. input = d | output = ? 5. input = e | output = ? <문제> 다음 문제들를 해결하시오? Scanner s = new Scanner(System.in); char flag; flag = s.next().charAt(0); // 하나의 문자만 받기 switch ( flag ){ case ‘a’ : System.out.println(“1”); case ‘b’ : System.out.println(“2”); break; case ‘c’ : System.out.println(“3”); case ‘d’ : System.out.println(“4”); default : System.out.println(“5”); }

9. ++i, i++ <문제> 다음 코드의 출력 결과는? int count = 1; while ( count < 5 ) System.out.print(count++ + “ ”); count = 1 print(1) count = 2 print(2) count = 3 print(3) count = 4 print(4) count = 5 (END) answer : 1 2 3 4 <풀이> i++과 ++i의 차이를 이해하자. i = 1; System.out.println( ++i ); System.out.println( i++ ); i = i + 1; System.out.println( i ); // print 2 System.out.println( i ); // print 1 i = i + 1;

10. do-while / % <문제> 다음 코드의 출력 결과는? int sum = 0, k = 0; do { if ( k % 2 != 0 ) sum += k; k++; }while ( k <= 10 ); System.out.println(“합계 = ” + sum); k k%2 If 조건 sum F 1 T 2 3 1+3 4 5 1+3+5 6 7 1+3+5+7 8 9 1+3+5+7+9 10 <풀이> % 연산자는 나머지 연산이다. 다음은 나머지 연산 사용의 대표적인 예이니 알아두자! k % 2 == 0 // 짝수 k % 2 != 0 // 홀수 이를 대입하여 위 문제를 해결하면 1~10까지 홀수의 합이 되게 된다. 1+3+5+7+9 = 25

11. Practice 1 (20 점) 정방 피라미드는 바닥이 정사각형이고 다섯 개의 면을 가진 오면체이다. 이 피라미드는 아래 정사각형의 한 변의 길이 a 와 높이 h 에 의해 결정된다. 정방 피라미드의 부피를 계산하는 프로그램을 작성하라. 키보드를 통해 사용자로부터 아래 정사각형의 변의 길이 a와 높이 h를 입력 받아야 한다. 정방 피라미드의 부피를 계산하는 공식은 1 3 a 2 h이다. 정방 피라미드의 아래 정사각형의 변의 길이, 높이와 부피를 출력해야 한다. (설계 문서 작성 X/단순 코딩) 문제의 핵심 : a와 h의 타입을 어떻게 할 것인가? 정확한 값이 출력되는 프로그램인가? <문제 알고리즘> 사용자에게 정사각형 길이 a와 높이 h를 입력 받는다. 부피 1 3 a 2 h을 계산한다. 입력받은 값 a, h와 부피를 출력한다.

12. Practice 2 (20 점) 할인점에서 고객에게 청구 금액을 계산하는 프로그램을 설계하고 구현하라. 고객이 30만원 이상 구매하면 3만원을 할인해 주어야 하고 30만원 미만 10만원 이상을 구매하면 5,000원을 할인해 주어야 하고 10만원 미만을 구매하면 할인이 없어야 한다. 키보드로부터 구매 금액을 입력 받아야 한다. 구매 금액과 청구 금액을 출력해야 한다. 1 2 2 2 3 3 문제의 목표 : 청구 금액 계산 변수 : expenseMoney 구매 금액에 따라 할인 금액이 존재 변수 : buyMoney, disconutMoney 구매 금액을 입력 받아야 한다. 청구 금액을 출력 변수 : (1번과 2번 과정에 이미 정의) 변수 선언 expenseMoney 청구 금액 buyMoney 구매 금액 discountMoney 할인 금액 ※ 소수점이 사용될 사항이 없어 정수형으로 선언

12. Practice 2 (20 점) 할인점에서 고객에게 청구 금액을 계산하는 프로그램을 설계하고 구현하라. 고객이 30만원 이상 구매하면 3만원을 할인해 주어야 하고 30만원 미만 10만원 이상을 구매하면 5,000원을 할인해 주어야 하고 10만원 미만을 구매하면 할인이 없어야 한다. 키보드로부터 구매 금액을 입력 받아야 한다. 구매 금액과 청구 금액을 출력해야 한다. 사용자에게 “구매금액”을 입력 받는다. “구매금액”에 따른 다음 조건을 이용해여 할인 금액을 계산한다. “구매금액” >= 300,000 “할인금액” = 30,000 300,000 > “구매금액” >= 100,000 “할인금액” = 5,000 “구매금액” < 100,000 “할인금액” = 0 “청구금액” = “구매금액” – “할인금액” “구매금액”과 “청구금액”을 출력한다.

12. Practice 3 (20 점) 사용자로부터 0보다 큰 정수 n을 입력 받아 다음과 같은 조건을 만족하는 1과 n사이에 있는 정수들의 쌍 (i, j)를 출력하는 프로그램을 설계하고 구현하라: i는 j로 나누어 떨어져야 한다. i ≠ j 다음은 표본 출력이다: 한 정수를 입력하세요: 6 모든 나누어 떨어지는 정수들의 쌍은 다음과 같다: (2, 1) (3, 1) (4, 1) (4, 2) (5, 1) (6, 1) (6, 2) (6, 3) 특정 수와 그 수의 약수 집합 2부터 N까지의 숫자를 증가시키면서, 그 수의 약수 집합을 출력 필요한 변수 = input

12. Practice 3 (20 점) 사용자로부터 0보다 큰 정수 n을 입력 받아 다음과 같은 조건을 만족하는 1과 n사이에 있는 정수들의 쌍 (i, j)를 출력하는 프로그램을 설계하고 구현하라: i는 j로 나누어 떨어져야 한다. i ≠ j 사용자에게 “특정 값”을 입력 받는다. 1) 이 수가 0보다 작다면, Error를 출력하고 프로그램을 종료한다. 2) 그렇지 않다면, 2번 단계를 수행한다. “number”값을 1부터 “특정 값”까지 다음을 반복한다. ( number <= 특정 값) “loop”값을 1부터 “number”값 까지 반복한다. ( loop <= number ) number % loop == 0 을 만족하면, (number, loop)값 출력 프로그램을 종료한다.

12. Practice 3 (20 점) 사용자로부터 0보다 큰 정수 n을 입력 받아 다음과 같은 조건을 만족하는 1과 n사이에 있는 정수들의 쌍 (i, j)를 출력하는 프로그램을 설계하고 구현하라: i는 j로 나누어 떨어져야 한다. i ≠ j import java.util.Scanner; public class Test { public static void main(String[] args){ int input; Scanner s = new Scanner(System.in); System.out.print("input : "); input = s.nextInt(); for ( int number = 1 ; number <= input ; number++ ){ for ( int loop = 1 ; loop < number ; loop++ ){ if ( number % loop == 0 ) System.out.println("(" + number + "," + loop + ")"); }

13. 주의점 주석 달 것~! import java.util.Scanner; public class Test { public static void main(String[] args){ int input; Scanner s = new Scanner(System.in); System.out.print("input : "); input = s.nextInt(); for ( int number = 1 ; number <= input ; number++ ){ for ( int loop = 1 ; loop < number ; loop++ ){ if ( number % loop == 0 ) System.out.println("(" + number + "," + loop + ")"); } 주석 달 것~!