[理工] 109 中正资工 乙组 计概

楼主: lsd25968 (cookie)   2020-11-21 23:42:00
各位前辈好,中正资工乙组计概的题目有含程式设计,
有补习,但非本科生,有找工程师的朋友问,
不过朋友们远离这一块比较久所以没办法给我比较详细易懂的说明,
于是来这边请教各位,请多多指教。
之后可能还会往前问前几年的,总之先一步一步来。
相关题目内出现的语法都有先自己GOOGLE去理解,化成自己的想法,
还请纠正或是给予一点理解的技巧(?)
第一题:
https://i.imgur.com/extW8nK.png
https://i.imgur.com/UrbrLuL.png
因为没解答所以自己打了程式码跑答案出来参考。
自己理解:
题目中宣告二维阵列,总共3X3,
由上而下由左而右,0列~2列,0行~2行,依序填入元素1~9
*ptr1输出值为1,这个不太懂,指标变量不是指向内存位址吗?
还是在这边就变成了指向阵列的第一个元素,也就是1吗?
*(ptr1+LOC(1,1)) 1+4(阵列1x1之值)=5
ptr1[LOC(2,1)] 阵列2x1之值=8
ptr1[5]/5 阵列第五个元素除以5,5/5=1
后面的char就无法理解了...
第二题:
https://i.imgur.com/47ASzyR.png
https://i.imgur.com/teRSMau.png
前半的函数呼叫是将两值互换。
而后面主程式码,
X1=Y1位址
Y1=Z1位址
X2=Y2位址
Y2=Z2位址
所以第一次printf
*y1就是z1的值10
*y2就是z2的值20
**x1跟**x2自己是理解成连续取两次位址,
所以x1=y1=z1=10、x2=y2=z2=20
然后呼叫函数将两值互换。
第三题:
https://i.imgur.com/1aC6L3q.png
考的是内存漏洞跟内存释放,第一次听到,所以自己去GOOGLE。
a:
(1)
Ans:insert a free(ptr) immediately after L10
原因:已经printf结束了,所以就释放内存避免造成内存漏洞。
(2)
不太确定,看起来是没有问题?
(3)
不太确定,是不是应该要把L12的free给移除掉?
因为还在循环内,在那边free的话资料就遗失了。
b:
garbage collection为程式会自动将被占用许久没使用的内存给释放的机制。
作者: cry589036511 (JJin)   2020-11-22 20:47:00
ptr=address *ptr=vlaue
作者: TWkobe (中华柯比)   2020-11-24 22:12:00
回这挺长的 我等下直接回你信箱比较快

Links booklink

Contact Us: admin [ a t ] ucptt.com