问题 单项选择题

若运行以下程序时,从键盘输入ADescriptor<CR>(<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'I':
case'o':case'O':
case'u':case'U':v1+=1:
default:v0+=1;v2+=1;
while(c!='\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=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12

答案

参考答案:D

解析: 本题考查的是switch语句的应用。分析程序,do-while语句是先执行do后面的语句再判断是否符合while的条件。V2+=1;语句无论读入的是什么字母(包括回车符),此语句都要执行,语句default:v0+=1;亦是如此;而语句case'U':v1+=1;只有在读入的字母是'a'、'A'、'e'、'E'、'i'、'I'、'o'、'O'、'u'、'U'时才会执行。

单项选择题
单项选择题