站長資訊網
最全最豐富的資訊網站

《C語言實驗指導》實驗四 選擇結構程序設計

實驗四 選擇結構程序設計

【目的與要求】

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

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

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

【上機內容】

【一般示例】

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

分析:由已知可得在變量定義時定義四個變量abcmaxabc是任意輸入的三個數,max是用來存放結果最大值的。第一次比較ab,把大數存入max中,因ab都可能是大值,所以用if語句中if——else 形式。第二次比較maxc,把最大數存入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);

}

  若輸入下列數據,分析程序的執行順序并寫出運行結果

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】輸入某學生的成績,經處理后給出學生的等級,等級分類如下:

       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;但當我們輸入成績時也可能輸錯,出現小于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);

 }

}      

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

 

方法二:用switch語句

分析:

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

#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);

 }

}                       

輸入測試數據,同方法一一樣調試程序并寫出結果。

【例3】有一函數:

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

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

分析:y是一個分段表達式。要根據x的不同區間來計算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);

}

 

【作業】

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

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個整數abc,由鍵盤輸入,輸出其中最大的數。

4.有一函數:

y= 《C語言實驗指導》實驗四 選擇結構程序設計
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位的正整數,要求:

a.       求出它是幾位數;

b.       分別打出每一位數字;

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

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

 

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品久久久久999| 最新 国产 精品 精品 视频| 午夜国产精品无套| 日韩精品电影一区亚洲| 久久亚洲精品高潮综合色a片| 亚洲国产精品人久久电影| 亚洲精品高清国产一久久| 亚洲精品字幕在线观看| 久久久久99精品成人片| 亚洲国产精品自产在线播放| 亚洲欧美日韩中文二区 | 亚洲欧美国产日韩av野草社区 | 国内精品国产成人国产三级 | 国产精品色拉拉免费看| 69国产精品视频免费| 无码人妻精品一区二区三区久久 | 九九精品国产99精品| 日韩成人免费在线| 亚洲AV日韩精品久久久久久久| 国产精品怡红院在线观看| 国产精品白丝AV在线观看播放| 国产精品高清在线观看地址| 精品一久久香蕉国产二月| 日本一二三精品黑人区| 久久精品国产99久久久古代| 亚洲国产精品xo在线观看| 久久AV无码精品人妻糸列| 久久亚洲精品专区蓝色区| 777精品成人影院| 国产精品视频网站| 国产精品亚洲自在线播放页码| 精品国产精品国产偷麻豆 | 国产成人高清精品一区二区三区| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 无码日本精品XXXXXXXXX| 亚洲精品无码av中文字幕| 亚洲精品V天堂中文字幕| 另类国产精品一区二区| 国精产品一品二品国精品69xx| 国产精品自在自线免费观看| 国产成人久久精品麻豆二区 |