본문 바로가기
C++/문제풀이

[C++] 자료형과 연산자 연습문제

by 씐 2023. 9. 18.
728x90

Q1. 숫자를 입력받아 그 수의 절대값을 구하는 프로그램을 작성하시오.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  int a;
  int absol;
  cout << "정수값을 입력하세요 -> ";
  cin >> a;
  
  absol = (a >= 0)? a : -a;
  cout << "절대값 => " << absol << "\n";
}

<결과>

 

 

Q2. 문자 한 개를 입력받아 대문자면 소문자로 변환하고 나머지는 그대로 출력하는 프로그램을 작성하시오.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  char chr;
  
  cout << "문자를 입력하세요 -> ";
  cin >> chr;
  
  cout << "출력 결과 => " << (char)tolower(chr);
}

<결과>

<해설>

대문자↔소문자 변환

  • 대문자와 소문자는 아스키코드로 "32"의 차이가 난다. 
    • ex) A = 65, a = 97
  • 이것들은 이미 함수로 만들어져 있기 때문에 함수(toupper, tolower)를 사용하면 된다.
  • toupper, tolower를 사용한 결과는 int형으로 나오기 때문에 char형으로 형변환을 해줘야 한다.
  • 대문자 -> 소문자
    • chr + = 32;
    • toupper(chr);
  • 소문자 -> 대문자
    • chr -= 32;
    • tolower(chr);

 

 

Q3. 각 과목의 점수를 입력받아 총점과 평균을 계산하여 출력하는 프로그램을 작성하시오.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  int computer, math, c, eng;
  int sum;
  float avg;
  
  cout << "컴퓨터 개론 점수 입력 -> ";
  cin >> computer;
  
  cout << "일반수학 점수 입력 -> ";
  cin >> math;
  
  cout << "c 언어 점수 입력 -> ";
  cin >> c;
  
  cout << "영어 점수 입력 -> ";
  cin >> eng;
  
  sum = computer + math + c + eng;
  avg = (float)sum / 4;
  cout << "총점 : " << sum << endl << "평균 : " << avg << endl;
}

<결과>

 

 

Q4. 원의 반지름을 입력받아 원의 둘레를 계산하는 프로그램을 작성하시오.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  float round, radius;
  
  cout << "반지름 입력 -> ";
  cin >> radius;
  
  round = 2 * 3.14 * radius;
  cout << "원의 둘레 : " << round;
}

<결과>

 

 

Q5. 커피 테이크아웃 가게에 가서 카페 모카를 2잔 산 후 커피 값을 지불(10,000원)하고 영수증과 거스름돈을 받았다. 카페 모카의 가격이 3,500원이고 부가세가 10%라면 부가세와 손님에게 받을 상품의 총액과 거스름돈을 계산하여 출력하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main()
{
  int price, num, pay, vat, total, change;
  
  cout << "카페 모카 단가 입력 -> ";
  cin >> price;
  
  cout <<"수량 입력 -> ";
  cin >> num;
  
  cout << "지불한 돈 입력 -> ";
  cin >> pay;
  
  vat = (price * num) * 0.1;
  cout << "부가세 -> " << vat << endl;
  
  total = price * num + vat;
  cout << "상품 총액 : " << total << endl;
  
  change = pay - total;
  cout << "거스름돈 : " << change << endl;
}

<결과>

 

Q6. 초 단위로 입력받은 시간에 대해서 몇 시간, 몇 분, 몇 초에 해당되는지 환산하는 프로그램을 작성하시오. 예를 들어, 3662초는 1시간 1분 2초다.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  int sec, hour, minute, second ;
  
  cout << "초를 입력하세요 -> ";
  cin >> sec;
  
  hour = sec / 3600;
  minute = (sec % 3600) / 60;
  second = (sec % 3600) % 60;
  cout << sec << "초는 " << hour << "시간" << minute << "분" << second << "초이다." << endl;
}

<결과>

 

Q7. 알파벳 한 글자를 입력받아 1을 더한 후 이를 문자 형태로 출력하는 프로그램을 작성하시오. 예를 들어 A를 입력받았다면 B를, B를 입력받았다면 C를 출력한다.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  char alpha;
  int alphaa;
  
  cout << "알파벳 한 글자를 입력하세요 -> ";
  cin >> alpha;
  
  alphaa = (int)alpha + 1;
  cout << (char)alphaa;
}

<결과>

 

Q8. 10000보다 작은 정수가 주어졌을 때 이것을 천의 자리, 백의 자리, 십의 자리, 일의 자리로 분리해서 출력하는 프로그램을 작성하시오. 예를 들어, 3781이라면, 3, 7, 8, 1이 차례로 출력되는 프로그램이다.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  int value, thousand, hundred, ten, one;
  string str="error";
  
  cout << "10000보다 작은 정수를 입력하세요 -> ";
  cin >> value;
  
  thousand = (value < 10000) ? (value / 1000) : value ;
  hundred = (value < 10000) ? (value % 1000) / 100 : value ;
  ten = (value < 10000) ? (value % 100) / 10 : value ;
  one = (value < 10000) ? (value % 10) / 1 : value ;

  cout << "정수값 : " << value << endl;
  cout << "천의 자리 : " << thousand << endl;
  cout << "백의 자리 : " << hundred << endl;
  cout << "십의 자리 : " << ten << endl;
  cout << "일의 자리 : " << one << endl;
  
  cout << "정수값이 그대로 나오는 경우 다시 입력하세요." << endl;
}

<결과>

 

Q9. 섭씨=C 화씨=F라 가정하면 섭씨와 화씨 사이에는 다음과 같은 수식을 만족한다.

 

F= (9 / 5 ) * C = 32, C = (5 / 9)*(F-32)

 

섭씨를 화씨로 변환하는 프로그램을 작성하시오.

 

<코드>

#include <iostream>
using namespace std;
int main()
{
  int C, F;
  float change_C, change_F;
  
  cout << "섭씨를 입력하세요 -> ";
  cin >> C;
  
  change_F = 9.0 / 5.0 * C + 32;
  cout << "섭씨를 38(C)를 화씨로 변환하면 " << change_F << "(F) 가 된다." << "\n"; 
  
  cout << "화씨를 입력하세요 -> ";
  cin >> F;
  
  change_C = (5.0 / 9.0) * (F - 32);
  cout << "화씨를 150(F)를 섭씨로 변경하면 " << change_C << "(C)가 된다." << "\n";
}

<결과>

'C++ > 문제풀이' 카테고리의 다른 글

[C++] 함수  (2) 2024.09.30
[C++] for문, while문 연습문제(2)  (0) 2023.10.20
[C++] for문, while문 연습문제(1)  (2) 2023.10.05
[C++] if문 연습문제  (0) 2023.10.02