C C 筆試題目

2021-09-09 00:26:37 字數 1443 閱讀 5436

1. c語言中無符號數與有符號數

unsigned int a = 6

;int b = -20

;printf(

"a+b = %d\n

",a+b); #輸出-14

printf(

"a+b %s \n

",(a+b)>0 ? "

> 0

":"< 0

"); #輸出a+b > 0

有符號數和無符號數在進行比較運算時(==,>=,<=,>,<),有符號數隱式的轉換成無符號數。上述中,a+b的值為-14(1111_1111_1111_0010),但是a+b 比較時,隱式轉換成無符號數,因此輸出為》0

記住一點:-1為有符號整型資料,常量數值在整形範圍內,均為int型別,如果為正數或0,則作為無符號int,否則為有符號int。比較運算子兩邊的資料型別會在編譯器的幫助下,自動統一的。

再記住一點:c語言規定是從取值範圍小的往大的提公升,char—>unsigned char—>short—>unsigned short—>int--->unsinged int—>long—>unsigned long –>long long ---> unsigned long long

2. 函式不能反悔棧記憶體的指標,可以返回堆記憶體的指標。對於空指標,連續兩次free,不會出錯。對於非空指標,連續兩次free,會出錯。

int *a1;

a1 = (int*)malloc(10

); a1[

0]=10

; printf(

"a1:%p a1[0]:%d \n

",a1,a1[0]); //

輸出a1:0x85c9008 a1[0]:10

free(a1);

//free(a1);

//加上這句會報錯

printf("

a1:%p a1[0]:%d \n

",a1,a1[0]); //

輸出a1:0x85c9008 a1[0]:0

根據輸出可以得知,free後,a1的指向的位址值沒有改變,但是這塊位址所代表的空間已經是無效空間了,不能使用。為了防止這種情況,free後的,應該設定a1= null; 這樣,防止後面的**對a1的空間誤操作。

3. 引用與指標有什麼區別?

引用必須初始化,指標不需要。

引用初始化之後不能被改變,指標可以改變所指的物件。

不存在指向空值的引用,但是存在指向空值的指標

4.c語言演算法題目(一)

c語言演算法題目(二)

it公司筆試題目

it公司筆試題目2

it公司筆試題目3

it公司筆試題目4

c語言基本函式構造

it公司智力測試題目

面試中經常出現的演算法

關於陣列的幾道面試題

c c 筆試題目 轉2

一 請填寫bool float,指標變數 與 零值 比較的 if 語句。10分 請寫出 bool flag 與 零值 比較的 if 語句。3分 標準答案 if flag if flag 如下寫法均屬不良風格,不得分。if flag true if flag 1 if flag false if fl...

c c 筆試題目 林銳

本試題僅用於考查c c程式設計師的基本程式設計技能。內容限於c c常用語法,不涉及資料結構 演算法以及深奧的語法。考試成績能反映出考生的程式設計質量以及對c c的理解程度,但不能反映考生的智力和軟體開發能力。筆試時間90分鐘。請考生認真答題,切勿輕視。請寫出 bool flag 與 零值 比較的 i...

C C 筆試 面試題目總結,

基本都沒寫答案,查詢答案的過程就是學習的過程,會的也會引起一些思考。1.extern extern c 的作用,如何判斷一段程式是由c 編譯還是由c 編譯程式編譯的?2.程序和執行緒的區別和聯絡 3.inline 的作用 4.kmp演算法 5.函式呼叫方式 cdecl 堆疊由呼叫者清除 引數從右至左...