C語言筆試題

2021-05-28 08:03:28 字數 2572 閱讀 1828

有a、b、c、d四個人,要在夜裡過一座橋。

他們通過這座橋分別需要耗時1、2、5、10分鐘,只有一支手電,並且同時最多只能兩個

人一起過橋。

請問,如何安排,能夠在17分鐘內這四個人都過橋?

答案:a & b -->2 mins

1 mins <-- a

c & d -->10 mins

2 mins <-- b

a & b --> 2 mins

一共 2 + 1 + 10 + 2 + 2 = 17 mins

請定義乙個巨集,比較兩個數a、b的大小,不能使用大於、小於、if語句

答案:

#define

max(a,b)

((((long)((a)-(b)))&0x80000000)?b:a)

若a > b ,則a-b的二進位制最高位為0,與上任何數還是0,所以大數為a;

否則,a-b為負數,二進位制最高位為1,與上0x80000000(最高位為1其他為0)之後為1,

所以此時的大數為b.

如何輸出原始檔的標題和目前執行行的行數?

答案: printf("the file name: %d\n", __file__);

printf("the current line no:%d\n", __line__);

ansi c標準預定義巨集:

__line__

__file__

__date__

__time__

__stdc__

當要求程式嚴格遵循ansi c標準時該識別符號被賦值為1

希爾 冒泡 快速 插入 哪個平均速度最快?

答案:快速排序

快速排序、歸併排序和基數排序在不同情況下都是最快最有用的。

switch()的引數型別

只有int,short,byte,char 。記得不要把string也混入啊 ,switch( "abc" )就錯了

寫出float x 與「零值」比較的if語句。

if(x>=0.000001 && x<=-0.000001)(x不為0的比較)

float: 6位精度

double: 16位精度

描述實時系統的基本特性

答案:在特定時間內完成特定的任務,實時性與可靠性。

heap area存放程式的動態資料

stack area存放程式的區域性資料

1、棧區(stack)— 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。位址是由高向低減少的

2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os**。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。位址是由低向高增長的

static有什麼用途?(請至少說明兩種)

1). 在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。

2). 在模組內(但在函式體外),乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地的全域性變數。

3). 在模組內,乙個被宣告為靜態的函式只可被這一模組內的其它函式呼叫。那就是,這個函式被限制在宣告它的模組的本地範圍內使用。

引用與指標有什麼區別?

1) 引用必須被初始化,不存在指向空值的引用,乙個引用必須指向某個物件。指標不必立即初始化。

2) 引用初始化以後不能改變使其指向其他物件,但可以修改其指向物件的內容。指標可以被改變指向其他的物件。

3) 在使用引用之前不需要測試它是否為空,相反指標應該總被測試防止其為空。

4) 過載操作符必須使用引用才能完成串式操作

全域性變數和區域性變數在記憶體中是否有區別?如果有,是什麼區別?

全域性變數儲存在全域性靜態儲存區,區域性變數在堆疊

static變數和static 函式各有什麼特點?

答:static變數:在程式執行期內一直有效,如果定義在函式外,則在編譯單元內可見,如果在函式內,在在定義的block內可見;static函式:在編譯單元內可見;

static全域性變數與普通的全域性變數有什麼區別?

static全域性變數只能在本模組中呼叫,不能在其他檔案單元中被引用.而全域性變數可以使用extern在任何地方引用

static函式與普通函式有什麼區別:

static函式在記憶體中只有乙份,普通函式在每個被呼叫中維持乙份拷貝

程式的區域性變數存在於(堆疊)中,全域性變數存在於(靜態區 )中,動態申請資料存在於( 堆)中。

什麼建構函式不能宣告為虛函式?

答案: 虛函式採用一種虛呼叫的辦法。虛呼叫是一種可以在只有部分資訊的情況下工作的機制,特別允許我們呼叫乙個只知道介面而不知道其準確物件型別的函式。但如果要建立乙個物件勢必要知道其準確型別因此建構函式不能為虛。

C語言筆試題

1 用標準c程式設計 找出整形數字1 100之間的素數,並列印出來。素數 除了1和自己本身可以被整除。include stdio.h main inti,j,n 0 printf 1 100之間的素數 n for i 2 i 100 i for j 2 jif i j 0 break if i j ...

c語言 筆試題6 25

unsigned short a 10 printf a u n a char c 128 printf c d n c 解析 a 0xfffffff5,int值 為 11,但輸出的是uint。所以輸出4294967285 第二題,c 0x10,輸出的是int,最高位為1,是負數,所以它的值就是0x...

記C語言筆試題

記2021.1.29廣州通則康威筆試 面試的是軟體工程師 c語言偏嵌入式 總共6道題,30分鐘。1.static全域性變數和普通全域性變數的區別?static區域性變數和普通區域性變數的區別?static函式與普通函式的區別?經常會遇到的一道面試題。static修飾的全域性變數限定了該全域性變數的作...