大学C++题库及答案.docx
《大学C++题库及答案.docx》由会员分享,可在线阅读,更多相关《大学C++题库及答案.docx(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Q5. a。分)写一个程序根据从键盘输入的里氏强度显示地震的后果。根据里氏强度地震的后果如下:里氏强度1 uu Ju Ju Hu 8 二至至至至1 于o o o o过 4 5 6 7 由5.06.07.08.0 .0后果很小窗户晃动墙倒塌;不结实的建筑物被破坏烟囱倒塌;普通建筑物被破坏地下管线破裂;结实的建筑物也被破坏 地面波浪状起伏;大多数建筑物损毁*输入格式要求:实数,提示信息:cout ”请输入地震的里氏强度:endl;*输出格式要求:“本次地震后果:很小!”“本次地震后果:窗户晃动!”本次地震后果:墙倒塌;不结实的建筑物被破坏!”“本次地震后果:烟囱倒塌;普通建筑物被破坏!”“本次地震
2、后果:地下管线破裂;结实的建筑物也被破坏!”“本次地震后果:地面波浪状起伏;大多数建筑物损毁!”#include using namespace std; int main()double magnitude;cout 请输入地震的里氏强度: magnitude;if (magnitude 4.0)cout 本次地震后果:很小! endl;) else if (magnitude 5.0)(cout ”本次地震后果:窗户晃动!” endl; else if (magnitude 6.0)cout 本次地震后果:墙倒塌;不结实的建筑物被破坏! endl;else if (magnitude 7.
3、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 Please input a single numeral(1
4、-7):;*的出格式要求: Monday(星期几的英文单词首字母大写加换行)提示信息:“Invalid - please input a single numeral (1-7)(加换行)#include using namespace std; int main() int a; cout a; if (a 7)cout nInvalid - please input a single numeral(1-7).n end switch (a) case 1:cout nSundayH endl;break;case 2:cout Monday endl;break;case 3:cout
5、Tuesday” endl;break;case 4:cout Wednesdayn endl;break;case 5:cout Thursday” endl;break;case 6:cout Friday” endl;break;case 7:cout Saturday” endl; break;return 0;Q7.(io分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱。你每天给我的钱是前一天的两倍,直到满一个月(30天)为
6、止”,百万富翁很高兴,欣然接受了这个契约。请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。*输入提示信息和数据格式:无*输出提示信息和数据格式:cout 百万富翁给陌生人: toStranger 元“ endl;cout 陌生人给百万富翁: toRichman 元“ endl;#include using namespace std; int main ()int j;double toStranger =0;/富翁给附生人的钱,以/为单位/double toRichman =0;/的生人给富翁的钱,以,JL/为单.位文/double term = 0.01;/*
7、富翁第一天给陌生人0.01元*/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,/sum=,/sumendl;cout ”count = i en
8、dl;输出结果为:sum=1071225 count =45#include using namespace std;int main()long i, sum =0;for (i =1; i+)( sum = sum + i * i * i; if (sum =1000000) break; coutnsum= nsumencll;cout ncount = i endl;return 0;Q9.(10分)求多项式1!+2!+3!+15!的值。输出格式要求:cout/zs=z,sendl;#includeusing namespace std;int main()( int n =1, s
9、=0; for (int i =1; i =15; i+) n = n * i; s += n; cout ”s= s endl; return 0;Q10.(10分)求1至200之间的所有质数,将质数和存入变量sum中并输出。质数(素数)的说明:“质数是只能被1和其本身整除的数”。输入提示要求:无输出结果格式要求:质数之间以一个空格隔开输出所有质数后换行输出:sum=4227#include#include using namespace std; int main() int N, m, sum =0; for (m =2; m =200; m+)( int i, tmp =(int)sq
10、rt(m); for (i =2; i tmp) cout m n; sum += m;) cout endl; cout nsum=n sum endl; return 0;Qll.(10分)在一个已知的一维数组中分类统计正数和负数的个数。正数的个数存入变量Cl中量C2中.输出格式要求:cout cl= cl endl;cout c2= #include using namespace std; int main () int a10 = lz -2Z int cl = 0, c2 = 0; int i;for (i = 0; i 0)C1+; else if (ai c2+;cout nc
11、1 =n cl cout ”c2= c2 return 0; c2 endl;0,4,-5,0z 7,8,-9,10;i +)0) endl; endl;Q12.(10分)在包含10个数的一维整数数组a中查找最大元素max和最小元素 mirio 输出格式要求:cout 最大元素: max endl;cout 最小元素:“ min endl;include using namespace std;int main()(int a10=32,43,65,23,432,543,543,54,542,87; int i;int max, min;max = a 0r min = a0;for (i =
12、1; i max) max = ai; if (a i min) min = ai;cout ”最大元素:” max endl;cout ”最小元素:” min endl;return 0;sumoQ13.(10分)用while循环编程,求自然数1至100之间各奇数平方和输出结果格式为:sum=166650#include using namespace std; int main ()( int i =1, sum =0; while (i =100) sum += i * i; i +=2; cout ”sum= sum endl; return 0;Q14.(10分)判断一个数23437
13、是否是素数(要求程序中设置一个参数 flag, flag为1代表是素数,为0代表不是)输出结果:0#include#include using namespace std; int main() int m, n, flag =1; m =23437; for (n =2; n = m /2& flag; n+) if (m % n =0)flag =0; cout flag endl; return 0;Q15.(10分)已知一个数m(=252),用循环求各位数字之和。输出结果格式:s=9#includeusing namespace std; int main()int m =252, a
14、, b, c, s; a = m /100;b = m /10%10;c = m %10;s = a + b + c;cout ”s= s endl;return 0;Q16.(10分)已知个数m(=252),用循环求各位数字之积。输出结果格式:f=20#include using namespace std; int main()|int m, f=l, n; m=252;while (m !=0) n=m%10; f *=n; m=m/10; coutn f=nfendl; return 0;QI 7.(10分)已知10个四位数输出所有对称数及个数n。例如1221,2332都是对称数。设:
15、int m10=1221,2243,2332,1435,1236,5623,4321,4356,6754,3234;输出结果:12212332include using namespace std;int main()int i, n =0, m10=1221,2243,2332,1435,1236,5623,4321,4356, for (i =0; i 10; i+)int a, b, c, d;a = m i b = m i c = m i d = m i /1000;%1000/100;%100/10;%10;if (a = d & c = b) cout mi endl; n+;re
16、turn 0;Q18.(10分)将1T00之间奇数顺序累加存入n中,直到其和等于或大于200为止。输出结果格式:n=225#includeusing namespace std; int main()int n =0, i =1;while (n 200)( n = n + i; i +; i+;)cout ,n=, n endl;return 0;Q19.(10分)从键盘上输入三个整数,编写程序求出三个数中的最大值。输入格式要求:cout”请输入三个整数:”;输出格式要求:coutX”最大值是:maxendl;#include using namespace std;int main ()i
17、nt a, bz c, t, max;cout a b c; if (a b)t = a;a = b;b = t;if (a c)t = a;a = c;c = t;max = a;cout ”最大值是: max endl;return 0;Q20.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。输入格式要求:cout久”请输入年份和月份:“;输出格式要求:cout year 年 month 月是 day 天。 endl;#includeusing namespace std;int main()int year, month, day;cout year month;switch
18、 (month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:day =31;break;case 4:case 6:case 9:case 11:day =30;break;case 2:if (year %400=0 I I year %4=0& year %100!=0) day =29;elseday =28;break;cout year 年 month 月是 day “天。” enreturn 0;)Q21.(10分)编写程序,求解下面的分段函数:C x-8,-10x0产x, x=0I x*x,0x10输入格式要求:cout
19、请输入X:”;输出格式要求:cout My=M y endl;#includeusing namespace std;int main()double x,y;coutx;if(x-10&x0&x10) y=x*x;coutny=nyendl;return 0;Q22.(10分)用“辗转相除方法”计算两个数x,y的最大公约数。输入格式要求:无,直接输入输出格式要求:无,直接输出结果#include using namespace std; int main() int x, y, n; cin x y; n = x % y; while (n !=0)x = y; y = n; n = x %
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 C+ 题库 答案
限制150内