1.類型轉(zhuǎn)化
- 隱式轉(zhuǎn)化:
float_f=int_t/int_t1
當(dāng)賦值號(hào)兩邊類型不同時(shí)达吞,自動(dòng)轉(zhuǎn)化成精度較高的類型
5/3=1.000000
9.120000/5=1.824000 - 顯式轉(zhuǎn)化:
float_f=(float)int()
強(qiáng)制類型轉(zhuǎn)化讶凉,并不改變變量類型,只臨時(shí)做一次類型轉(zhuǎn)化
2.位運(yùn)算符
“&”:位與
將十進(jìn)制數(shù)逸月,八進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù),進(jìn)行位與運(yùn)算(對(duì)應(yīng)位同時(shí)為1,則為1冲甘,否則為0)“|”:位或
將十進(jìn)制數(shù),八進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù)途样,進(jìn)行位或運(yùn)算(對(duì)應(yīng)位只要有1江醇,同時(shí)為0,才為0)
*~:非(取反)
~23 = -24 (~取負(fù)數(shù)減1) 計(jì)算機(jī)是補(bǔ)碼存儲(chǔ)何暇,原碼輸出L找埂!裆站!
原碼:正數(shù)的原碼是其本身
反碼:符號(hào)位不變条辟,其它位按位取反
補(bǔ)碼:負(fù)數(shù)的補(bǔ)碼是其正數(shù)的原碼取反加1
0001 0111
補(bǔ)碼: 1110 1000
反碼: 1110 0111
原碼: 1001 1000“^”:異或
對(duì)應(yīng)位不同為1,相同為0宏胯;”<<“:左移
8<<2 = 32 轉(zhuǎn)化為二進(jìn)制羽嫡,然后左移2位,低位補(bǔ)0 左移幾位胳嘲,則乘以2的幾次方-
”>>“:右移
8>>2 = 2 轉(zhuǎn)化為二進(jìn)制厂僧,然后右移2位,高位補(bǔ)0二進(jìn)制數(shù):由0和1組成 八進(jìn)制數(shù):由0~7組成了牛,八進(jìn)制數(shù)開(kāi)頭是0颜屠,以區(qū)分八進(jìn)制數(shù) 十六進(jìn)制數(shù):由數(shù)字0~9和字母A~F,并以0x或0X開(kāi)頭
進(jìn)制表格:
十進(jìn)制 | 二進(jìn)制 | 八進(jìn)制 | 十六進(jìn)制 |
---|---|---|---|
0 | 0000 | 000 | 0 |
1 | 0001 | 001 | 1 |
2 | 0010 | 002 | 2 |
3 | 0011 | 003 | 3 |
4 | 0100 | 004 | 4 |
5 | 0101 | 005 | 5 |
6 | 0110 | 006 | 6 |
7 | 0111 | 007 | 7 |
8 | 1000 | 010 | 8 |
9 | 1001 | 011 | 9 |
10 | 1010 | 012 | A |
11 | 1011 | 013 | B |
12 | 1100 | 014 | C |
13 | 1101 | 015 | D |
14 | 1110 | 016 | E |
15 | 1111 | 017 | F |
3.賦值操作符
賦值號(hào):=+= -= *= /= %=&= |= >>= <<=
4.邏輯運(yùn)算符和條件運(yùn)算符
邏輯運(yùn)算符
- &&:邏輯與 表達(dá)式1 && 表達(dá)式2
當(dāng)表達(dá)式1和2同時(shí)為真時(shí),結(jié)果為真鹰祸,否則為假
注意:當(dāng)表達(dá)式1為假時(shí)甫窟,表達(dá)式2無(wú)需計(jì)算,結(jié)果為假 - ||:邏輯或 表達(dá)式1 || 表達(dá)式2
表達(dá)式1和2只要有一個(gè)為真蛙婴,結(jié)果就為真
注意:當(dāng)表達(dá)式1為真時(shí)粗井,表達(dá)式2無(wú)需計(jì)算,結(jié)果為真 - !:非
若表達(dá)式為真街图,則結(jié)果為假 若表達(dá)式為假浇衬,則結(jié)果為真
條件運(yùn)算符
- ?: 表達(dá)式1 ? 表達(dá)式2:表達(dá)式3
若表達(dá)式1為真餐济,則執(zhí)行表達(dá)式2耘擂,否則執(zhí)行表達(dá)式3 a>b?a:b
5.運(yùn)算符優(yōu)先級(jí)
括號(hào)成員第一,全體單目第二絮姆,乘除余三醉冤,加減四秩霍;
位移五,關(guān)系六蚁阳,等于不等排第七铃绒;
位于,異或和位或八九十螺捐,邏輯或和與十二與十一颠悬;
條件高于賦值,逗號(hào)運(yùn)算最低归粉。
6.C語(yǔ)言的三大結(jié)構(gòu)
順序結(jié)構(gòu)椿疗、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
1.分支結(jié)構(gòu)
(1) if( )
{
...
}
表達(dá)式為真糠悼,則執(zhí)行在{}里的語(yǔ)句,否則不執(zhí)行
(2)if( )
{
...
}
else
{
...
}
(3)if( )
{
...
}
else if()
{
...
}
else if( )
else
(4)if的嵌套使用
(5)使用if
if條件句后面只有一條語(yǔ)句時(shí)浅乔,可以不加{}倔喂;
但此語(yǔ)句不能是變量定義語(yǔ)句。在if的{}里定義的變量靖苇,只能在{}中使用席噩,在{}外無(wú)效!O捅凇悼枢!
2.switch....case:
switch(option)
case option:
break;
....
default:
- 根據(jù)option的值執(zhí)行case語(yǔ)句,若沒(méi)有與之對(duì)應(yīng)的值 則執(zhí)行default語(yǔ)句
- 注意事項(xiàng): default語(yǔ)句可以放在switch{}里的任意位置: case語(yǔ)句后的{}脾拆,可以省略不寫(xiě)馒索, 當(dāng)case后的執(zhí)行語(yǔ)句超過(guò)3條,則建議加{}C4律稀!**
- case語(yǔ)句中的break視情況而定是否寫(xiě): 若case語(yǔ)句中無(wú)break渠驼,則順次執(zhí)行所有的case語(yǔ)句 知道把所以case語(yǔ)句全部執(zhí)行完蜈块,退出switch語(yǔ)句和;
3.循環(huán)結(jié)構(gòu) while() do{}while() for(;;)
(1)while(表達(dá)式)
{
執(zhí)行語(yǔ)句
}
**先判斷條件是否滿足執(zhí)行條件迷扇,滿足則執(zhí)行循環(huán)體百揭, 不滿足則退出循環(huán),循環(huán)結(jié)束之后再判斷蜓席。器一。。 **
(2)break/continue :
break:
跳出循環(huán)瓮床!
continue:
跳過(guò)這次循環(huán)執(zhí)行下一次循環(huán)盹舞!
(3)do{}while()产镐;
do {
//循環(huán)體
}
while(表達(dá)式);
先執(zhí)行后判斷踢步!
(4)for( ; ; )
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
//循環(huán)體癣亚;
}
表達(dá)式1:循環(huán)條件初始化
表達(dá)式2:循環(huán)結(jié)束條件或者循環(huán)執(zhí)行條件
表達(dá)式3:循環(huán)步長(zhǎng)或者變量值的更新
注:表達(dá)式1,2,3可以任意省略或全部省略 但是“;获印;“不可省略述雾!
作業(yè):
1.字母金字塔
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
..............
ZZZZZZZZZZZZZZZZZZZZZZZZZZ
- 要求:用for循環(huán)或者while循環(huán)實(shí)現(xiàn)!
完成:
#include<stdio.h>
int main()
{
int row=0;
int col=0;
int num=26;
char ch='A';
for(row=1;row<=num;row++)
{
for(col=1;col<=num-row;col++)
{
printf(" ");
}
for(col=1;col<=2*row-1;col++)
{
printf("%c",ch);
}
ch++;
printf("\n");
}
}
2.實(shí)現(xiàn)數(shù)字時(shí)鐘
完成:
#include<stdio.h> int main() { int h; int m; int s; for(h=0;h<24;h++) { for(m=0;m<60;m++) { for(s=0;s<60;s++) { sleep(1); printf("時(shí)間 %d:%d:%d",h,m,s); printf("\n"); system("clear"); } m=0; } h=0; } return 0; }