일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- execute immediate
- 정규식 연산
- git
- JavaScript
- SQLD
- SQL
- 정보처리기사
- Oracle
- MYSQL
- dense rank
- 자료구조
- 뷰
- list multiplication
- 코드 스니펫
- 비절차적 데이터 조작어
- dom
- searched case expression
- coalesce
- html
- 문법 차이
- show graph characteristics
- simple case expression
- window 함수
- python
- 기업 협업
- GROUPING
- Node.js
- ROLLUP
- sql 저장 모듈
- 위코드
- Today
- Total
프로그래밍 숲
정보처리기사 22년 2회차 (4월 24일) 62번 C언어 문제 해설 본문
갑자기 정보처리기사 시험을 보게 되어서 필기를 공부하게 되었습니다. 원래는 생각이 없었지만, 같이 교육 듣는 동기들이 딴다고 하길래 자연스럽게 정보처리기사를 접수하게 되었습니다.
Java는 공부 중이고 python은 알고리즘 문제를 풀기 때문에 그래도 익숙하지만, C언어는 아예 생소하기 때문에 정보 공유 및 공유 겸 글을 작성하게 되었습니다.
22년 4월 24일에 진행된 시험의 62번 문제는 다음과 같습니다. 이 코드를 하나하나 뜯어보도록 하겠습니다.
📂 전체 코드
#include <stdio.h>
int main(int argc, char *argv[]) {
int a = 5, b = 3, c = 12;
int t1, t2,t3;
t1 = a && b;
t2 = a || b;
t3 = !c;
printf("%d", t1 + t2 + t3);
return 0;
}
📂 코드 분석
#include <stdio.h>
이 코드는 프로그래머스에서 C언어를 선택했다면 볼 수 있는 나름 익숙하지만 용도를 모르겠던 코드입니다. 이 코드는 표준 입력과 출력 기능을 사용하기 위해 <stdio.h> 라이브러리를 포함시킵니다. 이 라이브러리는 printf 함수와 같은 입출력 함수를 제공합니다.
int main(int argc, char *argv[]) {
이 코드의 int argc와 char *argv[] 때문에 c언어 문법을 찾아보며 공부해야겠다고 생각했습니다. 아직 저에게 익숙하지 않은 자바랑 비슷하면서도 잘 모르겠었습니다.
이 줄은 프로그램의 시작점인 main 함수를 정의합니다. main 함수는 C 프로그램의 실행이 시작되는 곳입니다. int는 main 함수가 int형 값을 반환한다는 것을 의미합니다. argc와 argv는 프로그램에 전달되는 커맨드 라인 인수(argument)의 개수와 값들을 저장하는 매개변수입니다. 일반적으로 프로그램에 인수가 전달되지 않는다면 argc는 1이 되고, argv 배열에는 프로그램 이름이 저장됩니다.
int a = 5, b = 3, c = 12;
int t1, t2, t3;
이 줄에서는 정수형 변수 a, b, c, t1, t2, t3를 선언하고 초기값을 할당합니다.
t1 = a && b;
t2 = a || b;
t3 = !c;
이 부분 또한 문법을 전혀 모르는 저에게 이해가 가지 않았던 부분입니다.
이 부분은 논리 연산자를 사용하여 t1, t2, t3 변수에 값을 할당하는 부분입니다. &&는 논리 AND 연산자로, a와 b가 모두 참일 때만 참을 반환합니다. ||는 논리 OR 연산자로, a와 b 중에서 하나라도 참이면 참을 반환합니다. !는 논리 NOT 연산자로, c의 논리 반대 값을 반환합니다.
그저 논리 연산자였습니다. 저는 더하거나 뭐 이런게 있나 생각했는데, 아니었습니다. 각각 변수에 할당되는 값들은 다음과 같습니다.
- t1 = a && b; : a와 b가 논리 AND 연산을 수행하므로, t1에는 1 (참)이 저장됩니다.
- t2 = a || b; : a와 b가 논리 OR 연산을 수행하므로, t2에는 1 (참)이 저장됩니다.
- t3 = !c; : c의 논리 반대 값을 계산하므로, t3에는 0 (거짓)이 저장됩니다.
printf("%d", t1 + t2 + t3);
따라서 t1 + t2 + t3의 결과는 1 + 1 + 0으로, 2가 됩니다. 이 값이 printf 함수를 통해 출력됩니다. 즉, 실행 결과로 숫자 2가 출력될 것입니다.
return 0;
프로그램이 정상적으로 종료되었음을 나타내기 위해 0을 main 함수의 반환값으로 지정합니다.
'프로그래밍_인포 > C언어' 카테고리의 다른 글
정보처리기사 22년 2회차 (4월 24일) 79번 C언어 문제 해설 (0) | 2023.06.29 |
---|