您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語言常見的面試題有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言常見的面試題有哪些”吧!
第1題:c語言有哪些核心的特征?
可移植性很強。
模塊化能力很強。
靈活性很高。
加載速度和執行速度都很好。
可擴展性很強。
第2題:c語言中有哪些基本的數據類型?
Int整型。
Float浮點型。
Double雙浮點型。
Char單個字符。
void特殊類型,不包含任何值。
第3題:解釋一下語義錯誤。
在寫程序的時候會有很多語義錯誤,比如說,拼錯了命令,一個函數的參數個數錯了, 數據類型不匹配,等等。
第4題:C語言中如何使用增加和減少語句?
有兩種方式:
++, --
或者
傳統的加和減。
第5題:什么是一個編程語言的保留字?
保留字是指語言庫中使用的一些關鍵字。這些關鍵字不能用來做其他的事情,比如說定義一個變量或者函數等等。
第6題:解釋一下dangling pointer。
首先我們說有一個指針指向一個變量的內存地址。一段時間以后這個變量被從內存地址的位置刪除了。
這樣的指針稱之為dangling pointer.
第7題:描述一下靜態函數的用途。
使用靜態static關鍵字定義的函數稱之為靜態函數。
這樣的函數需要在相同的代碼里調用。
第8題:abs和fabs的區別是什么?
這兩個函數都是用來取絕對值的。前者是針對整型的。后者是針對浮點型的。前者位于標準庫stdlib.h里面。后者在math.h里面。
第9題:說一下wild pointers。
未初始化的指針稱之為wild pointers。這些指針指向一個隨意的內存地址。如果訪問它們可能會導致很壞的程序行為,甚至導致程序崩潰。
第10題:++a和a++的區別是什么?
加加a的意思是先加后取值。
A加加的意思是先取值后增加。
第11題:單等號和雙等號的區別是什么?
單等號表示賦值運算符。
雙等號是等于條件判斷運算符。
第12題:解釋一下c語言的原型函數。
原型函數是對一個函數的聲明。
它包含函數名,返回值和參數類型列表。
int sum(int,int)
第13題:解釋一下數據類型的cyclic nature。
在c語言中,當一個程序員給一個數據類型的變量賦值的時候,有可能會溢出。這種溢出不會產生編譯錯誤。最終的賦值結果會根據數據類型溢出后的剩余而定。
這種行為稱為cyclic nature. Char, int, long int數據類型有這個特性。Further float, double和long double數據類型沒有這個特性。
第14題:說一下c語言的頭文件和用途。
頭文件存放了原型函數的定義。這個文件又稱為庫文件。
比如說printf和scanf存放在stdio.h里面。
第15題:解釋一下在調試過程中對代碼進行注釋的做法。
這個做法稱為commenting out。通過把一些代碼屏蔽掉來判斷或排除是否是這些代碼造成的錯誤。
第16題:說一下c語言中循環的類型。
C語言中有4種循環類型。
while
for
do while
nested loop
第17題:什么是nested loop?
一個循環包含在另一個循環中稱為nested loop。第1個循環成為外循環。里面的循環稱為內循環。內循環執行的次數作為總循環的次數。
第18題:c語言中函數的通常格式是怎樣的?
C語言的函數,包含4個部分。
返回值, 函數名, 參數, 函數體。
第19題:什么是指針的指針?
指針的指針是指一個指向指針所在地址的指針。
int a=5, *x=&a, **y=&x;
第20題:Break關鍵字在哪個地方使用?
Break可以用在循環中和switch語句當中。是用來終止當前的循環或跳出switch。
第21題:使用頭文件時雙引號和尖括號的區別是什么?
使用雙引號時,首先要在當前工作目錄中查找這個頭文件,如果找不到的話就會在內置的include path里面找。
使用尖括號時,只會在當前工作目錄中查找這個頭文件。
第22題:什么是sequential訪問文件?
這種文件用來存儲數據,在寫數據的時候會按照按照一個序列模式。在讀取的時候也是按照這個模式往外讀取。
第23題:如何向棧數據結構里面存儲數據?
這樣的數據是先進后出的。只有頂部的數據才可以被訪問到。存儲的時候使用push,獲取的時候使用pop。
第24題:C程序算法的意義是什么?
算法的意義在于提高程序的執行效率,是注重空間的節省,還是注重時間的節省,是寫算法時需要考慮的因素。
第25題:volatile關鍵字的作用?
volatile指定的關鍵字可能被系統、硬件、進程/線程改變,強制編譯器每次從內存中取得該變量的值,而不是從被優化后的寄存器中讀取。
第26題:如下條件判斷運算符哪個在c語言里不可用?
==, <>, <=, >=
答案是<>。
第27題:在c語言中可不可以用大括號包含一行代碼?
是的, 當然可以。很多程序員使用大括號來規范代碼結構,不管是一行還是多行。
第28題:描述一下modifier。
Modifier是數據類型的前置,用來標識存儲空間的大小。
比如說在32位處理器系統中, 整形的長度為4bits。
如果我們加了如下的modifier:
Long Int 就可以存8 bits。
Short Int 占 2 bits。
第29題:在c語言中有哪些modifiers?
Short
Long
Signed
Unsigned
long long
第30題:在c語言中如何產生隨機數?
rand 函數就是用來產生隨機數的,它可以產生任意從0開始的整數。
第31題:能不能在整型中存放32768這個數?
整數類型可以存放從-32768~32767之間的任何數值。但是32768不在這個范圍之內。這個時候modifier是我們需要的東西。Long Int數據類型就可以存放這個數。
第32題:在c語言中可以自定義頭文件嗎?
是的, 當然可以, 定義完頭文件以后可以存放函數的原型。
使用的時候, 用include來包含這個文件的名字。
第33題:解釋一下c語言中的動態數據結構。
動態數據結構在訪問內存方面非常高效。內存的訪問,要因程序的需求而定。
第34題:什么是indirection?
如果你定一個指針變量, 它指向一個值變量或者一個內存對象。在這種情況下,對這個值變量和對象來說沒有一個直接的引用。這種情況就是indirection.
但是如果我們聲明一個變量,它對值來說就是一個直接的引用。
第35題:在c語言中,什么時候會用到空指針?
有三種情況,在c語言中會用到空指針。
作為一個錯誤值。
作為一個監測值。
在一個遞歸數據結構中終止indirection。
第36題:解釋一下模塊化編程。
把主程序分成多個小的,可執行的模塊稱為模塊化編程。這個概念是為了增強重用性。同時也提高了程序的可維護性。
第37題:Call by value和call by reference有什么區別?
call by value傳的是值。Call by reference傳的是地址。
第38題:如何在c語言中定義一個字符串變量?
使用char定義一個字符數組。
第39題:在函數定義的時候何時用void?
當函數沒有返回值時,可以用void。
第40題:什么是preprocessor directives?
Preprocessor directives一般放在程序的開頭。主要是用來指定調用庫文件的。還有一個用途是用來定義一些常值變量,宏定義等等。#開頭。
第41題:這樣賦值對不對?錯在哪里?
myName="test";
不對。
我們不能用等號給一個字符串賦值。需要使用strcpy。
第42題:為什么c語言被認為是中級語言?
這是因為c語言既能像高級語言那樣編寫程序,又可以像低級語言如匯編那樣直接操作硬件。
第43題:什么是鏈表?
鏈表是一系列的元素連接在一起形成的數據結構。在c語言中,鏈表是用指針來構建的。使用鏈表數據結構是使用內存操作比較的一種方式。
第44題:什么是fifo?
First in first out. 隊列是典型的first in first out,數據結構。
第45題:什么是二叉樹?
二叉樹是鏈表的延伸。它的每一個節點都有兩個指針,一個指向左,一個指向右。
第46題:C語言中有些保留著是大寫的對嗎?
不對,c語言中的所有保留字必須是小寫,否則的話c的編譯器會報錯。
第47題:什么是輸出重定向?
輸出重定向是指把程序的輸出,除了輸出在屏幕上以外的另外選擇, 比如說,輸出到一個文件里。
第48題:什么是全局變量,如何定義它們?
全局變量是指在程序中任何地方都可以訪問到的變量。它一般定義在preprocessor directives的后面。
第49題:getch和getche, 這兩個函數的區別是什么?
前者是把用戶的輸入分配給一個變量。
后者是把用戶的輸入打印到屏幕上,同時分配給一個變量。
第50題:文本文件和二進制文件的區別是什么?
文本文件存放的是人類可以閱讀的內容,它包含字母數字和其他的字符。
而二進制文件存放的是1和0,只有電腦才能夠讀懂。
第51題:如何用隨機訪問的方法在一個數據文件中搜索數據?
fseek
在文件打開以后提供三個參數給這個函數。一個是文件的指針,一個是要搜索的字節數,再一個是文件中的搜索起點。
第52題:在c語言中有沒有內置的排序函數?
qsort
第53題:heap的優點和缺點是什么?
在heap上存放數據,要比在stack上存放數據要慢。
但是使用heap的主要優勢是靈活性。這是因為內存的訪問, 分配以及刪除可以按照任意順序來執行。
通過好的算法和設計可以規避heap速度慢的問題。
第54題:如何把字符串變成數字?
atoi
atof
使用c語言里面的內置函數可以做到。你也可以自己寫函數。
感謝各位的閱讀,以上就是“C語言常見的面試題有哪些”的內容了,經過本文的學習后,相信大家對C語言常見的面試題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。