**:
1、下面程式的輸出是多少?
[cpp]view plain
copy
print?
voidgetmemory(char*p)
intmain(void)
void getmemory(char *p)
int main(void)
a、hello b、hello world c、hello world、run time error/core dump
2、下面哪個會使這段程式編譯錯誤?
[cpp]view plain
copy
print?
classa
};
classb:publica
};
a *pb =newb();
b b;
class a
};class b:public a
};a *pb = new b();
b b;
a、 a *pa = dynamic_cast(pb);
b、 a *pa = static_cast(pb);
c、 a a = static_cast(b);
d、 a a = dynamic_cast(b);
e、none of above
dynamic_cast 的目標型別無效。
3、下面程式執行的結果是(d)
[cpp]view plain
copy
print?
voidmain()
void main()
a、a b、b c、c d、編譯錯誤
s指標是陣列的首位址
4、下面程式執行的結果是(d)
[cpp]view plain
copy
print?
intmain(void)
,,};
printf("%c"
,matrix[1][4]);
return0;
}
int main(void)
,,};
printf("%c",matrix[1][4]);
return 0;
}
a、c b、f c、gd、h
二、演算法題
1、如何用兩個棧來實現乙個佇列,並分析有關佇列操作的執行時間。
解法:1、有兩個棧s1和s2,先往s1內插入a,b,c,這做的都是enqueue操作。
2、現在要做dequeue操作,即要得到a,這時可以將s1中的元素全部彈出並存入s2中,這時s2中元素的順序(從底部到頂部)為c,b,a,這時做s2.pop()操作即可得到a。
3、如果繼續做enqueue操作,比如插入d,f,則把d,f插入到s1中,
4、此時若要做dequeue操作,則直接彈出s2中的b,它是目前為止,呆得時間最長的元素
5、若繼續做dequeue操作,則s2彈出c,
6、若繼續做dequeue操作,則s2為空,此時做步驟2的操作,
7、以此類推,就實現了用兩個棧來實現乙個佇列的目的。
插入操作的時間為o(1),刪除操作的時間<=o(n),即小於線性時間,有時可能為o(1)。
2、如何用兩個佇列實現乙個棧,並分析有關棧操作的執行時間。
解法:1、有兩個佇列q1和q2,先往q1內插入a,b,c,這做的都是棧的push操作。
2、現在要做pop操作,即要得到c,這時可以將q1中的a,b兩個元素全部dequeue並存入q2中,這時q2中元素為a,b,對q1再做一次dequeue操作即可得到c。
3、如果繼續做push操作,比如插入d,f,則把d,f插入到q2中,
4、此時若要做pop操作,則做步驟2
5、以此類推,就實現了用兩個佇列來實現乙個棧的目的。
注意在此過程中,新push進來的元素總是插入到非空佇列中,空佇列則用來儲存pop操作之後的那些元素,那麼此時空佇列不為空了,原來的非空佇列變為空了,總是這樣迴圈。
對於push和pop操作,其時間為o(n)。
趨勢科技筆試題
3 以下的 可放在vc 6.0裡面執行。題目是要求輸出 trendmicrosoftuscn 然後要求修改程式,使程式能輸出以上結果 如下 include include using namespace std int main int argc,char argv string p new str...
趨勢科技筆試 6
題目 請問下面的程式輸出是什麼?test3.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std class ca public ca cout ca p ca func p ca f cout 結果 解釋 1.為什麼建構函式和...
趨勢科技2023年暑期實習生筆試題
題目 有81匹賽馬,9個賽道可以利用,每匹賽馬的速度是恆定的,不計時但記錄每場的名次,請問,賽幾次可以得到前5名?解答 首先把81匹馬分為9組,賽九場,然後把每場的第一名拿出來 剛好9匹 賽一場,得到前五名所在的組 後四名的組果斷排除 此時可以確定第一名。然後在第一名的組中抽取2 5名 共四匹馬 在...