C++题库答案
Q5.(10分)写一个程序根据从键盘输入的里氏强度显示地震的后果。根据
里氏强度地震的后果如下: 里氏强度 后果 小于4 很小 4.0到5.0 窗户晃动 5.0到6.0 墙倒塌;不结实的建筑物被破坏 6.0到7.0 烟囱倒塌;普通建筑物被破坏 7.0到8.0 地下管线破裂;结实的建筑物也被破坏 超过8.0 地面波浪状起伏;大多数建筑物损毁
**输入格式要求:实数, 提示信息:cout << \请输入地震的里氏强度: \<< endl; **输出格式要求:
\本次地震后果:很小!\\本次地震后果:窗户晃动!\
\本次地震后果:墙倒塌;不结实的建筑物被破坏!\\本次地震后果:烟囱倒塌;普通建筑物被破坏!\
\本次地震后果:地下管线破裂;结实的建筑物也被破坏!\\本次地震后果:地面波浪状起伏;大多数建筑物损毁!\#include
double magnitude;
cout << \请输入地震的里氏强度: \ << endl; cin >> magnitude;
if (magnitude < 4.0) {
cout << \本次地震后果:很小!\ << endl; }
else if (magnitude < 5.0) {
cout << \本次地震后果:窗户晃动!\ << endl; }
else if (magnitude < 6.0) {
cout << \本次地震后果:墙倒塌;不结实的建筑物被破坏!\ << endl; }
- 1 -
C++题库答案
else if (magnitude < 7.0) {
cout << \本次地震后果:烟囱倒塌;普通建筑物被破坏!\ << endl; }
else if (magnitude < 8.0) {
cout << \本次地震后果:地下管线破裂;结实的建筑物也被破坏!\ << endl; } else {
cout << \本次地震后果:地面波浪状起伏;大多数建筑物损毁!\ << endl; }
return 0; }
Q6.(10分)写一个程序从键盘输入1到7中的某个数字,其中1代表星期天,
2代表星期一,3代表星期二等。根据用户输入的数字显示相应的星期几。如果用户输入的数字超出了1到7的范围,显示输出一个错误提示信息。 **输入格式要求:整数, 提示信息:cout << \numeral(1-7): \
**输出格式要求:\(星期几的英文单词首字母大写加换行) 提示信息:\加换行) #include
int a;
cout << \; cin >> a;
if (a < 1 || a > 7) {
cout << \ << endl }
switch (a) {
case 1:
cout << \ << endl; break;
- 2 -
C++题库答案
case 2:
cout << \ << endl; break; case 3:
cout << \ << endl; break; case 4:
cout << \ << endl; break; case 5:
cout << \ << endl; break; case 6:
cout << \ << endl; break; case 7:
cout << \ << endl; break; }
return 0; }
Q7.(10分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱
的计划,陌生人对百万富翁说:“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱??。你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。 **输入提示信息和数据格式:无
**输出提示信息和数据格式:cout << \百万富翁给陌生人:\\元\
cout << \陌生人给百万富翁:\<< toRichman << \元\
#include
int j;
double toStranger = 0; /* 富翁给陌生人的钱,以'元'为单位 */ double toRichman = 0; /* 陌生人给富翁的钱,以'元'为单位 */ double term = 0.01; /* 富翁第一天给陌生人0.01元 */
- 3 -
C++题库答案
for (j = 1; j <= 30; j++) {
toRichman += 100000; /* 陌生人每天给富翁10万元 */ toStranger += term;
term = term * 2; /* 富翁每天给陌生人的钱是前一天的两倍 */ }
cout << \百万富翁给陌生人:\ << toStranger << \元\ << endl; cout << \陌生人给百万富翁:\ << toRichman << \元\ << endl; return 0; }
Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。
统计并输出实际累加的项数。
输出格式要求:cout<<\
cout << \输出结果为: sum=1071225 count =45 #include
long i, sum = 0; for (i = 1; ; i++) {
sum = sum + i * i * i;
if (sum >= 1000000) break; }
cout<<\< cout << \ << i << endl; return 0; } Q9.(10分)求多项式 1!+2!+3!+??+15!的值。 输出格式要求:cout<<\#include - 4 - C++题库答案 int main() { int n = 1, s = 0; for (int i = 1; i <= 15; i++) { n = n * i; s += n; } cout << \ << s << endl; return 0; } Q10.(10分)求1至200之间的所有质数,将质数和存入变量 sum 中并输出。 质数(素数)的说明:“质数是只能被1和其本身整除的数”。 输入提示要求:无 输出结果格式要求:质数之间以一个空格隔开 输出所有质数后换行输出:sum=4227 #include using namespace std; int main() { int N, m, sum = 0; for (m = 2; m <= 200; m++) { int i, tmp = (int)sqrt(m); for (i = 2; i <= tmp; i++) if (m % i == 0) break; if (i > tmp) { cout << m << \; sum += m; } } cout << endl; cout << \ << sum << endl; return 0; } Q11.(10分)在一个已知的一维数组中分类统计正数和负数的个数。正数的个数存入变量C1中 量C2中. 输出格式要求:cout << \ - 5 -