제 네이버 블로그에서 그대로 가져왔습니다 ⇒ https://blog.naver.com/racoo_oon/222435357391
내용은 동일하고 시간복잡도 문제는 제외하였습니다.
1. int a[10][20]에서 배열이 차지하는 메모리 공간의 크기는 얼마인가? int형은 4바이트라고 하자.
: 800바이트
2. float a[100]으로 선언된 배열의 시작 주소를 1000번지라고 할 때 배열의 10번째 요소의 주소는 몇 번지인가?
: base + 9 * sizeof(int) = 1036번지
3. 다음 배열 중에서 크기가 가장 큰 배열은?
: double array2[10]; (크기 8*10)
4. 크기가 10인 배열 two[]를 선언하고 2의 제곱 값들을 저장 (2^0부터 2^9까지), 전체 요소 값 출력
#include <stdio.h>
#include <math.h>
void printarray(int array[10]) {
for (int i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
int main() {
int two[10];
// pow 함수 이용
for (int i = 0; i < 10; i++) {
two[i] = pow(2, i);
}
// pow 함수 이용 x
for (int i = 0; i < 10; i++) {
if (i == 0) two[i] = 1;
else {
two[i] = 1;
for (int j = 1; j <= i; j++) {
two[i] *= 2;
}
}
}
printarray(two);
}
pow를 이용하는 게 훨씬 간단하다. 라이브러리를 잘 활용하자..
5. 이름, 나이, 월급 등이 포함된 구조체 person 정의
typedef struct {
char name[10];
int age;
float income;
char dream[100];
} person;
사람을 이름 나이 월급만으로 나타내기엔 너무 암울한거같아서 dream도 넣어줬다. 꿈은 크게 가지세요.
6. 복소수 자료형 정의
#include <stdio.h>
typedef struct {
float real;
float imag;
} Complex;
int main() {
Complex c1 = { 1,0 };
Complex c2 = { 0,1 };
}
7. 복소수 덧셈 함수
// 6번에서 정의한 구조체를 그대로 이용.
Complex complex_add(Complex a, Complex b) {
Complex c;
c.real = a.real + b.real;
c.imag = a.imag + c.imag;
return c;
}
8. 크기가 n인 배열 array에서 임의의 위치 loc에 정수 value를 삽입하는 함수 작성 (원소 갯수 = items, items<n)
#define n 100
#include <stdio.h>
void insert(int array[n], int loc, int value, int items) {
for (int i = items; i >= loc; i--) {
array[i + 1] = array[i];
}
array[loc] = value;
}
int main() {
int array[n] = { 1, 2, 3, 4, 5, 6, 7 };
insert(array, 3, 10, 7);
for (int i = 0; i <= 7; i++) {
printf("%d ", array[i]);
}
}
10. array의 loc 위치에 있는 정수를 삭제하는 함수 delete()
int* delete(int array[n], int loc, int items) {
static int temp[n];
for (int i = 0; i < loc; i++) {
temp[i] = array[i];
}
for (int i = loc + 1; i < items; i++) {
temp[i - 1] = array[i];
}
return temp;
}
11. 1개의 정수와 크기가 20인 문자열로 이루어진 구조체를 저장할 수 있도록 동적 메모리 할당, 저장, 반납
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int num;
char str[20];
} mystruct;
int main() {
mystruct* s;
s = (mystruct*)malloc(sizeof(mystruct));
if (s == NULL) exit(1);
strcpy(s->str, "just testing");
s->num = 100;
free(s);
}
'Computer Science > DataStructure' 카테고리의 다른 글
[자료구조] C언어로 쉽게 풀어쓴 자료구조 : 6장 연결 리스트 Ⅰ (0) | 2022.04.13 |
---|---|
[자료구조] C언어로 쉽게 풀어쓴 자료구조 : 3장 배열, 구조체, 포인터 (0) | 2022.04.12 |