考试程序分析题,求解答

萌懒喵 2015-01-21 10:58:16
(1)以下程序的运行结果是__ __。并分析过程
#include <stdio.h>
main()
{
int s=0,k;
for (k=7;k>=0;k--)
{
switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break;
}
}
printf("%d",s);}

输出结果:7
分析过程:

...全文
566 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qxd12345678 2015-03-19
  • 打赏
  • 举报
回复
引用 15 楼 sholber 的回复:
[quote=引用 14 楼 chengye_xin 的回复:] [quote=引用 12 楼 qxd12345678 的回复:] [quote=引用 11 楼 chengye_xin 的回复:] 这什么野鸡学校的考试。。。main函数居然没有返回类型。。。差评
c语言中 省略返回类型相当于说函数的类型为int 只是C++逐步淘汰了这种用法[/quote] C99就没有这种写法了吧。。。[/quote] 嘎嘎~~C99就规定,在声明中至少要有一个类型指定符。[/quote] 高校的考题几百年不变 老师怎么会去在意
均陵鼠侠 2015-03-18
  • 打赏
  • 举报
回复
引用 14 楼 chengye_xin 的回复:
[quote=引用 12 楼 qxd12345678 的回复:] [quote=引用 11 楼 chengye_xin 的回复:] 这什么野鸡学校的考试。。。main函数居然没有返回类型。。。差评
c语言中 省略返回类型相当于说函数的类型为int 只是C++逐步淘汰了这种用法[/quote] C99就没有这种写法了吧。。。[/quote] 嘎嘎~~C99就规定,在声明中至少要有一个类型指定符。
chris君 2015-03-18
  • 打赏
  • 举报
回复
引用 12 楼 qxd12345678 的回复:
[quote=引用 11 楼 chengye_xin 的回复:] 这什么野鸡学校的考试。。。main函数居然没有返回类型。。。差评
c语言中 省略返回类型相当于说函数的类型为int 只是C++逐步淘汰了这种用法[/quote] C99就没有这种写法了吧。。。
平姐 2015-03-17
  • 打赏
  • 举报
回复
s = 0 7:s++ 6: 5:s+=2 4:s++ 3: 2: 1:s++ 0:s+=2 最终 s = 7
qxd12345678 2015-03-17
  • 打赏
  • 举报
回复
引用 11 楼 chengye_xin 的回复:
这什么野鸡学校的考试。。。main函数居然没有返回类型。。。差评
c语言中 省略返回类型相当于说函数的类型为int 只是C++逐步淘汰了这种用法
chris君 2015-03-16
  • 打赏
  • 举报
回复
这什么野鸡学校的考试。。。main函数居然没有返回类型。。。差评
苏叔叔 2015-03-16
  • 打赏
  • 举报
回复
这个并不难,根据k的变化,一步一步分析s的变化: k=7;s=1; k=6; k=5;s=3; k=4;s=4; k=3; k=2; k=1;s=5; k=0;s=7; 故最后,s=7 switch语句的匹配要点:如果没有break,则后面的case不用匹配,就执行,直到遇到break或结束
  • 打赏
  • 举报
回复
引用 楼主 qq_24735581 的回复:
(1)以下程序的运行结果是__ __。并分析过程 #include <stdio.h> main() { int s=0,k; for (k=7;k>=0;k--) { switch(k) { case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf("%d",s);} 输出结果:7 分析过程:
循环7次s会加3次1加2次2 你说s是几?
flexman09 2015-03-06
  • 打赏
  • 举报
回复
赵老师,你的答案老是一样的。我复制下来如何?
引用 1 楼 zhao4zhong1 的回复:
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗?
liqinglin007 2015-01-28
  • 打赏
  • 举报
回复
正解
引用 4 楼 u010030181 的回复:
先把switch case的运作原理弄清楚来,那么答案也就出来了……
EganLi 2015-01-24
  • 打赏
  • 举报
回复
感觉也是,这种题不该问,应该自己弄懂的……
程序员龙湫 2015-01-22
  • 打赏
  • 举报
回复
仔细点~断点设置
竹影半墙 2015-01-21
  • 打赏
  • 举报
回复
case 7: s++; break; case 6: break; case 5: s+=2; break; case 4: case 7: s++; break; case 3: case 6: break; case 2: case 3: case 6: break; case 1: case 4: case 7: s++; break; case 0: case 5: s+=2; break;
赵4老师 2015-01-21
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗?
QIUSQJF 2015-01-21
  • 打赏
  • 举报
回复
先把switch case的运作原理弄清楚来,那么答案也就出来了……
  • 打赏
  • 举报
回复
1 4 7的情况都做了s++,0 5 的情况做了s+=2

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧