-
JUNGOL...35일지 2020. 12. 19. 13:24
Language_Code/포인터/자가진단1
문제
정수형 변수와 포인터 변수를 선언하고 정수를 입력받아 포인터 변수를 이용하여 정수형 변수의 메모리 주소와 값을 출력하는 프로그램을 작성하시오.
주소 출력은 "%#p"를 이용하시오. 아래는 메모리 주소가 "0X11110000"이라고 가정했을 때이다.
입력 예
20
출력 예
0X11110000 20
Hint!
BasicPointer01.h
#include <iostream>
BasicPointer01.cpp
void BasicPointer01::Code() { int var; std::cin >> var; int* p{ &var }; std::cout << "0x" << p << ' ' << *p; }
Language_Code/포인터/자가진단2
문제
정수형 포인터를 이용하여 값을 입력받고 입력받은 값을 10으로 나눈 몫과 나머지를 출력하는 프로그램을 작성하시오.
입력 예
123
출력 예
12...3
BasicPointer02.h
#include <iostream>
BasicPointer02.cpp
void BasicPointer02::Code() { int* p = new int; std::cin >> *p; std::cout << *p / 10 << "..." << *p % 10; delete p; }
Language_Code/포인터/자가진단3
문제
포인터 변수 두 개를 이용하여 두 수를 입력받고 사칙 연산을 수행하여 출력하는 프로그램을 작성하시오.
입력 예
35 6
출력 예
35 + 6 = 41
35 - 6 = 29
35 * 6 = 210
35 / 6 = 5
BasicPointer03.h
#include <iostream>
BasicPointer03.cpp
void BasicPointer03::Code() { int* p1 = new int; int* p2 = new int; std::cin >> *p1 >> *p2; std::cout << *p1 << " + " << *p2 << " = " << *p1 + *p2 << '\n'; std::cout << *p1 << " - " << *p2 << " = " << *p1 - *p2 << '\n'; std::cout << *p1 << " * " << *p2 << " = " << *p1 * *p2 << '\n'; std::cout << *p1 << " / " << *p2 << " = " << *p1 / *p2; delete p1, p2; }
Language_Code/포인터/자가진단4
문제
5개짜리 정수형 배열을 선언하고 포인터 변수에 저장한 후 포인터 변수를 이용하여 입력을 받은 후 홀수번째 입력값을 출력하는 프로그램을 작성하시오.
입력 예
1 15 23 9 12
출력 예
1 23 12
BasicPointer04.h
#include <iostream>
BasicPointer04.cpp
void BasicPointer04::Code() { int arr[5]; int* p{ arr }; for (int i = 0; i < 5; i++) { std::cin >> p[i]; } for (int i = 1; i <= 5; i++) { if (i % 2 == 1) { std::cout << p[i - 1] << ' '; } } }
Language_Code/포인터/자가진단5
문제
실수 5개를 원소로 하는 배열을 선언하고 포인터 변수를 이용하여 입력과 출력을 실행하는 프로그램을 작성하시오 출력은 반올림하여 소수 첫째자리까지 출력하는 것으로 한다.
입력 예
10 25.3 1.05 0.78 100
출력 예
10.0 25.3 1.1 0.8 100.0
BasicPointer05.h
#include <iostream>
BasicPointer05.cpp
void BasicPointer05::Code() { double arr[5]; double* p{ arr }; for (int i = 0; i < 5; i++) { std::cin >> p[i]; } std::cout.precision(1); std::cout.setf(std::ios::fixed); for (int i = 0; i < 5; i++) { std::cout << p[i] << ' '; } }
Language_Code/포인터/자가진단6
문제
배열의 크기를 입력받아 입력받은 크기만큼 실수 배열을 생성하고 배열의 원소를 입력받은 후 입력받은 자료 및 합과 평균을 반올림하여 소수 둘째자리까지 출력하는 프로그램을 작성하시오.
입력 예
4
15 23.6 100.35 0.388출력 예
15.00 23.60 100.35 0.39
hap : 139.34
avg : 34.83Hint!
입력받은 값을 소수 둘째 자리까지 출력하는 것이고 합계와 평균은 입력 받은 값으로 계산 후 소수 둘째 자리까지 출력하는 것이다.
BasicPointer06.h
#include <iostream>
BasicPointer06.cpp
void BasicPointer06::Code() { int n; std::cin >> n; double* arr = new double[n]; double sum{ 0 }; for (int i = 0; i < n; i++) { std::cin >> arr[i]; sum += arr[i]; } double avg{ sum / n }; std::cout.precision(2); std::cout.setf(std::ios::fixed); for (int i = 0; i < n; i++) { std::cout << arr[i] << ' '; } std::cout << '\n'; std::cout << "hap : " << sum << '\n'; std::cout << "avg : " << avg; delete[] arr; }
Language_Code/포인터/자가진단7
문제
배열의 크기를 입력받아 입력받은 크기만큼 배열에 정수를 입력받고 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오.
입력 예
4
15 23 100 38출력 예
100 38 23 15
BasicPointer07.h
#include <iostream>
BasicPointer07.cpp
void BasicPointer07::Code() { int n; std::cin >> n; int* arr = new int[n]; for (int i = 0; i < n; i++) { std::cin >> arr[i]; } for (int i = 1; i < n; i++) { for (int j = 0; j < n - i; j++) { if (arr[j] < arr[j + 1]) { int temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < n; i++) { std::cout << arr[i] << ' '; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)