问题 单项选择题

若运行以下程序时,从键盘输入ADescriptor (<CR>表示回车) ,则下面程序的运行结果是( )。
#include <stdio.h>
main()
char c;
int v0=1, v1=0, v2=0;
do(switch(c=getchar())
(case'a':case'A':
case 'e':case 'E':
case 'i':case 'T':
case 'o':case '0':
case 'u':case'U':v1+=1;
default:v0+=1; v2+=1; ) while(e!='\n');
printf("v0=%d, v1=%d, v2=%d\n", v0, v1, v2); )

A) v0=7, v1=4, v2=7
B) v0=8, v1=4, v2=8
C) v0=11, v1=4, v2=11
D) v0=13, v1=4, v2=12

答案

参考答案:D

解析: 本题考查switch语句的掌握。必须掌握以下内容:首先应该明白switch语句的语法格式:
switch语句的语法格式为:
switch(表达式)
{
case常量表达式1:语句组1;
case常量表达式2:语句组2;

case常量表达式n:语句组n;
default:语句组n+1;
}
另外,以下几点是关于switch语句的重点:①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case'A');③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入default程序段,作统一处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套。

多项选择题
单项选择题