C和C 程式設計師面試秘笈

2021-09-25 09:21:11 字數 2094 閱讀 6859

本系列部落格基於董山海的[email protected] !

第一章:c/c++程式基礎

賦值語句:位運算與邏輯運算以及三元操作符的區別

c++域操作符,注意全域性變數和區域性變數的區別

++i

++i++

i:先 i

ii 自增 1

11,然後再列印 iii;

i ++

i++i+

+:先列印 i

ii,再 i

ii 自增 111;

− i−

−-i--

−i−−

:先列印 −i-i

−i,再 i

ii 自減 1

11;

內建資料型別的時候,i++

i++i+

+ 與 ++i

++i++

i 效率沒有區別;

自定義資料型別(比如類)的時候,++i

++i++

i 效率比較高;

有符號變數與無符號變數的值的轉換

#include

//char getchar (

int x,

int y)

//int main (

void

)

輸出結果為:

c 1=

1c1=1

c1=1

,c 2=

2c2=2

c2=2

,c 3=

2c3=2

c3=2

,c 4=

1c4=1

c4=1

首先,c語言中提供了很多資料型別,比如整型 (in

t)

(int)

(int

)等,它們的區別就是範圍的大小,int代表是有符號的整數,可正可負可為0。所以基本資料型別劃分為signed(有符號)和unsigned(無符號)兩大類。

整數是以原碼的形式儲存的,而負數是以補碼的形式儲存的,原碼大家都知道也就是它對應的二進位製碼,那什麼是補碼呢,就是原碼的反碼加1,反碼就是原碼的各位取反。

當乙個有符號和乙個無符號之間的數進行相加減會發生什麼呢?

是這樣的:a+b

a+ba+

b,首先把負數轉換為無符號數,然後在進行運算。

b

bb 轉換為無符號數就是對 b

bb 取模,232+

b2^+b

232+

b,結果為4294967286。

不使用任何中間變數就將a、b值進行交換,推薦異或交換方式。

#include

using

namespace std;

//使用加減法完成交換

void

swap1

(int

&a,int

&b)//使用區域性變數進行交換

void

swap2

(int

&a,int

&b)//使用異或運算完成交換

void

swap3

(int

&a,int

&b)

標準標頭檔案中的一些通用結構

#ifndef _incvxworksh  

//這邊防止該標頭檔案被重複引用,如果不存在,則定義

#define _incvxworksh

#ifdef _cplusplus

//這邊表示使用的是c++編譯器

extern

"c"#endif

/* _incvxworksh */

標頭檔案引用中的 <> 與 " " 的區別

尖括號 <>:表示這個檔案是乙個工程或者標準標頭檔案,查詢過程會首先檢查預定義的目錄,我們可以通過設定搜尋路徑或者命令列來修改這些目錄;

引號" ":表示該檔案是使用者提供的標頭檔案,現在當前檔案目錄中尋找,然後在標準位置尋找檔案。

《C和C 程式設計師面試秘笈》中存在的錯誤

最近在複習c 面試的考點,所以購買了 c和c 程式設計師面試秘笈 這本書 人民郵電出版社2014.3 isbn 978 7 115 34113 6 因為我只選擇性的看了第1 2 3 5 6 7章 全文共12章 所以本文只列出了這幾個章節中存在的錯誤。頁碼面試題編號 存在的錯誤 p15面試題11 只會...

《C和C 程式設計師面試秘笈》第8章 資料結構

include include 1 單鏈表的 建立 鍊錶節點的定義 typedef struct node node typedef node ptrnode 建立單鏈表 輸入每個節點的資料,輸入0表示停止建立 node createsinglelist else tail next null li...

C和C 面試秘笈一 C和C 程式基礎

一 c 域操作符 首先看下面的這一段 include int value 0 void printvalue int main 如果我們直接編譯,編譯器會報錯,因為這是乙個c檔案,在c語言中還沒有域操作符 但是只要我們改變了標頭檔案。寫成c 檔案,然後編譯就可以正常輸出了。輸出的結果是 value ...