정보처리기사

[오답노트] 프로그래밍 언어 활용

728x90

2. 다음은 C언어 소스 코드이다. 출력 결과로 알맞은 것은?

#include <stdio.h>

void main( ){ 
	int a = 10;

    printf("%d\n", a<<2);

    printf("%d\n", a>>2);
}
더보기

[정답]
40
2


[해설] 

- a라는 변수에 저장된 10을 2진수로 나타내면 1010이다. 

- 시프트 연산자 '<<'는 왼쪽으로 2비트 옮기므로 101000이 되고 10진수로 변환하면 40이다. 
- 시프트 연산자 '>>'는 오른쪽으로 2비트 옮기므로 a라는 변수에 저장된 1010을 오른쪽으로 2비트 옮기면 2진수로 10이 되므로 (맨 오른쪽 2비트는 없어진다) 2가 출력된다.

 

[메모]

비트연산에 대해 완벽하게 숙지하지 못한듯하다. 명확하게 공부해두자.

 

❓ C언어에서 정수표현

0은 False로 인식하고, 0 이외의 값은 True로 인식

 

❓ C++ 출력

cout 과 << 쉬프트 연산자 뒤에 출력할 것을 집어 넣으면 출력 됨

std::cout << [출력할 무언가];

출력할 것이 여러개라면 << 쉬프트 연산자를 중첩해서 사용

std::cout << "출력"
int num = 100;
std::cout << "숫자 : " << num
출력숫자 : 100

⚠ 기본적으로 cout을 따로 써도, 개행이 되지 않음

 

 

표준 출력의 개행 std::endl;을 이용하는 방법 (개행O)

std::cout << "출력내용1" << std::endl;
std::cout << "출력내용2" << std::endl;
출력내용1
출력내용2

 

 

18. 다음은 파이썬 언어의 소스 코드이다. 출력 결과로 알맞은 것은?

for i in range(0, 5):
  if i%3==0:
  	continue
  print(i)
더보기

[정답]
1

2

4

 


[해설] 

- i는 0이상에서 5미만일 때 반복하고, i가 3으로 나눠떨어지는 경우 continue를 만난다. 

- i가 3일 때 continue를 만나자마자 i는 바로 다음 값인 4가 실행된다

 

[메모]

0은 어떤 수로 나누어도 나머지가 0이다. 주의하자.

 

 

 

 

728x90

'정보처리기사' 카테고리의 다른 글

(1과목) 요구사항 확인  (0) 2021.04.15
(12과목) 제품 소프트웨어 패키징  (0) 2021.04.15
(2과목) 화면 설계  (0) 2021.04.14
(11과목) 응용SW 기초기술 활용  (0) 2021.04.14
(5과목) 인터페이스 구현  (0) 2021.04.14