반응형

데이터 입출력

  • 개요키보드로부터 데이터를 입력받아 화면이나 파일로 출력하는 것
  • 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. 따라서 결과는 아래와 같다.
  6. a * 3 = 12a - 1 = 3
  7. a / 2 = 2
  • 헝가리안 표기법(Hungarian Notation)변수명 작성 시 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성하는 방법
    • 예시double d_Result : 배정도 실수형 변수
    • int i_InputA : 정수형 변수
    • 주요 자료형종류 자료형 크기(C) 크기(Java)
      정수형 int 4Byte 4Byte
      문자형 char 1Byte 2Byte
      실수형 float 4Byte 4Byte
        double 8Byte 8Byte
    • 주요 서식 문자열서식 문자열 의미
      %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);
    }
}

해설 및 답반복문 실행 결과

i score[i] score[i]/0 grade grade!='F' 출력
0 86 8 B True 1 is B Rank
1 53 5 F False  
2 95 9 A True 3 is A Rank
3 76 7 C False 4 is C Rank
4 61 6 F True  
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 문 반복 결과

i str str.length() str.charAt(i) y[]
0 agile 5 a a
1     g ag
2     i agi
3     l agil
4     e agile
5        

for 문 반복 결과

p i y[i] 출력
1 4 e e1
2 3 l e1 l2
3 2 i e1 l2 i3
4 1 g e1 l2 i3 g4
5 0 a e1 l2 i3 g4 a5

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

e1

e1 l2

e1 l2 i3

반응형