C프로그래밍 완전정복 과제물(프로그래밍 연습문제 3장 16~20)(프로그래밍 연습문제 5장 15~20)(프로그래밍 연습문제 6장 16~20)연습문제 3-16동작조건자료형에 따른 변수의 크기를 확인하는 프로그램을 작성한다.Char형, int형의 변수 2개를 선언하고, 각각 25, 10의 값을 대입한 후 자료형의 크기와 변수의크기가 일치하는지의 여부를 검사하는 프로그램을 작성한다.자료형의 크기를 출력할 때 사용하는 명령어를 사용해야 한다.요구사항printf() 라이브러리 함수는 4개를 사용한다.자료형과 변수를 혼용하여 크기를 계산한다.주어진 실행결과와 일치하도록 프로그래밍 한다.실행결과연습문제 3-17동작조건오버플로우와 언더플로우에 대한 프로그램을 작성한다..에는 char형이 표현할 수 있는 최솟값을 대입하고, unsigned char형 변수에는 unsigned char형이 표현할 수 있는 최댓값을 대입한다.char형 변수는 1을 감소시키고, unsigned char형 변수는 1을 증가시켜 오버플로우와 언더플로우가 발생되는지 확인하는 프로그램을 작성한다.요구사항MIN과 MAX값은 직접 계산하여 대입한다.--a, ++b는 차례대로 1감소, 1증가를 의미하므로 --a; ++b; 문장을 프로그램에 삽입한다.실행결과와 일치하도록 프로그래밍 한다.실행결과연습문제 3-18동작조건ASCII 문자를 사용하여 그 합을 99로 출력하는 프로그램을 작성한다.2개의 변수를 char형으로 선언하고 2개의 값을 조합하여 그 결과가 99로 출력되도록 프로그래밍 한다.요구사항ASCII 테이블은 본문에 수록된 표 3.3.2를 참고한다.반드시 2개의 변수를 사용한다.실행결과연습문제 3-19동작조건자료형의 크기를 출력하는 프로그램을 작성한다.char, short, int, float, double, long의 크기를 순서대로 화면에 출력한다.자료형의 크기를 출력할 때 사용하는 명령어를 사용한다.요구조건화면에 “char의 크기 : “ 이라고 출력하고 그 뒤에 값을 기록한다.각 라인별로 줄 바꿈이 이뤄져야 한다.실행결과연습문제 3-20동작조건int형 변수 a와 int형 변수 b를 선언한다.a 값에는 10을, b 값에는 8을 각각 대입한다.a에서 b를 나눈 결과를 소수점을 포함하여 6자리까지 표현하도록 출력한다.반드시 int형 변수를 선언해야 함에 유의한다.요구사항main() 함수 내의 프로그램 코드는 3줄을 넘기지 말아야 한다.프로그램의 결과를 출력한 후 한 줄을 띄우도록 한다.실행결과연습문제 5-15동작조건입력한 정수가 홀수인지, 짝수인지를 구별하는 프로그램을 작성한다.입력한 정수를 2로 나눠 나머지가 홀수이고, 없으면 짝수임에 찾안한다.input이란 변수를 사용하여 값을 입력받고, 조건 연산자를 사용한다.요구사항scanf() 라이브러리 함수를 사용한다.Scanf() 라이브러리 함수를 사용하기 전, 실행결과와 같이 수를 입력하라는 메시지를 먼저 출력한다.프로그램의 코드는 메인함수를 제외하고 4줄을 초과하지 않는다.연습문제 5-16동작조건2개의 정수를 입력받아 먼저 입력한 수를 뒤에 입력한 수로 나눠 그 몫과 나머지를 출력하는 프로그램을 작성한다.2개의 입력 정수는 공백 키로 구분하며, 부동소수점을 입력하지 않도록 한다.프로그램이 시작되면 두 수를 입력하라는 메시지를 출력한다.요구사항scanf() 라이브러리 함수를 사용한다.scanf() 라이브러리 함수를 사용하기 전, 실행결과와 같이 수를 입력하라는 메시지를 먼저 출력한다.연습문제 5-17동작조건0~15사이의 10진 정수를 입력받아, 그 수를 2진수로 변환하는 프로그램을 작성한다.예를 들어 15인 경우 1111로 출력되어야 한다.다음 그림과 같이 10진수를 2진수로 변환하는 알고리즘을 사용한다.● 주의사항으로 처음 2로 나누었을 때의 나머지가 1이며, 그 수는 가장 뒤에 들어감에 착안한다.요구사항scanf() 라이브러리 함수를 사용한다.Scanf() 라이브러리 함수를 사용하기 전, 0~15사이의 수를 입력하는 메시지를 먼저 출력한다.산술 연산자와 복합 대입 연산자를 사용한다.● 출력은 항상 4자리로 출력한다. ex) 2진수로 11인경우 “0011”연습문제 5-18동작조건1바이트의 정수를 16진수로 입력받는다.이때 최상위비트부터 차례대로 최하위비트까지 값을 뒤집는 프로그램을 작성한다.예를 들어 2진수로 11001010이란 수가 있을 때, 이 수를 01010011로 뒤집는 프로그램이다.요구사항>>, < 비트 연산자를 사용한다.& 비트 연산자를 사용한다.| 비트 연산자를 사용한다.● 출력은 16진수로 한다.연습문제 5-19동작조건0~15사이의 10진 정수를 입력받는다.입력한 10진 정수를 2진수로 변환하여 화면에 출력한다.사용자가 직접 10진 정수를 입력하더라도 컴퓨터는 이를 2진수로 받아들여 처리함에 착안한다.요구사항scanf() 라이브러리 함수를 사용하여 10진 정수를 입력받는다.조건 연산자를 사용하여 프로그램을 구현한다.시프트 연산자를 반드시 사용한다.연습문제 5-20동작조건0이 아닌 양의 정수를 입력하도록 메시지를 출력한다.입력한 수(x)에 맞도록 2의 x 승수를 구하는 프로그램을 작성한다.예를 들어 3을 입력하면 2의 3승수인 8이 계산된다.요구사항scanf() 라이브러리 함수를 사용하여 양의 정수를 입력받는다.산술 연산자는 사용하지 않는다.연습문제 6-16동작조건1~7사이의 숫자를 입력받아, 요일을 한글로 출력하는 프로그램을 작성한다.예를 들어 3을 입력하면 “수요일”, 4를 입력하면 “목요일”을 출력하는 프로그램을 작성한다.“1,2,3,4,5,6,7”은 “월,화,수,목,금,토,일”에 해당된다.● 반복적으로 키보드의 입력을 받도록 프로그램하고, 음수를 입력받으면 종료하도록 한다.● 1~7사이 이외의 수를 입력하면, 잘못 입력했다는 메시지를 출력한다.요구사항switch문을 사용한다.while문을 사용한다.if문은 사용하지 않도록 한다.연습문제 6-17동작조건1단부터 9단까지 출력하는 프로그램을 출력한다.각 단별로 줄 바꿈 문자를 삽입하여 단을 구분하도록 한다.요구사항for 문을 사용한다.if 문을 사용하지 않는다.연습문제 6-18동작조건1단부터 9단까지 출력하는 프로그램을 작성한다.그림과 같이 한 행에 3단씩 출력되도록 프로그램을 작성한다.한 단이 끝나면 라인을 한 줄 띄워 단별 구분을 하도록 작성한다.요구사항중첩된 for 문을 사용한다.if문을 사용하지 않는다.연습문제 6-19동작조건문제 18번의 예제를 while 문을 사용하여 작성한다.요구사항for 문을 사용하지 않는다.if문을 사용하지 않는다.연습문제 6-20동작조건4자리의 정수형 비밀번호를 등록하고 비밀번호를 검사하는 프로그램을 작성한다.프로그램을 시작하면 비밀번호를 등록할 것을 요구하고, 등록하려고 하는 비밀번호가 4자리의 정수인지를 먼저 검사하고 틀리면, 다시 등록할 것을 요구하는 프로그램을 작성한다.비밀번호가 정상적으로 등록되면 다시 비밀번호를 묻고 등록된 비밀번호와 일치하는지의 여부를 검사한다. 이때 비밀번호가 맞으면 프로그램을 종료시키고, 비밀번호가 불일치하다면 입력한 수와 비밀번호와의 차를 계산하여 알려주는 프로그램을 작성한다.요구사항while 문을 사용한다.변수는 3개를 초과하지 않는다.
프로그래밍 과제물(프로그래밍 연습문제 7장 16~20)(프로그래밍 연습문제 8장 16~20)(프로그래밍 연습문제 9장 16~20)연습문제 7-16동작조건4! 함수를 구현한다.예를 들어 4!은 4*(4-1)*(4-2)*(4-3) 과 같은 규칙을 가진 수학 기호이다.함수의 되부름을 사용하여 구현하도록 한다.요구사항Fact 함수를 사용하여 함수의 반환형과 인수는 모두 long형으로 한다.함수 내의 코드는 4줄로 제한하도록 한다..함수의 되부름을 사용하여 구현하도록 한다.연습문제 7-17동작조건사용자로부터 3개의 정수를 입력받고, 입력받은 정수들 중 최댓값을 출력하는 프로그램을 작성한다.프로그램이 시작되면 사용자로부터 3개의 정수를 입력하는 문장을 출력하고, 3개의 정수의 크기를 각각 비교하여 최댓값을 알려주는 프로그램을 작성하도록 한다.● 함수를 사용하여 입력한 3개의 정수를 비교하는 프로그램을 작성한다. 이때 함수는 인자가 3개 반환형이 1개인 함수이다.요구사항Scanf() 라이브러리 함수를 사용한다.함수명은 sort로 하고, 인수와 반환형을 모두 갖는 함수를 사용한다.함수내의 지역변수는 1개로 제한한다.연습문제 7-18동작조건사용자로부터 사칙연산을 수행하는 계산식을 입력하도록 요구한다.사용자가 만일 10*2라는 식을 입력하면 10과 2를 곱하고 그 결과를 출력하는 프로그램을 작성한다.만일 사칙연산의 기호가 +-*/ 에 속하지 않으면 에러 메시지를 출력하고 프로그램을 종료한다.요구사항Scanf() 라이브러리 함수를 사용한다.함수명은 cal로 하고, 인수와 반환형이 모두 있는 형태이다.switch문을 사용하도록 한다.연습문제 7-19동작조건0~9까지의 값을 정수값으로 변환하는 프로그램을 작성한다.컴퓨터가 인식하는 문자 0은 실제 정수값으로는 0이 아니다. 마찬가지로 1~9까지의 문자는 대응되는 ASCII코드 값이 있으므로 이를 실제 정수값으로 변환하는 프로그램을 작성하도록 한다.만일 0~9가 아닌 문자를 입력했다면 -1을 반환한다.요구사항0부터 9 이외의 값은 허용치 않도록 한다.임의로 3개의 값을 printf() 라이브러리 함수를 사용하여 출력한다.정수로 변환하는 부분을 함수로 작성한다.연습문제 7-20동작조건피라미드 모양의 탑을 그리는 프로그램을 작성한다.사용자가 main()함수에서 피라미드의 층 수, 그리고 심볼을 바꿀 수 있도록 작성한다예를 들어 4, *를 입력하면 층 모양의 *탑이 그려진다.공백까지 고려하여 프로그램을 작성한다.요구사항함수의 인자는 피라미드의 층수와 모양으로 작성한다.프로그램의 경고 메시지가 한 개도 없어야 한다.makePyramid 란 이름으로 함수를 작성한다.연습문제 8-16동작조건1~10까지의 수 중 2,3,4의 배수를 출력하는 프로그램을 작성한다.사용자로부터 수를 입력받도록 하고, 입력받은 수의 배수를 10까지 출력한다.이 때 사용자가 음의 수를 입력하면 프로그램을 종료하도록 한다.요구사항배열을 사용한다.출력할 때 배열의 원소를 출력한다.for문을 사용한다.(while문은 사용하지 않는다.)연습문제 8-17동작조건다음과 같이 무작위의 배열을 사용하여, 크기가 큰 순서대로 다시 재배열하는 프로그램을 작성한다.출력은 배열을 사용하며, 배열의 크기는 10개로 제한하며 겹치는 수가 없다.요구사항배열을 사용한다.임시용 변수는 배열을 제외하고 3개로 제한한다.배열의 정렬이 끝나면, 전체 배열의 값을 출력한다.배열이 시작될 때 배열의 원소를 미리 한 번 출력한다.중첩된 for문을 사용한다.연습문제 8-18동작조건다음과 같이 2차원 배열이 있을 때, 행과 열의 합을 각각 구하는 프로그램을 작성한다.열의 합은 행의 제일 우측에, 행의 합은 가장 마지막 열 하단에 기록하도록 한다.요구사항이차원 배열을 사용한다.임시용 변수는 배열을 제외하고 3개로 제한한다.실행결과와 같이 간격을 일정하게 유지하도록 출력한다.중첩된 for문을 사용한다.연습문제 8-19동작조건“Good day commander, Have a nice day”라는 문자열이 있을 때, 공백을 ‘#’으로 치환하는 프로그램을 작성한다.요구사항Do ~ while 문을 사용한다.프로그램의 코드가 17문장을 넘지 않는다.연습문제 8-20동작조건“Good day commander, Have a nice day”라는 문자열이 있을 때, 단어의 개수, 전체 문자의 개수를 출력하는 프로그램을 작성한다.NULL문자는 문자로 포함시키지 않으며, 단어간의 구분은 공백으로 한다.요구사항While문을 사용한다.프로그램의 코드가 20문장을 넘지 않는다.연습문제 9-16동작조건두 수를 교환하는 프로그램을 작성한다.두 개의 함수를 작성하고, 하나의 함수는 일반 변수를 인수로 하고, 나머지 함수는 포인터를 인수로 하는 함수를 작성하여 두 개의 동작을 비교할 수 있는 프로그램을 작성한다.함수를 호출한 뒤 그 값을 바로 출력한다.요구사항a,b 두개의 변수가 서로 교환이 되어야 한다.주어진 실행결과와 일치해야한다.연습문제 9-17동작조건포인터 배열을 선언하여, 그 글자들을 액세스 하는 프로그램을 작성한다.문자열의 내용은 다음 그림과 같다.%s, %c의 출력형식 지정문자를 적절히 사용하여 주어진 조건에 맞게 출력한다.배열과 포인터를 적절히 사용하여 주어진 조건에 맞도록 출력한다.요구사항주어진 조건의 그림에 표시된 문자 혹은 문자열만 출력한다.배열을 사용해야하는 부분에는 배열만, 포인터를 사용해야 하는 부분에는 포인터만 사용하여 원하는 결과를 얻어야 한다.연습문제 9-18동작조건3개의 문자열을 순서대로 출력하는 프로그램을 작성한다.반복문을 사용하여 3개의 문자열을 차례대로 출력하되 함수를 호출하여 각 문자열들을 출력한다.문자열들은 전역 변수가 아닌 main() 함수 내의 지역변수로써 main() 함수에서 출력하는 함수를 호출하여 출력한다.요구사항Func() 함수에 문자열 포인터를 반드시 인수로 전달한다.for문을 사용한다.for문을 사용시 초기화 문은 생략한다.연습문제 9-19동작조건1,2,3,4 를 저장하는 4개의 변수가 있다. 이 4개의 변수를 제곱하여 다시 저장하는 프로그램을 작성한다.이때 4개의 변수는 배열이 아닌 일반 정수형 변수이며, 일반 함수의 호출에 의해 값을 변경한다.함수의 호출이 있고, 함수가 종료되면 각 값들이 제곱이 되어 변수에 저장되는 형태를 갖는다.요구사항배열을 사용하지 않는다.함수의 호출은 한 번만 한다.반드시 지역 변수를 사용한다.코드의 길이가 20줄을 넘지 않는다.연습문제 9-20동작조건길이의 단위를 변경하여 출력하는 프로그램을 작성한다.사용자로부터 길이와 변환하고자 하는 단위를 선택하도록 요구한다.입력된 메뉴 및 1meter 를 환산하는 값은 다음과 같다.일 0을 입력하였다면, 프로그램을 종료하도록 한다.요구사항함수 포인터 배열을 사용한다.변환된 수는 소수점 2자리까지 표현한다.
1. 선형회로에서 전류원이 다음과 같다.= 10 cos(120 +45°)(a) 전류의 크기를 구하라. (1점)(b) 주파수를 구하라. (1점)(c) 위상을 구하라. (1점)(d) t=10ms 일 때 를 구하라. (2점)2. 다음 신호에 대응되는 페이저를 구하라.(a) ( ) = 12 cos(2 ? 25°) (2점)(b) ( ) = ?7 sin(2 + 70°) (3점)3. 직렬 RLC 회로가 R = 10 Ω, L = 20 mH, C = 5 mF 이다. 입력전압 ( ) = 5cos(2 ) 일 때 회로를 통해 흐르는 전류를 구하라. (시간영역의 정현파 형태로 작성) (10점)4. 아래의 회로에 흐르는 전류 I를 구하라. ω = 10 rad/s 라고 가정한다. (시간영역의 정현파 형태로 작성) (10점)5. 다음의 회로에서 노드 A에 걸리는 전압을 구하라. (15점)6. 다음의 회로에서 a 단자와 b 단자에서의 테브난 등가회로(VTh, ZTh)를 구하라. (15점)7. 다음 파형의 실효값을 구하라. (10점)(풀이과정 필요)8. 부하 임피던스 Z에 220 Vrms, 60 Hz 의 전원이 인가 될 때 부하에 유입되는 피상전력은 110VA이고 역률은 0.707 (뒤짐) 이다.(a) 복소전력을 구하라. (5점)(b) 부하에 공급되는 실효전류의 크기를 구하라. (5점)(c) Z 를 구하라. (5점)(d) 역률을 1로 개선하기 위해 병렬로 커패시터를 연결할 때 그 값을 구하라. (5점)9. 아래 회로에 대해서 답하시오.