2020학년도 1학기 기말시험(온라인평가)?교과목명:Java프로그래밍?학번:?성명:?연락처:?평가유형:(과제물형, 주관식형, 혼합형(과제물+주관식) 중 해당 유형 표기)?주관식형:※ 주관식일 경우 문제번호 표기 후 답안 작성?과제물유형:공통형?과제명:학생 스스로 출제자가 되어 기존 기말시험과 같은 사지선다 객관식으로 7개 문제를 만들고, 문제별로 답과 해설을 추가하여 제출하라.단, 홀수 학번은 교재 2,3,5,7,9,11,13장에서, 짝수 학번은 교재 2,4,6,8,10,12,14장에서 순서대로, 각 장마다 1문제씩, 각 장의 주제에 맞는 문제를 작성하여야 한다.제2장 Java 기본 문법제3장 클래스와 상속제5장 제네릭과 람다식제7장 java.lang 패키지제9장 java.nio 패키지의 활용제11장 멀티 스레드 프로그래밍제13장 AWT 이벤트 처리하기2장(Java 기본 문법)다음의 배열 관련 코드 중 2차원 배열을 선언과 동시에 초기화하는 코드로알맞은 것은?① int Arr1[];② int Arr2[][];③ int Arr3[] = {1,2,3};④ int Arr4[][] = {{1,2}, {3,4}};(답) ④(해설)교재 50~51쪽에 배열의 선언, 배열의 초기화 및 생성에 관한 설명이 있다.①은 1차원 배열의 선언이다.②는 2차원 배열의 선언이다.③은 1차원 배열의 선언 및 초기화다.④는 2차원 배열의 선언 및 초기화 코드이다.그러므로 정답은 ④이다.3장(클래스와 상속)다음 중 생성자에 대한 설명으로 아닌 것은?① 생성자의 기능은 객체의 필드 초기화다.② 생성자의 이름은 클래스의 이름과 같아야 하며 반환형을 명시 해야 된다.③ 객체 생성 위해 클래스에 생성자를 정의해야 한다.④ 클래스에 생성자가 정의되어있지 않는 경우,컴파일러는 자동으로 기본 생성자를 만들어 준다.(답) ②(해설)워크북 28~29쪽에 생성자에 대한 설명이 있다.①은 생성자의 기능이다.③은 생성자 정의 이유다.④ 자동으로 기본 생성자 생성되는 상황에 대한 설명이다.② ‘생성자의 이름은 클래스의 이름과 같아야 하며 반환형을 명시 해야 된다.’에서 생성자는 반환형을 명시해서는 안되므로, 정답은 ②이다.5장(제네릭과 람다식)보기에서 설명하고 있는 대상으로 알맞은 것은?정의된 클래스나 인터페이스를 자료형 지정 없이 일반 클래스나 인터페이스처럼 사용할 수도 있는 제네릭 타입이다.① 타깃타입 ② Raw타입③ Primitive type ④ Reference type(답) ②(해설)교재 150쪽에 Raw타입에에 대한 설명이 있다.② 보기의 내용은 Raw타입에 대한 설명이므로, 정답은 ②이다.① 람다식의 실행결과가 대입되는 인터페이스가 람다식의 타깃타입이다.③ 자료형 중 기본형을 뜻하며, byte, int, double, char, boolean 등이 속한다.④ 자료형 중 참조형을 뜻하며, 기본형을 제외한 모든 자료형으로 클래스형의변수, 배열형의 변수, 문자열형의 변수 등이 속한다.7장(java.lang 패키지)다음 중 java.lang 패키지의 포함되는 클래스에 대한 설명으로 아닌 것은?① String, StringBuffer 클래스 : 문자열 처리 관련 클래스② Math, StrictMath 클래스 : 수학 관련 메소드와 상수 제공 클래스③ 포장(wrapper) 클래스 : 참조형을 다루는 클래스로 Boolean, Charater,Byte, Short, Integer, Long, Float, Double 등이 있다.④ Object 클래스 : Java 언어 내 정의되는 모든 클래스의 슈퍼 클래스 역할(답) ③(해설)교재 194쪽에 Raw타입에에 대한 설명이 있다.③ 포장(wrapper) 클래스는 기본형을 다루는 클래스로 Boolean, Charater,Byte, Short, Integer, Long, Float, Double 등이 있다.9장(java.nio 패키지의 활용)다음 중 java.nio 패키지 속하는 클래스가 아닌 것은?① FileChannel 클래스 :하나로 입출력이 가능하다.② Path 클래스 : File 클래스보다 기능이 풍부하다.③ AsynchronFileChannel 클래스 : read()와 write() 호출 중에 다른 작업을수행할 수 있다.④ File 클래스 : 파일과 디렉토리 관련 정보를 제공한다.(답) ④(해설)교재 204, 294, 301, 306쪽에 java.nio 패키지의 클래스에 대한 설명이 있다.④ File 클래스는 java.io에 속하는 클래스다.11장(멀티 스레드 프로그래밍)다음 중 스레드의 상태를 Not Running에서 Runnable 상태로 바꾸는 메소드로 올바른 것은?① notify() ② start()③ wait() ④ join()(답) ①(해설)교재 342쪽에 스레드의 상태 전환에 대한 그림이 있다.
2020학년도 1학기 기말시험(온라인평가)?교과목명:C프로그래밍?학번:?성명:?연락처:?평가유형:(과제물형, 주관식형, 혼합형(과제물+주관식) 중 해당 유형 표기)?주관식형:※ 주관식일 경우 문제번호 표기 후 답안 작성?과제물유형:공통형?과제명: 다음의 과제를 풀고 에 맞게 제출하시오.(25점)1. 배열 x[10]을 선언하고, x[0]에 1, x[1]에 2 … x[9]에 10을 대입한 후, 포인터를 사용하여 짝수 번 요소의 합과 홀수 번 요소의 합을 구하는 프로그램을 작성하시오. 다음에 주어진 예제 프로그램들을 에 맞게 작성하시오.(각 15점)1. 교재 p168 [예제 5-1] 다음 프로그램은 대문자를 소문자로, 소문자는 대문자로 변환하는 프로그램이다. 대문자와 소문자의 ASCII 코드 값의 차이를 이용한다.2. 교재 p217 [예제 6-1] 다음은 n개의 실수를 키보드를 통해 받아들여 평균과 표준편차를 구하는 프로그램이다. 이때 표준편차 d=xi-avg이다. 여기서 I=1,2,...,n, xi는 각 원소, avg는 평균이다.3. 교재 p251 [예제 7-1] 다음은 구조체에 배열을 사용한 프로그램이다.1. 에 대한 소스코드와 실행결과를 제출하시오.2. 의 주어진 예제 프로그램들을 컴파일러를 이용하여 실행해보고 소스코드와 실행결과를 제출하시오.3. 의 예제 프로그램들에 대해 각각 문장단위의 주석을 달아 제출하시오. 단, 소스코드와 주석은 펜으로 써서(수기로 작성) 제출1. 배열 x[10]을 선언하고, x[0]에 1, x[1]에 2 … x[9]에 10을 대입한 후, 포인 터를 사용하여 짝수 번 요소의 합과 홀수 번 요소의 합을 구하는 프로그 램을 작성하시오.#include // 표준입출력함수 파일 포함 선행 처리기#pragma warning(disable:4996)// 파일 내의 경고 해제(scanf 사용에 대한 경고 해제)void main()// main()함수 시작{int x[10] = { 1,2,3,4,5,6,7,8,9,10 };// 크기가 10인 정수형 배열 x 선언 및 초기화int* p;// 포인터 변수 p 선언// 정수형 변수 sumOdd와 sumEven 선언 및 초기화int sumOdd = 0, sumEven = 0;// i가 10보다 작을 때까지 반복문 실행(반복문 내부 코드 실행 후 i = i+1)for (int i = 0; i < 10; i++){p = &x[i];// 포인터 변수 p에 배열 x의 i번째 값의 주소값 대입if (i % 2 == 0)// 만약 i / 2의 나머지가 0일 경우(짝수일 경우){// sumEven = sumEvet + 포인터 변수 p가 가리키는 주소의 데이터sumEven += *p;}else // 위의 조건식이 아닐 경우{// sumOdd = sumOdd + 포인터 변수 p가 가리키는 주소의 데이터sumOdd += *p;}}printf("짝수 번 요소의 합 : %dn", sumEven);// 짝수 번 요소의 합 출력printf("홀수 번 요소의 합 : %dn", sumOdd);// 홀수 번 요소의 합 출력}2-1. 교재 p168[예제 5-1] 다음 프로그램은 대문자를 소문자로, 소문자는 대문자로 변환하 는 프로그램이다. 대문자와 소문자의 ASCII 코드값의 차이를 이용한다.#include // 표준입출력함수 파일 포함 선행 처리기#pragma warning(disable:4996)// 파일 내의 경고 해제(scanf 사용에 대한 경고 해제)char upper(char ch);// upper()함수의 원형 선언char lower(char ch);// lower() 함수의 원형 선언void main()// main()함수 시작{char in_s[50], out_s[50];// 변수 in_s, out_s을 배열의 크기가 50인 문자형 배열로 선언char ch;// 변수 ch를 문자형으로 선언int i = 0;// 변수 i를 정수형으로 선언 및 0으로 초기화printf("문자열을 입력하시오. (50자 이내) : ");// 출력 : '문자열을 입력하시오. (50자 이내)'scanf("%s", in_s);// 값을 입력받고, 입력받은 값을 배열 in_s에 대입ch = in_s[i];// 변수 ch에 배열 in_s의 i번째(현재 i는 0) 값을 대입while (ch != '