一、陣列
1、下列程式執行後的結果是()(2012 中興)
#includeint main(void)
printf("%d \n",a[1][2]);
for( i = 0;i< 3;i++)
printf("\n");
}return 0;
}
解題思路:
p 是乙個指向 int 型的指標 p[i] = *(p+i),故陣列 a 依次被初始化為 , 故 a[1][2] = 6 .。 此題是將二維陣列當做一維陣列來初始化,由於二維陣列在記憶體中是連續存放的,故是可行的。
輸出結果是:
解析:
選 a 。sizeof(int) 4 , a是指向陣列首元素的指標,指向的元素型別為 int ,每加 1 ,跳過 4 個位元組。
&a[0] 位首元素的位址,故也是指向首元素的指標,即 &a[0] 等價於 a;
&a 為指向陣列的指標,與 a 的型別不同 ( &a 型別為 int (*)[10]),但指向的單元相同;則 a + 4 指向 a[4];
b 為 a+1 正確;
c 中,將 &a 強制轉換為 int * 型別,則執行 +1 跳過 乙個 int 的大小(4),指向 a[1];
d 中將 &a轉換為 char * 型別,則 +1 跳過乙個 char 的大小 (1),故指向 a[1] 的首位元組需要 +4,然後轉換為 int* 型別,正確。
二、字串
1、請寫出 strcpy 和 memcpy 的別?(2012 海康視威)
解析:strcpy 和 memcpy 都是標準 c庫函式,主要有以下三方面的區別:
(1)、複製的內容不同。strcpy 只能複製字串,而 memcpy 能複製任意內容,例如:字串陣列、整型、結構體、類等。strcpy 只用於字串的複製,並且它不僅會複製字串的內容,而且還會複製字串尾的 '\0'。memcpy 對於複製的內容沒有限制,因此用途更廣。
(2)、複製的方法不同。strcpy 不需要指定長度,它遇到被複製字串的結束符 '\0' 時才結束,所以容易溢位。 memcppy 根據第三個引數可以指定複製的長度。因此比較安全。
(3)、用途不同。通常在複製字串時用 strcpy,而需要複製其他型別資料時一般需要用 memcpy。
筆試題(持續更新)
解題思路 棧的特點是先進後出,佇列的特點是先進先出,所以可以把佇列1中的元素pop到佇列2中,佇列2再次取出的時候就可以了。兩個棧實現乙個佇列 思路 先將資料存到第乙個棧裡,再將第乙個棧裡的元素全部出棧到第二個棧,第二個棧出棧,即可達到先進先出 擴充套件 棧是vector的乙個子類,它實現了乙個標準...
筆試面試 經典筆試題整理
以下內容全部整理自網路。把整數關鍵碼k雜湊到n個槽列表,最好的雜湊函式是 h k k rand n mod n,rand n 返回0到n 1的整數 初始資料集的排列順序對演算法的效能無影響的是 堆排序 堆排序 最優時間複雜度o nlogn 最差時間複雜度o nlogn 平均時間複雜度o nlogn ...
JS筆試面試題(後續更新)
1.下面 的執行結果是?var length 10 function fn var obj obj.method fn,1 答案 10 2 解析 首先,fn 執行時的this是指向window的,因為這個函式是作普通函式呼叫的,普通函式呼叫,this指向window。然後arguments代指實參陣...