switch语句
14.
#include<stdio.h>
main( )
{ char ch;
ch=getchar( );
switch(ch)
{ case ‘A’ : printf(“%c”,’A’);
case ‘B’ : printf(“%c”,’B’); break;
default: printf(“%s\n”,”other”);
}
}
当从键盘输入字母A时,运行结果为:AB
switch(表达式)
{ case 常量1 :语句1
case 常量2 :语句2
┇ ┇ ┇
case 常量n :语句n
default : 语句n+1
}
其中表达式,常量1,…,常量n都为整型或字符型
case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束
本题过程:
首先从键盘接收一个字符’A’并将其放在变量ch中。
执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。
与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break, 此时跳出switch语句。
15.
#include <stdio.h>
main( )
{ int a=1,b=0;
scanf(“%d”,&a);
switch(a)
{ case 1: b=1;break;
case 2: b=2;break;
default : b=10;
}
printf("%d ", b);
}
若键盘输入5,运行结果为:10
本题过程:
首先用scanf函数为变量a赋值为5。
执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。
输出变量b,结果为10
16.
#include <stdio.h>
main()
{ char grade=’C’;
switch(grade)
{
case ‘A’: printf(“90-100\n”);
case ‘B’: printf(“80-90\n”);
case ‘C’: printf(“70-80\n”);
case ‘D’: printf(“60-70\n”); break;
case ‘E’: printf(“<60\n”);
default : printf(“error!\n”);
}
}
运行结果为:
70-80
60-70
本题过程:
首先从键盘接收一个字符’C’并将其放在变量grade中。
执行switch语句。switch后面的条件表达式为grade,因此表达式的值即为字符’C’. 用字符’C’依次与下面的 case中的常量匹配。
与第3个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80\n”);,屏幕上输出70-80,并换行;再往下继续执行printf(“60-70\n”),屏幕上输出60-70,并换行;再继续执行break, 此时跳出switch语句。