본문내용
배열을 선언하여 0보다 큰 실수 5개를 입력 받아서 저장하자. 그리고 이렇게 저장된 값을 은행 고객의 잔고하고 가정하자. 즉 5명의 고객 잔고를 배열에 저장한 셈이다. 이제 프로그램 사용자로부터 이자율을 한번 입력 받는다. 만약 3.3이 입력되면, 이율이 3.3%라는 뜻으로 해석되어 배열에 저장된 모든 값을 3.3%씩 증가시켜야 하며, 증가된 결과를 출력해야 한다.
[그림 3]
2번문제의 코드이다. 설명은 주석처리 되어있다.
[그림 4]
문제2번의 실행결과이다.
문제 3)
프로그램 사용자로부터 길이가 100 이하인 문자열을 입력 받는다. 그러면 프로그램은 입력된 문자열의 길이를 계산해서 출력해야 한다. 단 널 문자는 문자열의 길이에 포함시키지 않기로 하자.
[그림 5]
3번문제의 첫 번째 코드이다.
[그림 6]
3번문제의 두 번째 코드이다.
[그림 7]
3번문제의 실행결과이다.
문제 4)
프로그램 사용자로부터 길이가 100이하인 문자열을 입력 받는다. 그리고 이중에서 알파벳 소문자가 존재한다면, 이를 대문자로 변경시킨 다음에 문자열 전체를 출력하는 프로그램을 작성하자.
[그림 8]
4번문제의 코드이다. 설명은 주석처리 되어 있다.
[그림 9]
4번문제의 실행결과이다.
문제 5)
프로그램 사용자로부터 문자열을 입력 받는다. 그리고 이렇게 입력된 문자열을 역순으로 출력하는 프로그램을 구현하자. 굳이 배열에 저장된 문자열을 뒤집지 않아도 된다. 출력만 역순으로 이뤄지면 된다.
[그림 10]
문제 5번의 코드이다. 설명은 주석처리되어있다.
[그림 11]
문제 5번의 실행결과이다. 역순출력이 제대로 이루어지고 있다.
문제 6)
포인터에 대하여 다음과 같이 정의하였다. “ 포인터는 주소 값을 담고 있는 변수(또는 상수)입니다.” 그리고 이는 100점짜리 답변이 아니라고 하였다. 무엇인가 중요한 내용이 빠져있기 때문이다. 그리고 이것이 왜? 100점이 될 수 없는지 그 이유를 여러분에게 묻고자 한다.
1) 위의 포인터 정의는 완벽하지 못하다. 이것이 전부라면 int형 변수도 포인터가 될 수 있다.
그렇다면 포인터를 정의하는데 있어서 위의 정의에 추가해야 할 부분은 무엇인가?
-> 그 변수의 메모리 공간주소를 가리키는 변수
2) Int형 변수의 주소 값을 int형 포인터가 아닌 다른 포인터에 저장을 해도 컴파일은 된다.
하지만 반드시 int형 포인터에 저장해야 하는데 그 이유는 무엇일까?
-> 포인터는 기본적으로 4Byte공간을 할당받는다.(어떠한 자료형을 쓰더라도) 하지만 char형의
포인터를 사용한다면 그메모리공간은 포인터가 1Byte만큼의 크기를 사용하게 된다.
만약 int타입에 char을 사용한다면 숫자가 255를 초과한다. 그러면 읽어들일 수 없다.
그래서 자료형타입을 맞춰줘야한다.
3) 포인터 변수와 일반변수(데이터 변수)의 공통점과 차이점을 설명하라.
-> 일반 변수는 정수/실수/문자 중 1개의 값을 저장한다.
포인터 변수는 값이 아니라 \"주소\"(변수, 배열 등 저장공간이 할당된 것)를 저장한다.
문제 7)
두개의 double형 변수 num1, num2에 다음과 같이 값이 저장되어 있다고 합시다.
double num1 = 1.3;
double num2 = 1.7;
두 변수 num1, num2를 가리키는 포인터 변수를 사용하여 두 변수의 값을 바꾸는 프로그램을 작성해보아라.
프로그램을 실행하면 다음과 같이 수행될 것이다.
“바꾸기 전의 num1, num2의 값 : 1.3, 1.7
바꾼 후의 num1, num2의 값 : 1.7, 1.3”
[그림 12]
7번문제의 코드이다. 설명은 주석처리 되어있다.
[그림 13]
변수가 제대로 변경된 것을 확인 할 수 있다.
[그림 3]
2번문제의 코드이다. 설명은 주석처리 되어있다.
[그림 4]
문제2번의 실행결과이다.
문제 3)
프로그램 사용자로부터 길이가 100 이하인 문자열을 입력 받는다. 그러면 프로그램은 입력된 문자열의 길이를 계산해서 출력해야 한다. 단 널 문자는 문자열의 길이에 포함시키지 않기로 하자.
[그림 5]
3번문제의 첫 번째 코드이다.
[그림 6]
3번문제의 두 번째 코드이다.
[그림 7]
3번문제의 실행결과이다.
문제 4)
프로그램 사용자로부터 길이가 100이하인 문자열을 입력 받는다. 그리고 이중에서 알파벳 소문자가 존재한다면, 이를 대문자로 변경시킨 다음에 문자열 전체를 출력하는 프로그램을 작성하자.
[그림 8]
4번문제의 코드이다. 설명은 주석처리 되어 있다.
[그림 9]
4번문제의 실행결과이다.
문제 5)
프로그램 사용자로부터 문자열을 입력 받는다. 그리고 이렇게 입력된 문자열을 역순으로 출력하는 프로그램을 구현하자. 굳이 배열에 저장된 문자열을 뒤집지 않아도 된다. 출력만 역순으로 이뤄지면 된다.
[그림 10]
문제 5번의 코드이다. 설명은 주석처리되어있다.
[그림 11]
문제 5번의 실행결과이다. 역순출력이 제대로 이루어지고 있다.
문제 6)
포인터에 대하여 다음과 같이 정의하였다. “ 포인터는 주소 값을 담고 있는 변수(또는 상수)입니다.” 그리고 이는 100점짜리 답변이 아니라고 하였다. 무엇인가 중요한 내용이 빠져있기 때문이다. 그리고 이것이 왜? 100점이 될 수 없는지 그 이유를 여러분에게 묻고자 한다.
1) 위의 포인터 정의는 완벽하지 못하다. 이것이 전부라면 int형 변수도 포인터가 될 수 있다.
그렇다면 포인터를 정의하는데 있어서 위의 정의에 추가해야 할 부분은 무엇인가?
-> 그 변수의 메모리 공간주소를 가리키는 변수
2) Int형 변수의 주소 값을 int형 포인터가 아닌 다른 포인터에 저장을 해도 컴파일은 된다.
하지만 반드시 int형 포인터에 저장해야 하는데 그 이유는 무엇일까?
-> 포인터는 기본적으로 4Byte공간을 할당받는다.(어떠한 자료형을 쓰더라도) 하지만 char형의
포인터를 사용한다면 그메모리공간은 포인터가 1Byte만큼의 크기를 사용하게 된다.
만약 int타입에 char을 사용한다면 숫자가 255를 초과한다. 그러면 읽어들일 수 없다.
그래서 자료형타입을 맞춰줘야한다.
3) 포인터 변수와 일반변수(데이터 변수)의 공통점과 차이점을 설명하라.
-> 일반 변수는 정수/실수/문자 중 1개의 값을 저장한다.
포인터 변수는 값이 아니라 \"주소\"(변수, 배열 등 저장공간이 할당된 것)를 저장한다.
문제 7)
두개의 double형 변수 num1, num2에 다음과 같이 값이 저장되어 있다고 합시다.
double num1 = 1.3;
double num2 = 1.7;
두 변수 num1, num2를 가리키는 포인터 변수를 사용하여 두 변수의 값을 바꾸는 프로그램을 작성해보아라.
프로그램을 실행하면 다음과 같이 수행될 것이다.
“바꾸기 전의 num1, num2의 값 : 1.3, 1.7
바꾼 후의 num1, num2의 값 : 1.7, 1.3”
[그림 12]
7번문제의 코드이다. 설명은 주석처리 되어있다.
[그림 13]
변수가 제대로 변경된 것을 확인 할 수 있다.
키워드
추천자료
C언어 프로그래밍에 관한 기초적인 이해
C언어의 역사, C언어의 특징, C언어의 프로그래밍기법, C언어의 시작하기, C++의 개선사항과 ...
2009년 2학기 c언어 출석대체시험과제 주민등록번호를 입력받아 아래사항을 출력..
열혈강의 C 프로그래밍 - 도전프로그래밍 솔루션입니다..
2009년 2학기 데이터베이스설계및구현 중간시험과제물 C형(전자대리점)
2008년 2학기 데이터베이스설계및구현 중간시험과제물 C형(C펀드회사)
2011년 1학기 시뮬레이션 중간시험과제물 C형(복수창구의 대기행렬)
[프로그래밍입문] c언어의 특징
C로 배우는 프로그래밍 기초 2nd Chapter 8장 및 exchange sort 프로그래밍
조선대 영미소설의 이해 과제 폭력의 사용 해석과문제풀이
자신만만! 글로벌 비즈니스 중동, 동남아, 중남미 바로 알기 [과제3] 문제풀이
(2017년 한국사회문제C형) 한국도시가 확장되는 과정에서 일어났던 여러가지 문제점에 대해서...
{아동건강교육C형 2017년}만 3세를 위한 안전교육을 계획하시오(교육내용, 누리과정 내용 환...
소개글