본문 바로가기
GM Library/☆ 기말시험 Data

방송대 방통대 Java프로그래밍 기말시험 기출문제 2019년도 1학기 3학년 / 올에이클래스 모의고사

by GO, EUNJUNG / ΛΙΙΛ™ 2024. 9. 6.
0-썸네일-Java프로그래밍-기말-19-1-3
0-썸네일-Java프로그래밍-기말-19-1-3
2019 학년도  1 학기  3 학년  25 문항
Java프로그래밍
시험종류   :기말시험
출제위원   :방송대 김희천
출제범위   :교재 전체 (해당 멀티미디어강의 포함)
자료출처   :한국방송통신대학교
웹앱제작   :올에이클래스 김현수
36배열을 사용하는 다음 문장 중 올바른 것은? (4점)
해설)
37아래 인터페이스를 보면 기본 몸체를 가지는 메소드를 볼 수 있다. 밑줄 부분에 들어갈 키워드는 무엇인가? (2점)
public interface Test {
             void aMethod(String aValue) {
System.out.println(“Hi” + aValue);
}
}
해설)
다음 프로그램을 보고 물음에 답하라. (38∼39)
class Employee{
int nSalary;
String szDept;
public void doJob( ) { System.out.println("do something"); }
}
class Salesman Employee {
public Salesman( ) { szDept = "Sales. Dept"; }
public void doJob( ) { System.out.println("do sales"); }
}
class Developer Employee {
public Developer( ) { szDept = "Dev. Dept"; }
public void doJob( ) { System.out.println("do development"); }
}
public class EmployeeTest {
public static void main(String args[ ]) {
Employee emp1, emp2;
emp1 = new Salesman( );
emp2 = new Developer( );
emp1.doJob( );
emp2.doJob( );
}
}
38위 프로그램에 관한 설명으로 잘못된 것은? (4점)
해설)
39위 프로그램을 실행할 때 출력되는 결과는? (3점)
해설)
다음 프로그램은 문자열 “abcde”를 1,000번 연결하는 작업을 수행한다. 물음에 답하여라. (40∼41)
public class StringTest {
public static void main(String args[ ]) {
final String aValue = “abcde”;
String str = new String( );

for(int i = 0; i < 1000; i++)
str = str + aValue;
System.out.println(str);
}
}
40프로그램에 등장하는 다음 수식 중 결과가 String 유형이 아닌 것은? (3점)
해설)
41위 프로그램에 관한 설명으로 잘못된 것은? (3점)
해설)
다음은 파일을 복사하는 프로그램이다. 물음에 답하라. (42∼43)
public class CopyFile {
public static void main(String args[ ]) {
  ㄱ   in = null;
  ㄴ   out = null;
try {
in = new   ㄱ   ("input.txt");
out = new   ㄴ   ("output.txt");
int c;
while ((c = in.read( )) != -1) {
out.write(c);
}
in.close( );
out.close( );
}   ㄷ   {
System.out.println(e);
}
}
}
42파일로부터 2바이트 문자 단위로 데이터를 읽은 후, 파일에 출력한다고 할 때, 밑줄 그은 ㄱ과 ㄴ에 들어갈 입출력 스트림 클래스는 순서대로 무엇인가? (2점)
해설)
43예외처리를 위해 밑줄 친 ㄷ에 들어갈 적당한 내용은? (2점)
해설)
44다음이 설명하는 인터페이스 또는 클래스의 이름은 무엇인가? (2점)
- java.nio.file 패키지에 존재하며 java.io.File 클래스를 대신한다.
- 파일시스템에 존재하는 파일이나 디렉터리의 경로를 표현한다.
- 경로의 비교, 경로 자체의 조작, 경로 요소의 조회 기능 등을 제공한다.
해설)
ArrayList 클래스는 List 인터페이스를 구현한 클래스이다. 사용 예를 보여주는 다음 프로그램을 보고 물음에 답하여라. (45∼47)
import java.util.*;
public class ArrayListTest {
public static void main(String args[]) {
            ㄱ            
list.add("one"); list.add("three");
list.add("two"); list.add(1, "one"); // 삽입

            ㄴ            
}
}
45컬렉션 인터페이스나 클래스는 제네릭 타입으로 정의되어 있어서 그것을 사용할 때는 원소로 사용되는 객체의 타입을 지정하는 것이 좋다. 밑줄 친 ㄱ에 들어갈 선언으로 적당한 것은? (2점)
해설)
46for-each 구문을 사용하여 컬렉션에 저장된 원소를 순서대로 출력하려 한다. 밑줄 친 ㄴ에 들어갈 적당한 내용은 무엇인가? (3점)
해설)
47add(원소)는 리스트의 끝에 원소를 추가하며, add(index, 원소)는 지정된 위치에 추가한다. 위 문제의 출력 결과는 무엇인가? (2점)
해설)
48HashMap 컬렉션 객체에 저장되어 있는 원소를 읽거나, 컬렉션에 원소를 추가할 때 사용되는 메소드는 각각 무엇인가? (2점)
해설)
다음은 공유 자원을 사용하는 두 개의 스레드를 추가로 생성하여 각각 10000회 인크리먼트를 수행하는 프로그램이다. 물음에 답하여라. (49∼53)
class Counter {
private int c = 0;
public void increment() { c++; }
public int getValue() { return c; }
}

class MyThread   ㄱ   Thread {
Counter c;
public MyThread(Counter c) { this.c = c; }
public void run( ) {
for (int i = 0; i < 10000; i++) c.increment( );
}
}

public class CounterTest {
public static void main(String args[ ])  ㄴ  Exception {
Counter c = new Counter( );
Thread t1 = new MyThread(c); t1.start( );
Thread t2 = new MyThread(c); t2.start( );
   ㄷ   
System.out.println( c.getValue( ) );
}
}
49위에서 공유 자원에 해당하는 것은 무엇인가? (2점)
해설)
50스레드 실행 코드인 run( )을 정의해야 한다. Thread의 서브 클래스를 정의하기 위해 밑줄 친 ㄱ에 들어갈 키워드는 무엇인가? (3점)
해설)
51공유 자원을 쓰는 스레드 간에 동기화가 필요하므로 위에서 increment( ) 메소드를 다시 정의해야 한다. 잘못된 것은? (2점)
해설)
52increment( )를 호출하는 모든 스레드의 실행이 종료된 후에 최종적으로 20000이 출력되는가를 확인하려고 한다. 이러한 스레드 제어를 위해 밑줄 친 ㄷ에 들어갈 내용은 무엇인가? (3점)
해설)
53앞 문제에서 필요한 메소드를 호출하려면 예외처리 또는 예외 전파가 필요하다. 밑줄 친 ㄴ에 들어갈 키워드는 무엇인가? (4점)
해설)
54다음 그림이 보여주는 AWT 컨트롤에 관한 설명으로 잘못된 것은 무엇인가? (3점)
2-보기그림-Java프로그래밍-기말-19-1-3-54
2-보기그림-Java프로그래밍-기말-19-1-3-54
해설)
다음 윈도우 프로그램을 보고 물음에 답하여라. (55∼58)
import java.awt.*;
import java.awt.event.*;

class MyListener   ㄱ   {
public void actionPerformed(ActionEvent ev) {
System.out.println(ev.getActionCommand( ));
}
}
public class ButtonTest extends Frame {
public ButtonTest(String title) {
super(title);
setLayout(new   ㄴ   ( ));
Button b1 = new Button("버튼1"); add(b1);
Button b2 = new Button("버튼2"); add(b2);
Button b3 = new Button("버튼3"); add(b3);
Button b4 = new Button("버튼4"); add(b4);
Button b5 = new Button("버튼5"); add(b5);
b1.   ㄷ   ;
this.setSize(400, 100);
setVisible(true);
}
public static void main(String args[ ]) {
new ButtonTest("Test Program");
}
}
55첫 번째와 두 번째 라인에 나오는 import 구문의 의미를 잘 설명한 것은? (4점)
해설)
56ActionEvent를 등록하려면 해당 이벤트의 리스너를 구현하는 클래스를 먼저 정의해야 한다. 밑줄 친 ㄱ에 들어갈 내용은? (3점)
해설)
57다음 그림은 위 프로그램을 실행한 결과이다. 배치관리자를 의미하는 것으로 밑줄 친 ㄴ에 들어갈 내용은 무엇이라 생각하는가? (4점)
2-보기그림-Java프로그래밍-기말-19-1-3-57
2-보기그림-Java프로그래밍-기말-19-1-3-57
해설)
58첫 번째 버튼(b1)에 ActionEvent를 등록하려고 한다. 밑줄 친 ㄷ에 들어갈 적당한 내용은? (3점)
해설)
다음은 JDBC 프로그래밍 작업의 일부를 보여준다. 물음에 답하여라. (59∼60)
import java.sql.*;

public class JDBCTest {
public static void main(String[ ] args) {
Connection conn = null;
PreparedStatement ps = null;
int resultCount = 0;
try {
// DB와 연결 정보 생략함
conn = DriverManager.getConnection(url, user, pass);
String query = "insert into book values(?, ?, ?)";
ps = conn.   ㄱ   (query);
ps.setString(1, "삼국지");
ps.setString(2, "나관중");
ps.setInt(3, 500);
resultCount = ps.   ㄴ   ( );
} catch (Exception ex) {
// 이하 생략
59“매개변수를 가지는 SQL 구문”을 표현하는 객체를 생성하기 위해 밑줄 친 ㄱ에 들어갈 적당한 메소드는? (2점)
해설)
60위에서 표현된 SQL 구문을 실행하기 위해 밑줄 친 ㄴ에 들어갈 적당한 메소드는? (3점)
해설)
문제답안
1434343223324234124112434

댓글