C++筆試面試題
C++筆試面試題
C++函數中值的傳遞方式有哪幾種?下面就由學習啦小編為大家介紹一下C++筆試面試題的文章,歡迎閱讀。
C++筆試面試題篇1
1 #include “filename.h”和#include 的區(qū)別?
答:#include “filename.h”表明該文件是用戶提供的頭文件,查找該文件時從當前文件
目錄開始;#include 表明這個文件是一個工程或標準頭文件,查找過程會檢查預定義的目錄。
2 頭文件的作用是什么?
答:一、通過頭文件來調用庫功能。在很多場合,源代碼不便(或不準)向用戶公布,只要向用戶提供頭文件和二進制的庫即可。用戶只需要按照頭文件中的接口聲明來調用庫功能,而不必關心接口怎么實現的。編譯器會從庫中提取相應的代碼。
二、頭文件能加強類型安全檢查。如果某個接口被實現或被使用時,其方式與頭文件中的聲明不一致,編譯器就會指出錯誤,這一簡單的規(guī)則能大大減輕程序員調試、改錯的負擔
3 C++函數中值的傳遞方式有哪幾種?
答:C++函數的三種傳遞方式為:值傳遞、指針傳遞和引用傳遞。
4 內存的分配方式的分配方式有幾種?
答:一、從靜態(tài)存儲區(qū)域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量。
二、在棧上創(chuàng)建。在執(zhí)行函數時,函數內局部變量的存儲單元都可以在棧上創(chuàng)建,函數執(zhí)行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集中,效率很高,但是分配的內存容量有限。
三、從堆上分配,亦稱動態(tài)內存分配。程序在運行的時候用malloc或new申請任意多少的內存,程序員自己負責在何時用free或delete釋放內存。動態(tài)內存的生存期由我們決定,使用非常靈活,但問題也最多。交換兩個數,不用第三塊兒內存!請問怎么實現?現有12個小球,其中只有1個球與其它的球重量不同(即有11個球重量全相同),并且不知道這個跟其它球重量不同的球是重還是輕(跟其他11個重量相同的球相比而言),那么從這12個球中找出這個跟其它球重量不同的球.
C++筆試面試題篇2
1.英譯漢 ,關于ITU和CCITT的
2.漢譯英,關于VMware的
3.兩個有序數組的合并,寫一個完整的程序
4.填空題,排序二叉樹節(jié)點的刪除,5個空
5.調試題,多線程文件的讀寫,編譯沒有錯誤,請找出至少三個bug.
8.內聯(lián)函數在編譯時是否做參數類型檢查?
1,程序設計(可以用自然語言來描述,不編程):C/C++源代碼中,檢查花括弧(是"("與")","{"與"}")是否匹配,若不匹配,則輸出不匹配花括弧所在的行與列。
2,巧排數字,將1,2,...,19,20這20個數字排成一排,使得相鄰的兩個數字之和為一個素數,且首尾兩數字之和也為一個素數。編程打印出所有的排法。
3,打印一個N*N的方陣,N為每邊字符的個數( 3〈N〈20 ),要求最外層為"X",第二層為"Y",從第三層起每層依次打印數字0,1,2,3,...
例子:當N =5,打印出下面的圖形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X
C++筆試面試題篇3
1. 三個float:a,b,c 問值
(a+b)+c==(b+a)+c
(a+b)+c==(a+c)+b
2. 把一個鏈表反向填空 (重復)
4. y1(n)=x(2n), y2(n)=x(n/2),問:
如果y1為周期函數,那么x是否為周期函數
如果x為周期函數,那么y1是否為周期函數
如果y2為周期函數,那么x是否為周期函數
如果x為周期函數,那么y2是否為周期函數
4. 某個程序在一個嵌入式系統(tǒng)(200M的CPU,50M的SDRAM)中已經最化了,換到另一個系統(tǒng)
(300M的CPU,50M的SDRAM)中運行,還需要優(yōu)化嗎?
5. x^4+a*x^3+x^2+c*x+d最少需要作幾次乘法