實(shí)驗(yàn)四 選擇結(jié)構(gòu)程序設(shè)計(jì)
【目的與要求】
1.了解C語(yǔ)句表示邏輯量的方法(以0代表“假”以1代表“真”);
2.學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式;
3.熟練掌握if語(yǔ)句和switch語(yǔ)句。
【上機(jī)內(nèi)容】
【一般示例】
【例1】已知三個(gè)數(shù)a,b,c,找出最大值放于max中。
分析:由已知可得在變量定義時(shí)定義四個(gè)變量a,b,c和max,a,b,c是任意輸入的三個(gè)數(shù),max是用來(lái)存放結(jié)果最大值的。第一次比較a和b,把大數(shù)存入max中,因a,b都可能是大值,所以用if語(yǔ)句中if——else形式。第二次比較max和c,把最大數(shù)存入max中,用if語(yǔ)句的第一種形式if形式。Max即為a,b,c中的最大值。
#include "stdio.h"
main()
{
int a,b,c,max; /*定義四個(gè)整型變量*/
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
if (a>=b)
max=a; /*a>=b*/
else
max=b; /*a if (c>max)
max=c; /*c是最大值*/
printf("max=%d",max);
}
若輸入下列數(shù)據(jù),分析程序的執(zhí)行順序并寫出運(yùn)行結(jié)果
(1)a=1,b=2,c=3
(2)a=2,b=1,c=3
(3)a=3,b=2,c=1
(4)a=3,b=1,c=2
(5)a=3,b=3,c=2
(6)a=2,b=1,c=2
【例2】輸入某學(xué)生的成績(jī),經(jīng)處理后給出學(xué)生的等級(jí),等級(jí)分類如下:
90分以上(包括90):A
80至90分(包括80):B
70至80分(包括70):C
60至70分(包括60):D
60分以下: E
方法一:(用if嵌套`)
分析:
由題意知如果某學(xué)生成績(jī)?cè)?0分以上,等級(jí)為A;否則,如果成績(jī)大于80分,等級(jí)為B;否則,如果成績(jī)大于70分,等級(jí)為C;否則,如果成績(jī)大于60分為D;否則,如果成績(jī)小于60分,等級(jí)為E;但當(dāng)我們輸入成績(jī)時(shí)也可能輸錯(cuò),出現(xiàn)小于0或大于100,這時(shí)也要做處理,輸出出錯(cuò)信息。因此,再用if嵌套前,應(yīng)先判斷輸入的成績(jī)是否在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);
}
}
輸入測(cè)試數(shù)據(jù),調(diào)試程序。測(cè)試數(shù)據(jù)要覆蓋所有路徑,注意臨界值,例如此題中得100分,60分,0分以及小于0和大于100的數(shù)據(jù)。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |