三.define中的那些坑
首先我們來說一下,strlen這個函式,相信大家都知道,不就是乙個求字串長度的函式嗎?
看看這道題,你是否會掉裡面…
char x[ ]=「abcdefg」;我第一次看到,義無反顧的選擇char y[ ]=;
則正確的敘述為
a) 陣列x和陣列y等價 b) 陣列x和陣列y的長度相同
c) 陣列x的長度大於陣列y的長度 d) 陣列x的長度小於陣列y的長度
c
,結果涼涼了
其實這道題的考點,在於字串末尾的結束符 『\0』 以及strlen函式,是否計算』\0』我通過乙個程式給大家看一看
#include
#include
intmain()
;printf
("arr= %d str= %d\n"
,strlen
(arr)
,strlen
(str));
return0;
}
這裡為證
想必大家都知道了正確答案為d
那麼為什麼那,那個 14是哪來的?首先我們區分,strlen函式和sizeof 的區別
所以 x 字串的長度就是 7個字母的長度 7
char x=
"abcdefg"
;
而y 字串,因為後面沒有 『\0』 ,strlen 不會計算陣列的邊緣,越界後繼續找,直到找到 『\0』 為止,具體是多少,不一定在我這是14,在你們那可能是 10 等等,總之肯定是比 7 大的
char y=
;
首先 || 是邏輯運算子,而 | 是位運算子先給大家看到題再說
設x,y,z,t均為int型變數,則執行以下語句後,t的值為第一次做這個題真掉進去了直接選擇x=y=z=1;
t=++x||++y&&++z;
a) 不定值 b) 2 c) 1 d) 0
b
,結果又涼了
我還是用程式給大家說明
#include
intmain()
執行結果
我們要理解下面兩點
我們看看這道題,執行的優先順序我用括號括起來,先看 ++x ,x=2,x不為0.所有為真,那麼運算的結果就為真,右邊的將不在看,因為沒有意義,所有y和z保持原來的值
t=
(++x)||(
++y&&
++z)
;
按位或運算子(|)參加運算的兩個數,按二進位制位進行「或」運算。
算規則:參加運算的兩個數只要兩個數中的乙個為1,結果就為1。
即 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1 。按位與運算子(&)參加運算的兩個數,按二進位制位進行「與」運算。例:2 | 4 即 00000010 | 00000100 = 00000110
所以2 | 4的值為 6
運算規則:只有兩個數的二進位制同時為1,結果才為1,否則為0。(負數按補碼形式參加按位與運算)
即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。異或運算子(^)參加運算的兩個數,按二進位制位進行「異或」運算。例:3 &5 即 00000011 & 00000101 = 00000001
所以 3 & 5的值為1
運算規則:參加運算的兩個數,如果兩個相應位為「異」(值不同),則該位結果為1,否則為0。
即 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0 。有的簡單的筆試題會讓我們寫出 標準巨集 min;,為什麼要強調標準,一定一定要注意括號例: 2 ^ 4 即 00000010 ^ 00000100 =00000110
所以 2 ^ 4 的值為6
#define min(a,b) (((a)
給大家分享乙個例題
求答應的結果像這種題我們之間挪下來,在看#define sqr(x) x*x
main( )
a/= k+m * k+m / k+m * k+m則a的值為9,其實我嗎求出的 a 為 9.5 但是注意a的資料型別是 int 型的,所有為 9,這就是考察我們的細心程度a/=2+12+1/2+12+1
a=9
C語言筆試題中的「坑」
其實這話說的不對,應該說不只是c語言,恐怕是面試題總會有那麼一些坑等著我們踩,今天,就羅列了一些看似簡單,卻很容易中招的面試題 1 以下程式的執行結果為。inlcude define n 2 define m n 1 define num m 1 m 2 main a 5b 6c 8d 9 嘿嘿,當...
筆試題中的必勝策略
比如,題目是這樣的 現在有兩堆石子,小今與小條玩遊戲,2個人都足夠聰明,兩個人規定 每次每人只能從其中一堆中取走1個或2個或3個石子,最後將石子全部取完的人勝利.現在兩堆石子的個數為8和9,請問如何安排才能讓小今必勝?答案是 讓小今先取。其實這裡是有規律可循的,可歸結為 取餘制勝 詳解如下 一 取餘...
C語言筆試題紀錄(一)
下列不是linux系統程序型別的是 d a.互動程序b.批處理程序c.守護程序d.就緒程序 程序狀態 聯合體union的記憶體大小判斷 為其包含的成員的記憶體大小的最小公倍數 命令kill 9 的含義是 d a.kills the process whose pid is 9 b.kills all...