}
运行结果为:
【例3-7】多分支结构的应用案例1。
题目:
将键盘输入的百分制成绩转换成五级计分制的成绩输出。
五级计分制成绩确定规则:
’A’(90~100)、’B’(80~89)、’C’(70~79)、’D’(60~69)、’E’(60分以下,不包括60)
#include
voidmain()
{intscore;
chargrade;
cout<<”请输入一个分数值(0~100):
”;
cin>>score;
if(score>=90&&score<=100)
grade=’A’;
elseif(score>=80&&score<=89)
grade=’B’;
elseif(score>=70&&score<=79)
grade=’C’;
elseif(score>=60&&score<=69)
grade=’D’;
else
grade=’E’;
cout<”<}
其运行结果为:
【例3-8】多分支结构的应用案例2。
题目:
用户通过键盘输入任意一个年份与月份,自动显示该年的当月所包含的天数。
#include
voidmain()
{
intyear,month,day;
cout<<”请输入一个年份(四位):
”;
cin>>year;
cout<<”请输入一个月份:
”;
cin>>month;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
day=31;
elseif(month==4||month==6||month==9||month==11)
day=30;
else
{
if(year%4==0&&year%100!
=0)
day=29;
else
day=28;
}
cout<}
其运行结果为:
【例3-9】多分支结构应用案例3。
题目:
修改例3-7,利用开关语句实现成绩的等级。
#include
voidmain()
{intscore;
chargrade;
cout<<”pleaseinputascore:
”;
cin>>score;
switch(score/10)
{
case10:
case9:
grade=’A’;break;//若score/10结果为10,则执行case9后的语句序列
case8:
grade=’B’;break;
case7:
grade=’C’;break;
case6:
grade=’D’;break;
default:
grade=’E’;
}
cout<<”thegradeofscoreis:
”<}
其运行结果为:
【例3-10】多分支结构应用案例4。
题目:
设计一个小型计算器,能够实现加、减、乘、除和乘方的运算。
#include
#include
voidmain()
{
floatx1,x2;
charop;
cout<<”请输入两个数值:
”;
cin>>x1>>x2;
cout<<”请输入一个运算符:
”;
cin>>op;
switch(op)//字符类型表达式
{
case'+':
cout<case'-':
cout<case'*':
cout<case'/':
cout<case'^':
cout<default:
cout<<"theerrorofoperator!
"<}
}
其运行结果为:
【例3-11】多分支结构应用案例5。
题目:
应用枚举类型值进行输入值的判断,通过输入0显示“male”,输入1显示
“female”。
#include
voidmain()
{
enumsex{male,female}s;
intn;
cout<<”请输入一个整数(0—male,1—female):
”;
cin>>n;
switch(n)
{
case0:
s=male;break;//0对应的male,1对应的female
case1:
s=female;break;
default:
cout<<”您的输入错误!
\n”;
}
switch(s)
{
casemale:
cout<<”male\n”;break;//注意break语句的使用
casefemale:
cout<<”female\n”;
}
}
其运行结果为:
例3-12】循环结构应用案例1。
题目:
用for循环实现就1~100之间所有偶数的和。
#include
voidmain()
{
inti=0,sum=0;
for(;i<=100;)//表达式1和表达式3省略
{
sum+=i;
i=i+2;
}
cout<<”sum=”<}
其运行结果为:
【例3-13】循环结构应用案例2。
题目:
输出所有的“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
(例如,13+53+33=153,153是水仙花数)
#include
voidmain()
{
inti,j,k,n;
cout<<”水仙花数有:
”;
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
cout<}
cout<}
其运行结果为:
【例3-14】循环结构应用案例3。
题目:
用while循环实现就1~100之间所有偶数的和。
#include
voidmain()
{
inti=0,sum=0;
while(i<=100)
{
sum+=i;
i=i+2;
}
cout<<”sum=”<}
其运行结果为:
【例3-15】循环结构应用案例4。
题目:
编写程序,实现求任意两个正整数的最大公约数和最小公倍数。
#include
voidmain()
{
intm,n,r,temp,p;
cout<<”请输入两个数值:
”;
cin>>m>>n;
if(m{
temp=m;
m=n;
n=temp;
}
p=m*n;
while(n!
=0)
{
r=m%n;
m=n;
n=r;
}
cout<<”最大公约数是:
”<cout<<”最小公倍数是:
”<
}
其运行结果为:
【例3-16】循环结构应用案例5。
题目:
用do……while循环结构实现1~100之间所有偶数的和。
#include
voidmain()
{
inti=0,sum=0;
do
{
sum+=i;
i=i+2;
}while(i<=100);
cout<<”sum=”<}
其运行结果为:
【例3-17】循环结构应用案例6。
题目:
制作一个小游戏,要求:
系统自动生成0~50之间的随机数x,用户去猜其具体的数值。
要求:
(1)若用户猜的数值大于该数,则提示大于该数。
(2)若用户猜的数值小于该数,则提示小于该数。
#include
#include
voidmain()
{
intmin=0,max=50;
intx,y;
x=rand()%50;
cout<<"系统已经生成随机数(0~50),请您输入您猜测的数据:
";
do
{
cin>>y;
if(y>x)
{
max=y;
cout<<"当前数值范围为:
"<}
elseif(y{
min=y;
cout<<"当前数值范围为:
"<}
else
cout<<"您猜对了,您非常棒!
"<}while(true);
}
其运行结果为:
【例3-18】break语句的应用案例。
题目:
编程实现模拟ATM机的执行流程。
#include
#include
voidmain()
{
intpassword,Id;
cout<<"****************进入自动提款系统****************"<cout<<"\n请输入密码:
";
cin>>password;
if(password==142536)
cout<<"\n欢迎您使用ATM系统,请按键选择您所需要的服务"<else
{
cout<<"\n您的密码错误,请重新输入"<exit
(1);
}
cout<<"\n1:
查询"<cout<<"\n2:
取款"<cout<<"\n3:
存款"<cout<<"\n4:
退出"<cout<<"\n请输入您的选择:
";
cin>>Id;
switch(Id)
{
case1:
cout<<"进行查询操作中......"<case2:
cout<<"进行取款操作中......"<case3:
cout<<"进行存款操作中......"<case4:
exit
(1);
default:
cout<<"您的输入有误!
"<}
}
其运行结果为:
【例3-19】continue语句的应用案例。
题目:
continue语句应用在循环语句中,验证continue语句的功能。
#include
voidmain()
{
intx=1,n=10;
while(n-->=0)
{
if(x>4)
continue;//若x>4成立则结束本次循环做一下循环
cout<}
cout<cout<<"x="<}
其运行结果为:
【例3-20】goto语句的应用案例。
题目:
利用goto语句实现求1~100之内偶数的和。
#include
voidmain()
{
inti,sum=0;
i=0;
a:
i=i+2;
sum+=i;
if(i<100)
gotoa;
cout<<"sum="<}
其运行结果为:
【例3-21】结构嵌套的应用案例1。
题目:
若一个数恰好等于它的因子之和,则这个数称为完数。
编写程序输出100以内的所有完数。
(如,1+2+3=6,而1、2、3是6的因子,所以说6是完数)。
#include
voidmain()
{
inti,j,s;
for(i=2;i<=100;i++)
{
s=0;
for(j=1;j
if(i%j==0)
s+=j;
if(s==i)
cout<
”<}
}
其运行结果为:
【例3-22】结构嵌套的应用案例2。
题目:
求15个学生英语课程的平均分。
#include
voidmain()
{
inti;
floatsum=0,ave,score[15];
cout<<”请输入15个学生的高数成绩:
”;
for(i=0;i<15;i++)
cin>>score[i];
for(i=0;i<15;i++)
sum+=score[i];
ave=sum/15;
cout<<”这15个学生高数课程的平均分为:
”<}
其运行结果为:
【例3-23】结构嵌套的应用案例3。
题目:
结构嵌套中break和continue语句的应用。
#include
voidmain()
{
inti,x=1,y=0;
for(i=0;i<10;i++)
{
x+=3;
if(x>5)
{
cout<<"**x="<continue;
}
y=x+5;
cout<<"x="<}
}
其运行结果为:
若将上例中的continue语句改成break语句,则运行结果为:
【例3-24】结构嵌套的应用案例4。
题目:
有n个数,已按由小到大顺序排列好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。
分析:
通常插入算法应包含四个主要步骤:
(1)确定插入位置。
(2)把从最后一个元素到插入位置的每一个元素中的值,依次向后移动一个位置,即把a[n]中的值放入a[n+1]中,把a[n-1]中的值放入a[n]中,依此类推,直到把a[i]中的值放入a[i+1]中。
(3)在确定的插入位置上放入x的值。
(4)元素的个数增1。
#include
voidmain()
{
inti,n,j;
inta[11]={12,27,35,41,53,67,74,80,96,100};
cout<<"原数列为:
"<for(i=0;i<10;i++)
cout<cout<cout<<"输入插入数:
"<cin>>n;
j=9;
while(j>=0&&n{
a[j+1]=a[j];
j--;
}
a[j+1]=n;
cout<<"插入后的数组:
"<for(i=0;i<11;i++)
cout<cout<}
其运行结果为:
第4章函数
【例4-1】函数调用应用案例1。
题目:
已知一数组(含有10个元素)中前两个元素的值,后面元素的值分别是前两个元素之和,利用函数求出该数组所有元素的值。
#include
#include
voidfun(intarray[],intn);
voidmain()
{
inta[10]={5,8},i;
fun(a,10);
for(i=0;i<10;i++)
cout<cout<}
voidfun(intarray[],intn)
{
intj;
for(j=2;jarray[j]=array[j-1]+array[j-2];
}
其运行结果为:
【例4-2】函数调用应用案例2。
题目:
编写函数将化氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。
#include
floatfun(floatf)
{floatc;
c=5.0/9*(f-32);//注意这里是5.0/9,不能写成5/9
returnc;
}
voidmain()
{floatx;
cout<<"请输入一个温度值:
";
cin>>x;
cout<<"输入的温度值为:
"<cout<<"转换后,值为:
"<}
其运行结果为:
【例4-3】函数调用应用案例3。
题目:
编写函数利用数组名作参数计算二维数组arr[3][4]中所有元素的和。
#include