PAPAYA Corporation
명품 C++ Programming_제2장 실습문제
본문 바로가기
프로그래밍 언어

명품 C++ Programming_제2장 실습문제

by PAPAYA Corporation 2021. 4. 20.
반응형

1. cout과 <<연산자를 이용하여, 1에서 100까지의 정수를 다음과 같이 한 줄에 10개씩 출력하라. 각 정수는 탭으로 분리하여 출력하라.

 

 

 

 

#include <iostream>
using namespace std;
int main() {
	int numberBoss = 1;
	for (int number1 = 0; number1 < 10; number1++) {
		for (int number2 = 0; number2 < 10; number2++) {
			cout << numberBoss << "\t";
			numberBoss++;
		}
		cout << endl;
	}

}

 

 

2. cout과 <<연산자를 이용하여 다음과 같이 구구단을 출력하는 프로그램을 작성하라.

 

 

 

 

#include <iostream>
using namespace std;
int main() {
	for (int number1 = 1; number1 < 10; number1++) {
		for (int number2 = 1; number2 < 10; number2++) {
			cout << number1 << "x" << number2 << "=" << number1 * number2 << '\t';
			
		}
		
	}

}

여기서 더 깔끔하게 출력되길 원한다면, 해당 코드를 추가하라.

cout << endl;

3. 키보드로부터 두 개의 정수를 읽어 큰 수를 화면에 출력하라.

 

 

 

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	int number1, number2;
	cout << "두 수를 입력하라>>";
	cin >> number1 >> number2;
	if (number1 > number2) cout <<"큰 수=" << number1;
	else if (number2 > number1) cout << "큰 수=" << number2;
}

 

4. 소수점을 가지는 5개의 실수를 입력 받아 제일 큰 수를 화면에 출력하라.

 

 

 

 

#include <iostream>
using namespace std;

int main() {
	double number[5];
	double n = 0;
	cout << "5 개의 실수를 입력하라>>";
	for (int num = 0; num < 5; num++) {
		cin >> number[num];
		if (num == 0) n = number[0];
		if (n < number[num]) n = number[num];
	}
	cout << "제일 큰 수=" << n;
}

 

5. <Enter> 키가 입력될 때까지 문자들을 읽고, 입력된 문자 'x'의 개수를 화면에 출력하라.

 

 

 

 

#include <iostream>
using namespace std;

int main() {
	cout << "문자들을 입력하라(100개 미만}>>";
	char Eng[100];
	cin.getline(Eng, 100, '\n');
	cout << "\n" << Eng << "인식됨;\n";
	int Eng2 = 0;
	for (int i = 0; i < 100; i++) {
		if (Eng[i] == 'x') Eng2++;
	}
	cout << "x의 개수는 " << Eng2;

}

*6. 문자열을 두 개 입력받고 두 개의 문자열이 같은지 검사하는 프로그램을 작성하라. 만일 같으면 "같습니다", 아니면 "같지 않습니다"를 출력하라.

 

 

 

 

#include <iostream>
#include <cstring>
using namespace std;

int main() {
	char KorWord[100];
	char KorWord2[100];
	cout << "새 암호를 입력하세요>>" << endl;
	cin.getline(KorWord, 100, '\n');
	cout << KorWord << "암호가 인식됨:)\n";

	while (true) {
		cout << "새 암호를 입력하세요>>";
		cin >> KorWord;

		cout << "새 암호를 다시 한 번 입력하세요>>";
		cin >> KorWord2;

		if (strcmp(KorWord, KorWord2) == 0) {
			cout << "암호가 서로 같습니다:)" << endl;
			break;
		}
		else
			cout << "암호가 서로 다릅니다:(" << endl;
	}
	

}

7. 다음과 같이 "yes"가 입력될 때까지 종료하지 않는 프로그램을 작성하라. 사용자로부터의 입력은 cin,getline() 함수를 사용하라.

 

 

 

 

#include <iostream>
#include <cstring>
using namespace std;

int main() {
	char Eng[100];
	cout << "종료를원한다면 yes를 입력하세요>>" << endl;
	while (true) {
		cout << "단어(yes만 인식)>>";
		cin >> Eng;
		if (strcmp(Eng, "yes") == 0) {
			cout << "종료합니다..." << endl;
			break;
		}
		else
			cout << "인식불가;" << endl;
	}
}

8. 한 라인에 ';'으로 5개의 이름을 구분허여 입력받아, 각 이름을 끊어내어 화면에 출력하고 가장 긴 이름을 판별하라.

 

 

 

 

#include <iostream>
#include <cstring>
using namespace std;

int main() {	
    char fn[100];
	int word = 0;
	int name = 0;
	string stored;

	cout << "5 명의 이름을 ';'으로 구분하여 입력하세요>>" << endl;
	for (int i = 1; i <= 5; i++) {
		cin.getline(fn, 100, ';');
		cout << i << ":" << fn << endl;

		if (word < strlen(fn)) {
			word = strlen(fn);
			name = i;
			stored = fn;
		}
	}
	cout << "가장 긴 이름은" << stored << endl;
}

9. 이름, 주소, 나이를 입력받아 다시 출력하는 프로그램을 작성하라. 실행 예시는 다음과 같다.

 

 

 

 

#include <iostream>
using namespace std;

int main() {
	cout << "이름은?>>";
	char fn[100];
	cin.getline(fn, 100, '\n');
	cout << "주소는?>>";
	char fn2[100];
	cin.getline(fn2, 100, '\n');
	cout << "나이는?>>";
	char fn3[100];
	cin.getline(fn3, 100, '\n');

	cout << fn << "." << fn2 << "." << fn3 << endl;




}

 

10. 문자열을 하나 입력받고 문자열의 부분 문자열을 다음과 같이 출력하는 프로그램을 작성하라. 예시는 다음과 같다.

 

 

 

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	char word[100];
	cout << "문자열 입력>>" << endl;
	cin >> word;
	for (int i = 0; i < strlen(word); i++) {
		for (int i2 = 0; i2 <= i; i2++) {
			cout << word[i2];
		}
		
	}
}

해당 코드를 실행시키자 오류가 발생한다. 오류를 해결하고 싶다면 다음 코드를 추가하라.

cout << endl;
#include <iostream>
#include <string>
using namespace std;

int main() {
	char word[100];
	cout << "문자열 입력>>" << endl;
	cin >> word;
	for (int i = 0; i < strlen(word); i++) {
		for (int i2 = 0; i2 <= i; i2++) {
			cout << word[i2];
		}
		cout << endl;
		
	}
}

11. 다음 C 프로그램을 C++ 프로그램으로 수정하여 실행하라.

 

 

 

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	int k;
	int n = 0;
	int sum = 0;

	cout << "끝 수를 입력하세요>>" << endl;
	cin >> n;
	for (k = 1; k <= n; k++) {
		sum += k;
	}
	cout << "1에서 " << n << "까지의 합은 " << sum << " 입니다.\n" << endl;
	
}

12. 다음 C 프로그램을 C++ 프로그램으로 수정하여 실행하라. 이 프로그램의 실행 결과는 연습문제 11과 같다.

 

 

 

 

#include <iostream>
#include <string>
using namespace std;
int sum();
int sum(int n1, int n2) {
	int k, res = 0;
	for (k = n1; k <= n2; k++) {
		res += k;
	}
	return res;
}
int main() {
	int number = 0;
	cout << "끝 수를 입력하세요>>" << endl;
	cin >> number;
	cout << "1에서" << number << "까지의 합은" << sum(1, number) << "입니다.\n";
}


 

*13. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)의 정수 5칙 연산을 할 수 있는 프로그램을 작성하라. 식은 다음과 같은 형식으로 입력된다. 정수와 연산자는 하나의 빈칸으로 분리된다.

 

 

 

 

 

이 코드에서는 break;가 아주 중요하다.

#include <iostream>
using namespace std;
int main()
{
	int x;
	int y;
	char z;
	while (true)
	{
		cout << "? ";
		cin >> x >> z >> y;
		switch (z) {
		case '+':cout << x << " " << z << " " << y << " = " << x + y << endl; break;
		case '-':cout << x << " " << z << " " << y << " = " << x - y << endl; break;
		case '*':cout << x << " " << z << " " << y << " = " << x * y << endl; break;
		case '/':cout << x << " " << z << " " << y << " = " << x / y << endl; break;
		case '%':cout << x << " " << z << " " << y << " = " << x % y << endl; break;
		default: cout << "잘못된 연산자 입니다." << endl;
		}
	}
}

 

 

14. 영문 텍스트를 입력받아 알파벳 히스토그램을 그리는 프로그램을 작성하라. 대문자는 모두 소문자로 집계하며, 텍스트 입력의 끝은 ';' 문자로 한다.

 

 

 

 

#include <iostream>
using namespace std;

int main()
{
	char h[10000];
	int a[26];
	int l = 0;
	for (int num = 0; num < 26; num++)
		a[num] = 0;

	cout << "영문 텍스트를 입력하세요. 히스토그램을 그립니다.\n";
	cout << "텍스트의 끝은 ; 입니다. 10000개까지 가능합니다.";
	cout << endl;

	cin.getline(h, 10000, ';');
	for (int i = 0; i < strlen(h); i++) {
		if (isalpha(h[i])) {
			if (h[i] >= 65 && h[i] <= 90) h[i] = tolower(h[i]);
			a[h[i] - 97]++;
			l++;
		}
	}
	cout << "총 알파벳 수 " << l << endl << endl;

	for (int i = 97; i <= 122; i++) {
		cout << (char)i << " (" << a[i - 97] << ")\t:  ";
		for (int k = 0; k < a[i - 97]; k++)
			cout << "*";
		cout << endl;
	}
}

반응형

댓글


Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]