习题4答案文档格式.docx
《习题4答案文档格式.docx》由会员分享,可在线阅读,更多相关《习题4答案文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
第一个case3:
改为case2:
4.
8
5.
55
四.用自然语言设计算法。
算法:
(1)输入一个整数year;
(2)若year被400整除或若year被4整除但若year不被100整除,则year是闰年,否则是平年。
(1)输入两个数a和b,输入运算符op;
(2)若op为“+”,则输出a+b;
(3)若op为“-”,则输出a-b;
(4)若op为“/”,则若b不为0,则输出a/b;
否则输出“除数为0”;
(5)若op为“%”,则输出a%b;
(1)设i=1
(2)若i大于999,则转(9)
(3)a=i/100;
(4)b=i/10%10
(5)c=i%100
(6)若a+b+c等于i,则输出i。
(7)i=i+1
(8)转
(2)
(9)程序结束
4.
(1)设i=2
(2)若i大于1000,则转(12)
(3)s=0;
(4)j=1
(5)若j大于等于i,则转(9)
(6)若i%j等于0,则s=s+i。
(7)j=j+1
(8)转(5)
(9)若s等于i,则输出i
(10)i=i+1
(11)转
(2)
(12)程序结束
五.编写程序。
1.
{
inta,b,t;
cin>
a>
b;
t=a;
a=b;
b=t;
a<
'
'
b<
inta;
a;
"
个位数:
a%10<
十位数:
a/10%10<
百位数:
a/100<
intyear;
year;
if(year%400==0||year%4==0&
year%100!
=0)
闰年"
else
平年"
inta,b,c,min;
b>
c;
if(a>
b)min=b;
elsemin=a;
if(min>
c)min=c;
最小数是:
min<
chara,b,c,m;
b){m=a;
b=m;
if(b>
c){m=b;
b=c;
c=m;
c<
}
6.
math.h>
floata,b,c;
if(a==0)
if(c!
=0)cout<
解是:
b/c<
elsecout<
无解"
else
{floatd;
d=b*b-4*a*c;
if(d>
=0){d=(float)sqrt(d);
cout<
两个解是:
(b+d)/(2*a)<
(b-d)/(2*a)<
}
else{
d=(float)sqrt(-d);
cout<
两个复根解是:
b/(2*a)<
+'
d/(2*a)<
*i"
-'
7.
inty,m;
输入年,月:
;
y>
m;
switch(m)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
该月有"
31<
天"
break;
case2:
if(y%400==0||y%4==0&
y%100!
29<
28<
case4:
case6:
case9:
case11:
30<
default:
没有这个月."
8.
floata,b;
charop;
输入两个数:
输入运算符:
op;
switch(op)
{
case'
:
两个数的和:
a+b<
两个数的差:
a-b<
*'
两个数的乘:
a*b<
/'
if(b!
两个数的除:
a/b<
除数为0!
default:
该运算符不是四则运算符!
9.
方法一:
charc;
if(c>
='
A'
Z'
)cout<
char(c+32)<
a'
z'
char(c-32)<
0'
9'
c-'
方法二:
intm;
)m=1;
)m=2;
)m=3;
elsem=4;
case1:
case3:
10.
floats,p,w,f;
intd;
输入距离:
s;
输入重量:
w;
输入基本运费:
p;
switch((int)s/250)
case0:
d=0;
d=0.05;
d=0.10;
d=0.15;
f=p*w*s*(1-d);
折扣:
d<
总的运费:
f<
11.
doublex,s=0,a=1;
intn=0;
do
x;
s=s+x;
a=a*x;
n++;
}while(n<
10);
和:
积:
平均值:
s/n<
12.
doublea=1;
inti,n;
for(i=1;
i<
=n;
i++)
a*=i;
n<
!
="
13.
inti,s,a,b,c;
for(i=100;
=999;
{a=i/100;
b=i/10%10;
c=i%10;
s=a*a*a+b*b*b+c*c*c;
if(s==i)cout<
\t"
14.
inti;
doublex,max;
max=x;
for(i=2;
=10;
{
if(x>
max)max=x;
最大的数:
max<
15.
#include"
iostream.h"
intt,k,a,b;
doubles=0;
a=2;
b=1;
for(k=1;
k<
=20;
k++)
{s+=1.0*a/b;
t=b;
b=a;
a=a+t;
s="
s<
16.
inti,j;
=4;
for(j=1;
j<
=i;
j++)
'
j;
for(j=i-1;
j>
=1;
j--)
17.
iomanip.h>
charc='
for(i=0;
setw(10-2*i)<
for(j=0;
=2*i;
setw
(2)<
char(c+i);
c='
D'
for(i=0;
=3;
setw(4+2*i)<
=6-2*i;
char(c-i);
18.
inti=1;
doublet,e=1;
t=1;
for(intj=1;
t*=j;
t=1/t;
e+=t;
i++;
}while(t>
=1e-5);
e="
e<
19.
string.h>
inti,x,y;
二进制的反序\t"
八进制的反序\t"
十六进制的反序\t"
\t十进制"
=156;
setw(10)<
x=i;
do{
x%2;
x/=2;
while(x!
=0);
\t'
//输出二进制的反序
x=i;
x%8;
x/=8;
//输出八进制的反序
do{
y=x%16;
if(y>
=0&
y<
=9)
x%16;
elsecout<
(char)(x%16-10+'
);
x/=16;
//输出十六进制的反序
20.
intn,s=0,i;
n=10;
intt=0;
t+=j;
s+=t;
21.
intx,y,z;
//x表示母鸡的个数,y表示公鸡的个数,z表示小鸡的个数
母鸡\t"
公鸡\t"
小鸡"
for(x=0;
x<
=33;
x++)
for(y=0;
=50;
y++)
{
z=100-x-y;
if(3*x+2*y+0.5*z==100)
cout<
z<
22.
intx,y,s;
for(x=2;
1000;
s=0;
for(y=1;
=x/2;
if(x%y==0)s+=y;
if(s==x)cout<