c課堂筆記 day-2

1.類型轉(zhuǎn)化

5/3=1
9.120000/7.000000=1.302857
隱式轉(zhuǎn)化:
float_f=int t/int t1
當賦值號兩邊類型不同時十拣,自動轉(zhuǎn)化為精度較高的類型。
5/3=1.000000
強制類型轉(zhuǎn)化,并不改變變量的類型,只臨時作一次類型轉(zhuǎn)化
float f=(float)int t/int t1

        #include<stdio.h>
        int main()
        {
            int num=4;
            int num1=3;
            float dev;
            //隱式轉(zhuǎn)化
            dev=num/num1;
            //顯示轉(zhuǎn)化
            float dev1=(float)num/num1;
            printf("%f  %f\n",dev,dev1);

        }

2.進制轉(zhuǎn)換

(1)二進制數(shù):由0和1組成
2^0 2^1 2^2 2^3 2^4 2^5 2^6 2^7 (這是代表2的n次方)
1 2 4 8 16 32 64 128

0101010 11111 10101
(10101)=12^0+021+1*22+02^3+12^4

(2)八進制數(shù):由0~7組成的,八進制數(shù)開頭是數(shù)字0,以區(qū)分八進制數(shù)
0345 0123 0765 0765 八進制不能有8 0987 這就是錯的

(3)十六進制數(shù):由數(shù)字0~9和字母a~f或者A~F組成成福,
并且以0x或者0X開頭
0x123 0xab34 0xABf35

(4)進制數(shù)的轉(zhuǎn)化關系
二進制數(shù):1111
十進制數(shù):8421

3.位操作 (先轉(zhuǎn)化為二進制)

&:位與 (對應位同時為1,結(jié)果為1荆残,否則為0E!内斯!)

4&3=0100&0011= 位與位乘=00蕴潦,10,01,01=0000=0
12&7=1100&0111=10,11,01,01=0100=4

|:位或 (對應位有1為真)

4|3=0100|0011=0111=7
13|9=1101|1001=1101=13
023|5=0001 0111|0000 0101=0001 0111=23

~:非(取反)

~23: -23-1=-24 就這樣理解 任何數(shù)以負數(shù)減一

^:異或 (對應位不同為1,相同為0)

53=01010011=0110=6

                #include<stdio.h>
                int main()
                {
                    int num=4^7;
                    printf("num=%d\n",num);
                 }
<<:左移
          即轉(zhuǎn)化為二進制俘闯,然后左移2位潭苞,低位補0 
          左移幾位,則乘以2的幾次方!!!
          8*2^2=32
          8<<2 =1000=100000=32    
>>:右移
          與左移相反 
          8/2^2   
          9>>2 =2  高位溢出
          8>>2 =1000=0010=2
4.賦值操作符

=: 賦值號(把右側(cè)值賦給左側(cè)值)
+=:num+=i------->num=num+i
-=:
*=:
/=:
%=:
&=:
|=:
. >>=:
<<= : num>>=i------->num=(num>>i)

    #include<stdio.h>
    int main()
    {
        int num=12;
        printf("num=%d\n",num);
        num=12;// 這里要賦值  不然結(jié)果會累加
        num+=23;
        printf("num+=23:%d\n",num);
        num=12;
        num*=2;
        printf("num*=2:%d\n",num);
        num=12;
        num<<=2;
        printf("num<<=2:%d\n",num);
     }
5.邏輯運算符和條件運算符

(1) &&:邏輯與
表達式1 && 表達式2; 表達式同時為真备徐,結(jié)果為真
注意:當表達式1為假時萄传,表達式2無需運算甚颂,真題結(jié)果為假
||:邏輯或
表達式1 || 表達式2; 一個表達式為真蜜猾,結(jié)果為真
注意:當表達式1為真時,表達式2無需運算振诬,真題結(jié)果為真
!:非
蹭睡!表達式 ; 表達式為真,結(jié)果為假

#######include<stdio.h>
int main()
{
int num=2;
printf("%d\n",num>3&&8>num); =0
printf("%d\n",num>10||num<3); =1
printf("%d\n",!(num>3)); =1
}

#include<stdio.h>

int main()
{
int num=3;
(num+=3)>9&&(num-=3)<8; 賦值不是條件 遇到不成立的條件就停止運算 =6
printf("num=%d\n",num);

}

(2)條件運算符

赶么?: a>b?a:b
表達式1肩豁?表達式2:表達式3
若表達式1為真,則執(zhí)行表達式2 否則執(zhí)行表達式3

        #include<stdio.h>
        int main()
        {
           int num=6;
           int num1=2;
           int sum=num>num1?num:num1;
           printf("max=%d\n",max); =6
           
        }

       a,b,c  ------>三個數(shù)求max;
       a>b?(a>c?a:c):(b>c?b:c)
       
        #include<stdio.h>
        int main()
        {
           int a,b,c,max;
           printf("輸入數(shù):\n");
           scanf("%d %d %d",&a,&b,&c);
           max=a>b?(a>c?a:c):(b>c?b:c);
           printf("max=%d\n",max); 
           
        }

6.運算符的優(yōu)先級

括號成員第一,全體單目第二清钥,乘除余三琼锋,加減四;
位移五,關系六祟昭,等于不等排第七缕坎;
位與,異或和位或八九十篡悟;
邏輯或和與十二與十一谜叹;
條件高于賦值,逗號運算最低搬葬;

二.c語言的三大結(jié)構(gòu)

順序結(jié)構(gòu)荷腊、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
1.順序結(jié)構(gòu)
(1) if (表達式) 這里條件為真(1)就執(zhí)行花括號里面的內(nèi)容 為假(0)則不執(zhí)行

#include<stdio.h>

int main()
{
int num =8;
if(1) //這里條件為真(1)就執(zhí)行花括號里面的內(nèi)容 為假(0)則不執(zhí)行
{
printf("num=%d\n",num);
}
printf("hello,world\n");

}
(2) if.......else....(if成立就執(zhí)行 否則執(zhí)行else)

#include<stdio.h>
int main()
{
    int num=0;
    printf("input num:\n");
    scanf("%d",&num);
    if((num%3==0) && (num%5==0))
    {
        printf("%d 是3和5的倍數(shù)\n",num);
    }
    else
    {
        printf("%d 不是3和5的倍數(shù)\n",num);
    }
    
}


#include<stdio.h>
int main()
{
int num;
printf("input num:\n");
scanf("%d",&num);
if(num>10)
{
printf("num>10\n");

    }
    else
    {
        printf("num<10\n");
    }
    
}

(3) if....else if .....else...
else if 可以有多個后面跟條件
else 結(jié)尾 不能跟條件

    #include<stdio.h>
    int main()
    {
        int num =0;
        printf("input num:");
        scanf("%d",&num);
        if(num==100)
        {
            printf("該數(shù)是100\n");
            
        }
        else if(num>100)
        {
            printf("%d>100\n",num);
            
        }
        else
        {
            printf("%d<100\n",num);
        }
        
    }

練習:
90--100:優(yōu)秀
80--90: 良好
60--80: 一般
0--60 :不及格

 #include<stdio.h>
 int main()
{
   int a =0;

printf("input a :");
scanf("%d",&a);
if(a>=90)
    {
         printf("優(yōu)秀\n");
    }
else if(a>=80)
    {
        printf("良好\n");
    }
else if((a>=60)&&(a<80))  //這里的里面的
          括號為表示一個表達式為
         一個整體  不加也行
   {
        printf("一般\n");
   }
else
   {
        printf("不及格\n");
   }
}

(5) 使用if的注意事項
1.判斷一個區(qū)間的寫法
80<num<=90 這種寫法錯誤
num>80 && num<=90 這種寫法正確

2.if條件句后面只有一條語句時急凰,可以不加{}
if(1)
printf("hello\n"); 在不加花括號
的情況下 if條件成立 只執(zhí)行這一條語句
printf("world\n"); 這條不執(zhí)行
有效語句只有:printf("hello\n");

3.if條件句后面只有一條語句時女仰,可以不加{};但此語句不能為變量定義語句
#include<stdio.h>
int main()
{
if(1)
{
printf("hello\n");
nt num =10; // 定義在此處會報錯
他只能執(zhí)行到花括號里面
printf("world\n");
}
printf("%d",num); //把這層移到花括號里面才能執(zhí)行

    }

在if的{}里面定義的變量,只能在{}中使用香府,在{}之外無效6浴!

2.分支結(jié)構(gòu) switch....case
     (1) switch(option)
           {
               case :
               {
                   語句1
                   break; 
               } 
               case :
               {
                   語句2
                   break; 
               } 
               default:
               {
                   語句;
               }   
           }

根據(jù)option 的值選擇執(zhí)行case語句企孩,若沒有與之對應的case語句锭碳,則執(zhí)行default
default 可以放在任意位置 但里面要用break 跳出
break作用 若不加 則會按順序輸出所有case里面的語句直到遇到break為止
若沒有break 便會全部輸出
#include<stdio.h>
int main()
{
char ch;
printf("input ch:");
scanf("%c",&ch);
switch (ch)
{
case 'l':
{
printf("linux\n");
break;
}
case 'w':
{
printf("windows\n");
break;
}
default:
{
printf("error\n");

        }
   }
    
}
3.循環(huán)結(jié)構(gòu)
  while()         do{}while()        for(;;)

(1) while (表達式)
{
//執(zhí)行語句;
}
先判斷條件是否滿足執(zhí)行條件勿璃,滿足則執(zhí)行循環(huán)體
不滿足則退出循環(huán)
若條件滿足擒抛。則執(zhí)行循環(huán)體,每執(zhí)行一次循環(huán)體
進行一次條件判斷
#include<stdio.h>
int main()
{
int num =5;
printf("input num:");
scanf("%d",&num);
while(num>5)
{
printf("num=%d\n",num--); 每執(zhí)行依次
就要回到條件語句進行判斷
}
printf("hi,shanghai");

}

#include<stdio.h>
int main()
{
   int sum =0;
   int i =1;
 
   while(i<=100)
   {
        sum+=i;
        i++;
   }
   printf("%d\n",sum);
    
}

(2) break/continue
break:
跳出當前循環(huán) 結(jié)束整個循環(huán)
continue:
跳過本次循環(huán)补疑,進行下一次循環(huán)
#include<stdio.h>
int main()
{
int num=4;
while(num>3)
{
printf("num=%d\n");
continue;只執(zhí)行這句前面的語句 并進行死循環(huán)歧沪,
不執(zhí)行continue下面的語句
printf("===========\n");
}

  }

練習: 1--100的和把尾數(shù)為四的數(shù)去掉
#include<stdio.h>
int main()
{
int sum=0;
int i=1;
while(i<=100)
{
i++;
if(i%10==4)
continue;
sum+=i;
}
printf("%d\n",sum);

    }

(3)do
{

}while(); 先執(zhí)行后判斷

#include<stdio.h>
int main()
{
   int i=0;
   int sum=0;
   do
   {
      sum+=i;
      i++;
   }while(i<=100);  注意這里有分號
   printf("sum=%d\n",sum);
}

(4) for(表達式1;表達式2;表達式3)
{
//循環(huán)體;
}
表達式1:循環(huán)條件初始化
表達式2:循環(huán)結(jié)束條件或者循環(huán)執(zhí)行條件
表達式3:循環(huán)步長或者變量值的更新
注:表達式1,2莲组,3可以任意省略诊胞,或全部省略
但是,“;;”不能省略!G妈尽D旃隆!竭望!

            #include<stdio.h>
            int main()
            {
               int sum=0;
               int i=1;
               for(;i<=100;++i)
               {
                   sum+=i;
               }
               printf("sum=%d\n",sum);
            }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邪码,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子咬清,更是在濱河造成了極大的恐慌闭专,老刑警劉巖奴潘,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異影钉,居然都是意外死亡画髓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門平委,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雀扶,“玉大人,你說我怎么就攤上這事肆汹∮弈梗” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵昂勉,是天一觀的道長浪册。 經(jīng)常有香客問我,道長岗照,這世上最難降的妖魔是什么村象? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮攒至,結(jié)果婚禮上厚者,老公的妹妹穿的比我還像新娘。我一直安慰自己迫吐,他們只是感情好库菲,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著志膀,像睡著了一般熙宇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溉浙,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天烫止,我揣著相機與錄音,去河邊找鬼戳稽。 笑死馆蠕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的惊奇。 我是一名探鬼主播互躬,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赊时!你這毒婦竟也來了吨铸?” 一聲冷哼從身側(cè)響起行拢,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤祖秒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竭缝,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡房维,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抬纸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咙俩。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖湿故,靈堂內(nèi)的尸體忽然破棺而出阿趁,到底是詐尸還是另有隱情,我是刑警寧澤坛猪,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布脖阵,位于F島的核電站,受9級特大地震影響墅茉,放射性物質(zhì)發(fā)生泄漏命黔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一就斤、第九天 我趴在偏房一處隱蔽的房頂上張望悍募。 院中可真熱鬧,春花似錦洋机、人聲如沸坠宴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啄踊。三九已至,卻和暖如春刁标,著一層夾襖步出監(jiān)牢的瞬間颠通,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工膀懈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留顿锰,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓启搂,卻偏偏與公主長得像硼控,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胳赌,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 第1章 第一個C程序第2章 C語言基礎第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設計第5章 條件結(jié)構(gòu)程序設計第6章...
    小獅子365閱讀 10,613評論 3 71
  • C語言的學習要從基礎開始疑苫,這里是100個經(jīng)典的算法-1C語言的學習要從基礎開始熏版,這里是100個經(jīng)典的 算法 題目:...
    Poison_19ce閱讀 1,124評論 0 0
  • 一纷责、框架 1、Mac系統(tǒng)及常用工具撼短、進制;C數(shù)據(jù)類型再膳、常量變量、運算符曲横、表達式喂柒、格式化輸入輸出 2、關系運算符禾嫉、邏...
    師景福閱讀 679評論 0 1
  • 廢話不多說:1灾杰、創(chuàng)建一個工程 2、添加能夠在Appstore上下載軟件的賬號 3熙参、項目中配置賬號吭露,及自動生成Pro...
    一根聰閱讀 110評論 0 0
  • 記得兩三年來到本地近郊的一家度假酒店讲竿,規(guī)模不算大,也算不上豪華弄屡,消費水平也就不高题禀,但其功能設計挺別致,靈感源于元代...
    楊楊楊yes閱讀 435評論 0 0