[컴퓨터레벨2 C++] 질문 및 C++ 지식 자가 테스트


공통 기본 지식

컴퓨터 기초

  1. 컴퓨터가 명령을 완료하는 데 걸리는 시간을 호출합니다.指令周期

  2. 순차 프로그램에는 없습니다.并发性

  3. 다음 중 올바른 설명은 무엇인가요?C

    • A. 알고리즘의 복잡성은 문제의 크기와 관련이 없습니다.
    • B. 알고리즘의 최적화는 주로 프로그래밍 기술을 통해 달성됩니다.
    • C. 데이터를 압축하고 저장하면 알고리즘의 공간 복잡성이 줄어듭니다.
    • D. 수치 알고리즘은 계산 결과의 신뢰성만 고려하면 됩니다.
  4. 구조화된 프로그래밍 강조程序的易读性

  5. 외부 저장소에 있는 정보를 사용하려면 먼저 외부 저장소에 로드해야 합니다.A

    • 가. 내부 메모리
    • B. 컨트롤러
    • C. 오퍼레이터
    • D. 마이크로프로세서
  6. 프로세스는 다음과 같습니다.D

    • A. 메모리에 저장된 프로그램
    • 나. 프로그램과 동등한 개념
    • C. 시스템 소프트웨어
    • D. 프로그램의 실행 과정
  7. 구조화된 프로그램의 세 가지 기본 제어 구조는 다음과 같습니다.C

    • A. 재귀, 스택, 큐
    • 나. 전화, 반납, 환승
    • C. 순서, 선택, 반복
    • D. 프로세스, 하위 기능, 기능
  8. 이론적으로 컴퓨터 가상 메모리의 최대 용량은 다음에 따라 다릅니다.计算机地址位数

  9. 컴퓨터에서 정수를 저장하고 연산하는 데 일반적으로 사용하는 형식은 다음과 같습니다.补码

  10. 운영체제에서 파일명을 파일 저장 주소로 변환하는 구조는 다음과 같다.文件目录

  11. 소프트웨어 엔지니어링의 세 가지 요소는 다음과 같습니다.方法、工具、过程

  12. I/O 방식 중 컴퓨터 시스템은 가장 높은 수준의 병렬 작업을 수행할 수 있습니다.D

    • A.DMA
    • B. 프로그램 쿼리
    • 다. 프로그램 중단
    • D.채널
  13. 구조적 프로그래밍의 원리가 아닌 것은?多态性

  14. 프로세스에는 많은 속성이 있으며 동시성 외에 또 다른 중요한 속성은 다음과 같습니다.动态性

  15. CPU 칩 내부의 다양한 구성 요소를 연결하는 버스는内部总线

    • A. 시스템 버스
    • B. 주변버스
    • C. 외부 버스
    • D. 내부 버스
  16. 프로세스가 실행 중인 동안 어떤 이유로든 일시 중지되면 프로세스는 실행 상태를 떠나 다음 상태로 들어갑니다.C

    • A. 정지상태
    • B. 정지 상태
    • 다. 차단된 상태
    • D. 준비 상태
  17. 다음 중 올바른 설명은 무엇인가요?A

    • A. 프로세스 제어 블록 PCB는 프로세스의 존재를 나타내는 유일한 신호입니다.
    • B. 프로세스가 생성된 후 실행 상태로 진입합니다.
    • C. 준비 상태에는 프로세스가 하나만 있을 수 있습니다.
    • D. 실행 중인 상태의 프로세스는 실행 시간 조각을 모두 사용하면 차단 상태로 변환됩니다.
  18. 소프트 아머 디자인 단계에서는 사용되지 않습니다.A

    • A.DFD 다이어그램(데이터 흐름 다이어그램)
    • B.PAD 다이어그램
    • C. 프로그램 흐름도
    • D.판정표
  19. 다음 중 올바른 설명은 무엇인가요?A

    • A. 차단된 상태의 프로세스는 차단 원인이 제거되면 준비 상태로 진입한다.
    • B. 프로세스가 생성되면 실행 상태로 들어갑니다.
    • C. 프로세스가 실행 중 상태입니다. 타임 슬라이스를 모두 사용하면 프로세스가 종료됩니다.
    • D. 프로세스가 준비 상태에 있을 때 타임 슬라이스가 소진되면 프로세스가 종료됩니다.
    • 분석: 대기(차단) 상태에 있는 프로세스는 대기 중인 이벤트가 발생하면, 즉 조건이 충족되면 준비 상태로 변경됩니다. 프로세스가 생성된 후 준비 상태로 들어가고 할당된 시간 조각이 모두 사용되면 실행 상태의 프로세스는 CPU를 포기하고 준비 상태로 변경됩니다. CPU에 할당되면 실행 상태로 전환됩니다.
  20. 블랙박스 테스트 방법은 다음과 같습니다.D

    • A.조건부 보장
    • B. 기본 경로 테스트
    • C. 의사결정 범위
    • D. 잘못된 추측 방법
    • 분석: 블랙박스 테스트의 주요 기법으로는 등가등급 분할법, 경계값 분석법, 오류추론법, 특성요인도 등이 있다. 화이트박스 테스팅의 주요 기술로는 로직 커버리지 테스팅과 기본 경로 테스팅이 있으며, 로직 커버리지 테스팅에는 문장 커버리지, 경로 커버리지, 판단 커버리지, 조건 커버리지, 판단 조건 커버리지 등이 있다.
  21. 다음 중 올바른 설명은 무엇인가요?A

    • A. CPU가 명령어를 실행할 때 최소한 한 번의 머신 사이클이 필요합니다.
    • B. CPU가 명령을 실행할 때 하나의 기계 주기만 필요합니다.
    • C. CPU가 명령어를 실행하는 데는 최소 2개의 머신 사이클이 필요합니다.
    • D. CPU는 명령어를 실행하는 동안 하나의 머신 사이클만 차지하면 됩니다.
  22. 기계 사이클의 동기화 표준은 다음과 같습니다.B

    • A. CPU가 명령을 실행하는 데 걸리는 시간
    • B. CPU가 메모리에 한 번 접근하는데 걸리는 시간
    • C. CPU가 명령어를 분석하는 데 걸리는 시간
    • D. CPU가 레지스터에 한 번 접근하는데 걸리는 시간

데이터 베이스

  1. 데이터베이스 관리 기술 개발의 3단계 중 데이터를 관리할 수 있는 전문 소프트웨어가 없는 단계는人工管理阶段

  2. 학생의 선택 과목 활동을 나타내는 엔터티 관계 모델을 설정합니다. 두 엔터티는 다음과 같습니다.A

    • 가.학생 및 학번
    • 나. 과목 및 성적
    • 다. 학생 및 강좌
    • D.교과목 및 교과번호
    • 분석: '학생번호'와 '성적'은 '학생'의 속성이고, '과목번호'는 '과목'의 속성이다.
  3. 데이터베이스 관리 시스템의 기본 기능에는 다음이 포함되지 않습니다.数据库和网络中其他系统的通信

  4. 관계형 데이터베이스 정규화의 목적은 관계형 데이터베이스의 문제를 해결하는 것입니다.插入、删除异常及数据冗余问题

  5. 물체의 구성요소가 아닌 것은?D

    • 가. 로고
    • B. 속성
    • 다. 방법(또는 조작)
    • D.규칙
  6. 클래스 관계를 클래스(학급 수, 총 학생 수, 소속 대학, 클래스의 학생)로 정의하면 첫 번째 정규형을 충족하지 못하는 속성은 다음과 같습니다.D

    • A. 소속학원
    • 나. 학번
    • 다.총인원
    • D.학생
    • 분석: 관계형 패턴의 경우, 그 안에 있는 각 속성을 더 이상 단순 항목으로 나눌 수 없으면 첫 번째 정규형에 속합니다. 이 질문의 경우, 관계형 패턴 "class"에서 "class Student" 속성은 "student number", "student name" 등으로 구분될 수 있으므로 첫 번째 정규형을 만족하지 않습니다.
  7. 다음 모델은 개념적 모델입니다.D

    • A. 계층적 모델
    • B. 관계형 모델
    • C. 네트워크 모델
    • D. 엔터티-관계 모델
    • 분석: 가장 유명한 개념 모델은 엔터티-관계 모델과 객체 지향 모델입니다.
  8. 도서관 관리 시스템에서 실제 도서와 실제 대출자 간의 연결은 다음과 같습니다.B

    • 안:1
    • BM:N
    • C.1;1
    • D.1:N
    • 분석: 도서관 관리 시스템에서는 한 권의 책을 여러 명의 대출자가 빌릴 수 있고, 한 명의 대출자도 여러 권의 책을 빌릴 수 있으므로 책과 대출자의 관계는 다대다, 즉 M:N이다.
  9. 학생의 선택과목을 정의하는 관계 패턴은 SC(S#,Sn,C#,Cn,G,Cr)(속성은 학생번호, 이름, 과목번호, 과목명, 성적, 학점)이다. 가장 높은 관계는B

    • A.2NF
    • B.1NF
    • C.3NF
    • D. BCNF
    • 분석: 최소 요구 사항을 충족하는 것을 첫 번째 정규형, 줄여서 1NF라고 합니다. 1차 정규형을 만족한 것을 바탕으로, 더 많은 요구사항을 더 만족시키는 2차 정규형이다. 그러면 두 번째 정규형을 만족하는 것을 토대로 세 번째 정규형을 만족할 수 있게 되는 식이다.
      첫 번째 정규형(1NF): 기본 속성(기본 키)이 비어 있지 않고 반복되지 않으며 필드를 더 이상 나눌 수 없습니다.
      두 번째 정규형(2NF): 관계형 스키마가 첫 번째 정규형인 경우 기본이 아닌 각 속성은 기본 키에 부분적으로 종속되지 않습니다.
      제3정규형(3NF): 관계형 스키마가 제2정규형인 경우 기본 키에 대한 기본이 아닌 속성의 전이 종속성이 없습니다.
      BCNF 정규형: 모든 속성은 관계의 후보 키에 전이적으로 의존하지 않습니다.
      이 질문에서 관계형 모델 SC의 기본 키는 (S#, C#)이지만, "학생 번호"가 "이름"을 결정할 수 있고, "강좌 번호"가 "강좌 이름"을 결정할 수 있는데, 어느 정도 의존성이 있습니다. 기본 키의 기본이 아닌 속성 두 번째 정규형을 만족하지 않습니다. 가장 높은 관계 SC는 1NF이다.
  10. 관계형 데이터 모델의 세 가지 구성 요소에는 포함되지 않습니다.A

    • A. 관계의 동시성 제어
    • B. 관계형 데이터 조작
    • C. 관계형 데이터 구조
    • D. 관계 무결성 제약
  11. 데이터베이스 개념 설계 단계에서 얻은 결과는 다음과 같습니다.C

    • A. 관계형 모델
    • 나. 데이터 사전
    • CE-R 모델
    • D. 물리적 모델
  12. 관계형 데이터베이스에서 글로벌 데이터의 논리적 구조를 설명하는 것은C

    • A. 내부 모드
    • B. 사용자 모드
    • C. 개념적 모델
    • D. 물리적 모드
  13. 엔터티-관계 모델을 관계형 모델로 변환할 때 엔터티 간의 다대다 관계는 관계형 모델에서 다음과 같이 구현됩니다.A

    • A. 새로운 관계 구축
    • B. 새 속성 생성
    • C. 새 키워드 추가
    • D. 새 엔터티 만들기
  14. 데이터베이스 구조를 여러 수준으로 나누는 것은 논리적 독립성을 향상시키고B

    • 가. 안전
    • 나. 신체적 독립
    • C. 운영 독립성
    • D. 관리 규범
  15. 엔터티 간의 관계를 표현하기 위해 트리 구조를 사용하는 모델은 다음과 같습니다.A

    • A. 계층적 모델
    • B. 관계형 모델
    • C. 네트워크 모델
    • D. 계산 모델
    • 분석: 네트워크 구조를 사용하여 엔터티와 엔터티 간의 연결을 나타내는 모델을 네트워크 모델이라고 하며, 관계 모델은 2차원 테이블을 사용하여 관계를 나타냅니다.
  16. 정규화는 주로 삽입 이상, 삭제 이상을 극복하고A

    • A. 대규모 중복 문제
    • 나. 불합리한 구조의 문제점
    • C. 데이터 불일치 문제
    • D. 데이터 손실 문제

  17. 학생과 과목 간의 관계 모델은 S(S#,Sn,Sd,DC,S)(속성은 학생 번호, 이름, 학과, 학과장, 나이임), C(C#,Cn, P)로 정의
    됩니다 . #)(해당 속성은 과목 번호, 과목 이름 및 첫 번째 선택한 과목입니다)
    SC(S#,C#,G)(해당 속성은 학생 번호, 과목 번호 및 학년입니다).
    관계에는 기본 속성에 대한 전이적 종속성이 포함되어 있습니다 B.

    • AS#→Sd
    • BS#→SD,SD→Dc
    • CS#→Sd,(S#,C#)→G
    • DC#→P#,(S#,C#)→G
    • 분석: 관계형 모델에서 Y→X, X→A 및 X가 Y를 결정하지 않고 A가 X에 속하지 않으면 Y→A는 전이적 종속성입니다. 관계형 모드 S에서 S#→Sd, Sd→Dc 및 Sd는 S#을 결정하지 않으며 DC는 Sd에 속하지 않으므로 S#→Dc는 전이적 종속성입니다.

데이터 구조

나무

  1. 트리의 차수가 3이고 차수가 3, 2, 1인 노드의 수가 각각 3, 0, 4라고 가정합니다. 그러면 트리의 리프 노드 수는 다음과 같습니다.7

    • 분석: 리프 노드는 차수가 0인 노드입니다. 총 n개의 리프 노드가 있다고 가정합니다. 다음으로, 트리의 모든 노드 수를 계산하면 방정식이 나열됩니다.
      3 × 3 + 2 × 0 + 1 × 4 + 0 × n + 1 = 3 + 4 + n 3\times 3+2 \times 0 + 1 \times 4 +0 \times n +1=3+4+n×+2×0+1×4+0×N+1=+4+N
  2. 2n개의 노드가 있는 완전 이진 트리에서 리프 노드의 수는 다음과 같습니다.n

연결리스트

  1. 길이 n의 순서 연결 리스트에서 검색하려면 최악의 경우에 필요한 비교 횟수는 다음과 같습니다.n

  2. 다음 중 올바른 설명은 무엇인가요?A

    • A. 스택에서 스택 상단에 있는 포인터의 동적 변경에 따라 스택의 요소 수가 결정됩니다.
    • B. 순환 큐에서는 큐 꼬리 포인터의 동적 변화가 큐의 길이를 결정합니다.
    • C. 순환 연결 리스트에서는 헤드 포인터와 테일 포인터의 동적 변화에 따라 연결 리스트의 길이가 결정됩니다.
    • D. 선형 연결 리스트에서는 헤드 포인터와 체인 멤버 포인터의 동적 변화가 연결 리스트의 길이를 결정합니다.
    • 분석: 스택에서 상단 포인터는 스택 요소의 변경 사항을 동적으로 반영합니다. 옵션 A에 대한 설명이 정확합니다. 순환 큐에서는 큐 꼬리 포인터와 큐 헤드 포인터의 동적 변화가 큐의 길이를 결정합니다. 옵션 B는 올바르지 않습니다. 연결 저장 구조에서는 순환 연결 리스트든 선형 연결 리스트든 요소를 ​​삽입하고 제거할 때 해당 위치의 노드 포인터만 변경하면 되며, 헤드 포인터와 테일 포인터는 길이를 결정할 수 없습니다. 연결된 목록 옵션 C와 D에 설명된 오류가 있습니다.

종류

  1. 길이가 8인 배열을 빠르게 정렬하려면 필요한 최대 비교 횟수는 다음과 같습니다.28

    • 분석: 길이의 선형 목록을 빠르게 정렬하려면 최악의 경우에 필요한 비교 횟수는 (n-1)/2입니다. 배열은 선형 테이블이므로 길이가 8인 배열을 빠르게 정렬하려면 필요한 최대 비교 횟수는 8(8-1)/2=28입니다.
  2. 퀵 정렬 방식에서는 각 데이터 교환(또는 이동) 후에能消除多个逆序

  3. 시퀀스 테이블의 길이가 16이라고 가정하고 테이블에 대해 단순 삽입 정렬을 수행합니다. 최악의 경우에 필요한 비교 횟수는 다음과 같습니다.120

    • 분석: 길이가 n인 선형 테이블에 대해 단순 삽입 정렬을 수행합니다. 최악의 경우 필요한 비교 횟수는 n(n-1)/2입니다.

대기줄

  1. 순환 큐에 대한 다음 설명 중 옳은 것은 무엇입니까?A

    • A. 순환 큐는 큐를 순차적으로 저장하는 구조입니다.
    • B. 순환 큐는 큐의 체인 저장 구조입니다.
    • C. 순환 큐의 테일 포인터는 헤드 포인터보다 커야 합니다.
    • D. 순환 큐의 테일 포인터는 헤드 포인터보다 작아야 합니다.
  2. 순환 큐의 저장 공간은 Q(1:50)이고 초기 상태는 비어 있다. 팀에 합류하고 탈퇴하는 일련의 정상적인 작업을 수행한 후 전면=24, 후면=25입니다. 이때 순환 큐의 요소 수는1

    • 분석: 순환 큐의 저장 공간이 (1:m)인 경우, 순환 큐가 실행된 후, front<rear이면 큐에 있는 요소의 개수는 뒤-앞입니다. 전면>후면인 경우 대기열의 요소 수는 후면-전면+m입니다.
  3. 순환큐의 저장공간은 Q(1:50)이다. 팀에 합류하고 탈퇴하는 일련의 정상적인 작업 후에는 front=rear=25입니다. 나중에 큐에 요소가 성공적으로 추가되었습니다. 이때 큐에 있는 요소 수는 다음과 같습니다.1

    • 순환 큐의 저장 공간이 Q(1:m)이라고 가정하면, front=rear=m일 때 순환 큐는 비어 있고, front=rear이고 m과 같지 않으면 순환 큐는 비어 있거나 가득 찼을 수 있습니다. 비어 있으면 요소를 삽입할 수 있고, 가득 차면 요소를 삽입할 때 "오버플로" 오류가 발생합니다. 제목에 "대기열에 요소를 추가하는 데 성공했습니다"라고 표시되어 있는데 이는 이전에 순환 대기열의 상태가 비어 있음을 의미합니다. 요소를 삽입한 후 대기열에는 총 1개의 요소가 있습니다.
  4. 연결된 대기열의 초기 상태는 front=rear=NULL입니다. 팀에 합류하고 탈퇴하는 일련의 정상적인 작업 후에는 앞=10, 뒤=5입니다. 큐에 있는 요소의 수는 다음과 같습니다.D

    • A.4
    • B.5
    • C.6
    • D. 잘 모르겠음

스택

  1. 스택의 저장 공간은 S(1:50)이고 초기 상태는 top=51이라고 가정한다. 이제 일련의 일반적인 푸시 및 팝(top=50) 후에 스택의 요소 수는 다음과 같습니다.1

    • 스택의 저장 공간은 S(1:50)이고, 초기 상태는 top=51, 즉 스택의 초기 상태는 비어 있다. 첫 번째 요소가 스택에 푸시되면 top=50, 두 번째 요소가 스택에 푸시되면 top=49, 세 번째 요소가 스택에 푸시되면 top=48 등입니다. 두 번째 요소가 스택에서 팝된 후(top=50) 스택에서 팝됩니다(top=48). 즉, 요소가 스택에 푸시될 때마다 top-1이고 요소가 스택에서 팝될 때마다 top+1입니다. top=50이면 스택에 요소가 하나만 있습니다.
  2. 체인으로 연결된 스택(큐)이 비어 있는 조건은 다음과 같습니다.D

    • A.상단=하단=-1
    • B.top=-1 및 하단=NULL
    • C.top=NULL 및 하단=-1
    • D.상단=하단=NULL
    • 분석: 연결된 스택은 스택 속성이 있는 연결된 목록입니다. 선형 연결 리스트의 저장 단위는 연속적이지 않습니다. 불연속적인 저장공간이기 때문에 포인터가 연속적이고 규칙적으로 바뀌지 않습니다. top=bottom=NULL인 경우 스택은 비어 있습니다. top=bottom이고 NULL과 같지 않으면 스택에 요소가 있으며 다른 상황을 확인할 수 없습니다.

C++

const 및 정적

  1. 다음 설명 중 잘못된 것은 무엇입니까?B

    • A.const int 버퍼=256;
    • B.const int temp;
    • C.const double *p;
    • D.const double *rt=new double(5.5);
  2. 상수 개체는 업데이트할 수 없으므로A

    • A. 상수 객체를 통해서는 상수 멤버 함수만 호출할 수 있습니다.
    • B. 상수 객체를 통해서는 정적 멤버 함수만 호출할 수 있습니다.
    • C. 상수 개체의 멤버는 상수 멤버입니다.
    • D. 객체의 값을 변경하지 않는 모든 멤버 함수는 상수 객체를 통해 호출될 수 있습니다.
  3. 가상 함수에 대한 다음 설명 중 올바른 것은 무엇입니까?B

    • A. 가상 기본 클래스에서 상속된 함수는 모두 가상 함수입니다.
    • B. 가상 함수는 정적 멤버 함수가 아니어야 합니다.
    • C. 가상 함수는 포인터나 참조를 통해서만 호출할 수 있습니다.
    • D. 추상 클래스의 멤버 함수는 모두 가상 함수입니다.
  4. 다음과 같은 클래스 정의가 있습니다.

class Test{
    
    
	public:
		Test(){
    
    
			a=0;c=0;
		}//A
		int f(int a) const {
    
    
			this->a=a
		}//B
		static int g() {
    
    return a;}//C
		void h(int b){
    
    Test::b=b}//D
};

올바르게 컴파일될 수 있는 명령문은 다음과 같습니다.D

  1. 다음 설명 중 잘못된 것은 무엇입니까?D
    • A.const int 버퍼=256;
    • B.const double * 포인트;
    • C.int const 버퍼 =256;
    • D.double * const 포인트;
    • 분석: D는 포인터 상수입니다. 즉, 가리키는 내용에 대한 포인터는 수정할 수 없으며 초기화되어야 합니다.

바늘

  1. 다음과 같은 절차가 있습니다.
#include <iostream>
using namespace std;
int main(){
    
    
	int *p;
	*p=9;
	cout<<"The value at p:"<<*p;
	return 0;
}

프로그램을 컴파일하고 실행하면 어떤 일이 일어날까요?D

  • A. 컴파일 중 구문 오류가 발생하여 실행 파일을 생성할 수 없습니다.
  • B. 실행 시 출력은 다음과 같아야 합니다. p:9의 값
  • C. 실행 시 출력은 다음과 같아야 합니다. p:*9의 값
  • D. 작동에 오류가 있을 수 있습니다.
  1. 이 포인터에 대한 다음 설명 중 올바른 것은 무엇입니까?D

    • A. 클래스의 모든 멤버 함수에는 이 포인터가 있습니다.
    • B. 클래스의 친구 함수에는 모두 이 포인터가 있습니다.
    • C. 클래스와 관련된 모든 함수에는 this 포인터가 있습니다.
    • D. 클래스의 비정적 멤버 함수에는 모두 이 포인터가 있습니다.
  2. 알려진 배열 정의:

char a[3][4];

다음 중 잘못된 표현은 무엇입니까?A

  • Aa[0]=“AAA”
  • B.strcpy(a[1],“BBB”)
  • 캘리포니아[2][3]='C'
  • 다[1][1]=a[2][2]
  • 분석: C++에서는 배열을 할당할 수 없으므로 코드의 a[0]=str1;이 잘못되었습니다. str1의 값을 a[0]에 복사하려면 문자열 라이브러리 함수 strcpy를 사용할 수 있습니다.

기능

  1. C++ 함수에 대한 다음 설명 중 올바른 것은 무엇입니까?C

    • A. 인라인 함수는 다른 함수의 본문 내부에 정의된 함수입니다.
    • B. 함수 본문의 마지막 문은 return 문이어야 합니다.
    • C. 표준 C++에서는 함수를 호출하기 전에 프로토타입을 선언해야 합니다.
    • D. 컴파일러는 함수의 반환 값 유형과 매개 변수 목록을 기반으로 함수의 다양한 오버로드된 형태를 구별합니다.
  2. 인라인 함수에 대한 다음 설명 중 올바른 것은 무엇입니까?C

    • A. 인라인 함수는 호출될 때 제어를 전송합니다.
    • B. 인라인 함수는 inline 키워드로 정의되어야 합니다.
    • C. 인라인 함수는 컴파일러에 의해 구현됩니다.
    • D. 인라인 함수의 함수 본문 중 마지막 문은 return 문이어야 합니다.
  3. 다음 중 올바른 설명은 무엇입니까?B

    • A. 인라인 함수가 실행되면 함수가 호출되는 각 위치에 함수의 타겟 코드가 삽입됩니다.
    • B. 인라인 함수를 컴파일할 때 함수가 호출되는 각 위치에 함수의 타겟 코드가 삽입됩니다.
    • C. 클래스의 인라인 함수는 클래스 본문에 정의되어야 합니다.
    • D. 클래스의 인라인 함수는 inline 키워드를 추가하여 클래스 외부에 정의해야 합니다.
  4. 친구 기능에 대한 다음 설명은 정확합니다.C

    • A. 친구 함수의 구현은 클래스 내부에서 정의되어야 합니다.
    • B. 친구 함수는 클래스의 멤버 함수입니다.
    • C. Friend 함수는 클래스의 캡슐화 및 숨기기 속성을 파괴합니다.
    • D. Friend 함수는 클래스의 비공개 멤버에 액세스할 수 없습니다.
  5. 다음 중 함수 선언 형식의 <반환 유형>에 대한 설명 중 잘못된 것은 무엇입니까?A

    • A.<반환 유형>에는 true 키워드가 포함될 수 있습니다.
    • B.<반환 유형>에는 사용자 정의 식별자가 포함될 수 있습니다.
    • C.<반환 유형>에는 문자가 포함될 수 있습니다.
    • D.<반환 유형>에는 float 키워드가 포함될 수 있습니다.

초과 적재

  1. 연산자 오버로딩은 기존 연산자에 여러 의미를 부여하므로C

    • A. 기본 유형(예: int 유형)의 데이터에 대해 "+" 연산자의 의미를 재정의할 수 있습니다.
    • B. 기존 운영자의 우선순위 및 운영자 수를 변경할 수 있습니다.
    • C. C++에서는 기존 연산자만 오버로드할 수 있으며 새 연산자를 정의할 수는 없습니다.
    • D. 이미 C++에 있는 모든 연산자는 오버로드될 수 있습니다.
  2. 다음 연산자 중 친구 함수로 오버로드할 수 없는 것은 무엇입니까?A

    • A.= () [] ->
    • B.+ - ++ -
    • 다.> < >= <=
    • D.+= -= *= /=
    • 분석: 멤버 함수 연산자가 오버로드되면 연산자의 lvalue 유형은 클래스의 유형이어야 하지만 친구 함수 연산자가 오버로드된 경우에는 그렇지 않습니다. 일반적으로 이항 연산자는 프렌드 함수로 오버로드되어야 하고, 단항 연산자는 멤버 함수로 오버로드되어야 합니다. 그러나 이것이 절대적인 것은 아닙니다. "=", "[]", "->" 및 "()"는 멤버 함수로 오버로드되어야 하며, "<<", ">>"는 친구 기능으로 오버로드되어야 합니다.
    • 추신: 연산자가 멤버 함수로 오버로드된 경우 이 연산자의 피연산자의 상한은 매개변수 목록의 수 + 1과 같습니다. 연산자가 프렌드 함수로 오버로드된 경우 연산자의 상한은 이 연산자의 피연산자는 해당 매개변수 목록의 수와 같습니다.
    • 추신: 오버로드된 연산자는 기본 매개변수를 가질 수 없습니다.
    • 추신: 오버로드할 수 없는 연산자는 다음과 같습니다: ., .*, ::, ?:,sizeof
  3. 연산자 오버로딩을 통해 연산자의 원래 기능을 변경할 수 있습니다.A

    • A. 피연산자 유형
    • B. 피연산자 수
    • C. 우선순위
    • D. 조합
  4. 다음과 같은 클래스 정의가 있습니다.

class Myclass{
    
    
	public:
	___________
	private:
		int data;
};

Myclass 클래스의 스트림 입력 연산자 ">>"를 오버로드하여 Myclass 클래스 개체의 데이터 멤버 데이터 값이 "cin>>data 형식으로 프로그램에서 변경될 수 있도록 하려는 경우; "이면 공백의 선언문은 다음과 같아야 합니다.A

  • A.friend istream& 연산자 >> (istream&은 Myclass& a);
  • B.friend istream& 연산자 >> (istream&은 Myclass a);
  • C.istream& 연산자 >> (istream&은 Myclass& a);
  • D.istream& 연산자 >> (istream&은 Myclass a);
  1. C++ 컴파일러가 오버로드된 함수를 구별하는 데 의미가 없는 정보는 다음과 같습니다.返回值类型

건설과 파괴

  1. 다음과 같은 클래스 정의가 있습니다.
class Point{
    
    
	int xx,yy;
	public:
		Point():xx(0),yy(0){
    
    }
		Point(int x,int y):xx(x),yy(y){
    
    }
};

명령문이 실행되면

Point a(2),b[3],*c[4]

그런 다음 Point 클래스의 생성자가 호출되는 횟수는 다음과 같습니다.4

  1. 다음 경우에는 복사 생성자가 호출되지 않습니다.B

    • A. 객체를 사용하여 동일한 클래스의 다른 새 객체를 초기화하는 경우
    • B. 클래스의 객체를 클래스의 다른 객체에 할당하는 경우
    • C. 함수의 형식 매개변수는 클래스의 객체이므로, 형식 매개변수와 실제 매개변수를 결합하기 위해 함수를 호출할 때,
    • D. 함수의 반환값은 클래스의 객체이며, 함수가 실행되면 반환값을 반환한다.
  2. 파생 클래스 생성자와 소멸자에 대한 다음 설명 중 잘못된 것은 무엇입니까?D

    • A. 파생 클래스의 생성자는 기본 클래스의 생성자를 암시적으로 호출합니다.
    • B. 기본 클래스에 기본 생성자가 없는 경우 파생 클래스는 생성자를 정의해야 합니다.
    • C. 파생 클래스 객체를 생성할 때 기본 클래스의 생성자를 먼저 호출한 다음 파생 클래스의 생성자를 호출합니다.
    • D. 파생 클래스 객체를 소멸시킬 때는 먼저 기본 클래스의 소멸자를 호출한 다음 파생 클래스의 소멸자를 호출한다.
  3. 클래스 정의에 대해 다음 설명 중 잘못된 것은 무엇입니까 B?

    • A. 정의된 복사 생성자가 없으면 컴파일러는 복사 생성자를 생성합니다.
    • B. 정의된 기본 생성자가 없으면 컴파일러는 반드시 기본 생성자를 생성합니다.
    • C. 생성자가 정의되지 않은 경우 컴파일러는 기본 생성자와 복사 생성자를 생성합니다.
    • D. 생성자와 복사 생성자가 정의된 경우 컴파일러는 생성자를 생성하지 않습니다.

다형성, 상속, 권한

  1. 기본 클래스와 파생 클래스 간의 관계에 대한 다음 설명 중 올바른 것은 무엇입니까?D

    • A. 각 클래스는 최대 하나의 직접 기본 클래스를 가질 수 있습니다.
    • B. 파생 클래스의 멤버는 기본 클래스의 모든 멤버에 액세스할 수 있습니다.
    • C. 기본 클래스의 생성자는 파생 클래스의 생성자 본문에서 호출되어야 합니다.
    • D. 기본 클래스의 멤버를 상속하는 것 외에도 파생 클래스는 새 멤버를 정의할 수도 있습니다.
  2. 클래스 정의에 대한 다음 설명 중 올바른 것은 무엇입니까?B

    • A. 클래스 정의에는 데이터 멤버와 함수 멤버의 선언이 포함됩니다.
    • 나. 클래스 멤버의 기본 접근 권한은 보호됩니다.
    • C. 데이터 멤버는 비공개로 선언되어야 합니다.
    • D. 멤버 함수는 클래스 외부에서만 정의할 수 있습니다.
  3. 파생 클래스가 보호된 방식으로 기본 클래스를 상속하는 경우 파생 클래스에 있는 원래 기본 클래스의 보호 멤버 및 이중 멤버의 액세스 특성은 각각 다음과 같습니다.D

    • A.public 과 public
    • B. 공개 및 보호
    • C.보호와 공개
    • D.보호하다(protected)와 보호하다(protected)
  4. 상속과 파생에 관한 다음 설명 중 옳은 것은 무엇입니까?C

    • A. 파생 클래스는 기본 클래스의 보호된 멤버에 액세스할 수 없습니다.
    • B. 가상 기본 클래스인 클래스는 인스턴스화할 수 없습니다.
    • C. 파생 클래스는 기본 클래스의 생성자에 매개 변수를 전달해야 합니다.
    • D. 가상 함수는 파생 클래스에서 다시 구현되어야 합니다.
    • 분석: 파생 클래스는 기본 클래스의 보호된 멤버에 액세스할 수 있지만 기본 클래스의 전용 멤버에는 액세스할 수 없습니다. 가상 기본 클래스인 클래스를 인스턴스화할 수 있습니다. 파생 클래스에서 가상 함수가 다시 구현되지 않으면 기본 클래스의 멤버 함수가 계속 사용됩니다.
  5. 다음 코드 조각에는 세 가지 클래스가 선언되어 있습니다.

class Person {
    
    };
class Student:public Person {
    
    };
class Undergraduate:Student{
    
    };

다음 클래스 간의 관계에 대한 설명 중 옳지 않은 것은 무엇입니까?B

  • A. Person 클래스는 Undergraduate 클래스의 기본 클래스입니다.
  • B. 학부생 클래스는 학생 클래스로부터 공개적으로 상속됩니다.
  • C. 클래스 Student는 Person 클래스의 파생 클래스입니다.
  • D. 학부 클래스는 Person 클래스의 파생 클래스입니다.
  • 분석: 상속 방법을 지정하지 않으면 기본값은 개인 상속입니다.
  1. 클래스 상속에 대한 다음 설명 중 잘못된 것은 무엇입니까?D

    • A. 상속을 통해 소프트웨어 재사용을 실현할 수 있습니다.
    • B. 가상 기본 클래스는 다중 상속으로 인한 모호성 문제를 해결할 수 있습니다.
    • C. 파생 클래스 생성자는 기본 클래스 생성자를 호출하는 역할을 담당합니다.
    • D. 파생 클래스는 기본 클래스의 전용 멤버를 상속하지 않습니다.
    • 분석: 세 가지 상속 방법 중 파생 클래스는 기본 클래스의 private 멤버를 상속하지만 직접 접근할 수 없으며, 파생 클래스의 friend 함수를 통해 기본 클래스의 private 멤버에 접근할 수 있다.
  2. 가상 기본 클래스에 대한 다음 설명 중 잘못된 것은 무엇입니까?B

    • A. 가상 기본 클래스를 설정하는 목적은 모호성을 없애는 것입니다.
    • B. 가상 기본 클래스의 생성자는 가상이 아닌 기본 클래스 다음에 호출됩니다.
    • C. 동일한 레이어에 여러 개의 가상 기본 클래스가 포함되어 있는 경우 이러한 가상 기본 클래스의 생성자는 설명된 순서대로 호출됩니다.
    • D. 가상 클래스가 비가상 클래스에서 파생된 경우에도 기본 클래스 생성자가 먼저 호출된 다음 파생 클래스 생성자가 호출됩니다.
  3. 다형성에 대한 다음 설명 중 옳지 않은 것은 무엇입니까?C

    • A. C++ 언어의 다형성은 컴파일 타임 다형성과 런타임 다형성으로 구분됩니다.
    • B. 함수 오버로딩을 통해 컴파일 타임 다형성을 구현할 수 있습니다.
    • C. 템플릿과 가상 함수를 통해 런타임 다형성을 구현할 수 있습니다.
    • D. 런타임 다형성을 달성하기 위한 메커니즘을 동적 바인딩이라고 합니다.
    • 컴파일 타임 다형성은 함수 오버로딩과 템플릿 본문을 통해 달성되고, 런타임 다형성은 가상 함수 본문을 통해 달성됩니다.
  4. 상속과 파생에 관한 다음 설명 중 옳은 것은 무엇입니까?D

    • A. 파생 클래스에서 새로 정의된 멤버 함수는 기본 클래스의 모든 멤버에 액세스할 수 있습니다.
    • B. 비공개 상속의 경우 파생 클래스에 새로 정의된 멤버 함수는 기본 클래스의 보호된 멤버에 액세스할 수 없습니다.
    • C. 기본 클래스 객체는 파생 클래스 객체에 할당될 수 있습니다.
    • D. 파생 클래스가 기본 클래스의 순수 가상 함수를 구현하지 않는 경우 파생 클래스는 추상 클래스입니다.

데이터 유형

  1. 다음 유형 선언자 그룹 중 동일한 의미를 갖는 그룹은 다음과 같습니다.B
    • A.unsigned long int 와 long
    • B.signed short int 와 short
    • C.부호 없는 짧은 和 짧은
    • D.short int 와 int

입력 및 출력 스트림

  1. C++ 사전 정의된 스트림 객체에 대한 다음 설명 중 올바른 것은 무엇입니까?A

    • A.cin은 C++에서 미리 정의된 표준 입력 스트림 개체입니다.
    • B.cin은 C++에서 미리 정의된 표준 입력 스트림 클래스입니다.
    • C.cout은 C++ 사전 정의된 표준 입력 스트림 객체입니다.
    • D.cout은 C++ 사전 정의된 표준 입력 스트림 클래스입니다.
  2. 다음과 같은 일련의 명령문이 있습니다.

char str[10];
cin>>str;

키보드에서 "I love this game"을 입력하면 str의 문자열은 D
- A. "I love this game"
- B. "I love thi"
- C. "I love"
- ​​​​D. "I" 입니다.
- 구문 분석: cin은 C++에서 미리 정의된 표준 입력 스트림 개체입니다. cin을 사용하여 문자열을 수신하는 경우 "space", "TAB" 및 "carriage return"을 만나면 종료됩니다.

  1. C++ 시스템은 표준 데이터 흐름을 위해 4개의 개체를 미리 정의합니다. 다음 옵션 중 이 개체 유형에 속하지 않는 것은 무엇입니까?D

    • A.cout
    • B.cin
    • C.cerr
    • D. 채팅
    • 분석: C++ 표준 데이터 흐름 개체는 cout, cin, cerr 및 clog입니다.
  2. 다음 명령문은 모두 프로그램 실행 시 첫 번째 출력 명령문으로, 한 명령문의 출력 효과가 다른 세 명령문과 다릅니다.D

    • A.cout<<내부<<12345
    • B.cout<<왼쪽<<12345
    • C.cout<<오른쪽<<12345
    • D.cout<<setw(6)<<12345
    • 분석: 옵션 A, B, C는 모두 "12345"를 출력하고, 옵션 D는 "12345"를 출력합니다.

주형

  1. 템플릿에 대한 다음 설명 중 올바른 것은 무엇입니까?B

    • A. 함수 템플릿에는 일반 매개변수가 포함될 수 없습니다.
    • B. 함수 템플릿의 인스턴스는 함수 정의입니다.
    • C. 클래스 템플릿의 멤버 함수는 템플릿 함수일 수 없습니다.
    • D. 클래스 템플릿을 사용하여 객체를 정의할 때 템플릿 매개변수를 생략해서는 안 된다.
  2. 다음 중 함수 템플릿에 대한 설명 중 잘못된 것은 무엇입니까?D

    • A. 템플릿 실제 매개변수 테이블에서 얻은 정보와 템플릿 기능 실제 매개변수 테이블에서 얻은 정보가 충돌하는 경우 템플릿 실제 매개변수 테이블의 정보가 우선합니다.
    • B. 일반 매개변수에 해당하는 템플릿 실제 매개변수는 어떠한 경우에도 생략할 수 없습니다.
    • 다. 템플릿 함수의 형식 매개변수 목록에 가상형 매개변수가 나타나지 않는 경우, 템플릿 실제 매개변수는 생략할 수 없다.
    • D. 템플릿 인수 목록은 비워둘 수 없습니다.

추천

출처blog.csdn.net/qq_50791664/article/details/131559054