第二章
2-27.编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0-100)”,接收输入后判断其等级显示出来。规则如下:
优 90<=分数<=100
等级= 良 80<=分数<90
中 60<=分数<80
差 0<=分数<60.
答:
<span style="font-size:18px;">#include<iostream>
using namespace std;
int main()
{
intscore;
chargrade;
cout<<"你考了多少分?(0-100):";
cin>>score;
if(score>=90&&score<=100)
{
cout<<"优"<<endl;
}
if(score>=80&&score<90)
{
cout<<"良"<<endl;
}
if(score>=60&&score<80)
{
cout<<"中"<<endl;
}
if(score>=0&&score<60)
{
cout<<"差"<<endl;
}
return0;
}</span>
2-28.实现一个简单的菜单程序,运行时显示“menu:A(dd)D(elete) Q(uit),Select one:”提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”输入为Q时程序结束。
(1) 要求使用if……else语句进行判断,用break,continue控制程序流程。
(2) 要求使用switch语句。
答:
法一:
<span style="font-size:18px;">#include<iostream>
using namespace std;
void menu()
{
cout<<"**********Menu **********"<<endl;
cout<<"\tA(dd)"<<endl;
cout<<"\tD(elete)"<<endl;
cout<<"\tS(ort)"<<endl;
cout<<"\tQ(uit)"<<endl;
cout<<"Selectone:";
}
int main()
{
charchoice;
menu();
cin>>choice;
while(true)
{
if(choice=='A')
{
cout<<"数据已经增加"<<endl;
}
elseif(choice=='D')
{
cout<<"数据已经删除"<<endl;
}
elseif(choice=='S')
{
cout<<"数据已经排序"<<endl;
}
elseif(choice=='Q')
{
exit(0);
}
else
{
cout<<"输入错误,请重新输入:"<<endl;
}
menu();
cin>>choice;
}
return 0;
}</span>
法二:
<span style="font-size:18px;">#include<iostream>
using namespace std;
void menu()
{
cout<<"**********Menu **********"<<endl;
cout<<"\tA(dd)"<<endl;
cout<<"\tD(elete)"<<endl;
cout<<"\tS(ort)"<<endl;
cout<<"\tQ(uit)"<<endl;
cout<<"Selectone:";
}
int main()
{
charchoice;
menu();
cin>>choice;
while(true)
{
switch(choice)
{
case'A':cout<<"数据已经增加"<<endl;break;
case'D':cout<<"数据已经删除"<<endl;break;
case'S':cout<<"数据已经排序"<<endl;break;
case'Q':exit(0);break;
default:cout<<"输入错误,请重新输入:"<<endl;
}
menu();cin>>choice;
}
return0;
}</span>
2-29.用穷举法找出1-100之间的质数并显示出来。分别用while,do……while,for循环语句实现。
答:
(1) 用for循环:
<span style="font-size:18px;">#include<iostream>
using namespace std;
int main()
{
intcount=0;
for(inti=2;i<=100;i++)
{
count=0;
for(intj=1;j<=i;j++)
{
if(i%j==0)
{
count++;
}
}
if(count==2)
{
cout<<i<<" ";
}
}
return0;
}</span>
(2) 用while实现:
<span style="font-size:18px;">#include<iostream>
using namespace std;
int main()
{
intcount=0,i=2;
while(i<=100)
{
count=0;
for(intj=1;j<=i;j++)
{
if(i%j==0)
{
count++;
}
}
if(count==2)
{
cout<<i<<" ";
}
i++;
}
return0;
}</span>
(3) 用do…..while实现:
<span style="font-size:18px;">#include<iostream>
using namespace std;
int main()
{
intcount=0,i=2;
do
{
count=0;
for(intj=1;j<=i;j++)
{
if(i%j==0)
{
count++;
}
}
if(count==2)
{
cout<<i<<" ";
}
i++;
}
while(i<=100);
return0;
}
</span>