반응형
1. 다음 프로그래밍 출력 결과가 문자열"C++"가 되도록 Set 함수를 작성하시오.
void main()
{
int a = 0;
char* s = (char*)&a;
Set(s);
cout << (char*)&a << endl;
}
#include <iostream>
using namespace std;
void set(char* s){
*(s + 0) = 'C';
*(s + 1) = '+';
*(s + 2) = '+';
*(s + 3) = '\\0';
}
int main(void){
int a = 0;
char* s = (char*)&a;
set(s);
cout << (char*)&a << endl;
}
2. 다음 프로그램의 출력 결과가 3이 되도록 Set함수를 작성하시오.
void main()
{
int a;
int* p = &a;
int** pp = &p;
Set(pp,3);
cout << a << endl;
}
#include <iostream>
using namespace std;
void set(int** k, int i){
**k = i;
}
int main(void){
int a;
int* p = &a;
int** pp = &p;
set(pp,3);
cout << a << endl;
}
3. 다음 프로그램의 출력 결과가 3이 되도록 Increment 함수를 작성하시오.
void main()
{
int a = 2;
Increment(a);
cout << a << endl;
}
#include <iostream>
using namespace std;
void Increment(int& a){
a = 3;
}
int main(void){
int a = 2;
Increment(a);
cout << a << endl;
}
4. memset함수는 dest가 가리키는 주소로부터 count바이트의 메모리 영역에 1바이트 씩 값 c를 채우는 역활을 한다.
void* memset(void *dest, int c, size_t count);
같은 기능을 수행하는 MyMemset함수를 구현하시오(다음 프로그램을 실행할 경우 -1이 출력되어야 한다).
void main()
{
int a;
MyMemset(&a, -1, 4);
cout << a << endl;
}
#include <iostream>
using namespace std;
void MyMemset(int* x, int y, int z){
for(int i = 0; i < z; i++){
*(x + i) = y;
}
}
int main(void){
int a;
MyMemset(&a, -1, 4);
cout << a << endl;
}
풀이는 생략하겠습니다.
'Algorithm > 기본개념과 원리로 배우는C++' 카테고리의 다른 글
기본 개념과 핵심 원리로 배우는 C++ 프로그래밍 10장 프로그래밍 문제 (1) | 2023.10.31 |
---|---|
개념과 핵심원리로 배우는 C++ 프로그래밍 6장 프로그래밍 문제 (0) | 2023.10.31 |
개념과 핵심원리로 배우는 C++ 프로그래밍 4장 프로그래밍 문제 (0) | 2023.10.31 |
개념과 핵심원리로 배우는 C++ 프로그래밍 3장 프로그래밍 문제 (0) | 2023.10.31 |
개념과 핵심원리로 배우는 C++ 프로그래밍 2장 프로그래밍 문제 (2) | 2023.10.31 |