作者sunneo (艾斯寇德)
看板Grad-ProbAsk
标题Re: [问题] 请教计概问题
时间Wed Apr 1 01:58:59 2009
※ 引述《wsx (wsx)》之铭言:
: 1.
: http://www.lic.nkfust.edu.tw/02-collection/203-exam/gra/23-inf/st/942301.pdf
: 请问第10题 解答是给D
: 但是D应该是属於application layer的吧
: 想请问 是因为其它选项都不是属於 OSI layer里的协定
: 所以才选D的吗?
: 2.请问第18题 答案是给B
: 但我觉得D应该也是错的 它使用的应该是2.4GHZ吧
: 至於B选项的 技术相容是指相同都在2.4GHZ吗?
: 1.
: http://www.lic.nkfust.edu.tw/02-collection/203-exam/gra/23-inf/st/932302.pdf
: 请问第一题 我觉得他的写法都是对的耶
: 答案是给D 请问是错在哪边呢?
这跟运算子的优先权有关
D如果要正确应该是 (*(a+i))[ j ]
如果如原题目 *(a+i)[ j ] 会是
*( *( (a+i) + j ) )
虽然跟B 长的很像 但B是
*( *(a+i) + j )
: 2.第二题 是因为(f(*[10]))[4] 所以是10*4=40 吗?
: 因为解答只给4*10=40 有点不知道为什麽@@
f是一个阵列
阵列内存的是
int(*)[4]
也就是每个指标都指向一个大小为4的阵列的起始位址
所以可以看成
typedef int(*Ptr4Array)[4];
Ptr4Array f[ 10 ];
这种指标用在如下
int b[4];
int b2[4];
int (*f[10])[4];
f[0] = &b;
f[1] = &b2;
(*f[0])[0] = 0xf200;
(*f[0])[1] = 0xf201;
(*f[1])[0] = 0xf210;
(*f[1])[1] = 0xf211;
printf("b[0] = %x\n",b[ 0 ]);
printf("b[1] = %x\n",b[ 1 ]);
printf("b2[0] = %x\n",b2[ 0 ]);
printf("b2[1] = %x\n",b2[ 1 ]);
: 3.第三题 signature和什麽无关? 这我真的不知道
: 可以指教一下吗?
overload
同signature不同参数则可以overload
另外类似的题目会问说这是在OOL的什麽观念
若出现封装(encapulation)就是封装,而不是继承、多型的观念
: 4.第四题 答案是给-2
: 我先说我的想法:
: ~0 就代表是1
: 那他说左移1位 那不就变成0吗? 为什麽是-2呢?
(~0)是bitwise的inv
所以是
0xfffffff
左移後得到
0xffffffe
所以是-2
: 5.第二大题 第三题
: 答案说j,k= 5,4 但我是算5,3
: 我是这样算的:
: p=a+1=3 q=1
: j=3+2=5 k=p[*q]=3[1]=3
: k那边 我比较不懂程式码的意思 所以把它当成乘法XDDD
: 请大大指教一下
p = a+1 这是在 {3}的位置
q = &i
j = *p + *(p-1)
== 3 + 2
== 5
k = p[ *q ]
== (a+1)[ *q ]
== (a+1)[ i ]
== (a+1)[ 1 ]
== a[ 1+1 ]
== a[ 2 ]
== 4
: 抱歉喔 把我的问题提出来 请大大们不吝指教
: 谢谢唷^^"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.121.250
※ 编辑: sunneo 来自: 61.227.121.250 (04/01 02:00)
1F:推 wsx:谢谢大大喔 04/03 01:04
※ 编辑: sunneo 来自: 61.227.125.189 (04/14 13:06)