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

这个程序有BUG,执行时极可能报告段错误(segmentation fault)。

错误原因在于:指针p没有初始化。

---

如果:char s[] = "123456789", *p, i = 0

改为:char s[] = "123456789", *p = s, i = 0

那么:程序输出结果为:*2*4*6*8*

原因:

当i = 0,2,4,6,8时,if条件i%2 == 0为真,故执行*p=‘*’,即修改数组s的第0,2,4,6,8个元素值为‘*’,亦即将1、3、5、7、9修改为*。

您好,很高兴回答您的问题。

您的这个程序主要是学会指针与数组的关系,以及数字字符型数据之间的关系。首先是定义字符型数组s,包含6个字符。然后定义指针变量p,指向字符型数据,并且p指向数组a。接下来往p所指向的位置,就是a数组中输入字符数据。当p指向的位置数据不为\0,即字符结束的标志时,对n的数据乘以8,再加上当前p所指向的字符减去字符0。需要注意的时,两个数字型字符相减,得到的就是两个数字相减的结果。

所以这个题目的结果为第一次n=0*8+3-0=3,第二次=3*8+2-0=26,第三次=26*8+1-0=209。所以最终输出结果为209。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存