題一:
答案:
解析:
unsigned long*指針變量pulPtr
unsigned long數組名pulArray是數組首元素地址
因此指針變量pulPtr存儲的是數組首元素的地址
pulArray是數組首元素地址+3,跳過3個元素的地址,來到第四個元素的地址
解引用一下,獲得第四個元素,+=3,第四個元素將9改成12
解引用指針變量pulPtr找到數組第一個元素,6
pulPtr存儲的仍是數組首元素的地址,+3後解引用,獲得數組的改變後的第四個元素,12
題二:
答案:B
解析:
二級指針,也是指針,存放的仍是地址,與一級指針的空間是同樣大的
二級指針是用來存放一級指針的地址
數組的地址是用數組指針來存放的
二級指針是哦用來存放地址的,大小根據是32位平臺(4)仍是64位平臺(8)決定
題三:
答案:C
解析:
整形指針+1,跳過一個整形的大小,4個字節
指針-指針(至關於地址-地址)獲得的是中間元素的個數
指針存放的是地址,地址是以二進制補碼(無符號整形)形式存儲的,能夠比較大小
題四:
答案:A
解析:
*的優先級低於[]的優先級
因此arr先與[]先結合,說明arr是數組
10說明數組裏面有10個元素,每一個元素的類型是int*
題五:
思路:
1.遞歸實現
2.指針實現
3.數組實現
指針代碼實現:
解析:
1.scanf函數碰到空格將截斷
因此使用get函數(地址)讀取一行的內容(碰到\n截斷)
2.地址+6,向後指向第7個元素的地址
因此right要指向最後一個元素的地址,需寫成str+sz-1
left指向的是首元素的地址
指針變量接收傳過來的首元素的地址
3.利用第三個變量進行元素的交換
4.因此left++,right--
5.而且left永遠小於right
6.且left==right時說明只有一個元素,不須要進行交換
7.因此left < right便可
8.使用asssert函數檢測變量合理性
題六:
代碼:
解析:
a=2,n=5
ret *10+a
當i=0時,ret=0*10+2=2
當i=1時,ret=2*10+2=22
當i=2時,ret=22*10+2=222
....
題七:
代碼:
解析:
1.假設一個數爲123
2.那麼將判斷1的三次方+2的三次方+3的三次方的和是否等於123,若是等於那麼這個數就是水仙花數
3.利用臨時變量tmp進行統計(i的值不能改變)
題八:
代碼+分析:數組