
총 75개
-
[건국대학교 컴퓨터프로그래밍2 A+][2024 Ver] 과제12025.01.201. 포인터 변수 char 포인터 변수 s에 Kate배열의 첫번째 원소의 포인터값이 들어간다. printf를 이용하여 s의 첫번째 원소의 포인터값, s배열 자체의 포인터값을 출력한다. 그 뒤 printf함수를 반복사용하여 s의 첫번째 원소의 포인터값을 %s로 출력한다. (따라서 널문자까지 배열에 저장된 값을 다 출력하기 때문에 Kate가 출력됨) / 그 뒤 s[2]에 저장된 값을 %c로 출력한다. (따라서 문자 t가 출력됨) 2. char 배열 char 배열 a에 "Kate"값을 대입한다. printf를 이용하여 a의 첫번째 원소의...2025.01.20
-
큐와 스택에 대하여 알아보기2025.01.191. 큐 큐(Queue)는 일렬로 줄을 서있는 자료구조로, 먼저 들어온 데이터가 먼저 나가는 선입선출(First-In-First-Out, FIFO) 원칙을 따른다. 큐는 데이터의 순서가 중요한 상황에서 유용하게 활용되며, 삽입(Enqueue)과 삭제(Dequeue)의 두 가지 주요 연산을 지원한다. 큐의 특징으로는 선입선출 원칙, 제한된 삽입/삭제 위치, 크기 제한, 언더플로우/오버플로우 방지 등이 있다. 큐는 작업 스케줄링, 대기열 관리, 프로세스 통신 등에 활용된다. 2. 스택 스택(Stack)은 후입선출(Last-In-Firs...2025.01.19
-
시스템 프로그램 어택랩(attack lab) 과제 보고서2025.05.081. Phase_1 Phase_1에서는 getbuf 함수에 오버플로우가 일어날 값을 입력하고 touch1의 주소값을 입력하여 touch1이 실행되게 한다. asm.txt 파일을 확인하여 getbuf와 touch1의 어셈블리 코드를 찾아 필요한 값을 입력한다. 2. Phase_2 Phase_2에서는 touch2 함수를 실행하기 위해 rdi 레지스터에 cookie 값을 넣어주고 touch2 함수로 이동하는 코드를 삽입한다. 이를 위해 gdb를 실행하여 getbuf 직전의 rdi 값을 확인하고, buffer.s 파일을 작성하여 필요한 값...2025.05.08
-
재귀알고리즘의 정의와 단점과 이를 극복하기 위한 방안2025.01.021. 재귀알고리즘의 정의와 작동 방식 재귀알고리즘은 자기 자신을 호출하여 문제를 해결하는 알고리즘으로, 함수 내에서 자기 자신을 다시 호출하면서 작동한다. 이러한 재귀 호출은 함수 호출 스택에 쌓이며, 재귀가 끝나면 스택에서 제거된다. 재귀알고리즘은 간단하게 작성할 수 있으며, 일부 문제에서는 반복문을 사용하는 것보다 더 효율적인 해결 방법을 제공한다. 그러나 재귀 호출이 많아지면 성능 저하 및 스택 오버플로우 등의 문제가 발생할 수 있으므로 적절한 조절이 필요하다. 2. 재귀알고리즘의 단점 재귀알고리즘은 반복문보다 코드의 가독성이...2025.01.02
-
재귀함수와 포인터의 개념 및 활용2025.01.191. 재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수로, 주어진 문제를 더 작은 하위 문제로 분해하여 해결하는 방식으로 동작합니다. 재귀함수는 종료 조건을 명시적으로 정의해야 하며, 이 조건이 충족될 때 함수 호출을 중단하고 반환값을 계산합니다. 재귀함수는 분할 정복 알고리즘, 백트래킹, 데이터 구조 순회, 수학적 계산 및 문제 해결, 문자열과 배열 처리 등 다양한 분야에서 활용됩니다. 2. 포인터 포인터는 메모리의 주소를 저장하는 변수로, C언어에서 메모리 관리와 복잡한 데이터 구조 구현에 중요한 역할을 합니다. 포인터는 메모...2025.01.19
-
C언어 스케치 연습문제 솔루션 - 제 06장 함수2025.04.301. C 프로그래밍 C 프로그램은 여러 함수의 집합으로 구성되는 프로그램이다. 라이브러리 함수는 간단히 라이브러리(library) 또는 표준 함수(standard function)라고도 부른다. 함수몸체(function body)는 중괄호 {}로 시작하여 중괄호로 종료된다. 함수몸체에서 변수선언 문장은 함수 내부에서만 사용할 수 있다. 하나의 응용 프로그램은 하나의 main() 함수와 여러 개의 다른 함수로 구성되며 필요에 따라 여러 소스 파일로 나누어 프로그래밍할 수 있다. return 문장은 함수에서 반환값을 전달하는 목적과 함...2025.04.30
-
C++ report 정적멤버2025.01.161. 정적멤버데이터 정적멤버데이터는 클래스의 모든 객체에서 공유되는 데이터 멤버입니다. 이는 클래스 내에서 선언되며, 객체 생성과 상관없이 존재합니다. 정적 멤버 데이터는 클래스 이름을 통해 직접 접근할 수 있습니다. 2. 정적멤버함수 정적 멤버 함수는 클래스의 모든 객체에서 공유되는 함수입니다. 이 함수는 클래스 이름을 통해 직접 호출할 수 있으며, 객체 생성과 상관없이 존재합니다. 정적 멤버 함수는 일반 멤버 함수와 달리 this 포인터를 사용할 수 없습니다. 3. 2차원 배열 2차원 배열은 행과 열로 구성된 배열입니다. 2차원...2025.01.16
-
매개변수를 사용하는 프로그램 제작2025.01.161. 매개변수 매개변수란 함수를 호출할 때 함수로 정보를 전달하는 수단입니다. 매개변수의 종류로는 호출하는 함수(caller)의 매개변수인 실 매개변수와 호출된 함수(callee)의 매개변수인 형식 매개변수로 나뉩니다. 2. 매개변수 1개를 가지는 함수 calcAverageWeight 라는 이름의 평균체중계산기를 만들었습니다. 키를 이용하여 평균체중을 계산해주므로 함수정의 부분에서 키를 입력 받을 형식 매개변수 height를 사용하였고, 함수안에는 평균체중을 도출하는 식과 printf 출력문이 있습니다. 3. 매개변수 2개를 가지는...2025.01.16
-
[객체지향프로그래밍] 추상클래스와 추상클래스의 순수가상함수를 파생클래스에서 구현하는 프로그램을 작성하시오.2025.05.161. 파생 클래스 파생 클래스(derived class)란 기초 클래스의 특성을 물려받아 새롭게 정의된 클래스이다. 파생 클래스는 첫 번째, 반드시 자신만의 생성자를 작성해야 한다. 두 번째, 기초 클래스의 접근 가능한 모든 멤버 변수가 저장된다. 세 번째, 기초 클래스의 접근 가능한 모든 멤버 변수를 사용할 수 있다. 네 번째, 필요한 만큼 멤버 변수를 추가할 수 있다. 2. 오버라이딩 오버라이딩(overriding)은 이미 정의되어있는 함수를 무시하고 동일한 이름의 함수를 새롭게 정의하는 것을 의미한다. 오버라이딩은 멤버 함수의...2025.05.16
-
c로 배우는 쉬운 자료구조 개정3판 2단원 연습문제2025.01.171. 배열을 사용한 학생 성적 처리 16개 학생의 국어, 영어, 수학 성적을 배열에 저장하고 총점과 평균을 계산하여 출력하는 프로그램을 작성합니다. 배열을 사용하여 학생들의 성적 정보를 효율적으로 관리할 수 있습니다. 2. 포인터를 사용한 실수 값 교환 두 개의 실수 값을 포인터를 사용하여 교환하고 출력하는 함수를 작성합니다. 포인터를 활용하면 변수의 값을 직접 변경할 수 있어 효율적인 데이터 처리가 가능합니다. 3. 구조체를 이용한 주소록 프로그램 이름, 전화번호, 주소, 생일 정보를 저장하는 주소록 프로그램을 작성합니다. 구조체...2025.01.17