C++程序设计课后习题及解答(第二章)

第二章

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>


  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值