타입
- 데이터 집합이란 처리 대상이 되는 데이터와 집합으로 예를 들어 정수형의 데이터 집합은 {..., -2, -1, 0, 1, 2, ...}
- 연산 집합이란 해당 데이터에 적용 가능한 연산의 집합으로 예를 들어 정수형의 연산집합이란 {+, -, ...}
- 타입이란 변수의 속성 중 한가지
- 서브프로그램의 인자와 반환에도 이용함
- 연산의 안전성 보장을 위해 필요
- 프로그램은 "타입 안전하다"라는 표현은 프로그램 내 모든 연산 및 함수에 대해 다음 성질을 만족하는 경우 : 함수 f의 타입이 f(x): A-> B 라면 모든 a 포함 집합 A에 대해 f(a) 포함집합 B이어야 함 -> 즉 타입 오류가 발생하지 않는다는 의미
- 강타입 언어란 모든 타입 오류를 검출하는 언어 (Haskell, Ml, Java - 타입 캐스팅 제외하면 )
- 약 타입 언어란 타입 오류를 검출, 그러나 일부 타입 오류를 허용 : C -> 공용체, 타입 캐스팅을 통해 타입 검사를 회피
- 무타입 언어란 타입 선언문도 없고 어떤 대상의 타입도 계속 변경 가능 : Python 등 대부분의 스크립트 언어
- 데이터의 형태에 따라 정수형, 실수형, 문자형, 배열, 구조체 등으로 타입을 분류할 수 있음
- 원시타입은 프로그래밍 언어에서 기본적으로 제공하는 타입으로 사용자가 개입할 여지가 없는 타입이며, 미리 정의된 타입 혹은 내장 타입이라고도 함
- 사용자 정의 타입은 사용자가 직접 정의해서 사용하는 타입으로 대쵸적으로 배열과 구조체가 있음
- 단순타입은 데이터 집합의 요소가 하나의 데이터로만 구성된 타입이며 스칼라 타입이라고도 함
- 복합 타입은 데이터 집합의 요소가 데이터들의 구조로 구성된 타입으로 구조 타입이라고도 부름
- 졍수형이란 정수 데이터를 다루는 타입
- 정수형의 데이터 집합은 {-무한, -2, -1, 0. ,,,} 중 일부만 표현 -> 정수 표현을 위해 할당된 메모리 크기에 의존
- 표현 가능한 정수 범위에 따라 다양한 타입이 존재함
- 자바에는 unsigned가 붙는 정수형이 없음
- 연산집합으로 사칙 연산은 덧셈, 뺄셈, 곱셉, 나눗셈 등 -> 연산의 결과도 정수형
- C, C++에서 16비트로 구현된 hosrt 타입의 경우 +1을 하는 경우와 -1을 하는 경우 데이터 집합 안에 존재하지 않으면 다른 결과가 나올 수 있음
- 실수형의 경우 전체 실 수 중 사용 비트의 크기에 따라 일부 범위의 실수만 표현 가능
- 부호 + 지수 + 가수부
- 지수부 -> 지수 + bias
- bias는 지수부의 크기에 따라 결정됨
- 가수부는 소수점 이하 부분만 표현 -> 1.xxxx 형태를 갖도록 정규화를 거침
- 문자형의 데이터 집합 중 Ascii는 128개 의 문자, 유니코드는 전세게 다양한 문자 표현 가능
- 열거형이란 순서 관계가 있는 이름들을 데이터로 다루는 타입
- 열거형에서 데이터 집합은 사용자가 직접 지엉한 이름들, 각 이름은 0 이상의 정수와 대응 하며 순서 관계 성립함
복합 타입
- 배열은 동질형 데이터의 모음으로 구성된 타입
- 원소 : 각 배열의 데이터
- 배열의 크기 : 배열이 가지는 원소의 개수
- 배열에서 각 원소는 첨자로 구분 -> 첨자: 첫 원소와의 상대적 위치
- 배열의 데이터 집합: 원소의 타입에 해당하는 데이터 집합이 배열의 크기만큼 모인 집합으로 원소의 타입과 배열의 크기에 따라 다양한 타입
- 배열의 크기 -> 양의 정수 범위 x 차원
- 배열에서 차원 : 배열에 사용되는 첨자의 개수
- 배열의 구현 : 저장 공간 확보 -> 정적 변수 : Fortran, 스택 동적 변수 : 배열의 크기는 정적 바인딩 또는 동적 바인딩 , 힙동적 변수 : 배열의 크기도 동적 바인딩
- 배열에서 첨자를 통한 원소의 주소 계산 -> 주소 = 주소 (A[0]) + i * 원소 크기
- 크기 M x N인 2차원 배열 -> 행 우선 저장 -> 주소 (B([i][j]) = 주소 (B[0][0]) + i * N * 원소 크기 + j * 원소크기
- 크기 M X N인 2차원 배열 -> 열 우선 저장 -> 주소 (B[i][j]) = 주소 (B[0][0]) + j * M * 원소크기 + i * 원소크기
- 배열의 연산 집합 : 배열 전체를 다루는 연산들의 집합으로 개별 원소 연산은 원소 타입의 연산 집합에 의존 -> PL에 따라 배열 전체에 대한 연산은 다름
- C, C++, Java -> 초기화 연산만 기본적으로 제공 , Ada, Perl, Python -> 대입 연산 등이 포함
- 문자열은 문자들의 나열
- 문자열형의 데이터 집합에 대해, C, C++은 문자형의 1차원 배열, Java는 String 클래스 타입
- 연관 배열은 동질형 데이터의 순서 없는 모음으로 구성된 타입. 순서 없는 모음이란 모여진 원소들 사이의 위치 관계는 아무 의미가 없다는 것
- 연관배열에서 각 원소는 키로 구분함. 키는 각 원소의 절대위치를 가리킴.
- 연관 배열의 연산 집합은 원소 참조, 원소 추가, 원소 삭제 등
- C++에서 연관배열로 map 타입이 있음
- 구조체 혹은 레코드형은 데이터의 모음으로 구성된 타이,ㅂ. 이때 모여진 원소들의 타입은 서로 같아도 되고 달라도 됨
- 구조체에서 각 원소는 이름으로 구별함 : 이름 -> 각 원소의 타입으로 선언된 변수명
- 구조체 데이터 집합은 각 원소의 타입과 개수에 따라 다양한 타입이 존재함
- 공용체는 저장공간을 공유하는 데이터의 모음으로 구성된 타입. 모여진 원소들의 구성 형태는 구조체와 윳가하여 원소의 타입은 서로 같거나 다를 수 있고 각 원소는 이름으로 구별
- 공용체는 하지만 원소들의 저장 공간이 서로 공유되기 때문에 한 원소의 값이 바뀌면 다른 원소들의 값도 영향을 받음 -> 예를 들어, 3개의 원소로 구성되고 각 원소의 타입이 문자형, 정수형, 실수형인 공용체의 한 가지는 다음과 같음 -> 문자형 데이터 a, 정수형 데이터 i, 실수형 데이터 f 에 대해 만약 a의 문자를 바꾸면 정수 i의 값도 바귀고 실수 f의 값도 바뀔 수 있음
- C와 C++은 공용체로 union 타입이 있음
- 공용체의 데이터 집합은 각 원소의 타입에 해당하는 데이터 집합의 합집합, 연산 집합은 개별 원소 타입의 연산 집합
- 포인터 형은 특정 데이터가 저장되는 주소 자체를 데이터로 다루는 타입
- 포인터형의 특정 데이터 타입은 사용자가 지정하는 타입으로 단순타입과 복합타입 모두 가능. 따라서 포인터형의 포인터형도 가능.
- 포인터형의 데이터집합은 가용한 범위의 주소를 포함함. 예를 들어 32비트 시스템은 주소 범위가 2^32를 넘지 않고 64 비트 시스템은 2^64를 넘지 않음
- 포인터형의 연산 집합은 대입 연산과 덧셈, 뺄셈 연산을 포함. C, C++ 포인터형 앞에 역참조 연산자 *를 붙여 값으로 가리키는 주소에 저장된 데이터를 사용하게 함
- 참조형은 사용자가 지정하는 타입의 데이터가 저장된 주소 자체를 자신의 주소로 사용하는 타입. 즉, 참조형은 지정한 타입의 저장공간이 이미 존재해야 함.
문제
2. 타입의 개념에 대한 설명으로 옳지 않은 것은?
- 타입은 변수의 속성 중 하나이다.
- 모든 프로그램 언어는 타입을 지원한다.
- 타입은 데이터 집합과 연산 집합의 결합이다.
- 타입은 서브프로그램의 인자와 반환에도 이용된다.
정답: 2
해설: 무타입 언어는 타입 선언문도 없고 어떤 대상의 타입도 계속 변경할 수 있으므로 모든 프로그래밍 언어가 타입을 지원하는 것은 아니다.
3. 강타입 언어에 대한 설명으로 옳지 않은 것은?
- 모든 타입 오류를 검출한다.
- Haskell, ML, Java는 강타입 언어의 예이다.
- 타입 캐스팅을 통해 타입 검사를 회피할 수 없다.
- 타입 안전성을 중요시한다.
정답: 3
해설: Java는 타입 캐스팅을 통해 타입 검사를 회피할 수 있으므로, 모든 강타입 언어가 타입 캐스팅을 통한 타입 검사 회피를 허용하지 않는 것은 아니다.
4. 복합 타입에 대한 설명으로 옳은 것은?
- 복합 타입은 단순 타입만을 포함한다.
- 배열은 복합 타입의 한 예이다.
- 복합 타입은 데이터의 구조를 표현하지 않는다.
- 모든 복합 타입은 정적 타입이다.
정답: 2
해설: 배열은 동질형 데이터의 모음으로 구성되며, 이러한 특성은 복합 타입의 한 예시이다.
5. 배열의 첨자 계산 방법에 대한 설명으로 옳은 것은?
- 배열의 첨자 계산은 항상 동적으로 수행된다.
- 2차원 배열의 주소 계산에는 행 우선 저장 방식과 열 우선 저장 방식이 있다.
- 배열의 첨자 계산은 배열의 타입과 무관하다.
- 모든 배열은 같은 방식으로 첨자 계산을 수행한다.
정답: 2
해설: 2차원 배열의 주소 계산에는 행 우선 저장 방식과 열 우선 저장 방식이 존재하며, 이는 배열의 구조에 따라 달라진다.
6. 실수형 타입에 대한 설명으로 옳지 않은 것은?
- 실수형 데이터는 부호, 지수, 가수부로 구성된다.
- 모든 실수를 표현할 수 있다.
- 지수부는 지수와 bias로 구성된다.
- 가수부는 소수점 이하 부분만을 표현한다.
정답: 2
해설: 실수형 타입은 사용 비트의 크기에 따라 일부 범위의 실수만을 표현할 수 있으므로 모든 실수를 표현할 수 있는 것은 아니다.
7. C언어에서 16비트 short 타입에 대한 설명으로 옳은 것은?
- 16비트 short 타입은 모든 정수를 표현할 수 있다.
- 16비트 short 타입의 연산 결과는 항상 short 타입 범위 내에 존재한다.
- +1 또는 -1 연산 결과가 데이터 집합 밖에 있을 경우 다른 결과가 나올 수 있다.
- C언어의 short 타입은 항상 16비트로 구현된다.
정답: 3
해설: 16비트 short 타입에서 연산 결과가 표현 가능한 범위를 초과하면 오버플로우가 발생하여 예상치 못한 결과가 나타날 수 있다.
8. 문자형 타입에 대한 설명으로 옳지 않은 것은?
- Ascii 문자 집합은 128개의 문자를 포함한다.
- 유니코드는 전 세계의 다양한 문자를 표현할 수 있다.
- 모든 문자형 데이터는 동일한 메모리 크기를 가진다.
- 문자형 데이터 집합은 문자의 종류에 따라 다를 수 있다.
정답: 3
해설: 문자형 데이터의 메모리 크기는 사용하는 문자 집합에 따라 다를 수 있으며, Ascii와 유니코드는 서로 다른 메모리 크기를 가질 수 있다.
9. 구조체 혹은 레코드형에 대한 설명으로 옳은 것은?
- 구조체의 모든 원소는 동일한 타입이어야 한다.
- 구조체에서 각 원소는 이름으로 구별된다.
- 구조체는 데이터의 순서만을 표현한다.
- 모든 구조체는 동일한 크기의 메모리를 차지한다.
정답: 2
해설: 구조체 혹은 레코드형은 다양한 타입의 원소를 포함할 수 있으며, 각 원소는 이름으로 구별된다.
10. 포인터형에 대한 설명으로 옳은 것은?
- 포인터형은 항상 정수형 데이터만을 가리킨다.
- 포인터형은 특정 데이터가 저장된 주소 자체를 데이터로 다룬다.
- 모든 포인터형은 동일한 크기의 메모리를 차지한다.
- 포인터형은 데이터의 값을 직접 저장한다.
정답: 2
해설: 포인터형은 특정 데이터가 저장된 주소를 데이터로 다루며, 이는 데이터의 위치 정보를 나타낸다.
11. 참조형에 대한 설명으로 옳지 않은 것은?
- 참조형은 다른 타입의 주소를 가리킨다.
- 참조형은 원래 데이터의 주소를 자신의 주소로 사용한다.
- 참조형은 포인터형과 동일한 기능을 한다.
- 참조형은 지정한 타입의 저장공간이 이미 존재해야 한다.
정답: 3
해설: 참조형과 포인터형은 비슷하지만 동일하지는 않다. 참조형은 원래 데이터의 주소를 자신의 주소로 사용하며, 다른 메커니즘을 사용한다.
12. 열거형 타입에 대한 설명으로 옳은 것은?
- 열거형은 순서 관계가 없는 이름들을 데이터로 다룬다.
- 열거형의 각 이름은 0 이상의 정수와 대응된다.
- 열거형은 데이터의 순서만을 표현한다.
- 열거형에서 데이터 집합은 사용자가 지정하지 않는다.
정답: 2
해설: 열거형 타입은 순서 관계가 있는 이름들을 데이터로 다루며, 각 이름은 0 이상의 정수와 대응한다.
13. C언어에서 union(공용체) 타입에 대한 설명으로 옳지 않은 것은?
- 공용체는 저장공간을 공유하는 데이터의 모음이다.
- 공용체에서 하나의 원소 값이 바뀌면 다른 원소들의 값도 영향을 받는다.
- 공용체의 데이터 집합은 각 원소의 타입에 해당하는 데이터 집합의 합집합이다.
- 공용체는 각 원소가 독립적인 저장공간을 가진다.
정답: 4
해설: 공용체는 원소들이 저장공간을 공유하기 때문에, 한 원소의 값이 바뀌면 다른 원소들의 값에도 영향을 미친다. 각 원소가 독립적인 저장공간을 가지는 것은 아니다.
14. 연관 배열에 대한 설명으로 옳은 것은?
- 연관 배열은 순서 있는 데이터의 모음이다.
- 연관 배열에서 각 원소는 키로 구분된다.
- 연관 배열의 원소는 순서에 따라 접근된다.
- 연관 배열은 동질형 데이터만 포함할 수 있다.
정답: 2
해설: 연관 배열은 순서 없는 데이터의 모음으로, 각 원소는 키로 구분된다. 키는 각 원소의 절대위치를 가리키는 역할을 한다.
15. 원시타입에 대한 설명으로 옳지 않은 것은?
- 원시타입은 프로그래밍 언어에서 기본적으로 제공하는 타입이다.
- 사용자가 원시타입을 수정할 수 있다.
- 원시타입은 미리 정의된 타입 또는 내장 타입이라고도 한다.
- 원시타입에는 사용자의 개입이 없다.
정답: 2
해설: 원시타입은 프로그래밍 언어에서 기본적으로 제공하는 타입으로, 사용자가 이를 수정할 수는 없다.
16. 문자열형에 대한 설명으로 옳은 것은?
- 문자열형은 항상 고정된 길이를 가진다.
- C언어에서 문자열형은 문자형의 1차원 배열로 표현된다.
- 문자열형은 단일 문자만을 저장할 수 있다.
- 모든 문자열형은 동일한 메모리 크기를 차지한다.
정답: 2
해설: C언어에서 문자열형은 문자형의 1차원 배열로 표현되며, 이는 문자들의 나열로 구성된다.
17. 포인터형 연산에 대한 설명으로 옳지 않은 것은?
- 포인터형은 주소에 대한 연산을 수행할 수 있다.
- 포인터형 연산에는 대입, 덧셈, 뺄셈이 포함된다.
- 포인터형 연산에는 곱셈과 나눗셈이 포함된다.
- C, C++에서 포인터형 앞에 역참조 연산자 '*'를 사용할 수 있다.
정답: 3
해설: 포인터형 연산에는 곱셈과 나눗셈이 포함되지 않는다. 주로 대입, 덧셈, 뺄셈 연산이 사용된다.
18. 변수의 영역에 대한 설명으로 옳은 것은?
- 변수의 영역은 프로그램 전체에 걸쳐서 일정하다.
- 지역 변수는 함수 내에서만 접근 가능하다.
- 전역 변수는 오직 한 함수 내에서만 접근 가능하다.
- 정적 변수는 프로그램 실행 동안 사라지지 않는다.
정답: 2
해설: 지역 변수는 그것이 선언된 함수 내에서만 접근할 수 있으며, 함수 외부에서는 접근할 수 없다.
19. 배열의 구현 방식에 대한 설명으로 옳은 것은?
- 배열은 항상 힙 메모리에 저장된다.
- 정적 배열은 컴파일 시간에 크기가 결정된다.
- 모든 배열은 동적으로 크기가 결정된다.
- 배열의 원소는 항상 연속된 메모리 위치에 저장되지 않는다.
정답: 2
해설: 정적 배열은 컴파일 시간에 크기가 결정되며, 배열의 원소들은 메모리 상에서 연속적으로 위치한다.
20. 사용자 정의 타입에 대한 설명으로 옳지 않은 것은?
- 사용자 정의 타입에는 배열과 구조체가 포함된다.
- 사용자 정의 타입은 프로그래밍 언어에 의해 미리 정의된 타입이다.
- 사용자는 자신의 요구에 맞추어 새로운 타입을 정의할 수 있다.
- 사용자 정의 타입을 통해 프로그램의 가독성과 유지보수성이 향상된다.
정답: 2
해설: 사용자 정의 타입은 프로그래밍 언어에 의해 미리 정의된 타입이 아니라, 사용자가 직접 정의하여 사용하는 타입이다.
21. 정수형 타입에 대한 설명으로 옳은 것은?
- 모든 정수형 타입은 동일한 범위의 정수를 표현한다.
- C언어에서 16비트 short 타입은 모든 정수를 표현할 수 있다.
- 정수형 타입은 정수 데이터를 다루며, 표현 가능한 범위는 할당된 메모리 크기에 의존한다.
- 정수형 타입의 연산 결과는 항상 정수형 타입의 범위를 벗어나지 않는다.
정답: 3
해설: 정수형 타입은 정수 데이터를 다루는 타입이며, 표현 가능한 정수 범위는 할당된 메모리 크기에 따라 달라진다.
22. 타입 안전성에 대한 설명으로 옳지 않은 것은?
- 타입 안전한 프로그램은 모든 연산 및 함수가 타입 오류를 발생시키지 않는다.
- 강타입 언어는 타입 안전성을 보장한다.
- 타입 안전성은 서브프로그램의 인자와 반환에서도 중요하다.
- 타입 안전성은 프로그래밍 언어의 특징이 아니라 프로그램의 특징이다.
정답: 4
해설: 타입 안전성은 프로그래밍 언어의 특징이며, 이는 프로그램 내 모든 연산 및 함수에서 타입 오류가 발생하지 않음을 의미한다.
23. 배열의 구현 방식에 대한 설명으로 옳은 것은?
- 배열은 항상 힙 메모리에 저장된다.
- 배열의 크기는 실행 시간에 항상 변경될 수 있다.
- 정적 배열은 컴파일 시간에 크기가 결정되며 연속된 메모리 위치에 원소들이 저장된다.
- 모든 배열은 동적으로 크기가 결정된다.
정답: 3
해설: 정적 배열은 컴파일 시간에 크기가 결정되며, 배열의 원소들은 메모리 상에서 연속적으로 위치한다.
24. 문자형 타입에 대한 설명으로 옳은 것은?
- 모든 문자형 데이터는 동일한 메모리 크기를 가진다.
- Ascii 문자 집합은 전 세계의 모든 문자를 포함한다.
- 문자형 데이터의 메모리 크기는 사용하는 문자 집합에 따라 달라질 수 있다.
- 유니코드는 오직 영문자만을 표현할 수 있다.
정답: 3
해설: 문자형 데이터의 메모리 크기는 사용하는 문자 집합에 따라 다를 수 있으며, Ascii와 유니코드는 서로 다른 메모리 크기를 가질 수 있다.
25. 연관 배열에 대한 설명으로 옳지 않은 것은?
- 연관 배열은 순서 있는 데이터의 모음이다.
- 연관 배열에서 각 원소는 키로 구분된다.
- 연관 배열의 원소는 순서에 따라 접근된다.
- 연관 배열은 동질형 데이터만 포함할 수 있다.
정답: 1
해설: 연관 배열은 순서 없는 데이터의 모음으로, 각 원소는 키로 구분된다. 키는 각 원소의 절대위치를 가리키는 역할을 한다.
26. 데이터 집합에 대한 설명으로 옳은 것은?
- 데이터 집합은 변수에 저장될 수 있는 모든 값의 집합이다.
- 데이터 집합은 프로그래밍 언어에서 사용되지 않는다.
- 모든 데이터 집합은 동일한 크기를 가진다.
- 데이터 집합은 오직 숫자형 데이터만 포함한다.
정답: 1
해설: 데이터 집합은 해당 변수에 할당될 수 있는 모든 가능한 값들의 집합을 의미한다. 이는 타입에 따라 다양할 수 있다.
27. 연산 집합에 대한 설명으로 옳지 않은 것은?
- 연산 집합은 해당 데이터에 적용 가능한 모든 연산들을 포함한다.
- 모든 데이터 타입은 동일한 연산 집합을 가진다.
- 연산 집합은 데이터 타입에 따라 다를 수 있다.
- 연산 집합에는 산술 연산, 논리 연산 등이 포함될 수 있다.
정답: 2
해설: 연산 집합은 해당 데이터 타입에 적용 가능한 연산들의 집합을 말하며, 데이터 타입에 따라 다양한 연산 집합이 존재한다.
28. 타입 안전성에 대한 설명으로 옳은 것은?
- 타입 안전성은 프로그램에서 타입 오류를 방지하는 능력을 의미한다.
- 모든 프로그래밍 언어는 타입 안전성을 보장한다.
- 타입 안전성은 오직 강타입 언어에서만 중요하다.
- 타입 안전성은 변수의 크기와 관련이 있다.
정답: 1
해설: 타입 안전성은 프로그램이 타입 오류를 방지하는 능력을 의미하며, 이는 프로그램의 안정성과 신뢰성을 높이는 데 중요한 역할을 한다.
29. 정적 바인딩과 동적 바인딩에 대한 설명으로 옳은 것은?
- 정적 바인딩은 프로그램 실행 시간에 변수의 크기와 타입이 결정된다.
- 동적 바인딩은 컴파일 시간에 변수의 크기와 타입이 결정된다.
- 정적 바인딩은 컴파일 시간에 변수의 크기와 타입이 결정된다.
- 모든 프로그래밍 언어는 정적 바인딩만을 지원한다.
정답: 3
해설: 정적 바인딩은 컴파일 시간에 변수의 크기와 타입이 결정되는 반면, 동적 바인딩은 프로그램 실행 시간에 이러한 결정이 이루어진다.
30. 배열의 첨자 계산 방식에 대한 설명으로 옳지 않은 것은?
- 배열의 첨자 계산은 배열의 크기와 차원에 따라 달라질 수 있다.
- 모든 배열은 동일한 방식으로 첨자 계산을 수행한다.
- 2차원 배열에서 행 우선 저장 방식과 열 우선 저장 방식을 사용할 수 있다.
- 첨자 계산은 배열의 원소에 접근하는 데 사용된다.
정답: 2
**해
설:** 배열의 첨자 계산 방식은 배열의 크기, 차원, 그리고 데이터 구조에 따라 달라질 수 있다. 따라서 모든 배열이 동일한 방식으로 첨자 계산을 수행하는 것은 아니다.
31. 열거형 타입에 대한 설명으로 옳은 것은?
- 열거형은 데이터의 순서만을 표현한다.
- 열거형에서 각 이름은 0 이상의 정수와 대응하며 순서 관계가 성립한다.
- 열거형은 순서 관계가 없는 이름들을 데이터로 다룬다.
- 열거형에서 데이터 집합은 사용자가 지정하지 않는다.
정답: 2
해설: 열거형 타입은 순서 관계가 있는 이름들을 데이터로 다루며, 각 이름은 0 이상의 정수와 대응하여 순서 관계를 갖는다.
32. 포인터형 데이터에 대한 설명으로 옳은 것은?
- 포인터형 데이터는 항상 정수형 데이터만을 가리킨다.
- 포인터형 데이터는 특정 데이터가 저장된 주소를 데이터로 다룬다.
- 모든 포인터형 데이터는 동일한 크기의 메모리를 차지한다.
- 포인터형 데이터는 데이터의 값을 직접 저장한다.
정답: 2
해설: 포인터형 데이터는 특정 데이터가 저장된 메모리 주소를 가리키는 데이터 타입으로, 데이터의 위치 정보를 나타낸다.
33. 실수형 타입에 대한 설명으로 옳지 않은 것은?
- 실수형 데이터는 부호, 지수, 가수부로 구성된다.
- 실수형 타입은 모든 실수를 표현할 수 있다.
- 지수부는 지수와 bias로 구성된다.
- 가수부는 소수점 이하 부분만을 표현한다.
정답: 2
해설: 실수형 타입은 부호, 지수, 가수부로 구성되며, 사용하는 비트의 크기에 따라 표현할 수 있는 실수의 범위가 제한된다.
34. 사용자 정의 타입에 대한 설명으로 옳은 것은?
- 사용자 정의 타입은 프로그래밍 언어에 의해 미리 정의된 타입이다.
- 사용자 정의 타입에는 배열과 구조체가 포함될 수 있다.
- 사용자는 새로운 타입을 정의할 수 없다.
- 사용자 정의 타입은 프로그램의 가독성과 유지보수성에 기여하지 않는다.
정답: 2
해설: 사용자 정의 타입은 사용자가 직접 정의하여 사용하는 타입으로, 이에는 배열과 구조체 등이 포함될 수 있으며, 이를 통해 프로그램의 가독성과 유지보수성을 향상시킬 수 있다.
34. 참조형 타입에 대한 설명으로 옳지 않은 것은?
- 참조형 타입은 다른 타입의 데이터를 참조한다.
- 참조형 타입은 지정한 타입의 저장공간이 이미 존재해야 한다.
- 참조형은 포인터형과 완전히 동일한 기능을 한다.
- 참조형은 원본 데이터를 직접 수정할 수 있다.
정답: 3
해설: 참조형과 포인터형은 유사하지만 완전히 동일하지 않다. 참조형은 지정한 타입의 데이터가 저장된 주소를 자신의 주소로 사용하며, 원본 데이터에 대한 접근 및 수정이 가능하다.
35. 실수형 타입의 특징에 대한 설명으로 옳지 않은 것은?
- 실수형 데이터는 부호, 지수, 가수부로 구성된다.
- 실수형 타입은 모든 실수를 정확하게 표현할 수 있다.
- 지수부의 크기에 따라 표현할 수 있는 실수의 범위가 달라진다.
- 실수형 타입은 정규화된 형태로 실수를 저장한다.
정답: 2
해설: 실수형 타입은 부호, 지수, 가수부로 구성되어 있으며, 사용하는 비트의 크기에 따라 표현할 수 있는 실수의 범위가 제한되어 있어 모든 실수를 정확하게 표현할 수는 없다.
36. 연관 배열에 대한 설명으로 옳은 것은?
- 연관 배열은 순서 있는 데이터의 모음이다.
- 연관 배열에서 각 원소는 키로 구분된다.
- 연관 배열은 동질형 데이터만 포함할 수 있다.
- 연관 배열의 원소는 순서에 따라 접근된다.
정답: 2
해설: 연관 배열은 순서 없는 데이터의 모음으로, 각 원소는 키로 구분된다. 이 키를 통해 각 원소에 접근할 수 있다.
37. 정적 바인딩과 동적 바인딩의 차이점에 대한 설명으로 옳지 않은 것은?
- 정적 바인딩은 컴파일 시간에 변수의 크기와 타입이 결정된다.
- 동적 바인딩은 실행 시간에 변수의 크기와 타입이 결정된다.
- 모든 프로그래밍 언어는 정적 바인딩만을 지원한다.
- 정적 바인딩은 프로그램의 실행 효율을 높일 수 있다.
정답: 3
해설: 많은 프로그래밍 언어들이 정적 바인딩과 동적 바인딩을 모두 지원한다. 정적 바인딩은 컴파일 시간에 타입과 크기가 결정되며, 프로그램의 실행 효율을 높일 수 있다.
'CS > 프로그래밍언어론' 카테고리의 다른 글
프로그래밍 언어론 수식, 문장 내용 요약 정리 및 문제 풀이 - 방통대 기말고사 대비 (1) | 2023.12.08 |
---|---|
프로그래밍 언어론 2019 2학기 기말고사 문제와 정답 - 방통대 (0) | 2023.12.08 |
변수의 영역 , 정적 영역, 동적 영역, 지역 변수, 정적 영역 규칙 - 방통대 프로그래밍 언어론 기말 고사 기출 유사 문제 풀이 (1) | 2023.12.08 |
프로그래밍 언어론 변수와 바인딩 기말고사 대비 문제 풀이 및 요약 정리 (1) | 2023.12.08 |
프로그래밍 언어의 구현 , 파스트리, 구문 트리, 순환 하강 구문 분석기 관련 문제 - 방통대 기말 시험 대비 (1) | 2023.12.08 |