자격증/정보처리기사

[정보처리기사] 실기 요약 정리 프로그래밍 언어 활용(추후에 포스팅)

윤규헌 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;
};