最近在找工作,把遇到的筆試、面試題記錄在此,總結(jié)經(jīng)驗(yàn)教訓(xùn),為后面的筆試、面試打好基礎(chǔ)。
閑話少敘,看題:
1、
聲明以下變量(簡單的就不列了,列我覺得稍微有點(diǎn)難度的吧)
a、指向整型的指針的指針的數(shù)組: int **p[];
b、指向數(shù)據(jù)的指針: int (*p)[];
c、參數(shù)為void,返回值為void的函數(shù)數(shù)組:void (*p[])();
2、下列代碼輸出什么?
int a = -5;
unsigned int b = 1;
b > a ? cout << b : cout << a ;
輸出 -5 ,因?yàn)樗阈g(shù)轉(zhuǎn)化把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;
優(yōu)先級(jí)后置++ > 前置++ > + ;NC題,那個(gè)寫代碼的時(shí)候不會(huì)加個(gè)括號(hào)。
4、實(shí)現(xiàn)下列運(yùn)算
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;
}
答題的時(shí)候?qū)懥藘煞N,以為方法2的效率高,不過回來加大循環(huán)量后,發(fā)現(xiàn)方法1快些,兩次乘法比一次求余慢。
5、memcpy是,目標(biāo)內(nèi)存與源內(nèi)存有重疊是怎么copy?
可以從后往前拷。
未完待續(xù)