1. 程式人生 > >一份C++實習生的筆試題目

一份C++實習生的筆試題目

一、基礎知識1、 下面幾個是在程式設計領域裡經常使用的縮寫,請寫出他們的英文全寫,並翻譯成中文。注意是程式設計領域.(1) OS  operating system 作業系統或者是open source 開發原始碼(2) VSVisual Studio軟體開發平臺(3) MS  Microsoft 微軟的縮寫,或者Management System管理系統(4) CScryptographic system密碼系統 或者 computer science 電腦科學的縮寫(5) RTOSReal-time operating system 實時作業系統(6) SDKSoftware Development Kit, 即軟體開發工具包 

(7) IDEIntegrated Drive Electronics整合驅動器電子它的本意是指把控制器與盤體整合在一起的Integrated Development Environment  整合發展(開發)環境

2、 下列幾個C語言表示式是否正確?如果正確,寫出它們表達的意思:(1) a&b     正確  位運算,將a的每一個與b的每一個位進行&操作(2) a&(&b)  正確 &b先取得b的地址,再與b的地址按位與(3) a&&b   正確  邏輯與,就是將a的值與b的值進行與運算(4) a**b    正確  *b先取得b地址的值,

a*b的值相乘

3、 在程式設計風格中,一般都要強調使用匈牙利命名法,下面是匈牙利命名法中一些公認的字首,並給出變數名的例子,請寫出它們所代表的變數型別:字首 變數名 描述字首的意義g_ g_Lock 全量變數m_ m_Num 成員變數pTrack 指標hhModule 控制代碼sz szText 字串dw dwMsg 雙字4、標頭檔案中ifndef / define / endif 是做什麼用的?

答:防止該標頭檔案被重複引用。

14. i nclude<file.h> 與 #i nclude "file.h"的區別?

答:前者是從Standard Library的路徑尋找和引用

file.h,而後者是從當前工作路徑搜尋並引用file.h

5、程式碼裡有時可以看到extern “C”, 這語句是做什麼用的?

答:extern "C"是連線申明(linkage declaration),extern "C"修飾的變數和函式是按照C語言方式編譯和連線的

6、軟體開發中說的check out, check in是什麼意思?

答:原始碼管理系統的簽入,簽出

就是在比較大的專案中,為了避免不同的人編輯相同的程式碼,導致程式碼覆蓋等錯誤,設計了樹形的結點,將一份較大的程式碼,分成很多tcl(小的部分),每個人改動程式碼時,將要改動的程式碼check out 這時別人就不能對程式碼改動,你改完了,再check in 回到結點上,別人才可以 check out 進行修改,這樣在大型的軟體開發中避免了程式碼的覆蓋寫衝突等問題7C語言函式前面加static,和C++類的成員函式前面加static,兩者的意義有何區別?

答:Cstatic是限制函式的為編譯單元內部使用C++類的static使函式成為類成員,而不是例項成員。

基本差不多,但C++類中的有不同之處。就是可以直接用類名去呼叫函式,不用例項化物件。如: 類名.xxx();

8、簡單描述一下WIN32上 .c / .cpp / .rc / .obj / .res / .lib / .dll / .exe這幾個字尾所表示的檔案型別,以及他們之間的相互生成關係。如果你是LINUX程式設計師,前面這個問題答不上,那麼請描述一下GCC編譯的幾個步驟和中間生成檔案。

答:.c: C程式碼.cpp: C++程式碼.obj:目的碼(.c.cpp編譯後產生).rc:資原始檔.res:編譯後的十進位制資源(.rc編譯後產生).exe:可執行程式.dll:動態連結庫他們由.obj連結生成。

二、簡單程式碼1char* GetMemory(void){  char p[] = “Welcome to AMOI”;  return p;}void main(void){  char* str = NULL;  str = GetMemory();  printf(str);}執行main函式的結果如何?你覺得該段程式碼是否存在什麼問題?

答:結果是亂碼。

char *p = “Welcome to AMOI”;就沒有問題了!因為return p只是返回了陣列的首地址,雖然在語法上面沒有錯,可以通過這個陣列的首地址來得到裡面的值,但是得到的資訊是錯誤,因為只是得到了這個首地址裡面的值,沒有得到整個陣列的值,如果返回的是指標型別的地址,則可以得到整個陣列的值!因為GetMemory返回的是指向棧記憶體的指標,該指標的地址不是 NULL,但其原現的內容已經被清除,新內容不可知。

我也來說說,對以第一個程式:是錯誤的原因在於:char* GetMemory(void)   char p[] = “Welcome to AMOI”;   return p; }這裡使用的p是一個區域性變數,程式完成後就將回收其存在棧中的空間,所以返回引用不能使用改進:char* GetMemory(char *ptr)   ptr = "Welcome to AMOI";   return ptr; }

驗證是正確的!

有的人這樣改:

char* GetMemory(void){//char p[] = Welcome to AMOI;char *p = Welcome to AMOI;return p;}哥們,對於第一題 你這種改發也是錯的。因為GetMemory內的“Welcome to AMOI”是常量字串,它在程式生命期內恆定不變。無論什麼時候呼叫GetMemory,它返回的始終是同一個只讀的記憶體塊

總之你不能返回函式中的區域性指標變數,除非你讓這個區域性指標變數 你呼叫函式之前就存在的指標(並且這個指標不是個空指標)。

2void GetMemory(char** p, int len){  *p = (char*)malloc(len);}void main(void){  char* str;  GetMemory(&str, 100);  strcpy(str, “Hello World”);  printf(str);}執行main函式的結果如何?你覺得該段程式碼是否存在什麼問題?

答:能夠輸出"hello world!"

記憶體洩露

這裡,我們使用了堆來分配空間,但是分配率空間後,我們沒有主動地將分配的空間清空同時對於傳入的空間的檢測也沒有到位(這些前面的兄弟都說過了)改進:void GetMemory(char** p, int len)   if (len <= 0) {  printf("說明性的語句");  *p = NULL;  }  *p = (char *)malloc(len*sizeof(型別))  if (*p == NULL) {  printf("說明性語句");  exit(1);  }}然後是主程式中最後新增free(str);okhttp://topic.csdn.net/u/20090211/16/773219a4-bb84-4702-8669-28fef466af62.html

相關推薦

C++實習生筆試題目

一、基礎知識1、 下面幾個是在程式設計領域裡經常使用的縮寫,請寫出他們的英文全寫,並翻譯成中文。注意是程式設計領域.(1) OS  operating system 作業系統或者是open source 開發原始碼(2) VSVisual Studio軟體開發平臺(3) MS  Microsoft 微軟的縮

C語言天才!想法奇異?還是逼格滿滿?C語言寫的傳奇簡歷

san fda 風格 代碼 spa justify 分享 mil ali C語言天才!想法奇異?還是逼格滿滿?一份國外C語言寫的傳奇簡歷作者用代碼更新了自己的簡歷,是不是很接地氣,特符合程序員的逼格。這是一份可讀可執行的語言源文件,也是作者編碼風格的體現。C語言源碼(看不懂

經典C語言筆試題目

來源:https://blog.csdn.net/qq_36032963/article/details/64479469題目來源:1、中興、華為、慧通、英華達、微軟亞洲技術中心等中外企業面試題目;2、C 語言面試寶典(林銳《高質量程式設計第三版》)。說明:1、部分C 語言面

轉載C++執行緒池的程式碼,非常實用

基本上是拿來就用了,對WIN32 API不熟,但對執行緒池的邏輯還是比較熟的,認為這個執行緒池寫得很清晰,我拿來用在一個多執行緒下載的模組中。很實用的東東。 呼叫方法 void threadfunc(void *p) {      YourClass* your

C++執行緒池的程式碼,非常實用

#ifndef _ThreadPool_H_ #define _ThreadPool_H_ #pragma warning(disable: 4530) #pragma warning(disable: 4786) #include <cassert> #in

100 條經典C語言筆試題目(轉)

本文轉自:https://blog.csdn.net/yanghonker/article/details/40118615100 條經典C語言筆試題目題目來源:1、中興、華為、慧通、英華達、微軟亞洲技術中心等中外企業面試題目;2、C 語言面試寶典(林銳《高質量程式設計第三版

【面試專題】騰訊PHP實習生筆試題目及答案解析

騰訊筆試題:const的含義及實現機制分析:   const的含義及實現機制,比如:const int i,是怎麼做到i只可讀的?   const用來說明所定義的變數是隻讀的。   這些在編譯期間完成,編譯器可能使用常數直接替換掉對此變數的引用。   初探編譯器

C++實習生筆試及HR面試總結

一、筆試 1.int i=10,j=10,k=3;k*=i+j;則k的值等於多少(k=60) 2.int a=1,b=2;則(++a/b)*b--等於多少(2) 二、HR面試 1.自我介紹(沒想到有自我介紹,感到意外,有點小激動) 2.職業規劃 3.對公司的瞭解 4.說說自己的缺點 5.最近一段時間

IT實習生的總結

今天突然發現在不知不覺中自己已經實習了 3 個月了,現在可能不算是真正意義上的實習吧,因為現在自己才大三,在這邊擼程式碼的同時還要考慮到學校的功課跟期末考試。讓我震驚的是,我完全想不到在這 3 個月裡我到底學到了什麼,這是一件多麼悲催的事情啊。同時我對我應該 get 到什麼

2013年微軟實習生招聘筆試題目(c/c++你懂多少?)

今天本是清明放假,但是,但是微軟就是在今天下午組織了筆試考試,據說是全國統考。75分鐘,20 道選擇題,問題是,問題是神馬?先看下簡單的評分: 1-8 3 2 -2 0 9-18 5 3 -3 0 19-20 13 7 -7

經典C++筆試題目100例,接近實際,值得看!

第一部分:C++與C語言的差異(1-18)1、C 和 C++ 中 struct 有什麼區別? Protection行為 能否定義函式 C 無 否,但可以有函式指標 C++ 有 可以,預設是private 2、C++中的

故人的連連看程式碼,c語言版本

花一天時間寫的一個連連看,唉!分支限界有的關鍵點,還是不是掌握的很清楚,居然搞那麼長時間,應該 在3個小時之內輕鬆拿下的,加油了 // MyLinkup.cpp : Defines the entry point for the console application. // #in

程式設計C 實驗五 題目維動態陣列的應用(0293)

Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 13295 Accepte

程式設計C 實驗四 題目 排序查詢(0616)

用選擇法對N個學生的成績按從大到小的順序排序,N個學生的成績整數用scanf 輸入,輸入的成績在[0,100]之間。排序完成後,輸入一個成績,要求用逐個比較查詢的方式找出該成績是該組中第幾個元素的值(即第幾名)。如果該成績不在陣列中,則輸出“no this score!”。 要求: 1、把排序演算法

程式設計C 實驗二 題目 計算員工周工資(0077)

編寫一個程式,輸入某僱員的每週工作時間(以小時計)和每小時的工資數,計算並輸出他的工資。(如果時間小於0或大於一週的總時間輸出input is wrong!)若僱員周工作小時超過40 小時,則超過部分按原工資的1.5 倍的加班工資來計算, 若僱員每週工作小時超過

2018年12月位元組跳動實習生校招筆試題目

2018年12月位元組跳動實習生校招筆試題目總結 這次筆試只有三道題目,先要求寫出解題思路,然後再寫出程式碼 筆試時間為:1個半小時 1.給出一個年月日,判斷該天是當年的第幾天 水題 注意判斷leap year,(year%4==0 &&

C++ 虛擬函式 筆試題目--綠盟科技

求下面程式的輸出值: class A{ public:  A() {func(0);};  virtual void func(int data) {printf("A1 :%d\n",data);}  virtual void func(int data) const {

經典C++筆試題目--100(程式設計練習(比C要難)(91-100))

#include <iostream.h> //定義在標頭檔案"RecurveList.h"中 class List; class ListNode { //連結串列結點類 friend class List; private: int data; //結點資料 List

簡單題目練習,題解(C++版)

題目連結 題解 坑 不存在的 題解 hdu-2011 多項式求和 題意很明確,公式已經給出了 注意: - 正負交替,這裡使用flag *= -1;的方法 - 在進行運算的時候,如果使用的是int型別,如需

C/C++基礎筆試

  面試時總會遇到一些基礎題目,其實也是大部分以往見過或者網上可以搜尋到的,都是十分基礎的問題,這類問題答對了不會給自己加多少分;但如果答錯或者答得不完整,自己在面試官眼裡就是基礎不牢固的印象。所以好記性不如爛筆頭,將遇到的部分筆試題,重新整理答案在部落格。