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

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

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

【目的與要求】

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

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

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

【上機內(nèi)容】

【一般示例】

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

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

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=1b=2c=3   

2a=2b=1c=3 

3a=3b=2c=1 

4a=3b=1c=2  

5a=3b=3c=2 

6a=2b=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以外),BCD類的成績的共同特點是十位數(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)程序設(shè)計
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.       寫出下面各邏輯表達式的值。設(shè)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ù)abc,由鍵盤輸入,輸出其中最大的數(shù)。

4.有一函數(shù):

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

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

5.給出一百分制成績,要求輸出成績等級ABCDE90分以上為A80~89B  70~79分為C60~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號
久久精品国产72国产精| 精品伊人久久大香线蕉网站| 国产免费阿v精品视频网址| 日韩高清在线免费看| 亚洲精品456人成在线| 久久精品国产99精品国产2021| 伊人久久精品无码二区麻豆| 国产福利精品视频自拍| 亚洲国产精品SSS在线观看AV| 中文字幕精品视频在线观| 国产精品1区2区3区在线播放| 精品91一区二区三区| 日产精品一线二线三线京东| 日韩亚洲人成在线综合| 国产精品第100页| 国产精品99精品一区二区三区| 久久夜色精品国产亚洲| 中文精品人人永久免费| 日韩高清一级毛片| 国产a久久精品一区二区三区| 国产精品成人99一区无码| 网友自拍区视频精品| 2020久久精品国产免费| 91国内揄拍·国内精品对白| 在线精品动漫一区二区无广告| 亚洲性日韩精品一区二区三区| 四虎精品亚洲一区二区三区| 国产精品亚洲色婷婷99久久精品| 国产精品免费精品自在线观看| 尤物yw午夜国产精品视频| 丰满人妻熟妇乱又伦精品软件| 日韩一区二区三区四区不卡| 亚洲av日韩av无码| 国产色婷婷精品免费视频| 精品国产夜色在线| 成人99国产精品| 国产精品成人va在线播放| 国产精品视频免费一区二区| 精品无码国产自产在线观看水浒传 | 中文字幕av日韩精品一区二区| 亚洲毛片av日韩av无码 |