亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語(yǔ)言基礎(chǔ)的幾個(gè)難點(diǎn)解析

        2014-12-31 00:00:00崔敏張嬋
        電子世界 2014年20期

        【摘要】本文結(jié)合C語(yǔ)言的教學(xué)實(shí)踐,講解了C 語(yǔ)言基礎(chǔ)知識(shí)的幾個(gè)難點(diǎn),是教學(xué)過(guò)程中學(xué)生較難掌握和容易出錯(cuò)的重要知識(shí)點(diǎn)。希望可以對(duì)學(xué)習(xí)C語(yǔ)言的讀者提供參考,能更好地理解C程序設(shè)計(jì)的思想、編寫出優(yōu)秀的C程序。

        【關(guān)鍵詞】C語(yǔ)言;整形數(shù)據(jù);溢出;運(yùn)算符;自增自減 switch;循環(huán)語(yǔ)句

        C語(yǔ)言作為國(guó)際上最流行的、應(yīng)用最廣泛的編程語(yǔ)言之一,一方面它具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),另一方面又有著低級(jí)語(yǔ)言的特性,既適合編寫操作系統(tǒng)、編譯器等系統(tǒng)軟件,同時(shí)也適用編寫各種應(yīng)用軟件。因此,C語(yǔ)言越來(lái)越多地成為高等院校計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)程序設(shè)計(jì)的首選課程。《C語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)專業(yè)的一門重要的基礎(chǔ)課程,也是《C++程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》等專業(yè)課的前導(dǎo)課程。筆者結(jié)合自己的教學(xué)實(shí)踐,談?wù)凜語(yǔ)言基礎(chǔ)知識(shí)的幾個(gè)難點(diǎn)。

        一、整型數(shù)據(jù)的范圍

        不同類型的數(shù)據(jù)在內(nèi)存中占用的存儲(chǔ)單元長(zhǎng)度不同,以VC++6.0的編譯環(huán)境為例,基本整型(int)數(shù)據(jù)分配4個(gè)字節(jié),短整型(short "int)數(shù)據(jù)分配2個(gè)字節(jié)。我們以short int為例。1個(gè)字節(jié)為8個(gè)二進(jìn)制位,每個(gè)短整型數(shù)據(jù)分配2個(gè)字節(jié),即16位。對(duì)于有符號(hào)位的短整型(signed short int,默認(rèn)的),最左面一位作為符號(hào)位,0表示正,1表示負(fù)。即能存儲(chǔ)的最大數(shù)為0111111111111111,第一位是0,表示正數(shù),后邊15位都是1,轉(zhuǎn)換為十進(jìn)制為32767;最小數(shù)為1000000000000000,轉(zhuǎn)換為十進(jìn)制為-32768。超出此范圍,即為“溢出”。例如:

        short int a,b,c,d; "a=32767;b=a+1; " c=-32768;d=b-1;

        printf(\"b=%d\t\",b); " printf(\"d=%d\n\",d); 輸出結(jié)果為b=-32768 " d=32767

        對(duì)于無(wú)符號(hào)的短整型(unsigned short int),最小為0000000000000000,最大為1111111111111111,范圍0~65535。例如:

        unsigned short int e=65535,f; "f=e+1;

        printf(\"f=%d\n\",f); " "輸出結(jié)果為f=0

        二、運(yùn)算符

        算術(shù)運(yùn)算符有+,-,*,/,%,++,--。其中,*號(hào)在表達(dá)式中不可以省略,如b2-4ac,寫成表達(dá)式為b*b-4*a*c。/和%要區(qū)分好,/為商,%為余。如a可以被b整除,表示為a%b==0。++,--的使用方法有兩種:一種i++,i--,先使用i原值,再使i的值加或減1;第二種++i,--i,先使i的值加或減1,再使用i的新值。例如:

        int i=11; printf(\"%d\n\",i++ * 1/3); " 輸出結(jié)果為3。

        int i=11; printf(\"%d\n\",++i * 1/3); " 輸出結(jié)果為4。

        自加自減運(yùn)算符在后邊的學(xué)習(xí)中會(huì)經(jīng)常用到,要好好理解。

        邏輯運(yùn)算符有amp;amp;,||,!。在邏輯表達(dá)式中,不是所有的邏輯運(yùn)算符都執(zhí)行,只在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解的時(shí)候,才執(zhí)行該運(yùn)算符。a amp;amp; b只有a為真時(shí),才判斷b的值。換句話說(shuō),a如果為假,b就不執(zhí)行。同理,a || b,a如果為真,b就不用執(zhí)行。例如:

        int m=1,n=1,a=1,b=1;

        printf(“表達(dá)式=%d\t”,(m=agt;b)amp;amp;(n=agt;b)); "printf(\"m=%d,n=%d\n\",m,n);

        輸出結(jié)果為 表達(dá)式=0 " m=0,n=1

        常用的運(yùn)算符的優(yōu)先級(jí)別從高到低排序?yàn)椋?!,算術(shù)運(yùn)算符(++,--高于*,/,%高于+,-),關(guān)系運(yùn)算符(gt;,gt;=,lt;,lt;=高于==,!=),amp;amp;,||,賦值運(yùn)算符,逗號(hào)運(yùn)算符。

        三、比較數(shù)的大小

        例如:編寫程序,輸出三個(gè)整數(shù)的最大值。剛接觸C語(yǔ)言的學(xué)生,大部分學(xué)生上機(jī)實(shí)踐都可以完成這個(gè)程序,但是思路不太好。調(diào)整算法思路,便于以后程序的編寫。

        main( )

        { int a,b,c,max; " "max=a;

        if(bgt;max) max=b; " if(cgt;max) max=c; "printf(\"max=%d\n\",max);}

        同理,編寫程序,輸出10個(gè)整數(shù)的最大值。

        main( )

        { int a[10],max,i; " for(i=0;ilt;=9;i++) "scanf(\"%d\",amp;a[i]);

        max=a[0]; "for(i=1;ilt;=9;i++) "if(a[i]gt;max) max=a[i];

        printf(\"max=%d\",max); " }

        四、switch語(yǔ)句

        處理選擇結(jié)構(gòu)有if語(yǔ)句和switch語(yǔ)句。switch語(yǔ)句用于處理多分支選擇結(jié)構(gòu),在使用時(shí)有多個(gè)注意點(diǎn),這里強(qiáng)調(diào)兩點(diǎn)。

        1.case后邊的常量,不能寫成表達(dá)式。

        例如:編寫程序,評(píng)判學(xué)生成績(jī)score的等級(jí)grade,90~100為A,80~90為B,70~80為C,60~70為D,60以下為E。

        switch((int)(score/10))

        {case 10: case 9: grade='A';break;

        case 8: grade='B';break;

        case 7: grade='C';break;

        case 6: grade='D';break;

        case 5: case 4: case 3: case 2: case 1: case 0: grade='E';}

        很多學(xué)生最初拿到這個(gè)題目,會(huì)在case后邊寫條件表達(dá)式,case gt;90等,是錯(cuò)誤的。應(yīng)該找規(guī)律,如何將某個(gè)范圍內(nèi)的數(shù)據(jù)劃定在一個(gè)等級(jí)上,如果score為float類型,int(score/10)就是等級(jí)劃分的標(biāo)準(zhǔn)。

        2.case標(biāo)號(hào)只起到標(biāo)記的作用,所以在各個(gè)case子句后邊要加break語(yǔ)句,使流程跳出當(dāng)前switch結(jié)構(gòu)。在switch嵌套結(jié)構(gòu)中,break只能跳出本層的switch結(jié)構(gòu)。例如:

        main( )

        { int x=1,y=0,a=0,b=0;

        switch(x) { "case 1:switch(y) { case 0:a++;

        case 1:b++;break; " }

        case 2:a++;b++;break; " } printf(\"a=%d,b=%d\n\",a,b); "} " "輸出結(jié)果為a=2,b=2。

        switch(y)中的break不能退出switch(x),所以還要執(zhí)行case 2;如果想讓程序不執(zhí)行case 2,要在switch(y) { case 0:a++; " case 1:b++;break; "}語(yǔ)句后邊加break;。

        五、循環(huán)語(yǔ)句

        循環(huán)語(yǔ)句有while,do-while,for語(yǔ)句。掌握每種循環(huán)語(yǔ)句的結(jié)構(gòu)和執(zhí)行過(guò)程,清楚三種循環(huán)語(yǔ)句的適用情況,分析問(wèn)題,設(shè)計(jì)算法,上機(jī)實(shí)踐操作,熟練掌握,為以后程序設(shè)計(jì)奠定基礎(chǔ)。

        參考文獻(xiàn)

        [1]譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社,2010.

        [2]趙睿.C語(yǔ)言案例教程[M].機(jī)械工業(yè)出版社,2007.

        [3]邱建華.C語(yǔ)言程序設(shè)計(jì)教程[M].東軟電子出版社,2009.

        久久久精品欧美一区二区免费| 亚洲日韩国产av无码无码精品| 欧美裸体xxxx极品少妇| 国产精品精品| 日韩丝袜人妻中文字幕| 全部免费国产潢色一级| 性色av一区二区三区密臀av| 精品一区三区视频在线观看| 亚洲 另类 日韩 制服 无码| 提供最新的在線欧美综合一区| 一区二区三区在线蜜桃| 国产桃色一区二区三区| 国产精品无码久久久久久| 国产成人精品自在线无码| 一本色道亚州综合久久精品| 国产精品女老熟女一区二区久久夜 | 无遮挡18禁啪啪羞羞漫画| 久久亚洲精品无码gv| 亚洲精品2区在线观看| 白白色发布视频在线播放| 国语自产视频在线| 欧美成人一区二区三区| 亚洲区精选网址| 亚洲综合视频一区二区| 真实人与人性恔配视频| 久青草国产在线观看| 亚洲天堂色婷婷一区二区| 日韩人妻无码精品一专区二区三区| 成人区人妻精品一熟女| 日韩在线视精品在亚洲| 国产精品髙潮呻吟久久av| 日本成本人片免费网站| 免费一区在线观看| 国产av大片久久中文字幕| 中文字幕亚洲综合久久| 国产成人无码区免费网站| 国产不卡一区在线视频| 色吧噜噜一区二区三区| 久久综合九色综合网站| 狠狠综合亚洲综合亚色 | 青青草手机免费播放视频|