2021 학년도 1학기 기말시험(온라인평가)?교과목명:?학번:?성명:?연락처:?평가유형:(과제물형, 주관식형, 혼합형(과제물+주관식) 중 해당 유형 표기)?주관식형:※ 주관식일 경우 문제번호 표기 후 답안 작성?과제물유형:?과제명:※ C 프로그래밍의 2018년도, 2019년도 기출문제에 대해다음의 내용과 지시사항을 참고하여 작성하시오.(기출문제는 자료실 참조, U-KNOU캠퍼스 ? C프로그래밍 - 강의자료실)1) 본인의 학번 끝자리가- 짝수이면 2018년도 기출문제(25문항),- 홀수이면 2019년도 기출문제(25문항)를 선택하고2) 선택된 년도의 기출문제 25문항에 대해- 문제와 보기, 정답을 쓰고- 정답해설을 작성하여 제출.C 프로그래밍 2019년도 기출문제1. 다음 중 원시 프로그램이 번역되어 실행될 때의 파일 확장자로서 올바른 것은?① example.exe정답해설c언어 프로그램은 코딩(coding), 컴파일(compile), 링킹(linking)의 3단계 변환 과정으로 완성된다. 실행 파일은 확장자는 exe이다.2. 다음 중 상수에 대한 설명으로 올바르지 않는 것은?④ 실수형 상수는 지수형식으로 표시할 수 없다.정답해설실수형 상수는 e 또는 E를 사용해서 3e-2(=0.03)처럼 지수 형식으로 표시할 수 있다.※ (3?4) 다음과 같은 프로그램이 있을 때 물음에 답하시오.(여기서 ‘A’의 ASCII값은 65이다.)#include void main() {char var='A';printf("varl=%d var2=%c", var, var); ㉠putchar(var+2) ; ㉡}3. 위에서 ㉠의 결과로 올바른 것은?① varl = 65 var2 = A정답해설var은 문자 'A'의 ASCII값인 65가 사용된다. 또한 %c는 문자를 출력하는 형식이므로 var의 원래 할당값인 문자 A가 그대로 출력된다.4. 위에서 ㉡의 결과로 올바른 것은?④ C정답해설(var + 2)의 식에서 숫자형 자료형에 사용되는 +연산자에 의해 var은 ASCII값인 65로 변환되어 정수 2와 +연산이 처리된다. ASCII값 67에 해당하는 문자 C로 변환되어 화면에 출력된다.#include void main() {int a = 8086print("㉠n", a);print(“㉡n”,a);print("㉢n“, a);}5. 다음 프로그램의 ㉠, ㉡, ㉢에서 각각 10진수,8진수,16진수를 출력하려고 한다. 출력양식 변환기호가 순서대로 올바르게 나열된 것은?② %d, %o, %x정답해설%d는 부호 있는 10진 정수로 변화하여 출력한다. %o는 부호 없는 8진수로 변환하여 출력한다. %x(또는 %X)는 부호 없는 16진수로 변환하여 출력한다.#include void mainO {int a=10;static int b=20;{int a=5;b=a+10;}printf("a=%d b=%dn",a, b);}6. 다음과 같은 프로그램의 실행결과로서 올바른 것은?③ a = 10 b = 15정답해설정적변수 b는 main()함수 내의 전 영역에서 사용되는 지역변수로 블록({}) 밖에서 20으로 초기화되었다가 블록 내부에서 할당문에 의해 15로 변경되었다. 블록내부에 같은 이름에 a가 있어도 상위영역인 외부블록에 값을 가져온다 .따라서 블록 밖의 printf문에서는 a의 값으로 10, b는 15가 출력된다.7. 다음과 같은 프로그램의 실행결과로서 올바른 것은?#include void mainO {int a=10, b=3 ;a*=(b-l);b=(a>15)? (a+l):(a-l);printf("a=%d b=%d", a, b);}① a = 20 b = 21정답해설a*=(b-1)에 의해 a = 10*(3-1) = 20이 된다. 또한 (a>15)가 참이므로 b = a + 1가 수행되어 b에는 21이 할당된다.#includevoid main(){int i, j;i=j=4;if(i==3)if(i==4)printf("n%d", i=i+j);elseprintf("n%d", i=i-j);printf("、따%d", i);}8. 다음 프로그램의 출력결과로 올바른 것은?③ 4정답해설할당문 i=j=4에 의해 i는 j와 함께 4가 된다. 따라서 if문의 조건식이란 i==3은 거짓이므로 if문은 실행되지 못하고 바로 마지막 문장인 printf()함수가 실행되며 i값인 4가 출력된다.9. 다음과 같은 프로그램의 실행결과로서 올바른 것은?#includevoid main(){int i=l, j=2;{int i=3;{int i=4;}printf("i=%(T,i);}printf("i=%d",i);}①i=3 i=l정답해설변수명이 동일해도 지역변수는 선언된 영역(함수 또는 블록) 내에서만 존재한다. 즉, 선언된 영역 밖에서는 해당 지역변수에 접근할 수 없다. 다만, 상위 영역의 지역변수는 하위 영역에서 사용될 수 있다. main()함수는 main()함수 내의 블록의 상위영역이고, 중첩된 블록에서는 외부블록이 내부블록의 상위영역이다. 예를 들면 main()함수에서 정의된 int i=1에서 변수 i는 main()함수 내의 블록에서도 접근가능하다. 다만, 이때 블록 내에 i라는 동일한 이름의 지역변수가 선언되어 있으면 블록 내의 그 변수가 우선한다. 문제에서 동일한 이름으로 변수 i는 함수, 중첩된 블록(외부 블록과 내부 블록)에서 각각 선언되어 있다. 따라서 외부 블록에서의 printf문에서의 i는 외부블록에서 선언한 i의 값(3)이, main()함수의 printf문에서의 i는 main()함수에서 선언한 i(1)가 출력된다.#includevoid main(){int a, b, sum=0;for (a=0; al; b--)sum+=l;printf("%d", sum);}10. 다음 프로그램의 출력결과로 올바른 것은?② 40정답해설중첩된 for문에서 외부 for문은 a가 0에서 9까지 변하면서 10번 반복되고,내부 for문에서는 b가 5에서 2까지 변하면서 4번 반복된다. 따라서 for으로 총 40번의 반복과정이 진행되므로 sum은 40이 된다.11. 다음과 같은 프로그램의 결과로 올바른 것은?#includevoid main(){int array[3][4]={l,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};printf("%d", array[2][3]);}④ 12정답해설배열의 각 원소에 접근하기 위해서는 첨자를 사용한다. 첨자는 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,12}} 이다. 따라서 attay[2][3]는 배열에서 세 번째 행인 {9,10,11,12}의 네 번째 열의 값을 의미하므로 12이 된다.※ (12?14) 다음과 같은 프로그램이 있을 때 물음에 답하시오.#include ㉠void display_line(void); ㉡void main() {display_line(); ㉢printf("n This is an Example program!n");display_line();}/* print asterisk line ㉣void display_line(void) { ㉤int counter; ㉥for(counter=0; counter
1. 교재1장 내용(12점)교재 14쪽의 예제 1.1에 제시된 과정을 따라 엑셀을 활용하여 다음 그래프를 작성하시오. 필요한 통계정보는 KOSIS에서 찾아서 활용하시오.(1) 1990년부터 2019년까지의 연도별 전국 총출생성비를 시계열도표로 나타내고 전체적인 경향을 설명하시오.위 연도별 총출생 성비 표는 전체적으로 남아선호 사상으로 인해 성비불균형을 이루고 있다.1990년대에는 성비차이가 너무 심해 여아 100명당 남아 평균 112.6명이고,2000년대에는 적어지긴하였지만 평균 108명으로 여전히 우위를 보이고 있다.2010년대에 들어서는 성비가 105명으로 근소우위지만 차이가 얼마 나지 않고 여아출생이 남아 출생을 따라잡고 있는것으로 보인다.(2) 1990년부터 2019년까지의 연도별 서울과 부산의 총출생성비를 하나의 시계열도표에 나타내고 비교하여 설명하시오.위 표를 분석하면 서울특별시는 1990년대에 여야 100명당 남아 평균 101.4로 차이가 거의 없지만, 부산광역시는 여아 100명당 남아 평균 99.6명으로 여아 비율이 앞서고 있고,......<중 략>
2021학년도 1학기 중간과제물(온라인제출용)교과목명 :학 번 :성 명 :연 락 처 :__________________________________________________________________________________○ 과제유형 : ( 공통 ) 형○ 과 제 명 : 1. 아래의 문제에 대하여 주요 특징을 개조식으로 ①, ②, …, ⑤번호를 붙여서 5가지 이상 설명하라.(가) 정보사회에 대하여 설명하라.(나) 유비쿼터스 시대에 대하여 설명하라.(다) 개인용 컴퓨터에 대하여 설명하라.(라) 참고문헌이나 인터넷을 참고하여 제4차 산업혁명에 대하여설명하라.※ 과제 관련 내용으로 교재 1장을 정독한다. 그밖에 더 자세한 내용은인터넷을 참고한다.2. 컴퓨터의 입출력 방식에 대한 다음 내용을 각각 A4 용지 1페이지 내외로 작성하라.(가) QR코드에 대하여 설명하고, 본인의 이름과 소속 학과명이 포함된 텍스트가 들어 있는 QR코드를 만들어서 보고서에 첨부하라.(나) 3차원 영상 정보를 전달할 수 있는 출력 방식을 한 가지조사하여 설명하라.- 이하 과제 작성1. 정보사회에 대하여 설명하라.?.정보보다 지식, 지식보다 지혜의 가치가 높다.?.사이버 공간(Cyber space)의 보편화.?.이러닝(E-learning)과 같이 새로운 패러다임의 교육 방식 형성.?.가정생활에서의 완전한 컴퓨터화 실현.?.데이터베이스(Data base)가 사회의 지적 자원으로 활용.2. 유비쿼터스 시대에 대하여 설명하라.?.언제, 어디서, 누구나 대용량 통신망을 저렴한 비용으로 이용.?.소프트웨어(Software)와 데이터 처리 기술의 고속화.?.하드웨어(Hardware)의 크기 최소화와 가격의 저렴화.?.광섬유를 이용한 초고속 네트워크 기술.?.무선랜(Wi-fi)기술의 발전.3. 개인용 컴퓨터에 대하여 설명하라.?.최초로 판매된 개인용 컴퓨터는 MITs사의 Altair8800 이다.?.PC(Personal Computer) 단어는 IBM사에서 발명한 IBM PC에서 유래되었다.?.인터넷이 보급됨에 따라 개인용 컴퓨터도 널리 보급됨.?.현재에 이르러 사무용, 교육용, 여가 활동 등으로 활용한다.?.개인용 컴퓨터엔 Desktop과 Notebook, Laptop, Palmtop,PDA 등이 있다.4. 제 4차 산업에 대하여 설명하라.제4차 산업혁명은 A.I (artificail Intelligence)이므로 자동화와 연결성이 극대화되는 산업 환경의 변화를 의미한다.이 용어는 세계경제포럼의 창시자 중 하나인 클라우스 슈바브(Klaus Schwab)가 2015년에 포린 어페어의 기고글에서 처음 사용했다.2016년 1월 20일 스위스 다보스에서 열린 세계경제포럼에서도 언급되기 시작했으며, 대체로 머신 러닝과 A.I의 발달이 주요 수단으로 꼽힌다.이번 경우에는 산업 혁명이라는 표현이 정말 잘 어울린다고 할 수 있는데, 18세기 산업 혁명 수준이나 그 이상의 생산 효율 증가가 예견되어 있기 때문이다.과거 기계 한 대가 노동자 수백 명을 대체했듯이 이번에는 프로그램 하나, 컴퓨터 한 대가 수백, 또는 수십만 명의 전문 인력을 대체할 수 있게 된다.가스레인지나 세탁기 없어도 사람이 도끼로 장작 캐오고 몽둥이로 빨래 두드리면 살아가는데 큰 문제는 없다.하지만 현재의 직업과 병행할 수 없을 정도로 시간을 소모하기 때문에 행복한 생활을 할 수 없을 만큼 불편해질 뿐이다.4차 산업혁명이 제공해 줄 기술의 발전도 이와 유사하다.4차 산업 혁명의 궁극적인 목표는 삶의 행복을 증대시키는 것이다.국내에서는 관련 번역 도서가 간간이 들어오는 정도였으나, 2017년부터 19대 대선을 앞두고 여러 대선 주자들이 4차 산업혁명을 강조하면서 인지도가 크게 올랐다.5. QR 코드에 대하여 설명하라.2차원 매트릭스 형태로 이루어진 바코드이며, QR은 Quick Response의 약자이다.QR(Quick Response) 코드는 디지털 장치에서 쉽게 읽을 수 있고, 정보를 정사각형 그리드에 일련의 픽셀로 저장하는 바코드 유형입니다.QR 코드는 제품에 대한 정보를 추적하는 데 자주 사용됩니다.기존 바코드를 개선 한 QR 코드는 훨씬 더 많은 정보를 저장할 수 있으며 공급망 관리에서 암호 화폐 지갑 주소에 이르기까지 다양한 어플리케이션에서 사용됩니다.다양한 목적에 맞게 사용자 지정되거나 더 많은 양의 데이터를 저장할 수 있는 여러 버전 및 변형 된 QR 코드가 존재합니다.6. 본인의 이름과 소속, 학과명이 포함된 텍스트가 들어 있는 QR코드 생성후 첨부하라.본인 QR 생성후 삽입.7. 3차원 영상 정보를 전달할 수 있는 출력 방식을 조사한 후 설명하라.홀로그래피(Holography)란, 두 개의 레이저광이 서로 만나 일으키는 빛의 간섭 현상을 이용하여 입체 정보를 기록하고 재생하는 기술을 의미한다. 또한 홀로그램(Hologram)은 그 기술로 촬영된 것을 가리킨다. 홀로그램이란, '완전함' 혹은 '전체' 라는 뜻의 'Holo'와 '메시지', '정보'라는 뜻의 'Gram'이 합쳐진 말이다.홀로그래피는 전자 현미경의 해상도를 향상시키기 위해 이 기술을 사용할 것을 제안한 Denis Gabor에 의해 1948년에 발견되었습니다.홀로그래피는 매우 실제적인 3차원 이미지를 생성하는 사진 원리로,이 이미지 내부에서 1/1000mm의 정밀도로 측정할 수 있습니다.홀로그래피에는 많은 응용 분야가 있지만 3차원 이미지를 생성하는 능력으로 가장 잘 알려져 있습니다. 홀로그램은 단순한 사진으로는 불가능한 방식으로 장면의 원근을 포착합니다.예를 들어 홀로그램을 볼 때 머리를 움직여 전경에있는 물체를 둘러보고 그 뒤에 무엇이 있는지 볼 수 있습니다.홀로그래피는 30년이 넘게 사용되어 왔지만 레이저의 출현 이후로 상업적으로 많이 응용되게 발전되었습니다.의료 분야에서는 환부의 입체 이미지를 얻기 위해 홀로그램을 이용하고공업 분야에서는 홀로그래피를 사용한 정밀 계측이 보급되고 있다.건축, 설계 분야에서는 컴퓨터에 기계와 건물의 여러 요소를 입력하여 여러 각도에서 본 대상물의 모습을 계산시킨다.기록 및 보존에서도 범위는 더욱더 확대되고 있는데,이 분야에서도 홀로그래피가 하는 역할은 크다.미술 공예품·건조물·정원·경관 등 역사상 중요한 문화재라든가 자연의 기록, 보존이 있다.문자·사진·도면·모형 등으로서 후세에 전하는 것이 불가능한 것을 간결하게 기록할 수가 있다.엔터테인먼트 분야에서는 이미 홀로그램 기술과 유사한 기술을 이용한 공연이 실행되고 있다.
2021학년도 1학기 중간과제물(온라인제출용)교과목명 :학 번 :성 명 :연 락 처 :__________________________________________________________________________________○ 과제유형 : ( 공통 ) 형○ 과 제 명 : 실행화면을 참고하여 다음의 과제를 풀고 에 맞게 제출하시오.1. 키보드를 통해 정수값 2개를 입력 받아 평균값을 정수로 구한 후 부호를 바꾸어 출력하는 프로그램을 작성하시오.2. 사다리꼴의 윗변, 밑변, 높이를 정수값으로 입력 받은 후 넓이를 실수값 소수점 이하 세 자리까지 출력하는 프로그램을 작성하시오. 다음에 주어진 예제 프로그램들을 에 맞게 작성하시오.1. 교재 p28[예제 1-2] 다음은 C프로그램의 기본 구조인 도입부, main()함수, 호출된 함수()를 살펴보기 위한 프로그램으로 두 수를 입력받아 곱한 값을 출력하는 프로그램이다.2. 교재 p60[예제 2-2] 다음은 선행처리기인 #define문을 이용한 상수 정의에 대한 예제로, 반지름을 입력받아 원의 면적을 구하는 프로그램이다.3. 교재 p92[예제 3-2] 다음은 C 언어에서 제공하는 각종 연산자를 이용하여 입력된 액수를 500원, 100원, 50원, 10원짜리 동전으로 교환해주는 프로그램이다.1. 과 프로그램의 소스코드(주석 포함)를 작성한 후 컴파일러를 이용하여 실행해보고 소스코드와 실행결과를 제출하시오.- 이하 과제 작성1. 키보드를 통해 정수값 2개를 입력 받아 평균값을 정수로 구한 후 부호를 바꾸어 출력하는프로그램을 작성하시오.실행결과 :소스코드 :#include int a, b, avg, avg1;int main(){printf("첫 번째 값을 입력하시오 : ");scanf("%d", &a);printf("두 번째 값을 입력하시오 : ");scanf("%d", &b);printf("n입력된 값: %d, %dn", a, b);avg = (a+b) / 2;avg1 = -avg;printf("n두 정수의 평균값은 %d 이고, 평균값의 부호를 반전한 값은 %d 입니다.n", avg, avg1);}2.사다리꼴의 윗변, 밑변, 높이를 정수값으로 입력 받은 후 넓이를 실수값 소수점 이하 세 자리까지 출력하는 프로그램을 작성하시오.실행결과 :소스코드 :#include int a, b, c;float area;int main(){printf("윗변 값을 입력하시오 : ");scanf("%d", &a);printf("밑변 값을 입력하시오 : ");scanf("%d", &b);printf("높이 값을 입력하시오 : ");scanf("%d", &c);printf("n윗변: %dn밑변: %dn높이: %dn", a, b, c);area = ((a+b)*c) / 2;printf("n윗변(%d), 밑변(%d), 높이(%d) 를 갖고있는 이 도형의 면적은 %.3f입니다.", a, b, c, area);}1. 교재 p28[예제 1-2] 다음은 C프로그램의 기본 구조인 도입부, main()함수, 호출된 함수()를 살펴보기 위한 프로그램으로 두 수를 입력받아 곱한 값을 출력하는 프로그램이다.실행결과 :소스코드 :/* 이 프로그램은 두 수를 키보드로 입력받아 곱의 결과를 출력하는 프로그램이다. *//* 도입부 */#include //printf()와 scanf()를 사용하기 위한 헤더 파일 포함#pragma warning(disable:4996)// 권장하지 않는 함수 사용에 대한 경고 메세지 무시int a, b, c;//정수를 저장하는 변수 선언int product(int x, int y);//사용자 함수 원형/* main() 함수*/int main() {/* 첫 번째 수를 입력 */printf("Enter a number between 1 and 100 : ");scanf("%d", &a);/* 두 번째 수를 입력 */printf("Enter a number between 1 and 100 : ");scanf("%d", &b);/* 함수 호출에 의해 두 수를 곱하고 결과를 출력 */c = product(a,b);printf("%d * %d = %d n", a, b, c);}/* 두 수의 곱을 계산하여 돌려주는 사용자 함수 */int product(int x, int y) {return(x*y);}2. 교재 p60[예제 2-2] 다음은 선행처리기인 #define문을 이용한 상수 정의에 대한 예제로, 반지름을 입력받아 원의 면적을 구하는 프로그램이다.실행결과 :소스코드 :#include #define IN "원의 반지름은 100입니다. n"#define PI 3.1415926535#define AREA(X)(PI*(X)*(X))#define OUT printf("원의 면적을 구하고 프로그램을 종료합니다. n")int main(){printf("%s n", IN);printf("원의 면적은 %10.5f입니다. nn", AREA(100));OUT;}3. 교재 p92[예제 3-2] 다음은 C 언어에서 제공하는 각종 연산자를 이용하여 입력된 액수를 500원, 100원, 50원, 10원짜리 동전으로 교환해주는 프로그램이다.실행결과 :소스코드 :#include #pragma warning(disable:4996)int main(){int in_money, coin_500, coin_100, coin_50, coin_10;printf("동전으로 교환할 금액은? ");