정처기 실기 : Programming Lang. 기출

m_ngyeong·2024년 7월 27일
0
post-thumbnail

Programming Lang.


문제 01.

x, y = 100, 200
print(x==y)

✏️ False

문제 02.

class Parent { 
	void show( ) { System.out.println("parent"); }
}
class Child extends Parent { 
	void show( ) {  System.out.println("child"); }
}
public class Test {
	public static void main(String[ ] args) {
		Parent pa = new Child( );
		pa.show( );
	}
}

✏️ child

문제 03.

lol = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
	for item in sub:
		print(item, end=' ')
	print()

✏️
[1, 2, 3]
7
1 2 3
4 5
6 7 8 9

문제 04.

class Parent {
	int compute(int num) {
		if(num <= 1) return num;
		return compute(num - 1) + compute(num - 2);
	}
}
class Child extends Parent {
	int compute(int num) {
		if(num <= 1) return num;
		return compute(num - 1) + compute(num - 3);
	}
}
public class Test {
	public static void main(String[] args) {
		Parent obj = new Child();
		System.out.print(obj.compute(4));
	}
}

✏️ 1
compute(4-1) + compute(4-3)
= compute(3-1) + compute(3-3) + 1
= compute(2-1) + compute(2-3) + 0 + 1
= compute(1) + compute(-1) + 0 + 1
= 1

문제 06.

public class Test {
	static int[] arr() {
		int a[] = new int[4];
		int b = a.length;
		for(int i = 0; i < b; i++)
			a[i] = i;
		return a;
	}
	public static void main(String[] args) {
		int a[] = arr();
		for(int i = 0; i < a.length; i++)
			System.out.print(a[i] + " ");
	}
}

✏️ 0 1 2 3

문제 07.

public class Test {
	public static void main(String[] args) {
		System.out.print(Test.check(1));
	}
	static String check(int num){
		return (num >= 0) ? "positive" : "negative";
	}
}

✏️ positive

문제 08.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
	int v1 = 0;
	int v2 = 35;
	int v3 = 29;
	if (v1 > v2 ? v2 : v1)
		v2 = v2 << 2;
	else
		v3 = v3 << 2;
	printf("%d", v2 + v3);
	return 0;
}

✏️ 151
if(v1) → v1의 값이 0이기 때문에 거짓 → else문으로 이동

  • << : 오른쪽에 0 추가
  • >> : 왼쪽에 0 추가

문제 09.

#include <stdio.h>

void main() {
	int m = 4620;
	int a = m / 1000;
	int b = m % 1000 / 500;
	int c = m % 500 / 100;
	int d = m % 100 / 10;
	printf("1000원의 개수 : %d\n", a);
	printf("500원의 개수 : %d\n", b);
	printf("100원의 개수 : %d\n", c);
	printf("10원의 개수 : %d\n", d);
}

✏️
1000원의 개수 : 4
500원의 개수 : 1
100원의 개수 : 1
10원의 개수 : 2

문제 10.

#include <stdio.h>
#include <ctype.h>

int main( ) {
	char *p = "It is 8";
	char result[100];
	int i;
	for(i = 0; p[i] != '\0'; i++) {
		if(isupper(p[i]))
			result[i] = (p[i] - 'A'+ 5) % 25 + 'A';
		else if(islower(p[i]))
			result[i] = (p[i] - 'a'+ 10) % 26 + 'a';
		else if(isdigit(p[i]))
			result[i] = (p[i] - '0'+ 3) % 10 + '0';
		else if(!(isupper(p[i]) || islower(p[i]) || isdigit(p[i])))
			result[i] = p[i];
	}
	result[i] = '\0';
	printf("변환된 문자열 : %s\n", result);
	return 0;
}

✏️ 변환된 문자열 : Nd sc 1

문제 11.

#include <stdio.h>
void main() {
	int n[] = { 5, 4, 3, 2, 1 };
	for (int i = 0; i < 5; i++)
		printf("%d", n[(i+1)%5]);
}

✏️ 43215

문제 12.

#include <stdio.h>
void main() {
	int n[] = { 73, 95, 82 };
	int sum = 0;
	for (int i = 0; i < 3; i++)
		sum += n[i];
	switch (sum / 30) {
		case 10:
		case 9: printf("A");
		case 8: printf("B");
		case 7:
		case 6: printf("C");
		default: printf("D");
	}
}

✏️ BCD
sum = 73+95+82 = 250
250/30 = 8

문제 13.

#include <stdio.h>
void main() {
	int E[] = { 64, 25, 12, 22, 11 };
	int n = sizeof(E) / sizeof(E[0]);
	int i = 0;
	do {
		int j = i + 1;
		do {
			if (E[i] > E[j]) {
			int tmp = E[i];
			E[i] = E[j];
			E[j] = tmp;
			}
			j++;
		} while (j < n);
		i++;
	} while (i < n - 1);
	for (int i = 0; i <= 4; i++)
		printf("%d ", E[i]);
}

✏️ 11 12 22 25 64
int = 4byte
n = (4byte*5) / 4byte = 5

문제 14.

#include <stdio.h>
void main() {
	int c = 0;
	for (int i = 1; i <= 2023; i++)
		if (i % 4 == 0)
			c++;
	printf("%d", c);
}

✏️ 505
4, 8, 12, 16.....
2023 / 4 = 505...3

문제 15.

#include <stdio.h>
void main() {
	char* p = "KOREA";
	printf("1. %s\n", p);
	printf("2. %s\n", p + 1);
	printf("3. %c\n", *p);
	printf("4. %c\n", *(p + 3));
	printf("5. %c\n", *p + 4);
}

✏️
1. KOREA
2. OREA
3. K
4. E
5. O

문제 16.

#include <stdio.h>
struct insa {
	char name[10];
	int age;
	struct insa* impl_a;
	struct insa* impl_b;
};

void main() {
	struct insa p1 = { "Kim", 28, NULL, NULL };
	struct insa p2 = { "Lee", 36, NULL, NULL };
	struct insa p3 = { "Park", 41, NULL, NULL };
	p1.impl_a = &p2;
	p2.impl_b = &p3;
	printf("%s\n", p1.impl_a -> name);
	printf("%d", p2.impl_b -> age);
}

✏️
Lee
41

문제 17.

#include <stdio.h>
#include <string.h>

void inverse(char *str, int len) {
	for(int i = 0, j = len - 1; i < j; i++, j--) {
		char ch = str[i];
		str[i] = str[j];
		str[j] = ch;
	}
}

int main() {
	char str[100] = "ABCDEFGH";
	int len = strlen(str);
	inverse(str, len);
	for(int i = 1; i < len; i += 2) {
		printf("%c", str[i]);
	}
	return 0;
}

✏️ GECA
len = 8, i = 0, j = 7
inverse(str, len); → str[] = "HGFEDCBA"

문제 18.

#include <stdio.h>
char n[30];
char* getname() {
	printf("이름 입력 : ");
	gets(n);
	return n;
}

void main() {
	char* n1 = getname();
	char* n2 = getname();
	char* n3 = getname();
	printf("%s\n", n1);
	printf("%s\n", n2);
	printf("%s\n", n3);
}

문제 19.

#include <stdio.h>
int isPerfectNum(int num) {
	int sum = 0;
	for (int i = 1; i < num; i++) {
		if (num % i == 0)
			sum += i;
	}
	if (num == sum) return 1;
	else return 0;
}

void main() {
	int r = 0;
	for (int i = 1; i <= 100; i++)
		if (isPerfectNum(i))
			r += i;
	printf("%d", r);
}

✏️ 34
i = 1 : 1!=0, return 0
i = 2 : return 0
i = 3 : return 0
...
i = 6 : sum = 0 + 1 + 2 + 3 = 6, return 1 → r = 0 + 6
...
i = 28 : sum = 0 + 1 + 2 + 4 + 7 + 14 = 28, return 1 → r = 6 + 28
...



참고,
시나공

profile
ʚȉɞ

0개의 댓글