C++ 프로그래밍 기초, 5장 연습문제
Posted 2008/09/19 14:16, Filed under: 학과수업들/C++ 프로그래밍1. 다음 프로그램의 실행 결과를 적어라.
#include<iostream>
using namespace std;
void main()
{
int x=10,y=15,xvalue,yvalue;
int *ptrx=&x, *ptry=&y;
xvalue=*ptrx, yvalue=*ptry;
cout<<"\n xvalue = "<< xvalue <<" *ptrx = "<<*ptrx;
cout<<"\n yvalue = "<< yvalue <<" *ptry = "<<*ptry;
ptrx = ptry;
cout<<"\n *ptrx = "<< *ptrx <<" *ptry = "<<*ptry;
cout<<"\n xvalue = "<< xvalue <<" yvalue = "<<yvalue<<"\n";
}
[실행결과]
xvalue = 10 *ptrx = 10
yvalue = 15 *ptry = 15
*ptrx = 15 *ptry = 15
xvalue = 10 yvalue = 15
2. 다음 프로그램의 실행 결과를 적어라.
#include<iostream>
using namespace std;
void func01(int value)
{
value+=20;
cout<< "\n func01 = "<<value;
}
void func02(int *address)
{
*address+=20;
cout<< "\n func02 = "<<*address;
}
void main()
{
int a=20;
func01( a );
cout << "\n main 함수에서 func01 호출후 a =" << a <<"\n";
func02( &a );
cout << "\n main 함수에서 func02 호출후 a =" << a;
}
[실행결과]
func01 = 40
main 함수에서 func01 호출후 a =20
func02 = 40
main 함수에서 func02 호출후 a =40
3. 절대값 구하는 함수를 주소 호출 방식으로 작성해서 실 매개변수의 값이 변경되도록 해보아라.
#include<iostream>
using namespace std;
// 3_1. 절대값을 구하는 함수 absolute의 선언(주소 호출 방식)
void absolute(int *a);
void main()
{
int a=-10;
cout<<" main 에서 함수 호출 전 a 값 = "<< a <<"\n";
absolute(&a);
cout<<" main 에서 함수 호출 후 a 값 = "<< a <<"\n";
}
// 3_2. 절대값을 구하는 함수 absolute의 정의(주소 호출 방식)
void absolute(int *a)
{
if(*a<0)
*a=-*a;
cout<<" absolute 함수에서의 a 값 = "<< *a <<"\n";
}
[실행결과]
main 에서 함수 호출 전 a 값 = -10
absolute 함수에서의 a 값 = 10
main 에서 함수 호출 후 a 값 = 10
4. 절대값을 구하는 함수를 레퍼런스 호출 방식으로 작성해서 실 매개변수의 값이 변경되도록 해보아라.
#include<iostream>
using namespace std;
// 4_1. 절대값을 구하는 함수 absolute의 선언(레퍼런스 호출 방식)
void absolute(int &a);
void main()
{
int a=-10;
cout<<" main 에서 함수 호출 전 a 값 = "<< a <<"\n";
absolute(a);
cout<<" main 에서 함수 호출 후 a 값 = "<< a <<"\n";
}
// 4_2. 절대값을 구하는 함수 absolute의 정의(레퍼런스 호출 방식)
void absolute(int &a)
{
if(a<0)
a=-a;
cout<<" absolute 함수에서의 a 값 = "<< a <<"\n";
}
[실행결과]
main 에서 함수 호출 전 a 값 = -10
absolute 함수에서의 a 값 = 10
main 에서 함수 호출 후 a 값 = 10
Trackback URL : http://mysilpir.net/trackback/302



