请大家来指教下

若运行以下程序时,从键盘输入 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=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
正确答案: D
为什么选D呢,请大家指点下,麻烦说详细下,谢谢
麻烦把v1的4次,v0,v2的12次...说下是怎么得出来的,谢谢...

第1个回答  2008-06-09
看程序 do 中
你如果输入的是a,A,eE,i,I,o,O,u,U 时 v1进行+1操作
为其他是 v0进行+1操作,v2进行+1操作;
而你输入的是ADescriptor<CR>
<CR>结束符
所以 v1+了4次
v0,v2加了12次
所以选D
第2个回答  2008-06-09
因为你输入的是一个字符串,所以,是这样执行的,先从A开始,找到与A相匹配的语句,一直执行下去。同理,你可以数,它们执行的次数呀!
所以 v1+了4次
v0,v2加了12次
所以选D本回答被网友采纳
相似回答