C# 练习题 循环结构

U3D_ 晨测试题_day04

 

1. 写出下列程序运行结果,若有错,请指出并改正.

class  Program

{

       static  void  Main( string[] args )

       {

int  x = 5;

        int  y = 5;

        int  z = 5;

        x++;

        Console.Write( x );

              Console.Write( y++ );

        Console.Write( ++z );

              bool b = 20-(15-8)*2 > 10  &&  (2%2*2+2) > 2 ; 

       Console.Write( b );

}

  }

X=6 ,  y=5  ,z=6   

解释:本题考查:算术运算符,++(自增运算符)的基本使用。

2.下列语句中,能正确表示逻辑关系“a>=10”或“a<=0”的C#表达式的是(D)。

  1. a>=10 or a<=0
  2. a>=10 | a<=0
  3. a>=10 && a<=0
  4. a>=10 || a<=0

解释:本题考查C#中逻辑运算符,&&,||,!三种。

3.下列几项运算符中运算结果正确的项是( C D E )。

  1. Console.WriteLine( 0.8*3 ); //结果为2   改:2.4
  2. Console.WriteLine( 2/0.5 );//结果为0.4   改:4
  3. Console.WriteLine( 5/10 );//结果为0
  4. Console.WriteLine( 9+2.2 );//结果为11.2
  5. Console.WriteLine( 9 +“2.2”);//结果为92.2

 

 

 

 上午

 顺序结构

 分支结构

 循环结构

 

 分支结构---if语句

 分支结构---switch语句

 

 2.switch语句

  

   switch ( 值  )

   {

      case 值1 :

         代码块1;

         break;

      case 值2:

         代码块2;

         break;

      ....

   }

 

 

  使用注意事项说明 :

  1) switch 中的case可以有多条,每一条最后加

     break; 当匹配了一条case之后,其它的case不     执行.遇到 break 跳出switch结构,结束大括号

     大括号下面的语句;

  2)switch后面小括号跟的类型:

     所有的整数类型都可(所有整数,所有小数),

     还可以是:string 字符串,枚举

     如:

     float double

     byte  short  int  lo ng

    sbyte   ushort uint  ulong

     float  double

    

  

  3) default 语句 只能有一条,表示所有的

     case 都不满足时,才执行 default

     default 一般是放在最后一个case 下面

     也可以放在其它位置,不影响它的意义。

     最后才执行。

 

  4) switch..case使用场景:主要为了弥补:

      if...else if ...else if ..else

      这种分支结构带来的代码复杂,冗余度高

  

  5) switch..case 中,正常每个case后面都要加

     break语句。但是有一个特殊使用可以省略

     case。

     多个case连起来写,且每个case里面没有任何

     内容,这时case可省略.会从上往下执行,直到有

     break的case

     如:

      case 0:    // 【0 - 10)                   

      case 1:    // 【10,20)                   

      case 2:    // 【20,30)    

      case 3:                   

      case 4:                  

      case 5:

            level = "不及格";

            break;  

    

 

 

   练习:

   测试 switch 处理 字符串数据

   描述四季。

 

   代码详见:DAY04_02_Switch 工程--LianXi1.cs

 

下午

   练习:

   switch...case 考试等级的处理(分数为小数)

   分数小于0或者分数大于100,输入错误。

  

  代码详见:DAY04_02_Switch 工程--LianXi4.cs

 

  分析: 

 

   0  - 60   不及格 score >=0  &&   score < 60

   60 - 70   及格

   70 - 80   一般

   80 - 90   良好

   90 - 100 优秀

 

  1.输入小数分数,如何利用构建switch

  2.为了避免不知道写多少case的情况,

    如何处理小数分数?

  解决方案:先将小数转成整数分数,然后再将

   分数除以10,这样保证,case最多有10条

 

   如:

   60/10   61/10  62/10   63/10  64/10  69  70

    6       6      6        6            6

  3.从0分到59分,输出的都是不及格。有没有

    一种简单的写法,保证不需要在每个caes中

    赋值不及格

   

 

 

    

    

 ----------------------------------------------   三、循环结构

 

     需求:

     控制台打印1000行“好困啊”

    

     如何实现呢?----引出 循环结构。

 

 1. C# 中的循环:

 

  while 循环

  do while 循环

  for 循环

 

 2. 任何一种循环的四个要素:   

**********************************************

  初始值:  通常一个变量的定义

  循环条件:满足条件,反复执行循环体内容

  循环体:  反复做的一件事情

  迭代操作:改变初始值(i++,i--)

**********************************************

 

  如:控制台打印1000行“好困啊”,使用while

  核心代码如下:

 

   int  i =  1 ; //初始值

   while (  i <= 1000 )//循环条件

   {

       Console.WriteLine("好困啊");//循环体

       i = i + 1; //迭代操作      

   }

------------------------------------------------

 详细介绍每种循环:

 

  1. while循环

   基本语法:

   while ( 条件 )

   {

       循环体 ;

   }

   语法说明:

   当条件成立时,反复执行循环体的内容(一组大括号

   括起来);直到条件不成立时,不再执行循环体内容 ,

   while循环结束大括号的下面语句

 

  说明事项:

  1) 小括号中可以是一个布尔值 true false

     while ( true )

     {  }

     一般,都是一个条件表达式

 

  2) while循环表示:当...时候,做...事情

      故:

      while循环有可能一次也不执行,那么究竟

      能不能执行,执行几次,完全取决于条件。

 

  3) while 循环由语法可分析出:适合场景

      不明确循环次数,但已知循环执行的条件

      这种情况下,使用while循环完成。

     

      比如:

      我有一个退休计划:

      每年向银行存钱10万,计划存够300万时,

      就辞职。银行每年的年利率为0.1%,

      问多少年之后,我可以退休?

 

      while (  存款总额 < 300 万)

      {

           工作.....

      }  

 

 

  练习:控制台打印1000行“好困啊”

  使用 while循环完成。

 

  代码详见:DAY04_03_While工程--WhileDemo1.cs

     

 ------------------------------------------------

 

 2.  do  while 循环

 

   基本语法:

 

   do

   {

       //循环体

 

   } while ( 条件 ) ;

 

  

  

  语法说明(和while最大的区别???):

  do while 大部分和while类型,唯一的区别:

  do while 一上来先执行一次循环体的内容,

  执行完再去判断  while 后面的条件,如果条件

  确实是成立的,会继续执行循环体内容;  

  如果条件不成立,不再执行循环体的内容,执行的是

  do while 循环下面的语句。

 

 使用时注意事项:

  1) do ..while 中 ,while 后面的条件,

      指的是条件成立时,才执行循环体的内容

  2) while 后面跟一个分号,否则会出现语法错误;

 

  3) 直到..时候|才

 

------------------------------------------------

 练习1:

  以下程序是否有误,没有请写出运行结果。

  有误请指出并改正。

 

   int  i = 0 ;

   int  count = 0 ;

   do    

   {   

        i++ ;

        if ( i % 4 == 0 )

            count++ ;       

 

   }while ( i <= 20 );

   Console.WriteLine( count );

   Console.WriteLine( i );

 

  代码详见:DAY04_03_While工程--DoWhileDemo1.cs

 

 

  练习2:

  找出100以内所有偶数个数,

  以及所有偶数的和。

  最后打印偶数个数,偶数的和。

  要求:使用 while 和 do while 完成。

 

  代码详见:DAY04_03_While工程--LianXi2.cs

 

  分析:两程序需要做两件事情:   

  1.定义两个变量,一个存放偶数和,一个偶数总个数

  2.确定循环的4个要素,搭建两种循环

 

  int count = 0 ; //个数

  int sum = 0 ; //总和

 

  循环条件:i <= 100 

  循环体:  找出偶数(判断这个数字是否是偶数)

            if ( i % 2 == 0 )

            {

                个数+1 count++;

                和累加 sum=sum+i;

            }

  迭代操作:i++

  初始值:int i = 0 ;

 

  ----------------------------------------------

 

  for 循环

 

  基本语法:

 

  for ( 初始化; 循环条件 ; 迭代操作)

  {

      //循环体;

  }

 先执行“初始化”,为变量赋值,再执行“循环条件”

  如果条件成立,则执行循环体,循环体执行结束后,

  遇到了for循环的结束大括号,返回到 "迭代操作"

  修改循环变量的值,修改完值,执行“循环条件”,

  如果条件成立,则执行循环体内容,循环体执行结束

  后,继续返回到“迭代操作”......

  所以:

  初始值只会执行一次,反复执行的是 :

     循环条件

     循环体

     迭代操作

 

 1) for循环的使用场景:

     明确已知循环次数和循环条件

     如:1000行“别叨叨了”

     如:打印从1到100的每个数字

     如:求100以内所有偶数个数,奇数

     如:求一个数的阶乘

     5! = 5 * 4 * 3 * 2 *1= 120

     8!  = 8*7*6*5*4*3*2*1

     注:sum=1 

 

                               

  for( int i = 0 ; i <= 1000 ; i++  )

  {

     Console.WriteLine( "别叨叨了" );

  }

 

 day04   周五  作业

-----------------------------------------------

 

 1.自由编码题

 学习了循环结构后,相信大家对循环结构的基本使用场景和  基本语法已经掌握了.

 为了更好的理解循环结构及三种循环的具体使用,请:

 找出生活中可以使用循环的一些场景或具体事情,然后将这  个场景或这件事情使用

 代码描述出来,不限类型,不限内容,不限代码行数.

 

 

 

 2.(必做题) 写出下列程序的运行结果

 

 1. for ( int i = 1; i <= 4 ; i++ )

   {

       Console.writeLine();

       Console.Write("Hi");

       if ( x==3 )

          continue ;

       Console.Write( "Hello" );

   }

 

 3. 补充完成下面的程序代码.

    下面的代码打印出 1-9 数字,请使用 continue 关键字,使得数字 3 和 8 不会被打印.

   class Program

   {

      static void Main(string[] args)

      {

         for ( int x = 1; x < 10 ; x++ )

          {

              //构建代码,使得 3 和 8 不打印.

              Console.Write(x);

          }

      }  

   }

 

 

 3.下面程序的功能是打印出5,4,3,2,1 这几个数字,请将第1处和第2处代码补充完整.

    static void Main( string[] args )

    {

         int  y  =  5 ;

         while ( 第1处 ) //请填写

        {

             Console.WriteLine( y );

             第2处;    //请填写

        }

    }

   

  4. 使用三种循环实现:查找100以内所有偶数能被8整数的       数字的和.

     要求:使用三个方法实现.

                     

 

 ---------------------------------------------------

 

    Random  r =  new  Random();

    int  n  =  r.Next( 0,100 ); 【10,20)

  

 

1. 加法测试器 ( 尽量做 )

   程序依次出10道加法题,由用户输入题目的答案.用户每答完一道题,由系统提示结果:答错了或答对了.10道题答完之后,系统计算得分并输出.如果用户希望提前结束,则可以输入-1退出.

注:加法题中的两个随机数是0到99间的任意数字.

 

运行程序后,运行结果如下:

 

****************************************************

欢迎进入测试,默认有10道题,每题10分....

 

  (1) 10 + 20 = ? 

   请输入正确答案(输入-1结束):

   30

   答对了

 

   (2) 50 + 99 = ?

   请输入正确答案(输入-1结束):

   140

   答错了

   .....

 

   本次答题情况: 共答了 2 道题,得分:10

  

  

注:如果输入-1,程序运行结果如下:

 

1) 10 + 20 = ? 

   请输入正确答案(输入-1结束):

   30

   答对了

 

   (2) 50 + 99 = ?

   请输入正确答案(输入-1结束):

   -1

   正在中止中....

 

 

   本次答题情况: 共答了 2 道题,得分:10

 

posted @ 2019-09-10 19:41  Winward_King  阅读(1166)  评论(0编辑  收藏  举报