프로그래밍 언어 활용 - 1

데이터 입출력

  • 개요
    키보드로부터 데이터를 입력받아 화면이나 파일로 출력하는 것
  • C 문제
    6과 4를 입력받아 두 수의 덧셈 결과를 출력하는 프로그램의 결과
#include <stdio.h>
main()
{
	int i, j, k;
    scanf("%d %d", &i, &j);
    k = i + j;
    printf("%d\n", k);
}
  • 해설 및 답
  1. scanf()를 통해 i = 4, j = 6를 입력받음
  2. k = i + j이므로, 4 + 6 = 10으로 k = 10
  3. printf()로 k를 출력하면 10이 출력
  4. 따라서 출력 결과는 10
  • Java 문제
    4를 입력받은 정수를 가지고 여러 연산을 수행한 후 출력하느 프로그램의 출력 결과
import java.util.Scanner;
public class Test
{
	public static void main(String[] args)
    {
    	Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        System.out.printf("a * 3 = %d\n", a * 3);
        System.out.println("a / 2 = " + (a / 2));
        System.out.print("a - 1 = " + (a - 1));
        scan.close();
    }
}
  • 해설 및 답
  1. Scanner 클래스를 이용해 키보드로 입력 값을 받는다.
  2. 객체 변수 scan을 생성하여 입력 값을 받음
  3. 정수형 변수 a를 선언하고 입력받은 정수 값인 4를 저장
  4. printf(), println(), print()의 연산 방법으로 출력
  5. 따라서 결과는 아래와 같다.

    a * 3 = 12
    a / 2 = 2
    a - 1 = 3

  • 헝가리안 표기법(Hungarian Notation)
    변수명 작성 시 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성하는 방법
    • 예시
      int i_InputA : 정수형 변수
      double d_Result : 배정도 실수형 변수

    • 주요 자료형

      종류자료형크기(C)크기(Java)
      정수형int4Byte4Byte
      문자형char1Byte2Byte
      실수형float4Byte4Byte
      double8Byte8Byte
    • 주요 서식 문자열

      서식 문자열의미
      %d정수형 10진수의 입출력에 사용
      %o정수형 8진수의 입출력에 사용
      %x정수형 16진수의 입출력에 사용
      %c문자의 입출력에 사용
      %s문자열의 입출력에 사용
      %f소수점을 포함한 실수의 입출력에 사용
      출력시 소수점 이하는 기본적으로 6자리 출력
    • 주요 제어문자

      제어문자기능
      \n커서를 다음 줄의 처음으로 이동(new line)
      \t커서를 일정 간격 띄움(tab)
      \O널 문자 출력
    • 연산자 우선순위(높음 - 낮음)
      단항 - 산술 - 시프트 - 관계 - 비트 - 논리 - 조건 - 대입 - 순서

제어문

  • 개요
    서술된 순서에 따라 무조건 위에서 아래로 실행되는 프로그램의 순서를 변경할 때 사용
  • C 문제
#include<stdio.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;
        default: grade = 'F';
        }
        if(grade != 'F')
        	printf("%d is %c %s\n", i + 1, grade, str);
    }
}
  • 해설 및 답
    반복문 실행 결과
iscore[i]score[i]/0gradegrade!='F'출력
0868BTrue1 is B Rank
1535FFalse
2959ATrue3 is A Rank
3767CFalse4 is C Rank
4616FTrue
5

따라서 결과는
1 is B Rank
3 is A Rank
4 is C Rank

  • 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 + " ");
        }
    }
}
  • 해설 및 답
    while 문 반복 결과
istrstr.length()str.charAt(i)y[]
0agile5aa
1gag
2iagi
3lagil
4eagile
5

for 문 반복 결과

piy[i]출력
14ee1
23le1 l2
32ie1 l2 i3
41ge1 l2 i3 g4
50ae1 l2 i3 g4 a5

따라서 결과는 다음과 같다.

e1
e1 l2
e1 l2 i3

좋은 웹페이지 즐겨찾기