좋은질문

C언어 답좀 부탁드려요

JustineBaek 2014. 9. 29. 00:28

 

 

 

 

누구나 쉽게 즐기는 C언어 콘서트

 

p.337

 

4. 다음의 문장에 주석을 붙여서 문장의 의미를 설명하여라.

 

int i;                //__________________________

int *p = &i;      //__________________________

*p = *p +1;     //__________________________

 

p.339

 

10. 다음 프로그램의 출력은 무엇인가?

 

int main(void)

{

    int a[10] = { 1, 2, 3, 4, 5, 6 };

    int *p = a;

    int *q = a + 3;

 

    printf("%d\n", *(a+1));

    printf("%d\n", *(p+2));

    printf("%d\n", *(q+1));

}

 

11. 다음 프로그램의 출력은 무엇인가?

 

void sub(int *);

int main(void)

{

    int a[10] = { 1, 2, 3, 4, 5, 6 };

    sub(a);

    return 0;

}

void sub(int *p)

{

       printf("%d\n", *p);

       printf("%d\n", p[2]));

}

 

12. 다음 프로그램의 출력은 무엇인가?

 

#incldue<stdio.h>

void sub(int *);

int main(void)

{

     int a[6] = { 1, 2, 3, 4, 5, 6 };

     int i;

     sub(a);

     for(i = 0 ; i < 6 ; i++)

          printf("%d\n", a[i]);

     return 0;

}

void sub(int *p)

{

       p[0] = 0;

}

 

간단한 프로그래밍일지 모르겠지만, 과제 찝어서 내준건데, 제가 답적은것이랑 맞는건지 잘 모르겠네요,,,

제가 군대갔다온 복학생이라, C언어 다 굳어가지고,,, 잘 모르겠는데 답 맞춰볼겸 이렇게 올려봅니다.

 

 

 

 

안녕하세요?

 

4. 다음의 문장에 주석을 붙여서 문장의 의미를 설명하여라.

     int i;                 // int형 변수 i 선언

     int *p = &i;        // int형 포인터 p에 i의 주소 대입

     *p = *p +1;        // 포인터 p가 가르키는 기억장소의 값(즉, i)에 1을 더한후 다시 i에 할당.

                            // 즉, i = i + 1;    

 

10. 다음 프로그램의 출력은 무엇인가?

     int main(void)

     {

          int a[10] = { 1, 2, 3, 4, 5, 6 };

          int *p = a;

          int *q = a + 3;                         // a[3] --> 4

 

          printf("%d\n", *(a+1));            // 2     a는 배열의 시작주소, 여기에 1을 더하므로, a[1]

          printf("%d\n", *(p+2));            // 3     p는 a의 시작주소, 여기에 2를 더하므로, a[2]

          printf("%d\n", *(q+1));            // 5     q는 a + 3 + 1이므로, a[4]

      }

 

11. 다음 프로그램의 출력은 무엇인가?

     void sub(int *);

     int main(void)

     {

          int a[10] = { 1, 2, 3, 4, 5, 6 };

          sub(a);

          return 0;

     }

 

     void sub(int *p)

     {

          printf("%d\n", *p);                  // 1          배열의 시작주소의 값: a[0]의 값

          printf("%d\n", p[2]));             // 3          a[2]의 값

     }

 

12. 다음 프로그램의 출력은 무엇인가?

     #incldue<stdio.h>

     void sub(int *);

     int main(void)

     {

          int a[6] = { 1, 2, 3, 4, 5, 6 };

          int i;

 

          sub(a);                                 // sub함수가 호출되면서, a[0] = 0으로 변경

 

          for(i = 0 ; i < 6 ; i++)

               printf("%d\n", a[i]);          // 0 2 3 4 5 6 

 

          return 0;

     }

 

     void sub(int *p)

     {

           p[0] = 0;                              // a[0]를 0으로 변경

     }

 

 

도움이 되시길 바랍니다.

감사합니다.

 

 

 

written by

  

legend

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C과외/C#과외/VB과외 프로그래밍 과외.서울인천경기-방문강의.기타전국-화상강의.제대로 체계적으로 배우고싶은분들.15년경력 프리랜서.삼성/포스코/한진 등.

서울,인천,경기,분당,일산,과천,산본,부천,부평,평촌,안산,안양,광명,용인,시흥,성남,수원,평택,오산,화성,동탄,천안,아산,

c#프로그래밍1:1과외, 15년 이상 프로젝트 경력의 프리랜서 직접 강의,

c#프로그래밍 과외, c#프로그래밍교육, IT·컴퓨터·컴퓨터과외비·프로그래밍과외, c# 강좌, c# 프로그래밍,

데이터베이스, 데이터베이스 프로그래밍, db, DB, 과외비,컴퓨터1:1,컴퓨터개인지도,컴퓨터실무과외,컴퓨터과외,컴퓨터1:1과외,

서울,인천,경기,부천,안산,분당,일산,천안,과천,산본,안양,광명,평촌,수원,평택,오산,용인,부평,시흥,성남,화성,동탄

광주,부산,대구,대전,마산,창원,울산,전주,군산,원주,강릉,충청남도,충청북도,강원도,경상남도,경상북도,전라남도,전라북도,제주도