永发信息网

求助!!简单的c语言问题

答案:2  悬赏:10  手机版
解决时间 2021-07-16 22:14


#include "stdio.h"
void main()
{char a='z';
int c=5;
switch(a++)
{
case'z':c++;case'x':c+=20;break;case'y':c-=15;
}
printf("%d",c);


}

谁告诉为什么答案是等于26

详细点

最佳答案

这个问题有两个知识点


第一:a++的用法


在这个程序里swich(a++)改成swich(a)结果也不会变的,因为a++这个运算是先使用(术语叫返回)a之后再给他+1(就是进行++运算),在这里swich语句所接受到的值是'z'


第二:swich()语句的用法


swich语句执行规则是:首先从上到下搜索每一条条件(就是每一个case),一旦发现有满足它所接受到的值(在你的程序里就是a所返回的值),它就停止搜索,从那一条条件开始往下运行(注意,一旦停止了之后是不会在去管满不满足条件),如果没有break这个语句的话它会执行到最后,在你的程序里


1)case'z':c++;


2)case'x':c+=20;break;


3)case'y':c-=15;


可以看到第一个case就满足了条件,所以第一行被运行并c这个变量增加了1,因此c的值变成6


然后程序接着运行下一条(因为上一条条件被满足了,所以停止了搜索,因此这一次是不管case满不满足条件都会继续执行)c+=20(这个语句等于c=c+20),结果c变量的值变成26,然而在这里我们的程序遇到了break语句所以swich语句结束不会在往下运行,跳出swich语句,所以c变量的值是26



全部回答
首先传入a++ a++返回 ‘z’ 找到case 'z' c++ c=6 但是程序没有break 继续走下一句 c+=20 c=26 break 所以结果就是26
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DNF最近怎么老是掉
水苏糖要多少钱
怎么赚Q币?
请问会计电算化属于财政学、会计学、财务管理
品冠有哪些好听的歌?
天下贰魍魉人加全力马加全疾这样好吗?
为什么有些地方看不见图??
这个视频刚开始的音乐是什么?
站在北极点的人,东经和西经的度数分别向东向
七龙珠GT孙悟空后来怎样了?
SJ-M最近有个OPPO手机的广告,是和个女孩子的
我老公是八三年八月二十三出生的,请帮我占卜
一台电脑用的固定IP上网 一台电脑用的路由共
加十残杀和加十二执行哪个好?巨白用…
什么样的男生是真心喜欢你?
推荐资讯
能看视频但没声音为什么?
魔兽世界锻造355以后怎么冲?
我是南昌一所大学的本科生,请问我现在可以去
日本电视剧《龙樱》里面的故事是否真实?
郁闷啊,我刚下载的QQ音乐歌词面板弹不出来啊,
打CF应注意些什么?
怎样才能成功下载歌词
怎样设置自己的QQ 别人加自己好友 不用经过同
愛情有過期嗎?
眼部护理,有什么自制眼膜的方法?可以去皱和
当女人不满足的时候你会干什么?
求一篇文文文
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?