문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시에서 이후는각입력과출력에대한설명이다. 11장2절 [ 문제 1 ] 3차원벡터를저장할구조체를선언후두개의 3차원벡터 (V 1, V 2 ) 를입력받으시오. 두벡터의원소별로곱한값을새로운 3차원벡터 (V 3 ) 에입력후이를출력하는프로그램을작성하시오. 그다음두벡터의내적을출력하시오. - 3차원벡터 V 1 ={ x 1, y 1, z 1 }, V 2 ={ x 2, y 2, z 2 } - 원소별곱을 3차원벡터에저장 : V 3 = { x 1 x 2, y 1 y 2, z 1 z 2 } - 3차원벡터 V 1 과 V 2 의내적 : V 1 V 2 = x 1 x 2 + y 1 y 2 + z 1 z 2 1 2 3 V 1-1 10 15 V 3 = { 1 (-1) 2 5 3 5 } -1 5 5 V 2 24 내적 = V 1 V 2 = -1+10+15 11장2절 [ 문제 2 ] 구조체를이용하여서현재시각을표현한다. 사용자로부터 2개의시각을입력받아서두시각사이의차이를계산하여출력하는프로그램을작성하시오. - 두번째시각이첫번째시각보다항상늦은시각이라고가정한다. - 시간차가없는경우에분과초만출력하는것이아니라시분초, 0 10 20 으로출력한다. 10 20 30 10 시 20 분 30 초 12 05 10 12 시 05 분 10 초 1 44 40 입력예시 2 출력예시 2 1 10 20 1 시 10 분 20 초 3 20 30 3 시 20 분 30 초 2 10 10 11 장 3 절 [ 문제 3 ] 5 명학생의이름과기말고사점수를입력받아, 구조체배열에저장한후, 평 균이하의점수를받은학생의이름을출력하는프로그램을작성하시오. - 학생의이름은공백없이최대 9 개영어문자이다. - 1 -
akim 75 bkim 85 ckim 65 dkim 95 ekim 100 akim ckim 11장3절 [ 문제 4 ] N명의학생에대해이름과세번본시험의성적을읽어들여, 각학생의이름과평균점수 ( 소수점이하첫째자리까지 ), 학점을출력하는프로그램을작성하시오. - 학생수 N은맨처음읽어들이도록하며, N은 20을넘지않는다. - 학생의이름은공백없이최대 19개영어문자이다. - 학점은 90점이상이면 A - 학점은 80점이상이면 B - 학점은 70점이상이면 C - 학점은 70점미만이면 F를부여하시오. 1 N Hongildong 95 80 75 Hongildong 83.3 B 11장3절 [ 문제 5 ] N 명의학생에대한정보 ( 이름, 국어성적, 영어성적, 수학성적 ) 를입력받아, 각학생의평균성적에따라학점을산출한후, 각학생의이름과평균성적 ( 소수점이하첫째자리까지 ) 과학점을출력하는프로그램을작성하시오. - N은 1 이상 50 이하. - 학생의이름은공백없이최대 7개영어문자이다. - 이름은길이가 1 이상 8 이하인공백을포함하지않는문자열 - 국어성적, 영어성적, 수학성적은 0 이상 100 이하인정수 - 평균은소수첫째자리까지출력 - 학점은평균성적으로다음기준을적용하여산출 : 90 이상 100 이하 : A 80 이상 90 미만 : B 70 이상 80 미만 : C 70 미만 : D - 전역변수사용금지 - 반드시구조체포인터사용 - 다음멤버를가지는 student 구조체를정의하여사용하시오. 이름을저장하는문자배열, 국어성적을저장하는정수형변수, 영어성적을저장하는정수형변수, 수학성적을저장하는정수형변수, 평균성적을저장하는실수형변수, 학점을 - 2 -
저장하는문자형변수 2 Kim 82 72 58 Young 90 100 99 Kim 70.7 C Young 96.3 A [ 문제 6 ] 학급학생의수를입력받은후, 각학생의성별, 체중, 키를입력받으시오. 아래표에 따라신체등급별인원수를출력하는프로그램을작성하시오. 남자 (1) 여자 (2) 키 <165 165 키 <175 175 키 체중 <60 1 2 3 60 체중 <70 3 1 2 70 체중 2 3 1 키 <165 165 키 <175 175 키 체중 <50 1 2 3 50 체중 <60 3 1 2 60 체중 2 3 1 - 성별은남자가 1, 여자가 2 로입력받는다. - 학생의데이터를저장하는구조체를사용하시오. - 학급인원은최대 10 명이다. 2 학생수 1 66 170 성별, 체중, 키 2 48 155 성별, 체중, 키 2 0 0 1 등급, 2 등급, 3 등급 11장3절 [ 문제 7 ] 10 개의정수를입력받고, 그정수의내림차순상순위를계산하여, 정수와순위를함께구조체배열에저장한후, 3번째순위와 7번째순위에해당하는정수를출력하는프로그램을작성하시오. - 동일한정수가중복입력되는경우는없다고가정한다. - 정렬 (sorting) 하여배열에저장하지말고, 입력된순서대로순위와함께저장합니다. 78 65 23 43 82 95 31 15 8 54 78 31-3 -
11장5절 [ 문제 8 ] 두개의복소수를입력받고, 두복소수를더한결과값을출력하는프로그램을작성하시오. - 전역변수사용금지 - 복소수를표현하는 complex 구조체를정의하여사용하시오. 실수부를나타내는실수형변수, 허수부를나타내는실수형변수 - add 함수를정의하여사용하시오. 인자 : 두개의 complex 구조체 반환값 : complex 구조체 - main 함수의내용은다음과같다. 복소수를저장할 complex 구조체선언 복소수 2개를사용자로부터입력받기 add 함수를호출하여, 입력받은두복소수의합구하기 결과값으로, 입력받은두복소수의합, 소수점이하첫째자리까지출력하기 2.3 4.5 첫번째복소수 (=2.3+4.5i) 3.4 5.0 두번째복소수 (=3.4+5i) 5.7 + 9.5i 입력받은두복소수의합 11장5절 [ 문제 9 ] 한학생의시험결과정보 ( 가장높은점수, 가장낮은점수, 시험통과여부, 합격기준점수차, 점수차 ) 를입력받는다. 이학생의점수차와시험통과여부 (P 혹은 F) 를출력하는프로그램을작성하시오. - 시험통과여부판단방법 : 가장높은점수와가장낮은점수의차이가합격기준점수차보다작거나같으면시험통과! - 가장높은점수와가장낮은점수는 0 이상 100 이하인정수 - 시험통과여부항목은통과일경우 P 를, 통과하지못한경우 F 를값으로가짐 - 합격기준점수차는 0 이상 15 이하인정수 - 시험결과정보를나타내는 result 구조체를정의하여사용하시오. 가장높은점수를저장하는정수형변수, 가장낮은점수를저장하는정수형변수, 시험통과여부를저장하는문자형변수, 합격기준점수차를저장하는정수형변수, 가장높은점수와가장낮은점수의차이를저장하는정수형변수 - 전역변수사용금지 - passorfail 함수를정의하여사용하시오. 인자 : 구조체포인터 시험통과여부를계산하여 P 혹은 F 를저장 - main 함수의내용은다음과같다. 시험결과정보를저장할 result 구조체선언 사용자로부터가장높은점수, 가장낮은점수, 합격기준점수정보를입력받기 - 4 -
passorfail 함수를호출하여, 이학생의시험통과여부판단하기 이학생의점수차와시험통과여부를출력하기 100 95 10 높은점수, 낮은점수, 합격기준점수차 5 P [ 문제 10 ] year/month/day 형식의두날짜를입력받아, 각각구조체변수에저장하고, 두날짜중더빠른날짜를같은형식으로출력하는프로그램을작성하시오. - 함수 select_min() 을다음과같이작성하여사용하시오. 인자 : 두개의구조체변수의주소 ( 포인터 ) 반환값 : 두날짜중더빠른날짜를나타내는구조체변수의주소 ( 값이아님 ) - 입력과출력은 main() 함수에서실행된다. 2016/10/9 2016/8/6 2016/8/6 입력예시 2 출력예시 2 2014/10/9 2016/8/6 2014/10/9 [ 문제 11 ] 5명학생의이름과기말고사점수를입력받아, 구조체배열에저장한후, 기말고사점수가최하위인학생의이름과점수를출력하는프로그램을작성하시오. - 함수 select_min() 을다음과같이작성하여사용하시오. 의주소 ( 포인터 ) 반환값 : 기말고사점수가최하위인구조체배열원소의주소 ( 값이아님 ) - 학생의이름은공백없이최대길이가 9인영어문자열이다. - 기말고사점수는 0과 100사이의정수이다. - 같은점수의학생은없다고가정한다. - 출력은 main() 함수에서실행된다. akim 75 bkim 85 ckim 65 dkim 95 ekim 100 ckim 65-5 -
[ 문제 12 ] 10명학생의이름과 3회퀴즈점수를입력으로받아퀴즈평균점수가최고점과최저점인학생의이름과평균점수를출력하고, 퀴즈평균점수가하위 30% 에속하는학생의이름과퀴즈평균점수를출력하는프로그램을다음함수들을사용하여작성합니다. - read_data( ) 함수 10명학생의이름과학생당 3회퀴즈점수를입력받아, 구조체배열에저장합니다. 학생의이름은공백없이최대 9개영어문자이다. - cal_avg( ) 함수 각학생의퀴즈점수평균값을계산합니다. - sort( ) 함수 평균값에따라학생들의이름과퀴즈점수들을내림차순으로정렬하여저장합니다. - print_score( ) 함수 최고평균점, 최저평균점, 하위 30% 의평균점을받은학생들의이름과평균점수를출력합니다. 평균은소수점이하둘째자리까지출력합니다. - 평균이동점인경우는없는것으로한다. AKim 80 80 80 BKim 90 90 90 CKim 81 81 81 ALee 82 82 82 BLee 83 83 83 CLee 84 84 84 APark 85 85 85 BPark 86 86 86 CPark 87 87 87 DPark 88 88 88 BKim 90.00 최고점학생의이름과평균 AKim 80.00 최저점학생의이름과평균 ALee 82.00 하위 30% 학생의이름과평균 ( 내림차순 ) CKim 81.00 하위 30% 학생의이름과평균 ( 내림차순 ) AKim 80.00 하위 30% 학생의이름과평균 ( 내림차순 ) - 6 -