C語言學習 2

2022-09-15 13:42:21 字數 4126 閱讀 3402

第乙個:注意縮排

用tab鍵縮排對齊

第二個:適當的空行

第三個:注釋,簡明扼要

c語言注釋只有兩種寫法:

第一種:單行注釋    //注釋文字

第二種:塊注釋  /*  注釋的內容  */,塊注釋不能巢狀

尤其是重要的核心**必須寫注釋

第四個:命名,通俗易懂,英文,千萬不要用拼音

算術運算子   +   -   *    /    % (取餘) 

關係運算子    >    =    <=

邏輯運算子    ||邏輯或     &&邏輯與    !邏輯非

指標運算   *    &

三目運算子    ?:

求資料型別大小,變數大小    sizeof

位運算           &   |    ~   ^

組合運算       +=   -=   *=   \=      &=   |=  

移位運算        >>   <<

自增自減       ++    --

(1) 除法

情況一:

兩個整數相除,結果取整,而且不會四捨五入

情況二:

除法運算中有乙個是小數

1/2  --》結果不是0.5  是0

16/3 --》5

2/3 --》

#include int

main()

結果如下:

0

0.000000

0.666667

0

(2)取餘,計算餘數

只能用於整數運算     15%2  餘數1

15.0%2  不對的,小數不能參與取餘運算

實際開發作用:

除法和取餘配合實現獲取乙個數的各個位

任意輸入乙個整數,程式設計得到這個整數總共多少位,各個位分別是多少

(3)邏輯運算,跟條件判斷配合在一起使用

if(a>b)

數學中:   10c語言中: if(x>10 && x<100)

if(姓名==zhang || 姓名==王)  //或者

if(姓名==zhang && 富二代)  //並且

重點:區分==和= 

==用來判斷變數是否相同   if(a==b)

= 賦值運算符號

c語言規定的真和假

非零就是真  1   18   -9

零就是假

表示式一 || 表示式二 ||  表示式三   //從左到右,有乙個條件為真,後面的都不用運算了,整個表示式都為真

表示式一 && 表示式二 &&  表示式三  //從左到右,有乙個條件為假,後面的都不用運算了,整個表示式都為假

if(有房&&有車&&帥)

邏輯非     真--》假

假--》真

#includeint

main()

結果如下:

a>b
(4) 三目運算子

表示式1?表示式2:表示式3

判斷表示式1是否為真

為真 --》執行表示式2

為假 --》執行表示式3

#include int

main()

結果如下:

請輸入兩個整數!

1520

15和20中較大的乙個數是:

20

(5)位運算(重點)

對整數的二進位制進行運算

按位與 &     只要有乙個是0結果就是0,全部都是1,結果就是1

比如:  18&16結果是多少?    int  a=89; int b=96;   a&=b;  //等價於 a=a&b;

18 --》二進位制  10010

16 --》二進位制  10000

特點:  任意乙個整數要求把它的第三位二進位制置0,其它位不允許改變

125--》二進位制1111101 --》最終希望的結果1111001

1111101  --》125

1111011  &

任何二進位制位跟1進行按位與運算結果保持不變

任何二進位制位跟0進行按位與運算結果一定是0

按位或 |      只要有乙個是1,結果就是1,全部都是0,結果就是0

比如:  18|16結果是多少?

18 --》二進位制  10010

16 --》二進位制  10000

特點:實際開發中,用位或運算去設定某一位二進位制為1

int a=785;

00000.....100  或

任何二進位制位跟0進行按位或運算結果保持不變

任何二進位制位跟1進行按位或運算結果一定是1

按位異或 ^   相同為0,相異為1

比如:  18^16結果是多少?

18 --》二進位制  10010

16 --》二進位制  10000

特點:實際開發中我想把某個數的二進位製取反

比如:  int  a=785  第三位二進位製取反

0000........100      異或 

乙個數跟自己異或,結果為0       a^a結果為0

異或滿**換律                           a^b^a等價於  a^a^b

乙個數跟0異或,結果保持不變    a^0結果為a

按位取反 ~   0變成1    1變成0

比如: ~18結果是多少?

18 --》二進位制  10010

~18 --》          01101

(6)組合運算(復合運算)

+=      a+=10; //等價於   a=a+10;

(7)移位

左移  <

18<<2;  //18左移2位

0000000000.........10010<<2

特點:乙個數左移n位,相當於乘以2的n次方

右移  >>   把乙個整數的二進位制整體向右移動若干位,高位補什麼??

算術右移:  高位補符號位

邏輯右移:  高位補0 

特點:乙個數右移n位,相當於除以2的n次方

(8)自增和自減

a++   後置++    先使用a原本的值,然後再把a加1賦值給自己

++a   前置++    先把a加1,然後再使用加一之後的a 

a--     後置--    先使用a原本的值,然後再把a減1賦值給自己

--a     前置--    先把a減1,然後再使用減一之後的a

#include int

main()

結果如下:

b is:79  a  :80   c:79
練習:1.      float  a=1.6;

if(a==1.6)   //請問這個條件是否成立,為什麼

#include int

main()

結果如下:

b==1.5

a!==1.6 a is:1.600000

2.      int  a=10;

int  b=6;

if((a<2)||(b=18))

printf("a ,s:%d    b  is:%d\n",a,b);

if((a<12)&&(a>b)&&(a=96))

printf("a ,s:%d    b  is:%d\n",a,b);

#include int

main()

結果如下:

a is:10    b  is:18
3.     用三目運算子實現三個整數求最大值

#include int

main()

結果如下:

請輸入三個整數!59

4最大值result

is:9

總結按位或,按位異或的特點

完成任意乙個整數m,要求把它的第三位二進位制置零,置一,取反,其它二進位制位不允許改變

將這個數&0xfffb,將第三位置0;

將這個數|0x0004,將第三位置1;

將這個數^0x0004,將第三位取反;

C 語言學習 2

程式2 題目 企題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 ...

c語言學習 2

在c語言程式設計中,比較重要的一點是變數要先宣告後使用,幾個變數的型別之前已經說過,不在贅述,注意unsigned表示不帶小數點的正數,輸出函式格式 printf printf 格式控制字串 輸出表列 其中格式控制字串用於指定輸出格式。格式控制串可由格式字串和非格式字串兩種組成。格式字串是以 開頭的...

c語言學習2

ubuntu下面c源程式的各種檔案的獲得 比如有乙個源程式為a.c檔案 1 為了獲得可執行檔案可以使用命令 gcc a.c o a其中 o是用來指定所生成的可執行程式的檔名,比如這裡生成的檔名是a。gcc a.c o a.out生成a.out。2 如果程式中用到了不是gcc預設的庫函式的時候,比如程...