C语言程序阅读题怎么做?

C语言程序阅读题怎么做?,第1张

1.执行预处理命令

2.开始执行程序,从main()进入程序

3.声明结构体变量,把指针(*pd)和md变量设为⼀个可以使⽤data结构体的结构体变量,则指针(*pd)和md这个变量就包含了其data结构体中的所有元素

4.通过变量md寻找结构体中变量,为其赋值,然后赋值后结构体的地址给指针接收

5.执行调用函数fun,将指针寻找到的变量(64,14)传递到fun函数中,用形参x,y接收传递的参数

1).进入while循环,判断x是否不等于y,成立进入循环,不成立则结束循环

2).如果(x>y),计算x-y,将结果赋给x;否则就计算y-x,将结果赋给y(ps:x与y在进入循环就不可能等于,所以结果只有两种情况,再写else if的条件判断就有些多余,用else即可)

3).结束循环,函数返回x的值,结束fun函数的周期

(循环7-8次,没仔细数,最后x=2,y=2)

将得函数返回到的值,通过指针,赋给结构体中res的变量(传值res=2)

6.打印结构体res的最后得到的数据

res=2

switch语句

多分支选择语句

格式:

switch(表达式a)

{

case

常量表达式1:语句1

case

常量表达式2:语句2

case

常量表达式3:语句4

.

.

.

case

常量表达式n:语句n

default(这是”否则“的意思):

语句n+1}

读法是:表达式a=

常量表达式x

就执行语句x

同时有一点注意的

如:满足表达式2

那么直接执行语句2

语句1不执行

但语句3到n+1也都要执行一次

这就是switch语句的一个问题(我认为这是一个bug)

为了避免这个问题

一般在语句后面再加个break语句

如:case

常量表达式2:a++break

这样后面的就不执行了

所以case意思是:“当等于。。。的时候”

这段程序的意思是:i从1到4

每次i满足case后哪个表达式就执行哪个语句对a修改

a+=2

等于a=a+2

这里的过程是a=3+5

+3+5

+2+3+5

+5=31

其实你只要搞懂几点东西,就不会乱

1.你的switch捕捉的是余数

2.switch(a++%4)这个过程a是先与4进行求余,然后a会递增一次,也就是+1

3.switch(++a%4)这个过程a是先递增+1,然后再与4进行求余

4.case 如果没有break会发生case穿透,不会跳出,会进行下一个case执行要求!

5.给你截图了,能不能看懂全靠造化了,尽力了,不可能全部都列出步骤,列出打印4的原因:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10944910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存