반응형
1. 1차원 배열의 크기 즉 원소수가 10일 때 유효한 첨자의 범위를 적으시오.
0~9
2. 다음 문장 중 틀린 것을 고르시오.
① 다음과 같이 배열을 선언한 후 대입문으로 배열명에 배열 원소들을 한꺼번에 저장할 수 있다.
int a[5]
a = {1, 2, 3, 4, 5};
② 배열의 여러 원소 중 한 개를 지정하기 위해 '배열명[2]'와 같이 [] 안에 명시하는 정수를 첨자라고 한다.
③ 1차원 배열 ary의 크기 즉 배열의 원소수가 10이라면 첫 원소는 ary[1], 마지막 원소는 ary[10]으로 참조한다. - 첫 원소는 ary[0], 마지막 원소는 ary[10]으로 참조한다.
④ int형 자료 10개, double형 자료 10개, char형 자료 10개 모두 30개의 자료를 하나의 배열에 저장할 수 있다. - 하나의 배열엔 하나의 자료형만 저장할 수 있다.
⑤ 배열의 차원과 배열 원소 한 개를 나타내기 위해 사용되는 첨자의 개수는 동일하다.
⑥ 다음과 같이 배열을 선언할 때 배열의 크기를 변수로 사용할 수 있다.
int size = 5;
int a[size] = {1, 2, 3, 4, 5};
3.다음의 main 함수 본체의 코드에서 잘못된 곳(밑줄 그은 곳)을 찾아 이유를 적으시오.
int i;
int age[5] = 19, 22, 25, 17, 27;
int m[][] = {{1, 2, 3}, {4, 5, 6}};
char title[5] = "c/c++";
for (i=1; i<=5; i++) //5명의 나이 출력
printf("%d\n", age[i]);
scanf("%s", &title); //책 내용을 새로 입력
scanf("%c", title[0]); //책 제목의 첫 글자 입력
둘째 줄: 대괄호를 치지 않았다.
여섯째 줄: 배열의 첨자는 0부터 시작한다.
여덟째 줄: 배열명 자체가 배열 시작 주소이므로 주소연산자를 사용할 필요 없다.
아홉째 줄: 특정 원소 값을 입력하려면 주소연산자를 사용해야 한다.
4. int count[10] = {0}; 과 같이 배열을 선언하면서 초기화하였더라도 나중에 값이 변경된 후 필요하다면 배열에 저장된 내용을 다시 0으로 초기화해야 하는 경우가 생길 수있다. count 배열을 다시 0으로 초기화하려면 어떻게 해야 할까?
대입문으로 직접 초기화한다.
5. 사용자로부터 1~12까지의 달을 month로 입력받은 후 1월부터 입력된 month 월까지의 총일을 total에 구하여 다음과 같이 출력하시오. 프로그램을 단순화하기 위해 2월이 29일까지 있는 윤년은 고려하지 않고 2월은 무조건 28일까지로 처리한다.
#include <stdio.h>
int main(void)
{
//첨자 번호가 월과 일치하도록 첫 요소는 0으로 초기화
int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int range, sum = 0;
printf("1월부터 몇 월까지의 총합을 구할까요? ");
scanf("%d", &range);
for (int i = 1; i <= range; i++) {
sum += days[i];
}
printf("1월부터 %d월까지는 총 %d일이 있습니다.", range, sum);
return 0;
}
반응형
'프로그래밍 > C, C++' 카테고리의 다른 글
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(11, 12) (0) | 2020.08.29 |
---|---|
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(6, 7, 8, 9, 10) (0) | 2020.08.28 |
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 6 (11, 12, 13) (0) | 2020.08.04 |
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 6 (7,8,9,10) (0) | 2020.08.01 |
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 6 (1,2,3,4,5,6) (0) | 2020.07.29 |