기초 실습 문제
1. 두 개의 숫자(정수형)를 입력하면 두 수의 사칙연산 결과를 모두 출력하는 프로그램을 작성하시오.
2. 세 개의 숫자(실수형)를 입력하면 이 수들의 합과 평균을 출력하는 프로그램을 작성하시오.
3. 섭씨로 표시된 온도 측정값을 화씨 표시의 온도 값으로 변환하는 프로그램을 작성하시오.
사용자 입력 : 섭씨 온도를 나타내는 실수
프로그램 출력 : 화씨 온도
수식 : 화씨 = 섭씨 * ( 9 / 5 ) + 32
4. 어떤 정수 나눗셈의 몫과 나머지를 출력하는 프로그램을 작성하시오.
사용자 입력 : 두 개의 정수
프로그램 출력 : 몫과 나머지
조건문 관련 실습 예제
1. 두 수(정수)를 입력 받아, 그 중 큰 수를 출력하는 프로그램을 작성하시오.
2. 하나의 정수를 입력 받아 이 수가 짝수(even number)인지 홀수(odd number)인지를 출력하는 프로그램을 작성하시오.
3. 세 수(정수형)를 입력 받아 가장 큰 수를 출력하는 프로그램을 작성하시오.
4. 점수(정수)를 입력 받아서 등급(A, B, C, D, E)을 출력하는 프로그램을 작성하시오.
(A : 100-80, B: 79-60, C: 59-40, D: 39-20, E: 19-0)
5. 메뉴를 출력하고, 사용자로부터 입력을 받아 선택된 메뉴를 출력하는 프로그램을 작성하시오.
choose one of the following.
apple
orange
banana
peach
enter your choice here : (사용자 입력)orange
--------------
Your choice is “orange”.
6. 어떤 두 자리 수의 자릿수의 순서를 서로 바꾸는 프로그램을 작성하시오.
사용자 입력 : 한 개의 두 자리 정수
출력 : 자릿수의 순서가 반대로 된 정수
반복문 관련 실습 예제
1. 1부터 10까지 연속 출력하는 프로그램을 작성하시오.
2. 10개의 정수를 입력 받아 그 총합을 출력하는 프로그램을 작성하시오.
3. 1부터 100사이의 숫자(정수) 중에서 3의 공배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오.(while문 사용)
4. 1부터 100사이의 숫자(정수) 중에서 3의 공배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오.(for문 사용)
5. 1부터 100사이의 숫자(정수) 중에서 3의 공배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오.(do-while문 사용)
6. 어떤 양의 정수(n)를 입력 받아(만약 0이나 음의 정수를 입력하면, 에러 메시지를 띄운 뒤, 다시 입력하도록 처리), 그 수의 2n을 구하는 프로그램을 작성하시오.
7. 0이 입력될 때까지 계속 정수를 입력 받고, 입력된 모든 숫자들의 총합을 출력하시오.
8. 1부터 9사이의 숫자 하나를 입력 받아 그 숫자의 구구단을 출력하는 프로그램을 작성하시오.(5이면 5단을 출력)
9. 위의 문제에서 1부터 9사이 이외의 숫자를 사용자가 잘못 입력할 수도 있으니, 이 경우에 잘못된 숫자라는 것을 알려주는 에러 메시지를 출력하고 다시 숫자를 입력 받도록 처리하시오.(입력의 유효성 검사)
10. 소수(prime-number) 검사와 흡사하게 사용자가 입력한 수의 인수들을 모두 출력하는 프로그램을 작성하시오.
8 => 2 4
12 => 2 3 4 6
11. 위의 문제를 0을 입력하기 전까지는 계속 수행(인수 출력)하도록 수정하시오.
12. for문(while)의 무한 반복과 break 문을 이용하여 0이 입력될 때까지 입력 받은 정수 중 가장 큰 정수를 출력하는 프로그램을 작성하시오.
13. month와 day를 입력 받아, 1월 1일부터의 총 day수를 출력하는 프로그램을 작성하시오. (switch문 사용) //1월 20일은 20일 출력, 2월 5일은 36일 출력. 단 2월은 28일로 계산.
14. 사용자로부터 숫자 하나를 입력받아, 7부터 입력받은 수까지의 모든 정수들의 합을 구하는 프로그램을 작성하시오. 입력받은 숫자가 7보다 작으면 에러 메시지를 출력한다.
15. 1~100 사이의 숫자 하나를 정한 뒤(랜덤으로 생성해도 됨), 10번 이내로 그 숫자를 맞추는 게임을 작성하시오.(10번 이내로 못 맞추었을 경우는 약간 머리가 딸리는 사람이므로 Game Over 처리를 신랄하게 해 주기 바람)
예) 답이 49일 경우:
숫자를 입력하시오: 36
입력하신 숫자보다 큽니다.
숫자를 입력하시오: 51
입력하신 숫자보다 작습니다.
숫자를 입력하시오: 49
정답입니다!
16. 한 특정한 정수의 전체 자릿수의 개수를 결정하는 프로그램을 작성하시오.
사용자 입력 : 한 개의 정수
출력 : 자릿수의 개수
17. 1부터 100까지의 합을 for loop을 써서 구하는 프로그램을 작성하시오.
18. 1부터 100까지 5의 배수의 합을 for loop을 써서 구하는 프로그램을 작성하시오.
19. 사용자로부터 한 숫자를 입력받아, 입력받은 숫자가 소수인지 아닌지를 검사하는 프로그램을 작성하시오.
20. 100 이하의 소수를 모두 출력하는 프로그램을 작성하시오.
21. 사용자로부터 한 숫자를 입력받아, 입력받은 숫자 이하의 소수들의 합을 구하는 프로그램을 작성하시오.
22. 사용자가 0을 입력할 때까지 여러 숫자를 입력받아, 입력받은 숫자의 최대값을 출력하는 프로그램을 작성하시오.
사용자 입력
3
2
4
8
0
결과: 8
23.***** *
*** ***
* *****
를 출력하시오(반복문 써서!)
24.사용자에게 라인 수를 입력받아서 그 줄 수 만큼 별표 삼각형을 만드시오.
사용자 입력: 4
*
***
*****
*******
25.다음과 같은 출력이 나오도록 프로그램을 작성하시오.
(1) *********** (2)54321012345
********* 432101234
******* 3210123
***** 21012
*** 101
* 0
*** 101
***** 21012
******* 3210123
********* 432101234
*********** 54321012345
배열 관련 실습 문제
1. 크기가 10인 정수 배열을 사용하여 학생 10명의 성적을 입력 받은 후, 성적 총합과 평균 점수, 최고 점수, 최저 점수를 출력하는 프로그램을 작성 하시오.
2. 10개짜리 정수형 배열을 사용자로부터 입력 받고, 숫자 하나를 추가로 입력받아, 입력받은 숫자가 배열에 몇 개 존재하는 지를 출력하는 프로그램을 작성하시오.
예) Input : 6 4 3 4 2 4 2 7 6 3
search num : 4
=> count: 3
3. 학생 3명의 학급에서 각각 국어 영어 수학의 시험 성적을 배열을 이용하여 입력 받은 후, 각 과목 총합과 평균을 출력하는 프로그램을 작성하시오.(입력은 학생 순서로 수행)
입력 예)
학생 1: 77 66 88
학생 2: 90 80 100
학생 3: 65 75 85
출력 결과)
Kor Eng Math Total Avg
77 66 88 231 77.0
90 80 100 270 80.0
65 75 85 225 75.0
4. 앞 문제를 2차원 배열을 사용하여 작성하시오.
5. 문자열을 입력하면 문자 개수를 출력하는 프로그램을 작성하시오.
6. 두 개의 문자열을 입력 받아, 첫번째 문자열에 두 번째 문자열이 포함되어 있는 지를 검사하고, 만약 포함 되어 있으면 그 위치를 출력하시오.
예)
How are you ?
are
-> yes, 4 (포함되어 있고 4번째 부터 존재함)
7. 크기가 10인 정수 배열을 사용하여 학생 10명의 성적을 입력 받은 후, 성적 총합과 평균 점수, 최고 점수, 최저 점수를 출력하는 프로그램을 작성 하시오.
8. 크기가 5인 정수 배열을 사용하여 10 개의 정수를 입력받아, 가장 큰 두 수의 곱을 찾는 프로그램을 작성 하시오.
예) Input : 6 4 3 4 2
result : 24
9. 정수형 데이터를 갖는 3X3 행렬 2개를 입력받아, 그 곱을 출력하는 프로그램을 작성하시오.
10. 단어가 회문 (앞뒤 어느 쪽에서 읽어도 같은 어구) 인지를 결정하는 프로그램을 작성하여라.
11. 연수와 월수를 입력하면 달력이 출력되는 프로그램을 작성하시오.(굉장히 어려운 문제)
조건:
1년 1월 1일은 월요일이다
4년마다 한 번씩 윤년(원래 2월은 28일까지지만, 윤년 때의 2월은 29일까지임)
그런데 100년마다는 윤년이 아님
그런데! 400년마다는 또 윤년임!
(따라서 300년은 윤년이 아니지만, 2000년은 윤년임)
연수를 입력하시오: 2006
월수를 입력하시오: 8
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
포인터 관련 실습 예제
1. 정수로 이루어진 배열과, 배열의 원소의 개수를 인수로 받아 합계를 구하는 int sum(int *array, int number) 함수를 작성하고, 그 결과(main() 함수에서 호출하여)를 보여라
2. 두 개의 숫자를 더하는 int add(int num1, int num2), 두개의 숫자를 빼는 int subtract(int num1, int num2), 두개의 숫자를 곱하는 int mul(int num1, int num2)를 각각 작성한다.
사용자가 "add"를 입력하면 두개의 숫자를 추가로 입력받아 add()함수를 호출하여 더한 결과를 출력하고, "sub"를 입력하면 두개의 숫자를 추가로 입력받아 subtract()함수를 호출하여 뺄셈한 결과를 출력한다.
위의 연산을 사용자가 "quit"을 입력할 때까지 계속 되풀이한다.
strcmp() 표준함수 사용.
3. 정수로 이루어진 배열과, 배열의 원소의 개수를 인수로 받아 합계를 구하는 int sum(int *array, int number) 함수를 작성하고, 그 결과(main() 함수에서 호출하여)를 보여라
4. 두 개의 정수를 인자로 받아서 그 값을 맞바꾸는 일을 하는 swap_int()함수를 작성하고 그 결과(main() 함수에서 호출하여)를 보여라
모듈화 프로그램 관련 실습 예제
1. 시간 입력을 초로 환산하는 함수를 작성하시오.
함수 입력 : 시, 분, 초를 나타내는 세 개의 정수
함수 반환값 : 초로 환산된 정수
2. 소문자를 대문자로 변환하는 함수를 작성하시오.
함수 입력 : 한 개의 소문자
함수 출력 : 입력이 알파벳 중 하나이면, 해당하는 대문자, 그렇지 않으면 ?표시
3. 어떤 한 수를 가장 가까운 100 단위로 정수화하는 함수를 작성하시오.
함수 입력 : 실수
함수 출력 : 입력에 가장 가까운 100의 배수
4. 다음 조화 수열의 처음부터 k번째 항까지 합산하는 함수를 작성하시오.
함수 입력 : 합산할 항들의 개수를 나타내는 정수
함수 출력 : 합산 결과 (실수)
5. 어떤 한 실수를 정수로 바꾸면서 소수점 이하를 자르는 함수를 작성하시오.
함수 입력 : 실수
함수 출력 : 소수점 이하가 잘린 정수
6. 점수를 학점으로 변환하는 함수를 작성하시오.
함수 입력 : 0-100 사이의 점수 (정수)
함수 반환값 : 학점
A : 80-100
B : 70-79
C : 60-69
D : 50-59
F : 0-49
구조체 관련 실습 예제
1. 학생 3명의 학급에서 각각 국어 영어 수학의 시험 성적을 입력 받은 후, 각 과목 총합과 평균을 출력하는 프로그램을 작성하시오.
먼저 국어, 영어, 수학 성적을 멤버로 하는 구조체 student_t 를 정의한다.
학생이 3명이므로 student_t 타입의 변수 3개, 혹은 배열을 정의하여, 해당 변수에 성적을 입력받는다.
각 과목의 총합을 구하는 함수를 각각 작성하여 총합과 평균을 구한 후 이를 출력한다.
2. 사람의 이름과 전화번호를 멤버로 하는 구조체, phonebook_t 를 정의하고, phonebook_t 타입의 배열 변수를 정의하여 키보드로부터 3명의 이름과 전화번호를 입력받는다.
사람의 이름을 입력받으면 전화번호를 출력하는 프로그램을 작성한다. 이름이 이미 입력받은 전화번호부에 있으면 전화번호를 출력하고, 없으면 없다는 메시지를 출력한다.
3. 복소수를 저장할 수 있는 구조체를 정의하고, 사용자로부터 2 개의 복소수를 입력받아, 그 합을 구하는 프로그램을 작성하시오.
4. 먼저 국어, 영어, 수학 성적을 멤버로 하는 구조체 student_t 를 정의한다. 학생이 3 명이므로 student_t 타입의 변수 3 개, 혹은 배열을 정의하여, 해당 변수에 성적을 입력받고, 총합과 평균을 구한 후 이를 출력한다.
5. 사람의 이름과 전화번호를 멤버로 하는 구조체, phonebook_t 를 정의하고, phonebook_t 타입의 배열 변수를 정의하여 키보드로부터 3명의 이름과 전화번호를 입력받는다.
6. 사람의 이름을 입력받으면 전화번호를 출력하는 프로그램을 작성한다. 이름이 이미 입력받은 전화번호부에 있으면 전화번호를 출력하고, 없으면 없다는 메시지를 출력한다.
7. 학생의 이름, 주소, 전화번호, 전공 등을 멤버로 하는 구조체, student_t 를 정의하고, student_t 타입의 배열 변수를 정의한다. (배열은 3개의 원소를 저장하는 크기).
키보드로부터 3명의 인적사항을 입력받는다.
학생의 이름을 입력받으면 해당 학생의 인적 사항을 출력한다. 학생의 이름이 없으면 없다는 메시지를 출력한다.
링크드 리스트 실습 관련 예제
목표는 전화번호부를 만드는 것이다. 사람의 이름과 전화번호를 멤버로 하는 구조체, phone을 정의한다.
다음과 같은 목록이 있다.
1. 입력
2. 삭제
3. 출력
원하는 항목을 선택하십시오(숫자) :
사용자가 ‘입력’을 선택하면, 이름과 전화번호를 입력받아 저장한다.
사용자가 ‘삭제’를 선택하면, 정보를 삭제할 수 있도록 삭제하고자 하는 사람의 이름을 입력받게 한다. 이름을 바르게 입력하면 관련 정보가 모두 삭제된다. 만약 없는 이름이라면, 이름이 없다는 에러 처리를 한다.
사용자가 ‘출력’을 선택하면, 여태까지 입력되었던 모든 정보(이름과 전화번호)를 출력한다
'실습과제 모음' 카테고리의 다른 글
JAVA 실습 과제 2014 01 02 (0) | 2014.01.02 |
---|---|
반복문 실습 별찍기 (0) | 2013.12.31 |
CPP 함수 실습 (0) | 2013.12.22 |
달력 만들기 실습 결과 (0) | 2013.12.15 |
달력 만들기 실습 (1) | 2013.12.15 |