}
⑵输入学生的语文、数学、英语、物理4门课程的成绩,计算该学生的总成绩和平均成绩并输出。
#include
voidmain()
{
doubleeng,chin,math,phy,sum,aver;
cout<<"pleaseinput4scores:
";
cin>>eng>>chin>>math>>phy;//输入成绩
sum=eng+chin+math+phy;//计算总成绩
aver=sum/4;//计算平均分
cout<<"Sum="<}
⑶编写程序,从键盘输入一个大写英文字母,输出对应的小写字母。
#include
voidmain()
{
charc1,c2;
cout<<"Pleaseinputanupperletter:
";
cin>>c1;
c2=c1+32;
cout<<"c1="<}
实验三选择结构程序设计
三实验内容
1.选择题
⑴C
⑵B
⑶D
⑷C
⑸C
⑹C
⑺D
2.
⑴
-4
⑵
4599
⑶
2,1
⑷
1
3.编程题
⑴由键盘输入三个字符,输出其中的最大者。
【源程序】
#include
voidmain()
{
charx,max;
cout<<"Pleaseinputthreecharacterss:
";
cin>>x;
max=x;
cin>>x;
if(x>max)
max=x;
cin>>x;
if(x>max)
max=x;
cout<<"max="<}
⑵输入三角形三边的长,求三角形的面积。
若输入的三个边能构成三角形,则计算其面积并输出;否则输出提示信息。
【源程序】
//参见教材P44例3.15
#include
#include
voidmain()
{
doublea,b,c,s,area;
cout<<"Pleaseinputa,b,c=";
cin>>a>>b>>c;
if(a+b<=c||a+c<=b||b+c<=a)
cout<<"cantbeatriangle!
\n";
else
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"area="<
}
}
⑶编程求下面符号函数值:
y=
0(x=0)
1(x>0)
-1(x<0)
【源程序】
#include
voidmain()
{
intx,y;
cout<<"Pleaseinputx=";
cin>>x;
if(x>0)
y=1;
elseif(x==0)
y=0;
else
y=-1;
cout<<"y="<}
⑷计算奖金。
设企业利润为L,当企业利润L不超过5000元时,奖金为利润的1.5%,当5000<L≤10000元时,超过5000元部分奖金为2%(5000元以下仍按1.5%);当10000<L≤20000元,除10000以下的按上述方法计算外,超过10000元部分按2.5%计算奖金;如果20000<L≤50000元,超过20000元部分按3%计算奖金;当50000<L≤元时,超过50000元部分按3.5%计算奖金;当L超过元时,超过元部分按4%计算奖金。
由键盘输入L的值,编程计算相应的奖金并输出。
【源程序】
#include
voidmain()
{
doubleL,S;
cout<<"pleaseinputL=";
cin>>L;
if(L<5000)
S=L*0.015;
elseif(L<10000)
S=75+(L-5000)*0.02;
elseif(L<20000)
S=175+(L-10000)*0.025;
elseif(L<50000)
S=175+250+(L-20000)*0.03;
elseif(L<)
S=175+250+900+(L-50000)*0.035;
else
S=175+250+900+1750+(L-)*0.04;
cout<<"S="<
}
⑸输入年龄,输出所处人群:
9岁以下为儿童,输出A;10~19为少年,输出B;20~29为青年,输出C;30~49为中年,输出D;50以上为老年,输出E。
【源程序】
#include
voidmain()
{
intage;
cout<<"Pleaseinputage:
";
cin>>age;
switch(age/10)
{
case0:
cout<<"A--儿童\n";break;
case1:
cout<<"B--少年\n";break;
case2:
cout<<"C--青年\n";break;
case3:
case4:
cout<<"D--中年\n";break;
default:
cout<<"E--老年\n";break;
}
}
⑹有如下函数:
0<t<1
1≤t<2
2≤t<3
3≤t<4
由键盘输入t值,计算S的值。
【源程序】
//方法一
#include
voidmain()
{
doublet,s;
cout<<"pleaseinputt=";
cin>>t;
if(t>0&&t<4)
{
if(t<1)
s=t*t;
elseif(t<2)
s=t*t-1;
elseif(t<3)
s=t*t-2*t+1;
else
s=t*t+4*t-17;
cout<<"s="<
}
else
cout<<"Error!
tcan\’tbelessthan0ormorethan4!
\n";
}
//方法二
#include
voidmain()
{
doublet;
cout<<"pleaseinputt=";
cin>>t;
if(t<=0)
cout<<"error,tcan\’tbelessthan0!
\n";
elseif(t<1)
cout<<"s="<elseif(t<2)
cout<<"s="<elseif(t<3)
cout<<"s="<elseif(t<4)
cout<<"s="<else
cout<<"error,tcan\’tbemorethan4!
\n";
}
//方法三
#include
voidmain()
{
doublet,s;
cout<<"pleaseinputt=";
cin>>t;
if(t<=0)
cout<<"error,tcan\’tbelessthan0!
\n";
elseif(t<1)
{
s=t*t;
cout<<"s="<
}
elseif(t<2)
{
s=t*t-1;
cout<<"s="<
}
elseif(t<3)
{
s=t*t-2*t+1;
cout<<"s="<
}
elseif(t<4)
{
s=t*t+4*t-17;
cout<<"s="<
}
else
cout<<"error,tcan\’tbemorethan4!
\n";
}
实验四循环结构程序设计
三实验内容
1.选择题
⑻下面程序的运行结果是_____D________。
#include
2.阅读程序,写出运行结果。
⑴下面程序的运行结果是_______。
⑵下面程序的运行结果是_a=4__。
⑶下面程序的运行结果是_____n=4____。
3.程序填空
⑴下面程序的功能是依次显示100,80,60,40,20这5个数,请填空。
#include
voidmain()
{
inti;
for(i=100;____i>=20______;___i-=20______)
cout<
cout<}
⑵下面程序的功能是计算xn,请填空。
#include
voidmain()
{
intn,x;
cout<<"Pleaseinputx,n=";
cin>>x>>n;
doubley=1;
for(inti=0;i<_____n______;i++)
____y*=x;___;
cout<}
⑶下面程序的功能是计算1-3+5-7+…-99+101的值,请填空。
#include
voidmain()
{
inti,t,s=0,sign=1;
for(i=1;i<=101;i+=2)
{
____t=i*sign____;
s+=t;
sign=-sign_____;
}
cout<<"s="<
*
***
*****
*******
}
⑷下面程序的功能是输出以下形式的金字塔图案:
#include
voidmain()
{
for(inti=1;i<=4;i++)
{
for(intj=1;j<=____4-i___;j++)
cout<<'';
for(j=1;j<=_____2*i-1___;j++)
cout<<'*';
cout<}
}
4.编程题
⑴输入n,求1+2+3+……+n的和。
#include
voidmain()
{
inti,n;
doublesum=0;
cin>>n;
for(i=1;i<=n;i++)
sum+=i;
cout<<"1+2+3+...+"<}
⑵输入若干个整数,求它们的和,遇到-999时结束输入。
#include
voidmain()
{
intn;
doublesum=0;
cin>>n;
for(;n!
=-999;)//while(n!
=-999)
{
sum+=n;
cin>>n;
}
cout<<"sum="<}
⑶输入一整数,输出各位数字之和。
如输入6228,则输出6+2+2+8的和为18。
#include
voidmain()
{
doubles=0;
intn;
cin>>n;
while(n!
=0)
{
s+=n%10;
n=n/10;
}
cout<<"s="<
}
⑷输入一实数x和一整数n,求x+x2+x3+…xn的值。
#include
voidmain()
{
inti,j,n;
doublex,sum=0,p;
cin>>n>>x;
for(i=1;i<=n;i++)
{
p=1.;
for(j=1;j<=i;j++)
p*=x;
sum+=p;
}
cout<<"x="<cout<<"sum="<}
⑸求2!
+4!
+6!
+……+16!
。
#include
voidmain()
{
inti,j;
doublesum=0,p;
for(i=2;i<=16;i+=2)
{
p=1;
for(j=1;j<=i;j++)
p*=j;
sum+=p;
}
cout<<"2!
+4!
+6!
+...+16!
="<}
*******
*******
*******
*******
⑹输入两个整数n和m,打印n行星号,每行m个星号。
如果输入的n和m的值为47,则输出为:
#include
voidmain()
{
inti,j,n,m;
cin>>n>>m;
for(i=0;i{
for(j=0;j
cout<<"";
for(j=0;jcout<<"*";
cout<}
}
⑺求1n+3n+5n+7n+……+(2m-1)n,其中m和n的值从键盘输入。
#include
voidmain()
{
inti,j,n,m,sum=0,p;
cin>>n>>m;
for(i=1;i<=2*m-1;i+=2)
{
p=1.;
for(j=1;j<=n;j++)
p*=i;
sum+=p;
}
cout<<"m="<cout<<"sum="<}
1.程序填空
⑴以下程序的功能是计算:
s=1+12+123+1234+12345。
请填空。
①t=10*t+i
②②s=s+t
⑵下面程序的功能是输出符合条件的三位整数:
它是完全平方数,又有两位数字相同,并且统计个数,请填空。
①(i-n1*100)/10或(i/10)%10
②num++
③j++
2.编程
(1)输入10个字符,输出其中的最大者。
#include
voidmain()
{
charch,maxchar;
cout<<"pleaseinputtencharacter:
";
cin>>ch;
maxchar=ch;
for(inti=1;i<10;i++)
{
cin>>ch;
if(ch>maxchar)maxchar=ch;
}
cout<<"maxchar="<}
(2)一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下,再反弹。
求它在第10次落地时,共经过多少米?
第10次反弹多高?
分析:
共经过:
100*(1+1/2+1/4+1/8---+1/1024)米
第10次:
100/1024米
#include
voidmain()
{
doubles=1,t=1,sum,t10;
inti;
for(i=1;i<=10;i++)
{
t=2*t;
s=s+1/t;
}
t10=100/t;
sum=100*s;
cout<<"sum="<}
(3)用下列泰勒级数求sinx的近似值,x的值从键盘输入,精度要求为10-6。
#include
#include
voidmain()
{
intsign=1,n=1;
doublex=3.0,fenzi=x,fenmu=1.0,equo=1,sum=x;
while(fabs(equo)>=1e-6)
{
fenzi*=x*x;
fenmu*=(2*n)*(2*n+1);
sign*=-1;
equo=sign*fenzi/fenmu;
sum+=equo;
n++;
}
cout<<"sinx="<}
(4)编写程序,对输入的一批整数统计出正数的个数、负数的个数、奇数的个数、偶数的个数,要求所统计的整数由键盘输入,以0作为输入数据结束的标志。
#include
voidmain()
{
inta=0,b=0,c=0,d=0,x;
cin>>x;
while(x!
=0)
{
if(x>0)a+=1;
if(x<0)b+=1;
if(x%2)c+=1;
elsed+=1;
cin>>x;
}
cout<<"正数个数="<cout<<"负数个数="<
cout<<"奇数个数="<cout<<"偶数个数="<}
(5)用牛顿迭代法求方程2x3-4x2+3x–6=0在1.5附近的根,精度要求为10-6。
#include
#include
voidmain()
{
doublex1,x2=1.5,y1,y2;
cout<<"x1x2y\n";
do
{
x1=x2;
y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
y2=6*x1*x1-8*x1+3;
x2=x1-y1/y2;
cout<<"\t"<}while(fabs(x1-x2)>1e-6);
cout<<"x="<}
(6)输出这样的三位整数:
这些三位数的个、十、百位上的数字均不相同,并且能被11整除。
#include
voidmain()
{
inti,j,k,n=0;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(i==j||j==k||k==i)
continue;
elseif((i*100+j*10+k)%11==0)
{
cout<<++n;
cout<<":
"<
}
}
(7)输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
voidmain()
{
inta,b,num1,num2,temp;
cout<<"请输入两个正整数:
";
cin>>num1>>num2;
if(num1>num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1,b=num2;
while(b!
=0)
{
temp=a%b;
a=b;
b=temp;
}
cout<<"最大公约数为:
"<cout<<"最小公倍数为:
"<}
实验六
/*
*⑴输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。
*注:
LT是小于的意思,lessthan
*/
#include
constdoubleLOWER=-10000;
voidmain()
{
doublescore[10];
doublehighestScore=LOWER;
doubleaverage=0;
doublenumLTaverage=0;
//输入、求最高分、求总分
for(inti=0;i<10;++i)
{
cout<<"Pleaseinputthescore("<
";
cin>>score[i];
if(highestScoreaverage+=score[i];
}
average/=10;
//求成绩低于平均分的人数
for(i=0;i<10;++i)
if(score[i]cout<<"Theaveragescoreis"<cout<<"Thehi