cyphen156

Chapter2 과제 본문

프로그래밍/C언어

Chapter2 과제

cyphen156 2023. 1. 5. 13:08

개인 문제풀이임으로 오답이 있을 수 있습니다.

  1. 10진수를 거치지 않고 2진수 110010011000111100을 직접 16진수로 바꾸어 보라.
    > 0011/0010/0110/0011/1100
    > 3/2/6/3/C(12)
    ∴ 3263C

  2. 10진수를 거치지 않고 16진수 B1A2EC9를 직접 4바이트 2진수로 바꾸어 보아라.
    > B(11)/1/A(10)/2/E(14)/C(12)/9
    > 1011/0001/1010/0010/1110/1100/1001
     1011000110100010111011001001

  3. 8비트 연산에서 49 - 1을 2진 보수로 계산하고 결과가 옳은지 확인해 보라
    > 49 - 1
    > 49 + (-1)
    > 32+16+1 + (-1)
    > 00110001 - 00000001
    > 00110001 + 11111111
    > 1/0011/0000 = 00110000
      제일 앞자리(9번 비트/MSB)는 부호비트이므로 떼어낸다.

  4. 8비트 연산에서 127 + 1을 2진 보수로 계산하고 결과가 옳은지 확인하라.
    > 127 + 1
    > 64 + 32 + 16 + 8 + 4 + 2 + 1 + 1
    > 01111111 + 00000001
      10000000

  5. 18.375를 32비트 부동 소수 표현할 때 부호부, 지수부, 가수부의 값을 계산하라.
    > 부호부 1비트 + 지수부 8비트 + 가수부 23비트
    > 양수이므로 부호비트는 0, 18.375 = 10010.011⑵
    > 0 1.0010011 X 2
    > 0(127) 10000011(127+4) 00100110000000000000000
      최종 정답은 0/100000/1100100110000000000000000
    아래 블로그들을 참고하여 작성하였습니다.
    C/C++ - 32bit 부동소수점 표현을 해 봅시다(Floating point) : 네이버 블로그 (naver.com) 
    IEEE 754 표준 32비트 부동소수점 표현 (tistory.com)

  6. 다음 문장을 화면에 출력하라. 
    'Consumer price' has increased by 1/10. It corresponds to 10%.
    #include <stdio.h>
    
    int main() {
    	printf("'Consumer price' has increased by 1 / 10. It corresponds to 10 % .");
    	return 0;
    }
  7. 실수를 입력받은 후에 형 변환 연산자를 써서 입력받은 값을 정수형으로 변환하여 출력하라.
    > Enter a real number
    > 88.99999(Enter)
    > 88
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    int main() {
    	float num;
    
    	printf("Enter a real number\n");
    	scanf("%f", &num);
    	printf("%d", (int)num);
    	return 0;
    }
  8. scanf를 써서 영문 이름 이니셜(Initial)을 입력받고 다시 printf를 써서 그것을 화면에 출력하는 프로그램을 작성하라.
    > OYT(Enter)
    > Initials of your name are O, Y and T
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    int main() {
    	char ch1, ch2, ch3;
    
    	printf("Enter a Your Initial\n");
    	scanf("%c%c%c", &ch1, &ch2, &ch3);
    	printf("Initials of your name are %c, %c and %c", ch1, ch2, ch3);
    	return 0;
    }
  9. printf 함수를 써서 자신의 한글 이름, 수강 목적, 희망 학점을 화면에 출력하는 프로그램을 작성하되 각각 줄을 바꾸어서 출력하라. 단, 반드시 형식 지정자를 사용해야 하며 이름과 목적은 문자열 형식(%s), 학점은 문자 형식(%c)으로 지정해야 한다.
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    int main() {
    	char name[6], purpose[20], grade;
    	printf("이름, 수강 목적, 희망 학점을 입력하시오.\n");
    	scanf("%s %s %c", &name, &purpose, &grade);
    	printf("이름 : %s.\n", name);
    	printf("수강 목적 : %s.\n", purpose);
    	printf("희망 학점 : %c.\n", grade);
    	return 0;
    }
  10. 아래 빝줄 부분에 코드를 삽입해서 아스키코드 표를 직접 화면에 찍어 보라. 단, 특수 문자나 공백 문자에 대해서는 이상한 문자가 나오거나 아무것도 보이지 않더라도 그대로 찍어야 한다.
    #include <stdio.h>
    
    int main() {
    	int i;
    	for (i = 0; i <= 127; i++) {
    		printf("%d\t", i); // 여기에 프린트 문으로 i 값을 찍고 탭을 삽입할 것
    
    		printf("%c\n", i); // 여기에 해당 문자를 찍고 줄을 바꿀 것
    	}
    	return 0;
    }

//모든 예제 소스는 한빛 미디어홈페이지에서 찾으실 수 있습니다.

IT CookBook, 전공자를 위한 C 언어 프로그래밍 (hanbit.co.kr)

또는 cyphen156/Work-space: Studying (github.com)에서 찾으실 수 있습니다.

 

 

 

 

 

'프로그래밍 > C언어' 카테고리의 다른 글

Chapter3 과제  (0) 2023.02.03
Chapter3 변수와 상수, 대입문과 연산  (0) 2023.02.01
Chapter2 C언어의 자료형과 표준 입출력 함수  (0) 2023.01.04
Chapter1 과제  (0) 2022.12.22
Chapter1 C언어와 컴파일러  (0) 2022.12.22