본문 바로가기
Programming/C

C / 정보처리기사 실기 문제 풀이1

by with chu 2021. 5. 13.
728x90




C / 정보처리기사 실기 문제 풀이 1


 

1.

#include <stdio.h>
 main() {
   char *p="KOREA";
   printf("%s\n",p+3);
   printf("%c\n",*p+2);
   }

printf("%s\n", p+3) : EA
%s는 해당 문자열부터 끝까지 출력. p 포인터가 가리키는 주소에서 3칸 뒤부터 끝까지 출력
printf("%c\n", *p+2) : M
%c 는 한글자만 출력. *p는 'K'이고 여기에 +2는 'K'에 ASCII 값 2를 더함
ASCII 값은 알파멧 순서이므로 2칸 뒤인 'M'이 출력

 

2.

#include <stdio.h>
struct jsu {
  char name[12];
  int os, db, hab, hhab;
};
 
int main(){
struct jsu st[3] = {{"데이터1", 95, 88}, 
                    {"데이터2", 84, 91}, 
                    {"데이터3", 86, 75}};
struct jsu* p;
p = &st[0];
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p+1)->hab + p->os + p->db;
 
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}

struct jsu로 구조체 배열을 name, os, db, hab, hhab 순서로 생성한다
p = &st[0] 는  {"데이터1", 95, 88}의 주소이므로 (p + 1)는 {"데이터2", 84, 91}
->기호로 구조체 배열 이름을 찾아가서 더해주면 된다

name os db hab hhab
데이터1 95 88    
데이터2 84 91 84+75=159 159+95+88=342
데이터3 86 75    

(p+1)->hab + (p+1)->hhab : 159 + 342 = 501 이므로 501 출력

 

 

 

 

728x90

'Programming > C' 카테고리의 다른 글

C / 정보처리기사 실기 문제 풀이 2 - 스택(STACK)  (0) 2021.05.16

댓글