class SuperObject{
public void draw(){
sout("A");
draw();
}
public void paint(){
sout("B");
draw();
}
}
class SubObject extends SuperObject {
public void paint(){
super.paint();
sout("C");
draw();
}
public void draw(){
sout("D");
}
}
public class Test{
main(){
SuperObject a = new SubObject();
a.paint();
a.draw();
}
}
답 : BDCDD
*풀이
a.print()를 실행하면 SubObject의 paint()의 super.paint()즉, 부모의 paint()메서드를 호출하면서
'B'를 출력하고 draw() 메서드를 실행, SubObject에서 오버라이딩했기 때문에 SubObject의
draw()메서드가 실행되며 'D'출력, 그리고 'C'를 출력, draw() 실행, 'D' 출력
여기까지 a.paint()실행 끝
a.draw() 실행, 'D'출력하고 종료
#include <stdio.h>
main() {
char* p = "KOREA";
printf("1. %s\n", p);
printf("2. %s\n", p + 1);
printf("3. %c\n", *p);
printf("4. %c\n", *( p + 3 ));
printf("5. %c\n", *p + 4);
}
답 :
1. KOREA
2. OREA
3. K
4. E
5. O
*풀이
%s\n => 문자열 출력 후 줄바꿈
p => KOREA
p + 1 => p + 1자리부터 출력 => OREA
%c\n => 문자 출력 후 줄바꿈
*p => K
*(p + 3) => p + 3자리 문자 출력 => E
*p + 4 => p=K + 4자리인 O가 출력
#include <stdio.h>
struct insa {
char name[10];
int age;
struct insa* impl_a;
struct insa* impl_b;
};
main() {
struct insa p1 = {"Kim", 28, NULL, NULL};
struct insa p2 = {"Lee", 36, NULL, NULL};
struct insa p3 = {"Park", 41, NULL, NULL};
p1.impl_a = &p2;
p2.impl_b = &p3;
printf("%s\n", p1.impl_a( )name);
printf("%d", p2.impl_b( )age);
}
실행결과
Lee
41
답 : ->
*더보기
배열 - 자료의 형과 크기가 동일한 변수의 모임
구조체 - 자료의 종류가 다른 변수의 모임
*풀이
| p1 | |
| name[10] | "Kim" |
| age | 28 |
| impl_a | NULL => p2 |
| impl_b | NULL |
| p2 | |
| name[10] | "Lee" |
| age | 36 |
| impl_a | NULL |
| impl_b | NULL => p3 |
| p3 | |
| name[10] | "Park" |
| age | 41 |
| impl_a | NULL |
| impl_b | NULL |
| 집합 연산자 | 설명 | 집합 종류 |
| UNION | 두 SELECT 문의 조회 결과를 통합하여 모두 출력함 중복된 행은 한번만 출력함 |
합집합 |
| UNION ALL | 두 SELECT 문의 조회 결과를 통합하여 모두 출력함 중복된 행도 그대로 출력함 |
합집합 |
| INTERSECT | 두 SELECT 문의 조회 결과 중 공통된 행만 출력함 | 교집합 |
| EXCEPT | 첫번째 SELECT 문의 조회 결과에서 두번째 SELECT 문의 조회 결과를 제외한 행을 출력함 | 차집합 |
#include <stdio.h>
int isPerfectNum(int num) {
int sum = 0;
for(int i = 1; i < num; i++){
if(num % i == 0)
sum += i;
}
if(num == sum) return 1;
else return 0;
}
main() {
int r = 0;
for(int i = 1; i <= 100; i++)
if(isPerfectNum(i))
r += i;
printf("%d", r);
}
답 : 34
*풀이
완전수(자기 자신을 제외한 약수들의 합)가 자신 값과 같을 때 r이 증가함
1 ~ 100까지 완전수는 6과 28 두개뿐
6 + 28 = 34
자료를 일정한 크기로 정하여 전송하는 자료의 전송방식으로, 셀이라 부르는 53Byte의 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하다. 또한 연속적으로 셀을 보낼 때 다중화를 하지 않고 셀 단위로 동기가 이뤄지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다. CBR, VBR의 처리가 가능하며, B-ISDN과 결합하여 서비를 제공하기도한다.
답 : ATM
오류가 발생하는 곳을 쓰시오
1 class Person {
2 private String name;
3 public Person(String val) {
4 name = val;
5 }
6 public static String get() {
7 return name;
8 }
9 public void print() {
10 sout(name);
11 }
12 }
13 public class Test {
14 main(){
15 Person obj = new Person("Kim");
16 obj.print();
17 }
18 }
답 : 7
*풀이
name을 private 으로 선언하고 get()메서드를 통해 접근할 수 있는데
static으로 선언되어 외부에서 접근할 수 없기에 오류 발생
| 1 | 주체와 객체의 등급을 비교하여 접근 권한 부여 시스템이 접근 통제 권한을 지정 데이터베이스 객체별로 보안 등급을 부여할 수 있다 사용자별로 인가 등급을 부여할 수 있다 |
| 2 | 사용자의 역할에 따라 접근 권한을 부여 중앙관리자가 접근통제 권한을 지정 임의 접근통제와 강제 접근통제의 단점을 보완하였다 다중 프로그래밍 환경에 최적화된 방식이다 |
| 3 | 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식 데이터 소유자가 접근통제 권한을 지정하고 제어 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있다 |
답 :
1 MAC
2 RBAC
3 DAC
*풀이
주체와 객체 등급 비교 => MAC
역할에 따른 부여 => RBAC
신원에 따른 부여 => DAC
class P {
public int calc(int n) {
if(n <= 1) return n;
return calc(n - 1) + calc(n - 2);
}
}
class C extends P {
public int calc(int n) {
if(n <= 1) return n;
return calc(n - 1) + calc(n - 3);
}
}
public class Test {
main() {
P obj = new C();
sout(obj.calc(7));
}
}
답 : 2
*풀이

IaaS : 서버, 스토리지, 네트워크 등의 하드웨어 인프라스트럭처를 가상화하여 사용자에게 제공하는 서비스
PaaS : 런타임, 미들웨어 OS와 같은 소프트웨어 작성을 위한 플랫폼을 가상화하여 사용자에게 제공하는 서비스
SaaS : 소프트웨어의 여러 기능 중에서 사용자가 필요로 하는 기능만을 제공하는 서비스
다음 설명의 프로토콜을 쓰시오
- 거리 벡터 라우팅 프로토콜이라고 불리며, 최단 경로 탐색에 Bellman-Ford 알고리즘이 사용된다
- 소규모 동종의 네트워크 내에서는 효율적이나, 최대 홉(Hop) 수가 제한되므로 대규모 네트워크에 사용 불가능
- 일정 시간 동안 라우팅 정보가 갱신되지 않으면 해당 경로를 이상 상태로 간주한다.
답 : RIP, 경로 선택 정보 프로토콜
연산자의 맞는 기호를 쓰시오
| 연산자 | 특징 |
| 1. Join | 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다 Join의 결과는 Cartesian Product(교차곱)를 수행한 다음 Select를 수행한 것과 같다 |
| 2. Project | 주어진 릴레이션에서 속성 리스트(attribute List)에 제시된 속성 값만을 추출하여새로운 릴레이션을 만드는 연산이다 연산 결과에 중복이 발생하면 중복이 제거된다 릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도 한다 |
| 3. Select | 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플 부분집합을 구하여 새로운 릴레이션을 만드는 연산이다 릴레이션의 행에 해당하는 튜플(Tuple)을 구하는 것이므로 수평 연산이라고도 한다 |
| 4. Division | X⊃Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산이다 |
답 :
1. ▷◁
2. π
3. δ
4. ÷
'Study' 카테고리의 다른 글
| [정처기 실기] 오답 정리 22년 2회 (1) | 2024.04.26 |
|---|---|
| OSI 7계층 (0) | 2024.04.23 |
| [정처기 실기] 오답정리 23년 1회 (2) | 2024.04.12 |
| [정처기 실기] 오답정리 (20년 2회) (1) | 2024.04.03 |
| [정처기 실기] 오답정리 (20년 1회) (1) | 2024.04.03 |