(방송통신대 c프로그래밍 기말시험)C 프로그래밍의 2018년도 기출문제에 대해 다음의 내용과 지시사항을 참고하여 작성하시오.(짝수 학번 과제물)
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

(방송통신대 c프로그래밍 기말시험)C 프로그래밍의 2018년도 기출문제에 대해 다음의 내용과 지시사항을 참고하여 작성하시오.(짝수 학번 과제물)에 대한 보고서 자료입니다.

목차

C 프로그래밍의 2018년도, 2019년도 기출문제에 대해 다음의 내용과 지시사항을 참고하여 작성하시오.
1. C 프로그램 작성 시 반드시 작성해야 하는 함수는
2. 다음 중 출력양식 변환기호의 설명으로 잘못된 것은?
3. 다음과 같은 프로그램의 실행결과로서 올바른 것은?
4. 다음 프로그램을 조건 연산자를 사용하여 바꾼다면 가장 올바른 것은?
5. 다음 프로그램의 실행결과로 올바른 것은?
.........
25. 다음 중 동적할당에 대한 설명으로 잘못된 것은?

본문내용

void main(){
int array[3][4]={l, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
printf(\"%d\",array[l][2]);
}
16. 다음과 같은 프로그램의 결과로 올바른 것은?
① 5 ② 6 ③ 7 ④ 10
정답해설
배열의 각 원소에 접근하기 위해서는 첨자를 사용한다. 첨자는 0부터 시작된다. array[3][4] = {l, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} = {{1,2,3,4}, {5,6,7,8}, {9,10,11,13}} 이다. 따라서 attay[1][2]는 배열에서 두 번째 행인 {5,6,7,8}의 세 번째 열의 값을 의미하므로 7이 된다.
17. 다음 프로그램의 실행결과로서 올바른 것은?
① 10 ② 20 ③ 30 ④ 에러 발생
정답해설
포인터 배열 array[1]에는 변수 b의 주소가 저장되어 있다. 따라서 *array[1]은 변수 b의 값 20이 된다. 포인터 변수의 앞에 *연산자를 붙이면 포인터 변수가 가리키
는 주소의 실제 값을 의미한다.#include
void main(){
int a=10, b=20, c=30;
int *array[3]={&a,&b, &c};
printf(\"%d\", *array[l]);
}
※ (1819) 다음과 같은 프로그램이 있을 때 물음에 답하시오.
#include
void main() {
int *p, *q;
int a[ ]={10,20,30,40,50,60,70,80,90,100};
p=&a[2];
printf(\"%d %d\\n\", *p, *q); ㉠
printf(\"*(p+3)=%d\\n\", *(p+3)); ㉡
printf(’’p-Q= %d\\n\", p-q); ㉢
}
18. 위에서 ㉠의 결과로서 올바른 것은?
① 10 50 ② 30 60 ③ 30 33 ④ 30 70
정답해설
포인터 변수 p에는 a[2]의 주소가 저장되므로 *p는 a[2]의 값인 30이다. 포인터 변수 q는 p의 값에 4가 더해진 주소로 a[6]의 주소를 의미한다. 따라서 *q는 a[6]의 값인 70이 된다.
19. 위에서 ㉡의 결과로서 올바른 것은?
① *(p+3)=30 ② *(p+3)=33 ③ *(p+3)=60 ④ *(p+3)=70
정답해설
p+3은 a[2]의 위치에서 3만큼 이동한 위치로 a[5]의 주소가 된다. 따라서 *(p+3)는 60이 된다.
float varl, var2;
varl=3.14;
※ (2021) 다음과 같이 변수 선언과 초기화가 되어있을 때 물음에 답하시오.
20. 위에서 실수형 포인터 변수 fptr을 선언한다면 올바른 표현은?
① float fptr ; ② float *fptr ; ③ fptr afloat ; ④ fptr float;
정답해설
포인터 변수의 선언 형식 : 자료형 *변수명;
21. 위에서 포인터 변수 fptr에 주소를 할당하는 방법으로 올바른 것은?
① fptr=varl ; ② fptr=&varl; ③ fptr=&3.14 ; ④ fptr=3.14;
정답해설
포인터 변수에 주소를 할당할 때는 변수명 앞에 &연산자를 붙이면 된다.‘&변수명’은 해당 변수의 주소를 의미하게 된다.
22. 다음 중 “int형 멤버와 double형 멤버를 갖는 구조체 명이 data인 구조체를 정의하고,구조체 변수명이 var 인 구조체를 선언”한것으로 올바른 것은?
① ② ③ ④
struct var{
int x;
double y;
};
struct var data;
struct data{
int x;
double y;
};
struct data var;
struct var{
int x;
double y;
}struct var data;
struct data{
int x;
double y;
};
struct var;
정답해설
구조체 선언의 형식 : struct 구조체명{ 변수명 1; 변수명2; ...};
구조체 변수의 구조체 선언 형식 : struct 구조체명(data) 변수명(var);
#include
#include
void mainO {
FILE ㉠;
int c;
if((fp=fopen(\"oldname.dat\",\"rb\")) == NULL){
exit(l);
}
while((c=fgetc(fp)) != EOF)
fprintf(stdout, \"%c\",c);
㉡;
}
※ (2324) 다음과 같은 프로그램이 있을 때 물음에 답하시오.
23. 위에서 빈칸 ⑪에 들어갈 내용으로 올바른 것은?
① *fscanf() ② oldname.dat ③ stdin ④ *fp
정답해설
모든 파일 입출력 함수는 파일이 어디에 있는지 가리키는 파일 포인터를 사용한다. 이를 위해 FILE라는 자료형을 가지는 포인터 변수를 FILE *변수명과 같이 선언해야 한다.
24. 위에서 빈칸 ㉡에 들어갈 내용으로 올바른 것은?
① fclose(fp) ② fopen(fp) ③ END ④ stderr
정답해설
파일 입출력 작업이 종료되면 항상 버퍼를 비우고 파일 포인터가 가리키는 파일을 닫아야 한다. 그렇지 않으면 해당 파일에 손상이 올 수 있다. 파일을 닫는 함수는 fclose(파일포인터 변수명)이다.
25. 다음 중 동적할당에 대한 설명으로 잘못된 것은?
① 동적할당을 통해 기억공간의 낭비를 막을 수 있다.
② 동적할당은 실행중 필요한 만큼 기억공간을 사용할 수 있다.
③ 배열의 경우 동적할당을 사용하여 배열의 크기를 결정할 수 있다.
④ 동적할당은 정수형 자료에 대해서만 가능하다.
정답해설
동적할당은 기억공간의 절약보다는 프로그램 작성 시점에 변수의 크기를 미리 판단할 수 없을 때, 예를 들면 배열의 크기를 미리 알 수 없을 경우에, 정적할당의 단점을 해결하기 위해 사용된 것으로 동적할당을 통해 적당한 크기만큼의 기억공간을 할당하여 처리가능하도록 하는 데 목적이 있다. 또한 동적 할당 후 메모리 사용이 더 이상 필요없을 경우 free()함수를 통해 메모리를 해제해야 하는데, 이를 하지 않을 경우에는 메모리 낭비가 발생할 수 있다.
*참고문헌
김형근, 곽덕훈, 정재화(2020), C프로그래밍, 한국방송통신대학교출판문화원.
  • 가격10,000
  • 페이지수10페이지
  • 등록일2021.05.03
  • 저작시기2021.5
  • 파일형식한글(hwp)
  • 자료번호#1149312
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니