자격증/정보처리기사
[정보처리기사] 실기 요약 정리 프로그래밍 언어 활용(추후에 포스팅)
윤규헌
2023. 7. 21. 05:59
1. 데이터 입출력
데이터 입출력
- 키보드로부터 데이터를 입력받아 화면이나 파일로 출력하는 것
- 정보처리기사에서는 C와 Java의 비중이 높기에 기본적인 프로그램 구조를 이해하고 프로그램 코드를 읽고 해석하는 방법을 배우겠습니다.
- 헝가리안 표기법
- 자료형
- C언어의 입출력 함수
- Java의 입출력 함수
- 서식 지정자와 제어 문자
- 연산자의 우선순위
헝가리안 표기법
- 변수명 작성 시, 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성하는 방법
- 주요 자료형
종류 | 자료형 | C언어 크기 | Java 크기 |
정수형 | int | 4 Byte | 4 Byte |
문자형 | char | 1 Byte | 2 Byte |
실수형 | float | 4 Byte | 4 Byte |
double | 8 Byte | 8 Byte |
주요 서식 문자열
서식 문자열 | 의미 |
%d | 정수형 10진수의 입출력에 사용된다. |
%o | 정수형 8진수의 입출력에 사용된다. |
%x | 정수형 16진수의 입출력에 사용된다. |
%c | 문자의 입출력에 사용된다 |
%s | 문자열의 입출력에 사용된다 |
%f | 소수점을 포함한 실수의 입출력에 사용된다. 기본적으로 소수점 이하는 6자리가 출력된다. |
주요 제어 문자
제어 문자 | 기능 |
\n | 커서를 다음 줄의 처음으로 이동한다. |
\t | 커서를 일정 간격 띄운다. |
\0 | 널 문자 출력 |
연산자 우선순위
대분류 | 중분류 | 연산자 | 결합규칙 | 우선순위 |
단항 연산자 | 단항 연산자 | !(논리 not), ~(비트 not), ++(증가), --(감소), sizeof(기타) | ← | 높음 ↑ ↓ 낮음 |
이항 연산자 | 산술 연산자 | *, /, %(나머지) | → | |
+, - | ||||
시프트 연산자 | <<, >> | |||
관계 연산자 | <, <=, >=, > | |||
==, != | ||||
비트 연산자 | &(비트 and), ^(비트 xor), |(비트 or) | |||
논리 연산자 | &&(논리 and), ||(논리 or) | |||
삼항 연산자 | 조건 연산자 | ? : | → | |
대입 연산자 | 대입 연산자 | =, +=, -=, *=, /=, %=, <<=, >>= 등 | ← | |
순서 연산자 | 순서 연산자 | , | → |
2. 제어문
제어문
- 서술된 순서에 따라 무조건 위에서 아래로 실행되는 프로그램의 순서를 변경할 때 사용하는 명령문
C 문제
예제 : 다음 C 언어로 구현된 프로그램의 실행 결과를 확인하시오
#include <studio.h>
main()
{
int score[] = {86, 53 , 95, 76, 61};
char grade;
char str[] = "Rank";
for (int i = 0; i < 5; i++) {
switch (score[i] / 10) {
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
}
if (grade != 'F')
printf("%d is %c %s\n", i + 1, grade, str);
}
}
- 결과
1 is B Rank
3 is A Rank
4 is C Rank
5 is D Rank
Java 문제
예제 : 다음 JAva로 구현된 프로그램의 실행 결과를 확인하시오.
public class Test
{
public static void main(String[] args)
{
String str = "agile";
int x[] = { 1, 2, 3, 4, 5};
char y[] = new char[5];
int i = 0;
while (i < str.length()) {
y[i] = str.charAt(i);
i++;
}
for (int p : x) {
i--;
System.out.print(y[i]);
System.out.print(p + " ");
}
}
}
- 결과
e1 l2 i3 g4 a5
for 문
- 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문
- 형식
for (초기값; 최종값; 증가값)
실행 문장;
Switch 문
- 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문
- 형식
switch (수식) {
case 레이블1:
실행 문장1;
break;
case 레이블2:
실행 문장2;
break;
...
default:
실행 문장3;
}
if 문
- 조건에 따라 실행할 문장을 달리하는 문장
- 형식
if (조건) {
실행 문장;
else if {
실행 문장;
else {
실행 문장;
}
while문
- 조건이 참인 동안 실행한 문장을 반복 수행하는 제어문
- 형식
while (조건)
실행 문장;
break와 continue
- break : 반복문이나 switch 문 안에서 break가 나오면 블록을 벗어난다.
- continue : 반복문에서 continue가 나오면, continue 이후의 문장을 실행하지 않고 제어를 반복문의 처음으로 옮긴다.
3. 포인터
포인터
- 변수의 주소를 포인터라고 하며, 포인터를 저장할 수 있는 변수를 포인터 변수라고 한다.
포인터 표기 방법
char *s;
s = "katalina";
- s에 저장된 값은 문자열의 시작 주소이다.
- s의 값을 1 증가시킨다는 것은 현재 s가 가리키고 있는 문자의 주소에서 다음 문자의 주소로 가리키는 주소를 증가시킨다는 것이다.
- 문자 자료형의 크기는1Byte이므로, 다음 물리적 메모리의 주소는 1Byte 증가한 곳을 가리키는 것이다.
4. 구조체
구조체
- 배열이 자료의 형과 크기가 동일한 변수의 모임이라면, 구조체는 자료의 종류가 다른 변수의 모임이라 할 수 있다.
구조체의 정의
- 자료형을 하나 만드는 것을 의미한다
struct jikwon {
char name[10];
char jikwi[10];
int pay;
};