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

Python012

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

第一次进入第一个for循环,

i=0满足判断条件i<2,所以执行第一个for循环{}里的内容:

首先运行到语句x++;x值原本是0,运行x++后x值变为1

其中,执行循环体的内容后执行i++,i值变为1

程序继续执行,来到第2个for循环。

【在C里面非零值都为true.只有当表达式等于0的时候才为false

j%2是求余数,当j为奇数的时候j%2余数不是0,即为真,就执行continue。故当j为奇数的时候执行

continue,而执行continue会回到循环的开始处(注意: 不是回到if())】

首次第2个for循环:j=0,j%2的值是0;执行if{}里的x++,x值变成2

执行j++后j=1,满足j<3,继续执行第2个for循环里的内容:

j=1,j%2的值是1,为真。会执行continue,而执行continue会回到第2个for循环的开始处

j=2,j%2的值是0,为假。会执行if{}里的内容 x++,x值变成3

j=3后,不满足第2个for循环的判断条件,故不再执行第2个for循环了。

程序继续运行,来到又下一行的x++;x值变为4.。

此时,第一个for循环执行完第一次。我们回到开头,继续判断第1个for循环是否继续循环下去

i=1,满足判断条件i<2,所以继续执行第一个for循环的内容。

程序继续执行,【 注意,此时的x值已经是4了】。

首先,执行第一行的x++,x值从4变成5

再度来到第2个for循环 :

j=0,j%2的值是0;执行if{}里的x++,x值变成6

执行j++后

j=1,j%2的值是1,为真。会执行continue,而执行continue会回到第2个for循环的开始处

j=2,j%2的值是0,为假。会执行if{}里的内容 x++,x值变成7

j=3后,不满足第2个for循环的判断条件,故不再执行第2个for循环了。

跳出第2个for循环后,下面还有一行 x++,执行后x值从7变成8.

我也是刚学,自己看视频的。看到你这个题目,我先复制代码调试运行后发现结果是8,自己也搞不懂。忙了几个小时,才终于弄懂了。呵呵。