谁能帮我分析一下这道c语言题目啊?~若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main(){char c;int v0=1,v1=0,v2=0;do{switch(c=getchar()){case ′a′:case ′

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 03:09:07
谁能帮我分析一下这道c语言题目啊?~若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main(){char c;int v0=1,v1=0,v2=0;do{switch(c=getchar()){case ′a′:case ′

谁能帮我分析一下这道c语言题目啊?~若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main(){char c;int v0=1,v1=0,v2=0;do{switch(c=getchar()){case ′a′:case ′
谁能帮我分析一下这道c语言题目啊?~
若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include
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

谁能帮我分析一下这道c语言题目啊?~若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main(){char c;int v0=1,v1=0,v2=0;do{switch(c=getchar()){case ′a′:case ′
这个程序是对输入字符串的字母统计作用,首先你得明白:
1、switch中,符合哪个case条件,则直接跳过前面的case直接执行符合的case.
2、当case后没break时,其下面的语句将一一好无条件的执行.
现在来分析字母:
A:跳到case ‘A’;然后一次执行后面语句.V0=1(default),V1=1(case ‘U’),V2=1(default);
D:跳到default,则,V0=2,V1=1,V2=2
同理你可以一一处理后面的字母了.
最后应该是:V0=13,V1=4,V2=12(因为是do语句,对《CR》判断时先进行了加1计算,所以结果V0不是12而是13,V2不是11而是12,V1不是3而是4.