谁能帮我分析一下这道c语言题目啊?~
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/17 18:19:28
谁能帮我分析一下这道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
若运行以下程序时,从键盘输入 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语言题目啊?~](/uploads/image/z/7350234-42-4.jpg?t=%E8%B0%81%E8%83%BD%E5%B8%AE%E6%88%91%E5%88%86%E6%9E%90%E4%B8%80%E4%B8%8B%E8%BF%99%E9%81%93c%E8%AF%AD%E8%A8%80%E9%A2%98%E7%9B%AE%E5%95%8A%3F%7E)
这个程序是对输入字符串的字母统计作用,首先你得明白:
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.
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.