C++编程题集.docx

上传人:李医生 文档编号:11685846 上传时间:2021-08-30 格式:DOCX 页数:119 大小:154.46KB
返回 下载 相关 举报
C++编程题集.docx_第1页
第1页 / 共119页
C++编程题集.docx_第2页
第2页 / 共119页
C++编程题集.docx_第3页
第3页 / 共119页
C++编程题集.docx_第4页
第4页 / 共119页
C++编程题集.docx_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《C++编程题集.docx》由会员分享,可在线阅读,更多相关《C++编程题集.docx(119页珍藏版)》请在三一文库上搜索。

1、精选范本根据里 endl;Q5.(io分)写一个程序根据从键盘输入的里氏强度显示地震的后果。氏强度地震的后果如下:里氏强度后果小于4很小4.0到5.0窗户晃动5.0到6.0墙倒塌;不结实的建筑物被破坏6.0到7.0烟囱倒塌;普通建筑物被破坏7.0到8.0地下管线破裂;结实的建筑物也被破坏超过8.0地面波浪状起伏;大多数建筑物损毁* *输入格式要求:实数, 提示信息:cout ”请输入地震的里氏强度* *输出格式要求:”本次地震后果:很小!”本次地震后果:窗户晃动!”本次地震后果:墙倒塌;不结实的建筑物被破坏!”本次地震后果:烟囱倒塌;普通建筑物被破坏!”本次地震后果:地下管线破裂;结实的建筑物

2、也被破坏!”本次地震后果:地面波浪状起伏;大多数建筑物损毁!#includeusingnamespacstd;int main()int i;cout请输入地震的里氏强度:i;if (i=8)cout ”本次地震后果:地面波浪状起伏;大多数建筑物损毁!=7&i8)cout 本次地震后果:地下管线破裂;结实的建筑物也被破坏! =6&i7)cout 本次地震后果:烟囱倒塌;普通建筑物被破坏!=5&i6)cout 本次地震后果:墙倒塌;不结实的建筑物被破坏!=4&i5)cout本次地震后果:窗户晃动! endl;elseif (i 4)cout ”本次地震后果:很小! endl; Q6.(10分)写

3、一个程序从键盘输入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 usingnamespacestd;int main()int n;cout n;if(n = 1

4、& 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; elsecout Invalid - please input a single numeral(1-7) endl; returnO;Q7

5、.a。分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的 计划,陌生人对百万富翁说:“我每天给你io万元,而你第一天只需给我i分 钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我 4分钱。你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。请编程计算在这一个月中陌生人总计给 百万富翁多少钱,百万富翁总计给陌生人多少钱。*输入提示信息和数据格式:无 *输出提示信息和数据格式:cout 百万富翁给陌生人: toStranger 元 endl;cout 陌生人给百万富翁: toRichman 元 endl;#includ

6、eusingnamespacstd;int main()doubletoStranger =0.01,toRichman=0;for(int i=1;i=30;i+)toStranger*=2;toRichman+=100000;cout 百万富翁给陌生人: toStranger 元 endl;cout 陌生人给百万富翁: toRichman 元 endl;Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000008寸为止统计并输出实际累加的项数。要求输出结果为:sum=1071225count =45#include usingnamespacstd;int main()int

7、i=1,count=0,s,sum=0;dos=i*i*i;sum+=s;count+;i+;while(sum1000000);coutsum=sumendl;coutcount =countendl;return0;Q9 .(10分)求多项式1!+2!+3!+15!的值输出格式要求:couts=sendl;#include usingnamespacstd;int main()int i,sum=1;int n=15,s=0;for(i=1;i=n;i+)sum=sum*i;s+=sum;couts=sendl;return 0;Q10(10分)求1至200之间的所有质数,将质数和存入变量

8、sum中并输出质数(素数)的说明:“质数是只能被1和其本身整除的数”。输入提示要求:无输出结果格式要求:质数之间以一个空格隔开输出所有质数后换行输出:sum=4227#include #include usingnamespacstd;精选范本int Prime(intm)int i,k;k=(int)sqrt(m);for(i=2;i=k;i+)if(m%i=0) return 0;return1;int main()int a;int sum=0;for(a=2;a=200;a+)if(Prime(a)sum+=a;couta ;coutendl;coutsum=sumendl;retur

9、n。;Q11(10分)在一个已知的一维数组中分类统计正数和负数的个数。正数的个数存入变量C1中,负数个数存入变量 C2中.输出格式要求:cout c1= cl endl;cout c2= c2 endl;#include using namespacestd;int main()int a10 = 1,-2, 0, 4,-5, 0, 7, 8,-9, 10;int cl = 0, c2 = 0;int i;for (i = 0; i 0)c1+;elseif (ai 0)c2+;cout c1= c1 endl;cout c2= c2 endl;return 0;Q12(10分)在包含10个数

10、的一维整数数组 a中查找最大元素 max和最小元素min。输出格式要求:cout 最大元素: max endl; cout 最小元素: min endl;#include using namespacestd;int main()int a10 = 32, 43, 65, 23, 432, 543, 543, 54, 542, 87;int i;int max, min;max = a0, min = a0;for (i = 1; i max) max = ai;if (ai min) min = ai;cout 最大元素: max endl;cout 最小元素: min endl;retur

11、n 0;Q13(10分)用while循环编程,求自然数1至100之间各奇数平方和sum。输出结果格式为:sum=166650#includeusingnamespacstd;int main()int i=1,sum=0;while(i=100)if(i%2!=0)sum=sum+i*i;)i+;)coutsum=sum;)Q14(10分)判断一个数23437是否是素数(要求程序中设置一个参数flagflag为1代表是素数,为0代表不是)输出结果:0#include #include usingnamespacstd;int main()int a=23437;int c,flag;doubl

12、eb;b=sqrt(a);for(c=2;cb)flag=1;elseflag=0;if(flag=1) coutflagendl;elseif(flag=0)coutflagendl;return 0;Q15(10分)已知一个数m(=252),用循环求各位数字之和输出结果格式:s=9#includeusingnamespacstd;int main()intm3 = 2, 5, 2, s = 0;for (int i = 0; i = 2; i+)s += mi;couts= s endl;return。;Q16(10分)已知一个数m(=252),用循环求各位数字之积输出结果格式:f=20#

13、include #includeusingnamespacstd;int main()intm3=2,5,2,f=1;for(int i=0;i=2;i+)f*=mi;coutf=fendl;return。;Q17(10分)已知10个四位数输出所有对称数及个数no例如1221, 2332都是对称数。设:int m10 = 1221,2243, 2332, 1435, 1236, 5623, 4321,4356, 6754, 3234;输出结果:12212332#include using namespacestd;int main()int i, n = 0, m10 = 1221,2243,

14、 2332, 1435, 1236, 5623, 4321,4356, 6754, 3234;for (i = 0; i 10; i+)int a, b, c, d;a = mi /1000;b = mi % 1000 /100;c = mi % 100 / 10;d = mi % 10;if (a = d & c = b) cout mi endl; n+;cout n= nendl;return 0;Q18.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200 为止。输出结果格式:n=225#includeusingnamespacstd;int main()(int

15、n=0;for(int i=1;i=100;i+)(if(i%2!=0&n=200) n+=i;)coutn=n;return。;Q19(io分)从键盘上输入三个整数,编写程序求出三个数中的最大值。输入格式要求:coutvv”请输入三个整数:;输出格式要求:cout最大值是:vvmaxvvendl;#includeusingnamespacstd;int main()int a, b, c, t, max;cout 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;retu

16、rn。;Q20(10分)输入年份和月份,编写程序,判断这一年该月份的天数。输入格式要求:cout ”请输入年份和月份:;输出格式要求:cout year 年 month 月 是 day 天。 endl;#includeusingnamespacstd;int isLeap(intyear)if ( year % 400 = 0 | (year % 4 = 0 & year % 100 != 0)returnl;elsereturn。;int main()int year;int month;int a12 = 31,28, 31,30, 31, 30, 31,31,30, 31,30, 31;

17、cout year month;if (isLeap(year)a1 = a1 + 1;cout year 年vv month 月 是 amonth - 1 夭。 endl;return0;Q21(10 分)编写程序,求解下面的分段函数:l -10xC输入格式要求:cout 请输入x:;输出格式要求:cout y= y endl;#includeusing namespacestd;int main()double x, y;cout x;if (x -10 & x 0 & x 10) y = x * x;cout y= y endl;return 0;Q22 (10分)用“辗转相除方法”计算

18、两个数x,y的最大公约数。输入格式要求:无,直接输入输出格式要求:无,直接输出结果#include usingnamespacstd;int main()(intx,y,r;cinxy;while(y!=0)r=x%y;x=y;y=r;coutxendl;return。;Q23(i。分)利用选择法将下面1。个数按降序排列有如下定义:int n10 = 5, 6, 4, 2, 3, 7, 8, 5, 6, 7)输入格式要求:无输出格式要求:以逗号分隔降序数列#include#includeusingnamespacstd;int main()inta10=5,6,4,2,3,7,8,5,6,7,

19、i,j,k,t;for(i=0;i=8;i+)k=i;for(j=i+1;j=9;j+)if(akaj) k=j;if(k!=i)(t=ak;ak=ai;ai=t;)for(i=0;i=9;i+)(coutai,;)coutendl;return0;)Q24 (10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的人数k,用-1做结束标志。输入格式要求:无输出格式要求:cout 高于平均分的人数: k endl;#include usingnamespacetd;int main()float cj口 = 76, 89, 90, 67, 56, 45, 24, 87, 66, 56,

20、-1, aver, sum = 0;int i,n=0,k=0;while (cjn = 0)sum += cjn;n+;aver = sum / n;for (i = 0; i aver) k+;cout 高于平均分的人数: k endl;return 0;Q25(10分)已知三个数a,b,c按由小到大的顺序存入a,b,c中并输出.输入格式要求:cout 输入三个整数:;输出格式要求:如果输入三个数5 6 4,则输出为:由小到大的顺序是:4,5,6#includeusingnamespacstd;main()int a, b, c, t;cout a b c;if (a b)t = a;a

21、= b;b = t;if (a c)t = a;a = c;c = t;)if (b c)(t = b;b = c;c = t;)cout ”由小到大的顺序是: a , b , c;return 0;)Q26(10 分)编程计算 sum=1!+2!+.+9!。输入格式要求:无输出格式要求:cout sum= sum endl;#include usingnamespacstd;int main()(int i, b = 1, sum = 0;for (i = 1; i 10; i+)b = b * i;sum = sum + b;cout sum= sum endl;Q27 (10分)编写函数

22、,删除字符串中的指定字符,函数原型为:void deletechar(char *string, char ch);设 char c100 = abcdabcd aabbccdd;输出结果:bcdbcd bbccdd#include #include using namespacestd;void deletecha*har *string, char ch)int i(0),k(0);while (stringi+ != 0)if (stringi != ch)stringk+ = stringi;stringk = 0;)int main()char c100 = abcdabcd aab

23、bccdd;deletechar(c,a);cout c endl;return 0;)Q28(io分)编写函数,将一个十进制无符号整数转换为二进制整数,函数原型为:void transform(char*p,long i,int base=2)#include using namespacestd;void transform(char*p, long i, int base = 2)int r(0), k(0);char t128;while (i 0)r = i % base;if (r = 0)*(p + r) = tk;r+;k-;*(p + r) = 0;int main()cha

24、r c256;transform(c,45678,2);cout c endl;return 0;Q29(i0分)输入 10个学生的成绩,存放在一个一维数组中,求出总分和平均分。输入提示信息格式要求:cout 请输入学生的分数:;输出结果格式要求:cout 学生的总分是: sum endl;cout 学生的平均分是: aver endl;#include usingnamespacestd;int main()int a10,i,sum=0,aver;cout ”请输入学生的分数:;for(i=0;iai;sum+=ai;aver=sum/10;cout 学生的总分是: sum endl;co

25、ut 学生的平均分是: aver endl;return 0;Q30(io分)输入io个学生的成绩,存放在一个一维数组中,找出其中的最高 分和所对应的学生。输入提示信息格式要求:cout 请输入学生的分数:;输出提示信息格式要求:cout 第 n + 1 名学生的分数最高,是: max endl;#include usingnamespacstd;int main()inta10,i,max=0,n=0;cout ”请输入学生的分数:;for(i=0;iai;if(aimax)max=ai;n=i;cout 第 n + 1 名学生的分数最高,是: max endl;return。;Q31 (1

26、0分)求一个3X3矩阵的对角线元素之和。输入提示信息格式要求:cout 请输入3行3列矩阵的元素: endl;输出提示信息格式要求:cout 请输出这个3行3列的矩阵: endl;cout 对角线元素之和为: sum endl;#include #includeusing namespacestd;int main()double a33, sum = 0;int i, j;cout 请输入3行3列矩阵的元素: endl;for (i = 0; i 3; i+)for (j = 0; j aij;cout 请输出这个3行3列的矩阵: endl;for (i = 0; i 3; i+)for (

27、j = 0; j 3; j+)cout setw(5) aij;cout endl;for (i = 0; i 3; i+)sum += aii;cout 对角线元素之和为: sum endl;return 0;Q32(10分)用公式 64-4/3+4/5-4/7+.)计算冗的近似值,直到最后一项绝对值小于1e-5输入格式要求:无输出结果格式要求:cout pi = pi endl;#includeusingnamespacstd;int main()(doublepi = 0;doublen = 1;intf = 1;while (4 / n = 1e-5)(pi = pi + f * 4

28、/ n;n = n + 2;f = -f;cout pi = pi endl;return。;Q33(10分)求一个4X4矩阵的四周元素之和。输入提示信息格式要求:cout 请输入4行4列矩阵的元素: endl;输出提示信息格式要求:cout 请输出这个4行4列的矩阵: endl;cout 四周元素之和为: sum endl;#include #includeusing namespacestd;int main()(double a44, sum = 0;int i, j;cout 请输入4行4列矩阵的元素: endl;for (i = 0; i 4; i+)for (j = 0; j ai

29、j;cout 请输出这个4行4列的矩阵: endl;for (i = 0; i 4; i+)(for (j = 0; j 4; j+)cout setw(5) aij;cout endl;)for (i = 0; i 4; i+)for (j = 0; j 4; j+)if (i = 0 | i = 3 | j = 0 | j = 3) sum += aii;cout 四周元素之和为: sum endl; return 0;)34 (10分)4个学生学习5门功课,要求输入所有学生的各门功课的成绩,并分别求出每门功课的平均成绩。输入提示信息格式要求:cout 输入第 i + 1 个学生成绩:;输

30、出提示信息格式要求:cout 第 i + 1 个学生平均成绩:setprecision(3) sum / 5 endl;)#include#includeusing namespacestd;int main()(double s45, sum;int i, j, n;for (i = 0; i 4; i+)(cout 输入第 i + 1 个学生成绩:;for (j = 0; j sij;)for (i = 0; i 4; i+)(sum = 0;n = 0;for (j = 0; j 5; j+)sum += sij;cout 第 i + 1 个学生平土成绩: setprecision(3)

31、 sum / 5 endl;)return 0;)Q35(io分)请输入io个整数到一个一维数组,并逆序输出输入提示信息格式要求:无输出提示信息格式要求:cout ai ;#includeusingnamespacstd;int main()inta10,i;for (i=0; i ai;for (i= 9; i= 0; i-)cout ai ;return。;Q36 (10分)在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并在c数组中。设:int a10 = 2, 4, 5, 8, 9, 19, an = 5;int b10 = 2, 3,

32、4, 8, 12, 18, bn = 5;输出格式要求:输出结果用2个空格隔开cout endl;#include using namespacestd; int main()int a10 = 2, 4, 5, 8, 9, 19, an = 5;int b10 = 2, 3, 4, 8,12,18, bn = 5;int i, j, k, c20, max = 999;aan + 1 = bbn + 1 = max;i = j = k = 0;while (ai != max) | (bj != max) if (ai bj) ck = ai;k+;i+; else ck = bj;k+;j

33、+;for (i = 0; i k; i+)cout ci ;cout endl;return 0;Q37 (10分)请输出如下方阵:122222131222143 3 12 14 433314443 3 15 14 431555141555551输出格式要求:数据之间用2个空格隔开。#include using namespacestd;int main()int a77, i, j;for (i = 0; i 7; i+)for (j = 0; j 7; j+)if (i = j | i + j = 6)aij = 1;elseif (i j & i + j j & i + j 6)aij

34、 = 3;elseif (i 6)aij = 4;elseaij = 5;for (i = 0; i 7; i+)for (j = 0; j 7; j+)cout aij ;cout endl;return 0;Q38(10分)输入 20个整数,统计非负数的个数,并计算它们的和,然后将非负数从小到大进行排序并输出。输入信息提示要求:无输出提示信息格式要求:cout非负数有:n个endl;cout非负数是:endl;cout setw(5) ai;cout非负数的和是:sendl;cout将非负数从小到大排序输出:endl;cout setw(5) ai;#include#includeusin

35、g namespacestd;int main()int a20, s = 0, n = 0, i, j, t;for (i = 0; i ai;for (i = 0; i 0)an = ai;n+;cout 非负数有: n 个 endl;cout 非负数是: endl;for (i = 0; i n; i+)cout setw(5) ai;cout endl;for (i = 0; i n; i+)s = s + ai;cout 非负数的和是: s endl;for (i = 0; i = n - 2; i+)for (j = i + 1; j aj)t = ai;ai = aj;aj = t;cout 将非负数从小到大排序输出: endl;for (i = 0; i n; i+)cout setw(5) ai;cout endl;return 0;Q39(i0分)输入 10名学生语文、数学、外语课成绩,计算每名学生三门课的平均成绩,输出每人各科成绩及平均成绩,并分析三门课程的优秀率,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1