方法二:用switch語(yǔ)句
分析:
switch語(yǔ)句是用于處理多分支的語(yǔ)句。注意,case后的表達(dá)式必須是一個(gè)常量表達(dá)式,所以在以用switch語(yǔ)句之前,必須把0~100之間的成績(jī)分別化成相關(guān)的常量。所有A(除100以外),B,C,D類的成績(jī)的共同特點(diǎn)是十位數(shù)相同,此外都是E類。則由此可得把score除十取整,化為相應(yīng)的常數(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);
}
}
輸入測(cè)試數(shù)據(jù),同方法一一樣調(diào)試程序并寫出結(jié)果。
【例3】有一函數(shù):
y=xx<1
2x-11= 3x-11x>=10
用scanf函數(shù)輸入x的值(分別為x<1,1~10,>=10三種情況),求y值。
分析:y是一個(gè)分段表達(dá)式。要根據(jù)x的不同區(qū)間來(lái)計(jì)算y的值。所以應(yīng)使用If語(yǔ)句。
main()
{
int x,y;
printf(“please input x :”);
scanf(“%d”,&x);
if (x<1)
{
y=x;
printf(“y=%d\n”,y);
}
else if (x<10)
{
y=2*x-1;
printf(“y=%d\n”,y);
}
else
{
y=3*x-11;
printf(“y=%d\n”,y);
}
【作業(yè)】
1. c語(yǔ)言如何表示“真”與“假”?系統(tǒng)如何判斷一個(gè)量的“真”與“假”?
2. 寫出下面各邏輯表達(dá)式的值。設(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個(gè)整數(shù)a、b、c,由鍵盤輸入,輸出其中最大的數(shù)。
4.有一函數(shù):
y=xx<1
2x-11= 3x-11x>=10
寫一程序,輸入x,輸出y。
5.給出一百分制成績(jī),要求輸出成績(jī)等級(jí)A、B、C、D、E。90分以上為A,80~89為B, 70~79分為C,60~69分為D,60分以下為E。
6.給一個(gè)不多于5位的正整數(shù),要求:
a. 求出它是幾位數(shù);
b. 分別打出每一位數(shù)字;
c. 按逆序打出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。
7.輸入4個(gè)整數(shù),要求按由小到大的順序輸出。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |