본문 바로가기
IT(기존 자료 보관용)

명품C언어프로그래밍 12.3 해답

by 알 수 없는 사용자 2012. 12. 6.
728x90
반응형

명품C언어 프로그래밍 챕터12의 연습문제3번은 다음과 같다.


12.3 다음 프로그램의 실행결과를 예측하시오



   1:  #include "stdafx.h"
   2:  #include <ctype.h>
   3:   
   4:  int main(void)
   5:  {
   6:      char ch='A';
   7:      printf("%d", isalnum(ch));
   8:      printf("%d", isalpha(ch));
   9:      printf("%d", isascii(ch));
  10:      printf("%d", isdigit(ch));
  11:      printf("%d", isupper(ch));
  12:      return 0;
  13:  }



Visual C에서 답은 11101이다.


7번줄에서 isalnum은 알파벳 혹은 숫자이면 1을 리턴하기 때문에 1

8번줄에서 isalpha는 알파벳이면 1을 리턴하기 때문에 1

9번줄에서 isascii는 아스키이면 1을 리턴하기 때문에 1

10번줄에서 isdigit는 문자가 숫자가 아니면 0을 리턴하기 때문에 0

11번줄에서 isupper은 대문자이면 1을 리턴하기 때문에 1


   1:  #include "stdafx.h"
   2:  #include <string.h>
   3:   
   4:  int main(void)
   5:  {
   6:      char *a="Visual c++", b[6]="Turbo";
   7:      printf("%d \n", strlen(a));
   8:      printf("%d \n", strcmp(a,b));
   9:      printf("%d \n", strlwr(b));
  10:      printf("%d \n", strupr(a));
  11:      return 0;
  12:  }


Visual 2012 C에서는 


10

1

turbo

VISUAL C++


답으로 나온다.


7번줄의 strlen은 문자열의 길이를 세어주는 함수이기 때문에 포인터 a가 가리키는 문자열의 길이를 리턴해서 10이 나온다

8번줄의 strcmp는 문자열을 비교하여 크고 작음을 구분해주는 함수이기 때문에 포인터 a가 가리키는 문자열의 길이가 배열b보다 더 크기 때문에 양수가 리턴되어 1이 나왔음을 알 수 있다.

9번줄의 strlwr은 문자열을 소문자로 변환하는 함수이기 때문에 turbo가 리턴되었다.

10번줄의 strupr은 문자열을 대문자로 변환하는 함수이기 때문에 VISUAL C++이 리턴되었다.




728x90
반응형

댓글