Q5.(10分)写一个程序根据从键盘输入的里氏强度显示地震的后果。根据里氏强度地震的后果如下:
里氏强度后果
小于4 很小
4.0到
5.0 窗户晃动
5.0到
6.0 墙倒塌;不结实的建筑物被破坏
6.0到
7.0 烟囱倒塌;普通建筑物被破坏
7.0到8.0 地下管线破裂;结实的建筑物也被破坏
超过8.0 地面波浪状起伏;大多数建筑物损毁
**输入格式要求:实数,提示信息:cout << "请输入地震的里氏强度: " << endl; **输出格式要求:
"本次地震后果:很小!"
"本次地震后果:窗户晃动!"
"本次地震后果:墙倒塌;不结实的建筑物被破坏!"
"本次地震后果:烟囱倒塌;普通建筑物被破坏!"
"本次地震后果:地下管线破裂;结实的建筑物也被破坏!"
"本次地震后果:地面波浪状起伏;大多数建筑物损毁!"
#include
using namespace std;
int main()
{
int i;
cout<<"请输入地震的里氏强度: "< cin>>i; if(i>=8) cout<< "本次地震后果:地面波浪状起伏;大多数建筑物损毁!"< else if(i>=7&&i<8) cout << "本次地震后果:地下管线破裂;结实的建筑物也被破坏!"< else if(i>=6&&i<7) cout << "本次地震后果:烟囱倒塌;普通建筑物被破坏!"< else if(i>=5&&i<6) cout<< "本次地震后果:墙倒塌;不结实的建筑物被破坏!"< else if(i>=4&&i<5) cout<<"本次地震后果:窗户晃动!"<< endl; else if(i < 4) cout << "本次地震后果:很小!"<< endl; } Q6.(10分)写一个程序从键盘输入1到7中的某个数字,其中1代表星期天,2代表星期一,3代表星期二等。根据用户输入的数字显示相应的星期几。如果用户输入的数字超出了1到7的范围,显示输出一个错误提示信息。 **输入格式要求:整数,提示信息:cout << "Please input a single numeral(1-7): "; **输出格式要求:"Monday" (星期几的英文单词首字母大写加换行) 提示信息:"Invalid - please input a single numeral(1-7)."(加换行) #include using namespace std; int main() { int n; cout << "Please input a single numeral(1-7): "; cin >> n; if(n >= 1 && n <= 7) { switch(n) { case1: cout << "Sunday"<< endl; break; case2: cout << "Monday"<< endl; break; case3: cout << "Tuesday"<< endl; break; case4: cout << "Wensday"<< endl; break; case5: cout << "Thursday"<< endl; break; case6: cout << "Friday"<< endl; break; case7: cout << "Saturday"<< endl; break; } } else cout << "Invalid - please input a single numeral(1-7)." << endl; return0; } Q7.(10分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱……。你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。 **输入提示信息和数据格式:无 **输出提示信息和数据格式:cout << "百万富翁给陌生人:" << toStranger << "元" << endl; cout << "陌生人给百万富翁:" << toRichman << "元" << endl; #include using namespace std; int main() { double toStranger =0.01,toRichman=0; for(int i=1;i<=30;i++) { toStranger*=2; toRichman+=100000; } cout << "百万富翁给陌生人:"<< toStranger << "元"<< endl; cout << "陌生人给百万富翁:"<< toRichman << "元"<< endl; } Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。统计并输出实际累加的项数。 要求输出结果为: sum=1071225 count =45 #include using namespace std; int main() { int i=1,count=0,s,sum=0; do { s=i*i*i; sum+=s; count++; i++; }while(sum<1000000); cout<<"sum="< cout<<"count ="< return0; } Q9.(10分)求多项式 1!+2!+3!+……+15!的值。 输出格式要求:cout<<"s="< #include using namespace std; int main() { int i,sum=1; int n=15,s=0; for(i=1;i<=n;i++) { sum=sum*i; s+=sum; } cout<<"s="< return0; } Q10.(10分)求1至200之间的所有质数,将质数和存入变量 sum 中并输出。质数(素数)的说明:“质数是只能被1和其本身整除的数”。 输入提示要求:无 输出结果格式要求:质数之间以一个空格隔开 输出所有质数后换行输出:sum=4227 #include #include using namespace std; int Prime(int m) { int i,k; k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) return0; return1; } int main() { int a; int sum=0; for(a=2;a<=200;a++) { if(Prime(a)) { sum+=a; cout< } } cout< cout<<"sum="< return0; } Q11.(10分)在一个已知的一维数组中分类统计正数和负数的个数。正数的个数存入变量C1中,负数个数存入变量C2中. 输出格式要求:cout << "c1=" << c1 << endl; cout << "c2=" << c2 << endl; #include using namespace std; int main() { int a[10] = {1, -2, 0, 4, -5, 0, 7, 8, -9, 10}; int c1 = 0, c2 = 0; int i; for(i = 0; i < 10; i++) if(a[i] > 0) c1++; else if(a[i] < 0) c2++; cout << "c1="<< c1 << endl; cout << "c2="<< c2 << endl; return0; } Q12.(10分)在包含10个数的一维整数数组a中查找最大元素max和最小元素min。输出格式要求:cout << "最大元素:" << max << endl; cout << "最小元素:" << min << endl; #include using namespace std; int main() { int a[10] = {32, 43, 65, 23, 432, 543, 543, 54, 542, 87}; int i; int max, min; max = a[0], min = a[0]; for (i = 1; i < 10; i++) { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } cout << "最大元素:" << max << endl; cout << "最小元素:" << min << endl; return 0; } Q13.(10分)用while循环编程,求自然数1至100之间各奇数平方和sum。输出结果格式为:sum=166650 #include using namespace std; int main() { int i=1,sum=0; while(i<=100) { if(i%2!=0) { sum=sum+i*i; } i++; } cout<<"sum="< } Q14.(10分)判断一个数23437是否是素数(要求程序中设置一个参数flag,flag为1代表是素数,为0代表不是) 输出结果:0 #include using namespace std; int main() { int a=23437; int c,flag; double b; b=sqrt(a); for(c=2;c<=a;c++) { if(a%c==0) break; } if(c>b) flag=1; else flag=0; if(flag==1) cout< else if(flag==0) cout< return0; } Q15.(10分)已知一个数m(=252),用循环求各位数字之和。 输出结果格式:s=9 #include using namespace std; int main() { int m[3] = {2, 5, 2}, s = 0; for(int i = 0; i <= 2; i++) { s += m[i]; } cout<<"s="<< s << endl; return0; } Q16.(10分)已知一个数m(=252),用循环求各位数字之积。输出结果格式:f=20 #include using namespace std; int main() { int m[3]={2,5,2},f=1; for(int i=0;i<=2;i++) { f*=m[i]; } cout<<"f="< return0; } Q17.(10分)已知10个四位数输出所有对称数及个数n。例如1221,2332都是对称数。设:int m[10] = {1221, 2243, 2332, 1435, 1236, 5623, 4321, 4356, 6754, 3234}; 输出结果:1221 2332 #include using namespace std; int main() { int m[10] = {1221, 2243, 2332, 1435, 1236, 5623, 4321, 4356, 6754, 3234}; int a, b, c, d; for (int i = 0; i <= 9; i++) { a = m[i] / 1000; b = m[i] % 1000 / 100; c = m[i] % 1000 % 100 / 10; d = m[i] % 10; if (a == d && b == c) cout << m[i] << endl; } return 0; } Q18.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。 输出结果格式:n=225 #include using namespace std; int main() { int n=0; for(int i=1;i<=100;i++) { if(i%2!=0&&n<=200) n+=i; } cout<<"n="< return0; } Q19.(10分)从键盘上输入三个整数,编写程序求出三个数中的最大值。输入格式要求:cout<<"请输入三个整数:"; 输出格式要求:cout<<"最大值是:"< #include using namespace std; int main() { int a, b, c, t, max; cout << "请输入三个整数:"; cin >> a >> b >> c; if(a < b) { t = b; b = a; a = t; } if(a < c) { t = c; c = a; a = t; } max = a; cout << "最大值是:"<< max << endl; return0; } Q20.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。 输入格式要求: cout << "请输入年份和月份:"; 输出格式要求:cout << year << "年" << month << "月" << "是" << day << "天。" << endl; #include using namespace std; int isLeap(int year) { if( year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { return1; } else { return0; } } int main() { int year; int month; int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; cout << "请输入年份和月份:"; cin >> year >> month; if(isLeap(year)) { a[1] = a[1] + 1; } cout << year << "年"<< month << "月"<< "是"<< a[month - 1] << "天。"<< endl; return0; } Q21.(10分) 编写程序,求解下面的分段函数: 输入格式要求:cout << "请输入x:"; 输出格式要求:cout << "y="<< y << endl; #include using namespace std; int main() { double x, y; cout << "请输入x:"; cin >> x; if(x > -10 && x < 0) y = x - 8; if(x == 0) y = x; if(x > 0 && x < 10) y = x * x; cout << "y="<< y << endl; return0; } Q22.(10分)用“辗转相除方法”计算两个数 x,y 的最大公约数。输入格式要求:无,直接输入 输出格式要求:无,直接输出结果 #include using namespace std; int main() { int x,y,r; cin>>x>>y; while(y!=0) { r=x%y; x=y; y=r; } cout< return0; } Q23.(10分)利用选择法将下面10个数按降序排列。 有如下定义:int n[10] = {5, 6, 4, 2, 3, 7, 8, 5, 6, 7}; 输入格式要求:无 输出格式要求:以逗号分隔降序数列 #include #include using namespace std; int main() { int a[10]={5,6,4,2,3,7,8,5,6,7},i,j,k,t; for(i=0;i<=8;i++) { k=i; for(j=i+1;j<=9;j++) if(a[k] if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } for(i=0;i<=9;i++) {