趨勢科技南京筆試 C 部分

2021-09-30 15:44:16 字數 1369 閱讀 1852

q1.unicode問題

int test()

sizeof(psztemp) = ?   _countof(psztemp) = ?    strlen(psztemp) = ?

a:字串前加l表示將字串轉化為unicode型;unicode字串每個字元佔2個位元組,擴充套件為:"x\nx\n"的形式; 因此,sizeof(psztemp)=24;

strlen(psztemp)是計算從psztemp指向的地方開始,到第乙個『\n』出現為止,一共有多少個char字元,所以strlen(psztemp)=1;

_countof是c++中計算乙個陣列長度的巨集,因此 _countof(psztemp) = 12

q2:類占用空間大小的問題

#include class cs; 

main()

a:輸出是4,static 的資料是分配在全域性區;函式是放在程式**區(專門用來存放函式的二進位制**)

q3:

#include class a;};

int main()

p->f();

getchar();

return 0;

}

每乙個非虛成員函式實際上都等同於乙個普通的c函式,其中第乙個引數為物件指標,即我們常說的this指標。例如:  

上面的a的function函式實際等同於:<

span

style="color: #ff0000"

>a::function()  ç***************===èfunction(a*this);  

span

>與此不同,對每乙個虛成員函式的呼叫都是通過虛函式表的虛指標vptr來進行呼叫的,如上面的p2->function一句將被編譯器解釋為:  

(* p2->vptr[1] )(p2)  

很容易理解,虛函式的呼叫是動態決定的。也很容易理解,21行crash,18行正常。很顯然,如果在a類的成員函式function裡,有去使用成員變數,該函式同樣會crash  

q4:#include #include class mystring: public std::string

{ public:

mystring(const char* sz):std::string(sz){std::cout<<*thisa:push_back(?):把?追加到vector的後面

remove_if(開始位置,結束位置,刪除條件):在乙個給定範圍內刪除滿足一定條件的元素,在刪除元素的過程中不改變剩餘元素的位置,並同時返回乙個沒有要刪除元素的新容器的迭代器end值。ps:erase()函式刪除乙個元素之後,後面的迭代器就會失效

趨勢科技筆試題

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 t...

趨勢科技筆試題

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.為什麼建構函式和...