亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    《C語言實驗指導》實驗四 選擇結(jié)構(gòu)程序設計

    實驗四 選擇結(jié)構(gòu)程序設計

    【目的與要求】

          1.了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”);

           2.學會正確使用邏輯運算符和邏輯表達式;

           3 熟練掌握if語句和switch語句。

    【上機內(nèi)容】

    【一般示例】

    【例1 已知三個數(shù)ab,c,找出最大值放于max中。

    分析:由已知可得在變量定義時定義四個變量ab,cmaxa,bc是任意輸入的三個數(shù),max是用來存放結(jié)果最大值的。第一次比較ab,把大數(shù)存入max中,因a,b都可能是大值,所以用if語句中if——else 形式。第二次比較maxc,把最大數(shù)存入max中,用if語句的第一種形式if形式。Max即為a,b,c中的最大值。

    include “stdio.h”

    main()

    {    

    int a,b,c,max;          /*定義四個整型變量*/

    scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

    if (a>=b)

    max=a;              /*a>=b*/

    else

      max=b;              /*a<b*/

    if (c>max)

      max=c;              /*c是最大值*/

    printf(“max=%d”,max);

    }

      若輸入下列數(shù)據(jù),分析程序的執(zhí)行順序并寫出運行結(jié)果

    1a=1,b=2,c=3   

    2a=2b=1,c=3 

    3a=3,b=2,c=1 

    4a=3b=1,c=2  

    5a=3,b=3,c=2 

    6a=2,b=1c=2 

    【例2】輸入某學生的成績,經(jīng)處理后給出學生的等級,等級分類如下:

           90分以上(包括90): A

           8090分(包括80):B

           7080分(包括70):C

           6070分(包括60):D

           60分以下:           E

    方法一:(if嵌套`)

    分析:

    由題意知如果某學生成績在90分以上,等級為A;否則,如果成績大于80分,等級為B;否則,如果成績大于70分,等級為C;否則,如果成績大于60分為D;否則,如果成績小于60分,等級為E;但當我們輸入成績時也可能輸錯,出現(xiàn)小于0或大于100,這時也要做處理,輸出出錯信息。因此,再用if嵌套前,應先判斷輸入的成績是否在0~100之間。

    #include”stdio.h”

    main()

    {

     int  score;

     char  grade;

     printf(“nplease input a student score:”);

     scanf(“%f”,&score);

     if(score>100||score<0)

      printf(“ninput error!”);

     else

      { if(score>=90)

        grade=’A’;

       else

        { if(score>=80)

          grade=’B’;

         else

          {if(score>=70)

                grade=’C’;

           else

              { if(score>=60)

                grade=’D’;

               else grade=’E’;

              }

          }

        }

      printf(“nthe student grade:%c”,grade);

     }

    }      

    輸入測試數(shù)據(jù),調(diào)試程序。測試數(shù)據(jù)要覆蓋所有路徑,注意臨界值,例如此題中得100分,60分,0分以及小于0和大于100的數(shù)據(jù)。

     

    方法二:用switch語句

    分析:

    switch 語句是用于處理多分支的語句。注意,case后的表達式必須是一個常量表達式,所以在以用switch語句之前,必須把0~100之間的成績分別化成相關(guān)的常量。所有A(除100以外),B,CD類的成績的共同特點是十位數(shù)相同,此外都是E類。則由此可得把score除十取整,化為相應的常數(shù)。

    #include”stdio.h”

    main()

    {

    int g,s;

    char ch;

    printf(“ninput a student grade:”);

    scanf(“%d”,&g);

    s=g/10;

    if(s<0||s>10)

     printf(“ninput error!”);

    else

        { switch (s)

        { case 10:

         case 9:  ch=’A’;  break;

         case 8:  ch=’B’;  break;

         case 7:  ch=’C’;  break;

         case 6:  ch=’D’;  break;

         default: ch=’E’;

         }

        printf(“nthe student scort:%c”,ch);

     }

    }                       

    輸入測試數(shù)據(jù),同方法一一樣調(diào)試程序并寫出結(jié)果。

    【例3】有一函數(shù):

    y= 《C語言實驗指導》實驗四 選擇結(jié)構(gòu)程序設計
    x x<1
    2x-1 1=<x<10
    3x-11 x>=10

    scanf函數(shù)輸入x的值(分別為x<1,1~10,>=10三種情況),y值。

    分析:y是一個分段表達式。要根據(jù)x的不同區(qū)間來計算y的值。所以應使用If語句。

    main()

    {

    int x,y;

    printf(“please input x :”);

    scanf(“%d”,&x);

    if (x<1)

    {

    y=x;

    printf(“y=%dn”,y);

    }

    else if (x<10)

           {

             y=2*x-1;

    printf(“y=%dn”,y);

    }

    else

    {

    y=3*x-11;

    printf(“y=%dn”,y);

    }

     

    【作業(yè)】

    1.       c語言如何表示“真”與“假”?系統(tǒng)如何判斷一個量的“真”與“假”?

    2.       寫出下面各邏輯表達式的值。設a=3,b=4,c=5

    (1)    a+b>c&&b= =c

    (2)    a||b+c&&b-c

    (3)    !(a>b)&&!c||1

    (4)    !(x=a)&&(y=b)&&0

    (5)    !(a+b)+c-1&&b+c/2

    3.       3個整數(shù)a、b、c,由鍵盤輸入,輸出其中最大的數(shù)。

    4.有一函數(shù):

    y= 《C語言實驗指導》實驗四 選擇結(jié)構(gòu)程序設計
    x x<1
    2x-1 1=<x<10
    3x-11 x>=10

    寫一程序,輸入x, 輸出y。

    5.給出一百分制成績,要求輸出成績等級A、B、C、DE。90分以上為A,80~89B  70~79分為C,60~69分為D60分以下為E。

    6 給一個不多于5位的正整數(shù),要求:

    a.       求出它是幾位數(shù);

    b.       分別打出每一位數(shù)字;

    c.       按逆序打出各位數(shù)字,例如原數(shù)為321,應輸出123

    7.輸入4個整數(shù),要求按由小到大的順序輸出。

     

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號