最近在找工作,把遇到的筆試、面試題記錄在此,總結經驗教訓,為后面的筆試、面試打好基礎。
閑話少敘,看題:
1、
聲明以下變量(簡單的就不列了,列我覺得稍微有點難度的吧)
a、指向整型的指針的指針的數組: int **p[];
b、指向數據的指針: int (*p)[];
c、參數為void,返回值為void的函數數組:void (*p[])();
2、下列代碼輸出什么?
int a = -5;
unsigned int b = 1;
b > a ? cout << b : cout << a ;
輸出 -5 ,因為算術轉化把int提升為unsigned int。
3、下列代碼輸出什么?
int a = 1;
int b = 2;
int c = a+++b;
cout << "a=" << a << " b=" << b << " c=" << c;
a=2 b=2 c=3;
優先級后置++ > 前置++ > + ;NC題,那個寫代碼的時候不會加個括號。
4、實現下列運算
1-2+3-4+5-6+7-8+9
方法1:
int sum = 0;
for (int i=1; i<10; i++) {
if (i % 2) {
sum += i;
} else {
sum -= i;
}
}
方法2:
int sum = 0;
int flag = -1;
for (int i=1; i<10; i++) {
flag *= -1;
sum += flag * i;
}
答題的時候寫了兩種,以為方法2的效率高,不過回來加大循環量后,發現方法1快些,兩次乘法比一次求余慢。
5、memcpy是,目標內存與源內存有重疊是怎么copy?
可以從后往前拷。
未完待續