(정보시스템감리사) 2013년도 26번 문제

소프트웨어 오류는 모든 프로그래머가 다루어야 할 현실이며프로그래머는 오류를 피하기 위하여 흔히 발견되는 오류 유형을 파악하여 알아두는 것이 좋다다음은 흔히 발생하는 오류 중 어떤 유형인가?

 

main() {
      char *aa;

      int bb;

      aa = (char *)malloc(10);

 

      if(bb==0) free(aa);

      free(aa);
}

 


1. 메모리 누수(Leak)

2. 중복 프리 선언

3. 별칭의 사용

4. 배열 인덱스 오류

 

: 2







 

(정보시스템감리사) 2014년도 27번 문제

다음은 C 언어로 작성된 int recur_compute(int num) 재귀함수의 소스코드이다. 이 재귀함수를 실인자 5로 호출한 recur_compute(5)의 수행 결과로 가장 적절한 것은

 

int recur_compute(int num) {
    
int sum = 0;
    if 
(num <= 1)
        
return 1;
    
sum = num + recur_compute(num - 1);
    return 
sum / 2;
}

 


1. 1

2. 2

3. 3

4. 4

 

: 4






 

 

(정보시스템감리사) 2014년도 26번 문제

다음은 Java 언어의 DivideByZero 예외처리를 다루는 소스코드이다정의된 함수를 processing(10, 2)로 호출하였을 경우화면에 출력되는 값으로 가장 적절한 것은?

 

void processing(int a, int b) {
    
try {
        System.
out.print(a/b + "");
    
catch (ArithmeticException e) {
        System.
out.print("DivideByZero");
    
catch (Exception e2) {
        System.
out.print("Exception");
    
}
    
finally {
        System.
out.print("Done");
    
}
}

 

1. 5 DivideByZero

2. 5 DivideByZero Exception Done

3. DivideByZero Done

4. 5 Done.

 

: 4

 


다음은 Java 언어의 DivideByZero 예외처리를 다루는 소스코드이다정의된 함수를 processing(10, 0)로 호출하였을 경우화면에 출력되는 값으로 가장 적절한 것은?

1. 5 DivideByZero

2. 5 DivideByZero Exception Done

3. DivideByZero Done

4. 5 Done.

 

: 3







처리조건 ]


<그림>의 순서도에 제시되어 있는 미완성 알고리즘을 분석하여 가장 적합한 로직으로 연계되어 구현될 수 있도록 답안 선택시 유의하시오.


배열의 크기가 7행 7열로써 1부터 시작한다예를 들어 A(7) 일 경우 배열의 요소는 A(1) ~ A(7)로 구성되어 있다고 가정한다.


아래의 그림처럼 출력되도록 아래의 알고리즘을 완성하시오.












<정답>

1. Q=SMALL

2. J=SMALL, LARGE, 1

3. Q

4. LARGE = LARGE – 1

5. LARGE = LARGE + 1






다음은 인접 비교방식을 이용한 정렬 알고리즘의 일종이다. 즉, 버블 정렬 기법을 응용하여 한번은 왼쪽에서 오른쪽으로 진행하면서 최대값을 우측으로 보내고, 한번은 오른쪽에서 왼쪽으로 진행하면서 최소값을 좌측으로 보내는 방법을 반복하여 정렬하는 기법이다.

이 알고리즘을 이용하여 크기가 10인 배열 d에 저장되어 있는 10개의 정수를 오름차순으로 정렬하고자 한다. 다음 빈 괄호 안에 알맞은 내용을 보기에서 선택하여 채우시오.


[처리조건]

배열 d의 첨자는 0에서 9까지로 한다.








[정답]

1. 31

2. 7

3. 25

4. 12

5. 40






크기가 8인 배열 T(8)에 저장된 2진수를 10진수로 변환하여 출력하는 순서도이다. <그림>의 괄호 안 내용 (1)~(5)에 가장 적합한 항목을 <답항 보기>에서 선택하여 답안지의 해당 번호 (1)~(5)에 각각 마크하시오.

 

<처리 조건>

1. <그림에 제시되어 있는 알고리즘과 연계하여 가장 적합한 로직으로 구현될 수 있도록 답안 선택 시 유의하시오.

2. 8비트 이진수 값의 최상위 비트는 부호 비트로 0이면 양수, 1이면 음수이다음수일 경우 2의 보수로 표현된 값

3. 8비트 이진수 값은 크기가 8인 배열 T에 T(1)부터 T(8)까지 순차적으로 저장되어 있다, T(1)에 부호 비트가 저장된다.

4. 배열 T에 저장되어 있는 값의 범위는 10진수 -127~127에 해당하는 2진수 값이라고 가정한다.

5. 함수 “ABS()”는 절대값을 구하는 함수로 정의되어 있다예를 들면 ABS(-5)의 값은 5가 된다.

6. 함수 “POW(a, b)”는 누승값(a의 b)을 구하는 함수로 정의되어 있다예를 들면 POW(2, 3)의 값은 2의 3승이 된다.

7. “&”는 마름모 내의 조건을 모두 만족하는 경우 YES, 하나라도 만족하지 않을 경우는 NO로 정의된다.

 

8. 반복문 a=1, 50, 1일 경우 1이 초기값, 50은 최종 값, 1은 증가 값이 된다.













다음은 2진수 다섯 자리를 입력 받아 1의 보수와 2의 보수로 변환하여 각 배열에 저장하는 알고리즘이다빈 곳에 맞는 내용을 답항 보기에서 찾아 완성하시오.

 

[변수설명]

A(5) : 입력 받은 2진수를 기억하는 배열

com1(5) : 1의 보수가 저장될 배열

com2(5) : 2의 보수가 저장될 배열

 

[처리조건]

2진수가 입력될 때 낮은 자리 수부터 각 배열의 첫 번째에 입력되어진다.

 

, A(1), com1(1), com2(1)에는 가장 낮은 자리수의 수가 있는 것으로 한다.



 













제시된 [그림]은 최소 비용 그래프 G의 각 정점에 연결된 N-1개의 간선들의 가중치를 모두 합하여 정점1에서 N까지 이동에 소요되는 총 가중치의 합을 출력하는 순서도이다. <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

정점 1에서 N까지 이동하는 가중치 그래프 G가 있다.

정점 1에서 N까지 이동하는 가중치 그래프 G의 모든 간선의 개수는 X이며모든 간선에는 가중치가 주어져 있다.

각 간선들이 가중치를 정점과 정점 사이의 이동에 필요한 소요비용이라고 할 때, N개의 정점들에 연결된 총 X개의 간선의 가중치 Selection Sort를 이용하여 오름차순 정렬하고 정렬되어 있는 순서대로 가장 가중치가 작은 간선부터 사이클 없이 N-1개를 삽입하여 연결하면 최소비용 그래프 G를 완성할 수 있다.

 

<처리조건>

그림의 순서도에 제시되어 있는 미 완성 알고리즘을 분석하여가장 적합한 로직으로 연계되어 구현될 수 있도록 답안 설계 시 유의하시오.

정점의 개수는 N이고간선의 개수는 X이다. (, N>5, X>7)

배열 “Cost(X)”는 X개의 간선들의 가중치 값이 저장된다고 가정한다. (가중치 값 중 동일 값은 없다고 가정한다.)

배열 “Cycle(X)”은 X개의 간선들 삽입에 따른 그래프의 사이클 여부를 체크한 값이 저장되어 있는 배열로서 간선 삽입 시 사이클이 형성될 경우는 1, 형성되지 않을 경우는 0의 값이 자동적으로 저장되어 있다고 가정한다.

 

<최소비용신장트리>

정점간선가중치

그래프의 모든 정점이 간선으로 연결되어 있다.

그래프 안에 사이클이 포함되어 있지 않다.

 

<공식>

비용을 기준으로 간선을 적은 것부터 큰 것 순으로 정렬한다.

적은 비용의 간선부터 하나씩 그린다. (사이클을 만들게 되는 간선은 그리지 않는다.)

모든 정점이 선으로 연결될 때 까지 2의 과정을 계속한다.

 

 

정점 간선 + 1













아래의 순서도는 0에서 999 사이의 임의의 10진 정수를 입력 받아 2진수로 변환하는 알고리즘이다아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.

 

알고리즘에 사용된 변수는 아래와 같다.

- A(10): 2진수 변환 후 저장을 위한 배열 변수

- I: 배열의 첨자변수

- NUM: 10진 자료입력 및 몫 변수

 

- REM: 나머지 및 2진수 각 자리 수 변수














아래의 그림은 성명중간고사점수기말고사점수로 구성된 10건의 성적자료를 입력받아 평균과 석차를 구한 후 개인별 성명총점평균점수석차평균점수 5점마다 “*”를 출력하는 그래프를 작성하는 알고리즘이다.

 

, 10명의 학생 총점은 모두 다르다고 가정하며 나누기 연산의 결과 소수점 이하는 자동으로 절삭되며등수는 총점이 높을 경우 높은 등수를 가진다. (등수의 예총점이 90점과 80점 두 건으로 가정하였을 때 90점이 1, 80점이 2)

 

아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.

 

알고리즘에 사용된 변수는 아래와 같다.

NAME: 성명 배열

M: 중간고사 점수 배열

F: 기말고사 점수 배열

T: 합계 배열

R: 석차 배열

AVG: 평균점수

CNT: 인원수

S:”*” 개수

P, Q: 순환 변수

 

 







+ Recent posts