GM Library/☆ 기말시험 Data 방송대 방통대 C프로그래밍 기말시험 기출문제 2018년도 1학기 1학년 / 올에이클래스 모의고사 by HAN, URI / ΛΙΙΛ™ 2024. 7. 1. 0-썸네일-C프로그래밍-기말-18-1-1 2018 학년도 1 학기 1 학년 25 문항 C프로그래밍 시험종류 :기말시험 출제위원 :방송대 김형근 출제범위 :교재전체(특히 4, 5, 6장) (해당 멀티미디어강의 포함) 자료출처 :한국방송통신대학교 웹앱제작 :올에이클래스 김현수 01C 프로그램 작성 시 반드시 작성해야 하는 함수는? (2점) scanf() printf() malloc() main() 해설) 02다음 중 출력양식 변환기호의 설명으로 잘못된 것은? (2점) %d는 출력 값을 지수형식으로 나타낸다. %f는 출력 값을 부동 소수점 형식으로 나타낸다. %o는 출력 값을 8진수로 나타낸다. %x는 출력 값을 16진수로 나타낸다. 해설) 03다음과 같은 프로그램의 실행결과로서 올바른 것은? (3점) #include <stdio.h> #define SUM(x,y) x+y void main() { int a; a=10*SUM(3, 4); printf("a=%d", a); } 10 34 45 70 해설) 04다음 프로그램을 조건 연산자를 사용하여 바꾼다면 가장 올바른 것은? (2점) if(a>10) x=a*100; else x=a*200; x=(a>10; a*100:a*200); x=(a>10; a*200:a*100); x=(a>10? a*100:a*200); x=(a>10? a*200:a*100); 해설) 05다음 프로그램의 실행결과로 올바른 것은? (2점) #include <stdio.h> void main() { int a=4, b, c; b=a>2; printf("b=%d", b); c=a<2; printf("c=%d", c); } b=1 c=0 b=4 c=1 b=0 c=1 b=1 c=4 해설) 06다음 프로그램이 실행됐을 때 x는 몇 번 출력되는가? (3점) #include <stdio.h> void main() { int i=0, j=0; for(i=0; i<5; i++) for(j=5; j>2; j--) putchar('x'); } 15 18 24 36 해설) 07다음 프로그램의 출력결과로 올바른 것은? (3점) #include <stdio.h> main() { int a=10; if(a>=0) if(a==0) printf("첫 번째 if"); else printf("두 번째 if"); else printf("세 번째 if"); } 첫 번째 if 두 번째 if 세 번째 if 두 번째 if 세 번째 if 해설) ※(8~9) 다음과 같은 프로그램이 있을 때 물음에 답하시오. #include <stdio.h> void main() { char s[50]; ( ㉠ ) ( ㉡ ) } 08위에서 문자열 자료를 입력받기 위해 ㉠의 위치에 사용될 수 있는 표준 입력함수로서 올바르게 나타낸 것은? (3점) gets(s); puts(s); scanf("%c", s); s=putchar(); 해설) 09위에서 입력된 문자열 자료를 출력하기 위해 ㉡의 위치에 사용될 수 있는 표준 출력함수로서 올바르게 나타낸 것은? (3점) s=puts(); printf("%c", s); puts(s); gets(s); 해설) 10다음과 같은 프로그램의 실행결과로서 올바른 것은? (3점) #include <stdio.h> void main() { int a=10; static int b=20; { int a=5; b=a+10; } printf("a=%d b=%d\n", a, b); } a=5 b=15 a=5 b=20 a=10 b=15 a=10 b=20 해설) 11다음 중 함수에 대한 설명으로 잘못된 것은? (2점) 하나의 프로그램에서 반드시 main()함수를 쓸 필요는 없다. 함수를 호출할 때 괄호를 생략해서는 안 된다. 되돌려 줄 자료가 없을 때는 void를 쓴다. C 언어에서 함수는 서로 독립적이다. 해설) 12다음의 배열에 대한 설명 중 올바르지 않은 것은? (2점) 모든 배열은 자료형과 기억 클래스를 갖는다. 배열의 각 원소를 변수처럼 사용한다. 배열명을 증가시키거나 감소시킬 수 있다. 배열명은 배열 공간의 시작주소를 가리킨다. 해설) ※(13~14) 다음과 같은 프로그램이 있을 때 물음에 답하시오. #include <stdio.h> void fcn1(); int x; void main() { printf("x= %d\n ", x); ---- ㉠ fcn1(); printf("x= %d\n ", x); ---- ㉡ } void fcn1() { x++; } 13위에서 ㉠에 대한 결과로서 올바른 것은? (2점) x=0 x=1 알 수 없다 에러발생 해설) 14위에서 ㉡에 대한 결과로서 올바른 것은? (2점) x=0 x=1 x=2 에러발생 해설) 15다음과 같은 프로그램의 결과로 올바른 것은? (4점) #include <stdio.h> void main(){ int a[4]={10, 20, }; printf("%d %d %d %d\n", a[0], a[1], a[2], a[3]); } 10 20 10 20 10 20 10 20 20 20 10 20 0 0 해설) 16다음과 같은 프로그램의 결과로 올바른 것은? (4점) #include <stdio.h> void main() { int array[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; printf("%d", array[1][2]); } 5 6 7 10 해설) 17다음 프로그램의 실행결과로서 올바른 것은? (3점) #include <stdio.h> void main() { int a=10, b=20, c=30; int *array[3]={&a, &b, &c}; printf("%d", *array[1]); } 10 20 30 에러 발생 해설) ※(18~19) 다음과 같은 프로그램이 있을 때 물음에 답하시오. #include <stdio.h> void main() { int *p, *q; int a[ ]={10,20,30,40,50,60,70,80,90,100}; p=&a[2]; q=p+4; printf("%d %d\n", *p, *q); ---- ㉠ printf("*(p+3)=%d\n", *(p+3)); ---- ㉡ printf("p-q= %d\n", p-q); ---- ㉢ } 18위에서 ㉠의 결과로서 올바른 것은? (3점) 10 50 30 60 30 33 30 70 해설) 19위에서 ㉡의 결과로서 올바른 것은? (3점) *(p+3)=30 *(p+3)=33 *(p+3)=60 *(p+3)=70 해설) ※(20~21) 다음과 같이 변수 선언과 초기화가 되어있을 때 물음에 답하시오. float var1, var2; var1=3.14; 20위에서 실수형 포인터 변수 fptr을 선언한다면 올바른 표현은? (3점) float fptr ; float *fptr ; fptr *float ; fptr float; 해설) 21위에서 포인터 변수 fptr에 주소를 할당하는 방법으로 올바른 것은? (3점) fptr=var1 ; fptr=&var1; fptr=&3.14 ; fptr=3.14; 해설) 22다음 중 “int형 멤버와 double형 멤버를 갖는 구조체 명이 data 인 구조체를 정의하고, 구조체 변수명이 var 인 구조체를 선언”한 것으로 올바른 것은? (3점) ⓐ 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; ⓐ ⓑ ⓒ ⓓ 해설) ※(23~24) 다음과 같은 프로그램이 있을 때 물음에 답하시오. #include <stdio.h> #include <stdlib.h> void main() { FILE ( ㉠ ); int c; if((fp=fopen("oldname.dat", "rb")) == NULL){ exit(1); } while((c=fgetc(fp)) != EOF) fprintf(stdout, "%c", c); ( ㉡ ); } 23위에서 빈칸 ㉠에 들어갈 내용으로 올바른 것은? (4점) *fscanf() oldname.dat stdin *fp 해설) 24위에서 빈칸 ㉡에 들어갈 내용으로 올바른 것은? (4점) fclose(fp) fopen(fp) END stderr 해설) 25다음 중 동적할당에 대한 설명으로 잘못된 것은? (2점) 동적할당을 동해 기억공간의 낭비를 막을 수 있다. 동적할당은 실행중 필요한 만큼 기억공간을 사용할 수 있다. 배열의 경우 동적할당을 사용하여 배열의 크기를 결정할 수 있다. 동적할당은 정수형 자료에 대해서만 가능하다. 해설) 문제답안 412311213313124324322241C 공유하기 게시글 관리 올에이클래스 저작자표시 비영리 변경금지 관련글 방송대 방통대 다국적기업론 기말시험 기출문제 2013년도 2학기 2학년 / 올에이클래스 모의고사 방송대 방통대 C프로그래밍 기말시험 기출문제 2019년도 1학기 1학년 / 올에이클래스 모의고사 방송대 방통대 C프로그래밍 기말시험 기출문제 2017년도 1학기 1학년 / 올에이클래스 모의고사 방송대 방통대 C프로그래밍 기말시험 기출문제 2016년도 1학기 1학년 / 올에이클래스 모의고사 댓글 티스토리툴바 올에이클래스구독하기