关于C语言的一道题目程序是这样的?main(){char *t="23142";int a=0,b=0,c=0,d=0,k;for(k=0;t[k];k++)switch(t[k]){default:d++;case'1':a++;case'2':b++;case'3':c++;}printf("%d,%d.%d,%d\n",a,b,c,d);}请问最后输出什么?还有为什么?怎

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 19:42:38
关于C语言的一道题目程序是这样的?main(){char *t=

关于C语言的一道题目程序是这样的?main(){char *t="23142";int a=0,b=0,c=0,d=0,k;for(k=0;t[k];k++)switch(t[k]){default:d++;case'1':a++;case'2':b++;case'3':c++;}printf("%d,%d.%d,%d\n",a,b,c,d);}请问最后输出什么?还有为什么?怎
关于C语言的一道题目
程序是这样的?
main()
{char *t="23142";
int a=0,b=0,c=0,d=0,k;
for(k=0;t[k];k++)
switch(t[k])
{default:d++;
case'1':a++;
case'2':b++;
case'3':c++;
}
printf("%d,%d.%d,%d\n",a,b,c,d);
}
请问最后输出什么?还有为什么?
怎么分的情况
请您讲清楚一些
程序执行的步骤是什么?

关于C语言的一道题目程序是这样的?main(){char *t="23142";int a=0,b=0,c=0,d=0,k;for(k=0;t[k];k++)switch(t[k]){default:d++;case'1':a++;case'2':b++;case'3':c++;}printf("%d,%d.%d,%d\n",a,b,c,d);}请问最后输出什么?还有为什么?怎
输出:2,4,5,1
就是依次分情况对a,b,c,d中的一个递增.
好吧,那我就做一次计算机做的事情:
程序流程:
main()
{char *t="23142";
//定义了一个数组,其中存储了一个字符串“23142”
int a=0,b=0,c=0,d=0,k;
//定义了一些变量,用于记录及做为循环变量
for(k=0;t[k];k++)
//循环,直到t[k]==0(也就是‘\0’)时跳出循环,每一个循环
//都执行一次switch判断.
switch(t[k])
{default:d++;
case'1':a++;
case'2':b++;
case'3':c++;
}
//以上为switch判断,如果这个程序你是想统计字符串t中的各种
//字符的个数,那么就是写错了,也许你一切的疑问也在于此.
//简单地说:在swich(...) case ..:default ..:语句中,每一
//case 都只是一个标记,表示从哪里开始执行,比如说k=0时,t[k]=‘2’,
//通过switch(t[k]) 判断 与case '2' 相符,则程序从这里开始执行,先是
//b++,顺次执行下去,接着是c++;若是在k = 3时,t[k]='4'由于不与任何一个 //case相符,此时执行default语句,同样地这只是一个开始执行的标志,然后
//顺次执行下去,d++,a++,b++,c++.
//所以由上可见,当你想要统计一字符个数时,因为顺次执行的原故,所有其 //后的的语句也会被执行,这当然会使得最后的统计结果与预期的不一致,而 //且看上去很怪.
//改正意见:(1)不要把default:写在最上面,这是个很不好的习惯,也不符 //合判断的过程(本来就是先看有没有符合的case,最后没有了才去找default //的.)
//(2)通常情况下,你不希望后面语句也被顺次执行,所以一般在每一个case
//后的语句里加上break;以及时退出switch.你也许是初学C吧,注意把这个 //switch的分支,与if else if else等区分一下,就可以了.
printf("%d,%d.%d,%d\n",a,b,c,d);
}
其实这些你都可以在书上找到的,说得也比我好,当然书上没有针对这一具体困惑的回答.
我尽量答得足够详细了,鄙人来此不是为了攒积分的(百度积分好看不抵事),只是一方面自己从别人的问题中通过思考获益,一方面能帮助他人也确实是一种快乐.如果你想了解更多内容,或是获得更及时的,来自更高水平的人的帮助,可以去csdn看看,我不是做广告,那里程序的论坛的人气确实比这里旺.
如果觉得答得不好,就不用给分了.不过欢迎有什么问题发信息给我,就是别让我说得更详细些了,很麻烦的...

关于C语言的一个题目,求解释,如下图,谢谢答案是有的,就是不明白程序,求大神解释一下整个程序 用C 语言编写一道关于随机出现26个英文字母的程序,并且判断正确率~ 关于统计单词个数的C语言题目程序如下,需要怎么修改,空格可以连续多个,与标点符号都不计入单词数结果这样怎么办 用C语言如何写关于计算机图形学里的矩阵变换问题?是这样,我们有一道题,是一个30X40X50的长方体,需要写程序输出正等轴测图,该怎么写? 一道C语言的题目求代码 关于C语言的一道题目程序是这样的?main(){char *t=23142;int a=0,b=0,c=0,d=0,k;for(k=0;t[k];k++)switch(t[k]){default:d++;case'1':a++;case'2':b++;case'3':c++;}printf(%d,%d.%d,%d ,a,b,c,d);}请问最后输出什么?还有为什么?怎 提问一道关于C语言的程序,题目是:2000---2050年的那一年是闰年?备注:1.能被4整除的但不能被100整除的是闰年. 2.能被100整除同时能被400整除的是闰年,请问师哥师姐这道程序该怎么做啊 求一个c语言程序 题目是 0到100的和 这样一道C语言的题目应该怎样做帮我弄一下啊#include /* userCode( 一道C语言题目 有3个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序.我编的是这样的,但是老师要求IF嵌套语句表示出来 # includeint main (void){ float a,b,c,t;printf(请输入三个任意整数: );scan 一道关于C语言函数的问题. 一道关于C语言函数的问题. 关于一道C题目 (25)以下程序完全正确的是 A)int *p; scanf(“%d”,&p); B)int *p; scanf(“%d”,p); C) in 关于编译原理编译原理的此法分析器设计有一道题中的结尾要求中这样写到:……分析器的输入为由上述几类单词构成的程序(c语言的一段程序),输出为该段程序的机内表示形式,即关键字 一道C语言题目,程序:求一组数中大于平均值的数的个数.求一组数中大于平均值的数的个数不需要主函数,是考试,只要上面那个函数就可以了, 一道关于C语言的编程题目:写出一个有关阴影部分计算的程序,阴影部分的面积是大圆和小圆的面积之差(两圆为同心圆),大圆半径为r1,小圆半径为r2,π取为3.1416. 一道C语言题目,求解答以下程序的输出结果#includemain(){int x =0;x+=(x=8);printf(%d ,x);}为什么答案是16?难道后面的赋值把前面的定义掩盖了吗? 一道c语言题:以下程序中,while循环的循环次数是:#includemain(){ int i=0;while(i