大学C++题库及答案.pdf
《大学C++题库及答案.pdf》由会员分享,可在线阅读,更多相关《大学C++题库及答案.pdf(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Q 5.(io分)写个程序根据从键盘输入的里氏强度显示地震的后果。根据里氏强度地震的后果如下:里氏强度 后果小于4 很小4.0到 5.0 窗户晃动5.0到 6.0 墙倒塌;不结实的建筑物被破坏6.0到 7.0 烟囱倒塌;普通建筑物被破坏7.0到 8.0 地下管线破裂;结实的建筑物也被破坏超过8.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(magnit u de 7.0)cou t 本次地震后果:烟囱倒塌;
3、普通建筑物被破坏!endl;else if(magnit u de 8.0)(cou t 本次地震后果:地下管线破裂;结实的建筑物也被破坏!endl;)else(cou t 本次地震后果:地面波浪状起伏;大多数建筑物损毁!endl;)return 0;)Q 6.(1 0 分)写一个程序从键盘输入1 到 7中的某个数字,其中1 代表星期天,2 代表星期一,3 代表星期二等。根据用户输入的数字显示相应的星期儿。如果用户输入的数字超出了 1 到 7的范围,显示输出一个错误提示信息。*输入格式要求:整数,提示信息:cou t P leas e inpu t a s inglenu mer al(1-7
4、):;*的出格式要求:M onday (星期儿的英文单词首字母大写加换行)提示信息:“Inv alid-pleas e inpu t a s ingle nu mer al(1 7).(力 口 换 彳 亍)#inclu deusing namespace s t d;int main()(int a;cou t a;if(a 7)(cou t Inv alid-pleas e inpu t a s ingle nu mer al(1-7).n endswitch(a)(case 1:cou t S u nday”endl;break;case 2:cout Monday endl;break;
5、case 3:cout Tuesdayn 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;Q 7.(io分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:“我每天给你1 0 万元,而你第一天只需给我1分钱,第二天我仍给你1 0 万元,你给我2 分钱,第三天我仍给你1 0 万元,你给我 4 分钱。你每天给我的钱是前
6、一天的两倍,直到满一个月(3 0 天)为止”,百万富翁很高兴,欣然接受了这个契约。请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。*输入提示信息和数据格式:无*输出提示信息和数据格式:cou t ”百万富翁给陌生人:t oS t r anger 元 endl;cou t 陌生人给百万富翁:t oRichman 元 endl;#include using namespace std;int main()(int j;double toStranger=0;/*富翁给陌生人的钱,以,元,为单位*/double toRichman=0;/*陌生人给富翁的钱,以,元,为单
7、位*/double term=0.01;/*富翁第一天给陌生人0.01元*/for(j=1;j=30;j+)toRichman+=100000;/*陌生人每天给富翁10万 元*/to S tran g er+=term;term =term *2;/*富翁每天给陌生人的钱是前天的两倍*cout ”百万富翁给陌生人:to S tran g er 元 endl;cout ”陌生人给百万富翁:”toRichman 元 en d l;return 0;Q 8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。统计并输出实际累加的项数。输出格式要求:cout,sum=,sumen
8、dl;cout ”count=i endl;输出结果为:sum=1071225count=45include using namespace std;in t m ain()long i,sum=0;fo r(i=1;i+)(sum=sum+i*i*i;i f (sum=1000000)break;coutn sum=nsumendl;cout Hcount=i en d l;return 0;Q 9.(10分)求多项式l!+2!+3!+15!的值。输出格式要求:cout,s=z,sendl;#includeusing namespace std;int main()(int n=1,s=0;
9、for(int i=1;i=15;i+)(n=n*i;s+=n;cout s=s endl;return 0;Q 1 0.(10分)求1至200之间的所有质数,将质数和存入变量s u m中并输出。质数(素数)的说明:“质数是只能被1和其本身整除的数”。输入提示要求:无输出结果格式要求:质数之间以一个空格隔开输出所有质数后换行输出:sum=4227#include#includeusing 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)(cout m n;
10、sum+=m;)cout endl;cout ”sum=sum endl;return 0;Q l l.(10分)在一个已知的一维数组中分类统计正数和负数的个数。正数的个数存入变量C l中量C 2中.输出格式要求:cout cl=cl endl;cout c2二#in c lu d e using namespace s td;int m a in()(int a10=1,2,int c l=0r c2=0;int i;for(i=0;i 0)cl+;else if(a i c2+;co u t nc 1=1 1 c lco u t c2=c2return 0;c2 endl;0,4,-5Z
11、0,7,8,-9,10);i +)0)e n d l;e n d l;Q 1 2.(10分)在包含10个数的一维整数数组a 中查找最大元素max和最小元素 mino输出格式要求:cout 最大元素:max endl;cout 最小元素:min endl;in c lu d e using namespace s td;int m a in()(int a10=32,43,65,23,432,543,543,54,542,8 7);int i;int max,m in;max=a 0z min=a 0;for(i=1;i max)max=a i ;if(a i min)min=a i ;co u
12、 t ”最大元素:max e n d l;co u t ”最小元素:min e n d l;return 0;Q I 3.(10分)用w hile循环编程,求自然数1至100之间各奇数平方和输出结果格式为:sum=166650#in c lu d e using namespace s td;int m ain()(int i =1,sum=0;while(i=100)(sum+=i *i;i+=2;)co u t n sum=n sum e n d l;return 0;)Q I 4.(10分)判断一个数23437是否是素数(要求程序中设置一个参数flag,fla g为1代表是素数,为0代表
13、不是)输出结果:0#in c lu d e#includeusing namespace s td;int m a in()(int m,n,fla g =1;m=23437;for(n=2;n=m/2&fla g;n+)if(m%n=0)fla g =0;co u t fla g e n d l;return 0;sumoQ I 5.(10分)已知一个数m(=252),用循环求各位数字之和。输出结果格式:s=9#in clu d eusing namespace s td;int m a in()(int m=252,a,b,c,s;a=m/100;b=m/10%10;c=m%10;s=a+
14、b+c;cout ”s=s endl;return 0;)Q I 6.(10分)已知个数m(=252),用循环求各位数字之积。输出结果格式:f=20#includeusing namespace std;int m ain()int m,f=l,n;m=252;while(m!=0)(n=m%10;f*=n;m=m/10;coutn f=nfendl;return 0;Q I 7.(10分)已知10个四位数输出所有对称数及个数n。例如1221,2332都是对称数。设:int m10=1221,2243,2332,1435,1236,5623,4321,4356,6754,3234);输出结果:
15、12212332include using namespace std;int m ain()(int i,n=0,m10=1221,2243,2332,1435,1236,5623,4321z 4356,for(i=0;i 10;i+)int a,b,c,d;a=mi/b=mi%c=m i%1000;1000/100;100/10;d=mi%10;i f (a=d&c=b)co u t m i e n d l;n+;return 0;)Q 1 8.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。输出结果格式:n=225#in c lu d e using nam
16、espace s td;int m ain()int n=0,i=1;while(n 200)(n=n+i;i +;i+;)co u t ”n=n e n d l;return 0;Q1 9.(io分)从键盘上输入三个整数,编写程序求出三个数中的最大值。输入格式要求:cout。”请输入三个整数:”;输出格式要求:cout”最大值是:max endl;in c lu d e using namespace s td;int m a in()(int a,b,cz t,max;co u t a b c;if(a b)(t =a;a=b;b=t;if(a c)(t =a;a=c;c=t;max=a;
17、co u t ”最大值是:max e n d l;return 0;Q 2 0.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。输入格式要求:cout”请输入年份和月份:;输出格式要求:cout year 年 month 月 是 day 天。endl;#in c lu d e using namespace s td;int m a in()(int y e a r,m onth,day;co u t y e a r m onth;switch(month)(case 1:case 3:case 5:case 7:case 8:case 1 0:case 1 2:day=31;br
18、eak;case 4:case 6:case 9:case 1 1:d a y=3 0;break;case 2:if(ye a r%4 0 0 =0|ye a r%4 =0&ye a r%1 0 0 !=0)d a y=2 9;elsed a y=2 8;break;c o u t ye a r “年”m o n t h “月“是 d a y “天。”e nreturn 0;Q 2 1 .(i o 分)编写程序,求解下面的分段函数:x-8,-1 0 x 0y=x,x=Q、x*x,0 x 1 0输入格式要求:c o u t 请输入 X:”;输H l格式要求:c o u t ny=n y e n
19、 d l;#i n c l u d e using namespace s t d;int m a i n()(double x,y;c o u t x;if(x-1 0&x 0&x 1 0)y=x*x;c o u t ny=n y e n d l;return 0;Q 2 2.(1 0 分)用“辗转相除方法”计算两个数x,y的最大公约数。输入格式要求:无,直接输入输出格式要求:无,直接输出结果#i n c l u d e using namespace s t d;int m a i n()(int x,y,n;c i n x y;n =x%y;while(n !=0)(x=y;y=n;n
20、=x%y;c o u t y e n d l;return 0;Q 2 3.(i o 分)利用选择法将下面i o 个数按降序排列。有如下定义:i n t n 1 0 =5,6,4,2,3,7,8,5,6,7);输入格式要求:无输出格式要求:以逗号分隔降序数列#i n c l u d e using namespace s t d;int main()(int n 1 0 =5,6,4,2,3,7,8,5,6,7,i,j,k,t;for(i =0;i 9;i+)(k =i;for(j =i +1;j 1 0;j+)if(n k n j )k =j;t =n i ;n i =n k ;n k =t
21、;)for(j =0;j 1 0;j+)c o u t n j ,;return 0;Q2 4.(10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的人数k,用T 做结束标志。输入格式要求:无输出格式要求:cout ”高于平均分的人数:k endl;in c lu d e using namespace s td;int m a in()double c j 2 0 z a v e rz sum=0;int n=0,k=0,i;c in c j 0;while(c j n=0)(sum+=c j n;n+;c in c j n;a v e r=sum/(n-1);for(i=0;i
22、 av er)k+;co u t ”高于平均分的人数:k e n d l;return 0;Q 2 5.(10分)已知三个数a,b,c,按由小到大的顺序存入a,b.c中并输出.输入格式要求:cout ”输入三个整数:”;输出格式要求:cout 由小到大的顺序是:a 出 b c e n d l;in c lu d e using namespace s td;int m a in()(int a,b,cz t;co u t a b c;if(a b)ta;a =b;b =t;if(a c)(t =a;a =c;c =t;if(b c)(t =b;b =c;c =t;c o u t 由小至U 大的
23、顺序是:a ,b ,c e n d l;return 0;)Q 2 6.(1 0 分)编程计算 s u m=l!+2!+.+9!o输入格式要求:无输出格式要求:c o u t z,s u m=s u m e n d l;#i n c l u d e using namespace s t d;int m a i n()int s u m=0;for(int i=l;i =9;i+)(int x=l;for(int j=l;j =i;j+)x=x*j;s u m=s u m+x;)c o u t ns u m=s u m e n d l;return 0;)Q 2 7.(i o 分)编写函数,删
24、除字符串中的指定字符,函数原型为:v o i d d e l e t e c h a r(c h a r *s t r i n g,c h a r c h);设 c h a r c 1 0 0 =a b c d a b c d a a b b c c d d”;输出结果:b e d b e d b b e e d d#i n c l u d e#i n c l u d e using namespace s t d;void d e l e t e c h a r(char*s t r i n g,char c h)(int i (0),k (0);while(s t r i n g i+!=
25、1 0 1)if(s t r i n g i !=c h)s t r i n g k+=s t r i n g i ;s t r i n g k =*0 *;)int m a i n ()(char c 1 0 0 =na b c d a b c d a a b b c c d d1 1;d e l e t e c h a r (c,1 a 1);c o u t c e n d l;return 0;Q28.(1 0分)编写函数,将一个十进制无符号整数转换为二进制整数,函数原型为:v o i d t r a n s f o r m(c h a r*p,l o n g i,i n t b a s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 C+ 题库 答案
限制150内