C++编程题集Word文件下载.docx
《C++编程题集Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++编程题集Word文件下载.docx(114页珍藏版)》请在冰豆网上搜索。
usingnamespacestd;
intmain()
{
inti;
cout<
endl;
cin>
>
i;
if(i>
=8)
elseif(i>
=7&
&
i<
8)
=6&
7)
=5&
6)
elseif(i>
=4&
5)
elseif(i<
4)
}
Q6.(10分)写一个程序从键盘输入1到7中的某个数字,其中1代表星期天,2代表星期一,3代表星期二等。
根据用户输入的数字显示相应的星期几。
如果用户输入的数字超出了1到7的范围,显示输出一个错误提示信息。
整数,提示信息:
Pleaseinputasinglenumeral(1-7):
;
Monday"
(星期几的英文单词首字母大写加换行)
提示信息:
Invalid-pleaseinputasinglenumeral(1-7)."
(加换行)
intn;
cin>
n;
if(n>
=1&
n<
=7)
switch(n)
case1:
Sunday"
break;
case2:
case3:
Tuesday"
case4:
Wensday"
case5:
Thursday"
case6:
Friday"
case7:
Saturday"
}
else
return0;
Q7.(10分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:
“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱……。
你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。
请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。
**输入提示信息和数据格式:
无
**输出提示信息和数据格式:
百万富翁给陌生人:
toStranger<
元"
cout<
陌生人给百万富翁:
toRichman<
intmain()
{
doubletoStranger=0.01,toRichman=0;
for(inti=1;
=30;
i++)
toStranger*=2;
toRichman+=100000;
}
Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。
统计并输出实际累加的项数。
要求输出结果为:
sum=1071225
count=45
#include<
inti=1,count=0,s,sum=0;
do
s=i*i*i;
sum+=s;
count++;
i++;
}while(sum<
1000000);
sum="
sum<
count="
count<
Q9.(10分)求多项式1!
+2!
+3!
+……+15!
的值。
输出格式要求:
s="
s<
inti,sum=1;
intn=15,s=0;
for(i=1;
=n;
sum=sum*i;
s+=sum;
Q10.(10分)求1至200之间的所有质数,将质数和存入变量sum中并输出。
质数(素数)的说明:
“质数是只能被1和其本身整除的数”。
输入提示要求:
输出结果格式要求:
质数之间以一个空格隔开
输出所有质数后换行输出:
sum=4227
cmath>
intPrime(intm)
inti,k;
k=(int)sqrt(m);
for(i=2;
=k;
if(m%i==0)return0;
return1;
inta;
intsum=0;
for(a=2;
a<
=200;
a++)
if(Prime(a))
sum+=a;
Q11.(10分)在一个已知的一维数组中分类统计正数和负数的个数。
正数的个数存入变量C1中,负数个数存入变量C2中.
c1="
c1<
c2="
c2<
intmain()
{
inta[10]={1,-2,0,4,-5,0,7,8,-9,10};
intc1=0,c2=0;
for(i=0;
i<
10;
i++)
if(a[i]>
0)
c1++;
elseif(a[i]<
c2++;
Q12.(10分)在包含10个数的一维整数数组a中查找最大元素max和最小元素min。
最大元素:
max<
最小元素:
min<
inta[10]={32,43,65,23,432,543,543,54,542,87};
intmax,min;
max=a[0],min=a[0];
for(i=1;
max)max=a[i];
if(a[i]<
min)min=a[i];
Q13.(10分)用while循环编程,求自然数1至100之间各奇数平方和sum。
输出结果格式为:
sum=166650
inti=1,sum=0;
while(i<
=100)
if(i%2!
=0)
sum=sum+i*i;
sum;
Q14.(10分)判断一个数23437是否是素数(要求程序中设置一个参数flag,flag为1代表是素数,为0代表不是)
输出结果:
inta=23437;
intc,flag;
doubleb;
b=sqrt(a);
for(c=2;
c<
=a;
c++)
if(a%c==0)
if(c>
b)
flag=1;
flag=0;
if(flag==1)
flag<
elseif(flag==0)
Q15.(10分)已知一个数m(=252),用循环求各位数字之和。
输出结果格式:
s=9
intm[3]={2,5,2},s=0;
for(inti=0;
=2;
i++)
s+=m[i];
s<
Q16.(10分)已知一个数m(=252),用循环求各位数字之积。
f=20
iomanip>
intm[3]={2,5,2},f=1;
for(inti=0;
=2;
f*=m[i];
f="
f<
Q17.(10分)已知10个四位数输出所有对称数及个数n。
例如1221,2332都是对称数。
设:
intm[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};
1221
2332
inti,n=0,m[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};
inta,b,c,d;
a=m[i]/1000;
b=m[i]%1000/100;
c=m[i]%100/10;
d=m[i]%10;
if(a==d&
c==b)
m[i]<
n++;
n="
n<
}Q18.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。
n=225
intn=0;
=100;
=0&
=200)
n+=i;
n;
Q19.(10分)从键盘上输入三个整数,编写程序求出三个数中的最大值。
输入格式要求:
请输入三个整数:
最大值是:
max<
inta,b,c,t,max;
a>
b>
c;
if(a<
b)
t=b;
b=a;
a=t;
c)
t=c;
c=a;
max=a;
Q20.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。
请输入年份和月份:
year<
年"
month<
月"
是"
day<
天。
intisLeap(intyear)
if(year%400==0||(year%4==0&
year%100!
=0))
intyear;
intmonth;
inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};
year>
month;
if(isLeap(year))
a[1]=a[1]+1;
a[month-1]<
Q21.(10分)
编写程序,求解下面的分段函数:
cout
请输入x:
y="
y
doublex,y;
x;
if(x>
-10&
x<
0)y=x-8;
if(x==0)
y=x;
0&
10)
y=x*x;
y<
Q22.(10分)用“辗转相除方法”计算两个数x,y的最大公约数。
无,直接输入
无,直接输出结果
intx,y,r;
x>
y;
while(y!
r=x%y;
x=y;
y=r;
x<
Q23.(10分)利用选择法将下面10个数按降序排列。
有如下定义:
intn[10]={5,6,4,2,3,7,8,5,6,7};
以逗号分隔降序数列
inta[10]={5,6,4,2,3,7,8,5,6,7},i,j,k,t;
for(i=0;
=8;
i++)
k=i;
for(j=i+1;
j<
=9;
j++)
if(a[k]<
a[j])
k=j;
if(k!
=i)
t=a[k];
a[k]=a[i];
a[i]=t;
a[i]<
"
Q24.(10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的人数k,用-1做结束标志。
高于平均分的人数:
k<
floatcj[]={76,89,90,67,56,45,24,87,66,56,-1},aver,sum=0;
inti,n=0,k=0;
while(cj[n]>
=0)