C++上机上Word格式.docx
- 文档编号:8434960
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:31
- 大小:24.71KB
C++上机上Word格式.docx
《C++上机上Word格式.docx》由会员分享,可在线阅读,更多相关《C++上机上Word格式.docx(31页珍藏版)》请在冰点文库上搜索。
c;
s=a*b*c;
″a*b*c=″<
s<
5、试编写一个程序,要求输出两个数中较小者。
{inta,b;
if(a>
b)
cout<
”Theminis”<
b<
else
a<
二、数据、操作符和表达式
6、请输出字符A、B、D、E的ASCII值。
{intc1='
A'
c2='
B'
c3='
D'
c4='
E'
The'
is%d\n"
c1<
c2<
c3<
c4;
7、请分析本程序结果:
{inta=3,b=4,c=2;
a=++b+c++;
c<
a=(b++)+(++c);
a++;
b:
(a>
b)<
(a<
a==b:
(a==b)<
a!
=b:
(a!
=b)<
b&
&
a:
a)<
b||a>
c:
c);
}结果为:
7,5,3
9,6,4
a>
1
a<
a==b:
a!
8、编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到大的顺序输出这三个字符的ASCII码。
ASCII码的大小关系与字符的大小关系一致,且相邻字符的ASCII码编码连续。
用顺序结构即可实现,程序如下:
{charch;
ch;
(char)(ch-1)<
ASCIIcodeis"
(int)ch-1<
ch<
(int)ch<
(char)(ch+1)<
(int)ch+1<
三、顺序程序设计
9、输入一个非负数,计算以这个数为半径的圆周长和面积。
{constfloatpi=3.1415926;
floatr,s,c;
r;
s=r*r*pi;
c=2*pi*r;
s="
c="
10、输入任意一个三位数,将其各位数字反序输出(例如输入123,输出321)。
{inta,b,c,d;
a;
b=a/100;
c=a%100/10;
d=a%10;
d<
四、分支程序设计
11、从键盘输入某学生的四科成绩,求出总分和平均分,找出最高分和最低分。
寻找最高分和最低分的基本操作是比较当前分数和当前最高分及最低分的大小,需要选择结构来实现,程序如下:
{floata1,a2,a3,a4,aver,sum;
floatmin,max;
Enter4scores:
a1>
a2>
a3>
a4;
min=a1;
max=a1;
sum=a1+a2+a3+a4;
aver=sum/4;
if(a2<
min)
min=a2;
elseif(a2>
max)
max=a2;
if(a3<
min)
min=a3;
elseif(a3>
max=a3;
if(a4<
min=a4;
elseif(a4>
max=a4;
aver="
aver<
"
sum=\n"
min="
min<
max=\n"
max<
12、输入年号和月份,输出这一年的该月的天数。
(一个年份,先判断是否闰年)
需要判断输入的年份是否闰年,输入月份与该月天数的关系最好使用switch结构,if结构亦可完成。
参考程序如下:
{intyear,month,day;
Enteryear&
month:
year>
month;
if((year%4==0)&
(year%100!
=0)||(year%400==0))
{if(month==2)
day=29;
else
day=28;
else{
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
day=31;
break;
case2:
day=28;
case4:
case6:
case9:
case11:
day=30;
year="
year<
month="
month<
day="
day;
13、给出一个百分制的成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。
90分以上为‘A’,80——89为‘B’,70——79为‘C’,60——69为‘D’,60分以下为‘E’。
{floatscore;
intgrade;
pleaseinputascore:
cin>
score;
grade=score/10;
switch(grade)
{case9:
It'
sAgrade.\n"
break;
sBgrade.\n"
sCgrade.\n"
sDgrade.\n"
sEgrade.\n"
default:
serror!
\n"
14、企业发放的奖金根据利润提成,利润i低于或等于10万元的,奖金可提10%;
利润高于10万元,低于20万元的,低于10万元的部分按10%提,高于10万元的部分可提7.5%;
20万<
i<
=40万元,高于20万元的部分按5%提成;
40万<
i<
=60万时,高于40万的部分按3%提成,60万<
=100万时,高于60万的部分按1.5%提成,超过100万元的部分按1%提成。
从键盘输入当月利润i,求应发奖金总数。
要求:
用if和switch语句编程。
解1:
{inti,m;
请输入当月利润:
i;
if(i<
=100000)m=i*0.1;
elseif(i<
=200000)m=100000*0.1+(i-100000)*0.075;
=400000)m=100000*0.1+100000*0.075+(i-200000)*0.05;
=600000)m=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
=1000000)m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
elsem=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
奖金总数为:
m;
解2:
{inti,m,n;
n=i/100000;
switch(n)
{case0:
m=i*0.1;
m=100000*0.1+(i-100000)*0.075;
m=100000*0.1+100000*0.075+(i-200000)*0.05;
m=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
15、输入4个整数,按由小到大的顺序输出。
{
inta,b,c,d,t;
请输入4个数:
c>
d;
if(a>
{t=a;
a=b;
b=t;
if(a>
c)
a=c;
c=t;
d)
a=d;
d=t;
if(b>
{t=b;
b=c;
if(b>
b=d;
if(c>
{t=c;
c=d;
smalltobig:
'
'
五、循环程序设计
16、给出一个不多于5位是正整数,要求:
(1)求出它是几位数?
(2)分别打印出每一位的数字(3)逆序打印各位数字。
math.h>
{inti,a,num=1;
a=i;
while((a=a/10)!
=0)//求是几位数
num++;
它是"
num<
位数。
intn;
while(num!
=0)//顺序打印每一位
{n=a/pow(10,num-1);
a=a%(int)pow(10,num-1);
n<
num--;
intm;
while(a!
=0)//逆序打印每一位
{m=a%10;
m<
a=a/10;
}}
17、输入两个正整数m,n,求其最大公约数和最小公倍数。
{intp,r,n,m,temp;
请输入两个整数:
n>
if(n<
m)
{temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!
=0)
{r=n%m;
m=r;
最大公约数是:
最小公倍数是:
p/n<
18、输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
stdio.h>
{charc;
intletter=0,space=0,digit=0,other=0;
请输入一行字符:
while((c=getchar())!
='
\n'
)
{if(c>
a'
z'
||c>
Z'
letter++;
elseif(c=='
space++;
elseif(c>
0'
9'
digit++;
other++;
letter="
letter<
space="
space<
digit="
digit<
other="
other<
19、求sn=a+aa+aaa+……+aa…a之值,其中a是一个数字,例如:
2+22+222+2222+22222(此时n=5),n由键盘输入。
{inta,n,i=1,sn=0,tn=0;
a,n=?
n;
while(i<
=n)
{tn=tn+a;
sn=sn+tn;
a=a*10;
++i;
a+aa+aaa+...+aaaa...="
sn;
20、求1!
+2!
+3!
+……+20!
=?
。
{doubles=0,t=1;
for(n=1;
=20;
n++)
{t=t*n;
s=s+t;
1!
+2!
+3!
...+20!
="
21、输出所有以水仙花数,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如:
153=1*1*1+5*5*5+3*3*3。
{inti,j,n,k;
水仙花数是:
for(n=100;
1000;
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
*'
+'
j<
k<
k;
}}
22、求Fibonacci数列前40个数。
这个数列有如下特点:
第1、2个数为1、1。
从第3个数开始,每个数是其前面两个数之和。
即
F1=1(n=1)
F2=1(n=2)
Fn=Fn-1+Fn-2(n≥3)
iomanip>
{longf1,f2;
inti;
f1=f2=1;
for(i=1;
i++)
{cout<
setw(12)<
f1<
f2;
if(i%2==0)cout<
f1=f1+f2;
f2=f2+f1;
return0;
23、用下面公式求π的近似值。
π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10-7为止。
cmath>
usingnamespacestd;
{ints=1;
doublen=1,t=1,pi=0;
while((fabs(t))>
1e-7)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
pi=pi*4;
pi="
pi<
24、用迭代法求x=sqrt(a),求平方根的迭代公式为:
xn+1=1/2(xn+a/xn)
要求前后两次求出的x的差的绝对值小于10-5。
{floata,x0,x1;
请输入a值"
x0=a/2;
x1=(x0+a/x0)/2;
do{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>
=1e-5);
Thesquarerootof"
is"
x1<
25、输出以下图案:
*
***
*****
*******
{
inti,j;
for(i=1;
=4;
{for(j=1;
=2*i-1;
j++)
*"
for(i=3;
i>
=1;
i--)
26、两个乒乓球队进行比赛,各出3人。
甲队为A、B、C3人,乙队为X,Y,Z3人。
已抽签决定比赛名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程找出3对赛手的名单。
{chari,j,k;
for(i='
x'
for(j='
for(k='
k++)
if(i!
=j&
i!
=k&
j!
=k)
k!
cout<
A->
B->
C->
27、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
inti,j,k;
{for(j=1;
for(k=1;
if(i!
=k)cout<
28、一球从100米高度自由落下,每次落地后又反跳回原高度的一半,再落下。
求它在第10次落地时,共经过多少米?
第10次反弹多高?
{floatsn=100,hn=sn/2;
intn;
for(n=2;
=10;
{sn=sn+2*hn;
hn=hn/2;
第10次落地时共经过"
sn<
米"
第10次反弹"
hn<
29、设N是一个四位数,它的9倍正好是其反序数,求N。
反序数就是将整数的数字倒过来形成的整数。
设整数N的千、百、十、个位为i、j、k、m,取值范围0-9,N的范围是1002-1111,穷举条件为:
(i*1000+j*100+k*10+m)*9=m*1000+k*100+j*10+l
{inti,j,k,m,n;
Thenumbersatisfiedstatescontionis:
for(n=1002;
1111;
{i=n/1000;
j=n/100%10;
k=n/10%10;
m=n%10;
if((i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 上机