일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 건담베이스
- vscode
- 반다이몰
- C로 시작하는 컴퓨터 프로그래밍4판
- CSS
- springboot
- rails
- 건담
- jsp
- 디지몬
- Python
- javascript
- 자바
- 비즈니스일본어
- ruby
- 인프런
- java
- html
- 単語
- 日本語
- 일본어
- 연습문제
- Flutter
- rails7
- DART
- メソッド
- Spring
- 一日一つメソッド
- nico
- Web
- Today
- Total
AR삽질러
C로 시작하는 컴퓨터 프로그래밍4판 - 4장 연산자 본문
4-1 혼자해보기
#include<stdio.h>
int main(void) {
int a, b, d;
a = 5; b = 10;
a = b++;
d = ++a;
printf("a = %d, b = %d, d = %d\n", a, b, d);
a = b + ++d;
printf("a = b + ++문장 실행 후\n");
printf("a = %d, b = %d, d = %d\n", a, b, d);
return 0;
}
a = 11, b = 11, d = 11
a = b + ++문장 실행 후
a = 23, b = 11, d = 12
01. 다음 프로그램의 오류를 수정하시오.
int x = 5, y = 3;
const int z = 3;
x = x + 5;
y + 3 = x;
z = z + 4;
수정
int x = 5, y = 3;
const int z = 3;
x = x + 5;
y = x - 3;
// 상수값은 변경할 수 없다. z = z + 4;
- lvalue와 rvalue의 구별
대입 연산자를 기준으로 왼쪽에 lvalue(오로지 변수만 넣을 수 있다), 오른쪽에 피연산자를rvalue(값, 변수, 수식 등을 넣을수 있다.)
- const는 변수를 상수로 선언하여 값을 변경할수 없게 만든다. 상수는 선언될 때 값이 할당되어야 한다.
const int z = 3; 에서 z = z + 4; 로 값을 변경하려면 에러가 발생한다.
4-2 혼자해보기
사용자에게 밑변과 높이를 입력받아 삼각형의 높이를 구하는 프로그램을 작성하시오.
#include<stdio.h>
#pragma warning(disable:4996)
int main(void) {
int length, area, hei;
printf("삼각형 맡변의 길이를 입력하시오\n");
scanf("%d", &length);
printf("삼각형의 높이 입력\n");
scanf("%d", &hei);
area = length * hei / 2;
printf("정사각형의 넓이는 %d이다.\n", area);
return 0;
}
02. 다음 프로그램에서 x,y,z의 최종 결과값은 얼마인가?
int x = 10, y = 10, z;
x = y++;
z = (++x) % 3;
x = 11, y = 11, z = 2
03. 다음 프로그램의 연산 결과를 직접 확인해보시오.
1)
int a = 10, b = 15, c = 0;
printf("%d\n", a >= b || c);
거짓 = 0
2)
int a = 10, b = 15, c = 0;
printf("%d\n", a < b && a < c);
0
3)
int a, b, c;
a = 20; b = 10;
a += b;
c = ++a;
printf("a = %d, b = %d, c = %d\n", a, b, c);
a = b + ++c;
printf("a = b + ++c 문장 실행 후\n");
printf("a = %d, b = %d, c = %d\n", a, b, c);
unsigned char number = 176;
unsigned char b = 128;
const unsigned char level = 127;
printf("number의 첫번째 비트 값은 %d \n", (number &b) > level);
a = 31, b = 10, c = 31
a = 42, b = 10, c = 32
04. 정수 3개를 입력받아 합을 계산한 뒤 합이 100보다 크다면 '합격'을 그렇지 않으면 '불합격'을 출력하는 프로그램을 작성하시오.
#include<stdio.h>
#pragma warning(disable:4996)
int main(void) {
int a, b, c;
printf("성적1 입력 : ");
scanf("%d", &a);
printf("성적2 입력 : ");
scanf("%d", &b);
printf("성적3 입력 : ");
scanf("%d", &c);
int total = a + b + c;
if (total > 100)
printf("합격");
else
printf("불합격");
return 0;
}
05. 정수형 변수 2개를 입력받아 AND, OR, XOR의 비트 논리 연산을 수행하고 연산의 결과 값을 정수형으로 화면에 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int num1, num2;
printf("두 정수를 입력하세요: ");
scanf("%d %d", &num1, &num2);
int and_result = num1 & num2;
int or_result = num1 | num2;
int xor_result = num1 ^ num2;
printf("%d & %d = %d\n", num1, num2, and_result);
printf("%d | %d = %d\n", num1, num2, or_result);
printf("%d ^ %d = %d\n", num1, num2, xor_result);
return 0;
}
06. unsigned char형으로 정수(0~255)값을 입력받아 총 8비트에서 첫 번째 비트의 값이 무엇인지 알아내는 프로그램은 일반적으로 아래와 같다.
unsigned char number = 176;
unsigned char b = 128;
const unsigned char level = 127;
printf("number의 첫 번째 비트 값은 %d\n", (number &b) > level);
이 프로그램에서 두 번째 비트부터 여덟번째 비트까지의 값을 알아내려면 mask인 b와 level값은 각각 얼마여야 하는가?
10110000 44, 1
'C' 카테고리의 다른 글
C로 시작하는 컴퓨터 프로그래밍4판 - 6장 반복문 (0) | 2023.03.27 |
---|---|
C로 시작하는 컴퓨터 프로그래밍4판 - 5장 선택문 (0) | 2023.03.21 |
C로 시작하는 컴퓨터 프로그래밍4판 - 3장 표준입출력 (0) | 2023.03.15 |
C로 시작하는 컴퓨터 프로그래밍4판 - 2장 기본자료형과 형변환 (0) | 2023.03.09 |
C로 시작하는 컴퓨터 프로그래밍4판 - 1장 C언어의 시작 (0) | 2023.03.08 |