• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            c語言知識點

            更新時間:2023-03-03 12:51:38 閱讀: 評論:0

            幼兒教育理念-笑臉兩個點一個彎

            c語言知識點
            2023年3月3日發(fā)(作者:跟女孩子聊天怎么找話題)

            期末復習C語言知識點歸納

            一、概述部分

            主要考察知識點:

            C程序的結(jié)構(gòu)特點;C程序的擴展名;程

            序的開發(fā)過程;

            函數(shù)的構(gòu)成;

            C語言使用的基本符號:ASCII字符集;

            標識符的命名規(guī)則;

            關(guān)鍵字、用戶自定義標識符

            1.C程序的基本模塊是函數(shù),一個C語言源程序可以由一個

            或多個函數(shù)組成,有且只有1個main()函數(shù),可以放在程序

            中的任何位置.

            2.函數(shù)的定義是平行的,不能嵌套定義,但可以進行嵌套

            調(diào)用。

            3.一個C程序不論有幾個函數(shù),都是從main()函數(shù)開始執(zhí)

            行.

            4.C源程序文件的擴展名".c"。

            ++6.0下C語言程序的完整實現(xiàn)過程包括4個基本步驟:

            ?

            編輯形成源文件(.c)

            ?

            編譯,形成目標文件(.obj)

            ?

            鏈接,形成可執(zhí)行文件(.exe)

            ?

            運行.

            6.函數(shù)的構(gòu)成:變量定義、語句、注釋

            7.標識符

            按照

            C

            語言所定義的規(guī)則來命名的符號,用作變量名、數(shù)組

            名、函數(shù)名等,系統(tǒng)定義的關(guān)鍵字也遵循該規(guī)則。

            規(guī)則:由字母、數(shù)字、下劃線組成,第一個字符必須

            是字母或下劃線。

            C

            語言中的標識符分:關(guān)鍵字、用戶定義標識符

            例如

            :area

            、

            a234

            、

            _1234

            為合法標識符

            6x

            a-b

            、

            a+b

            為非法標識符

            注意

            :

            標識符區(qū)分大小寫。

            PRINTF

            printf

            是不同的標識符

            用戶自定義的標識符應(yīng)避開

            C

            語言的關(guān)鍵字及庫函數(shù)

            名。

            4.c語言的32個關(guān)鍵字:看附表,留印象

            二、數(shù)據(jù)類型、常量、變量、表達式

            注意:

            常用數(shù)據(jù)類型的關(guān)鍵字;

            常量的表達形式;

            變量的定義及賦值;

            各類表達式的計算規(guī)則;

            不同數(shù)據(jù)類型數(shù)據(jù)混合運算時的類型轉(zhuǎn)

            換;

            典型問題:數(shù)據(jù)的混合計算、整數(shù)的分

            解、數(shù)據(jù)交換

            1.數(shù)據(jù)類型

            c語言中,整型、實型、字符型是最基本的數(shù)

            據(jù)類型.

            此外還有構(gòu)造類型,如數(shù)組,結(jié)構(gòu)體,共用體等。

            2.常量

            指在程序運行中,其值不能被改變。

            分為整型常量、實型常量、字符常量、字符串常量。

            ?

            整型常量

            C

            語言中主要有十進制、八進制、十六進制等:8進制以0

            引導,16進制以0x或0X引導,十進制不能以0開頭.

            十進制例如12、-3、32767等。

            八進制用數(shù)字0開頭,由0-7這8個數(shù)字組成。

            例如010、016為合法八進制數(shù)

            127、018為非法八進制數(shù)

            十六進制用數(shù)字0和字母x或X開頭,用0-9表示前10

            個數(shù)字,字母A-F(可小寫)表示后6個數(shù)字。

            例如0xAF、0x10、0x34為合法十六進制數(shù)

            100、ABC、0xAFH為非法十六進制數(shù)

            ?實型常量(float或double型)

            表示方式有兩種:小數(shù)形式和指數(shù)形式。

            小數(shù)形式:

            例如:0.123、.123、123.都是合法形式,為double型。

            0.123F(float型)

            指數(shù)形式:

            例如:2.3026可用以下任何一種指數(shù)表示

            0.23026E1

            2.3026e0

            、

            23.026E-1

            但下面的指數(shù)形式為非法

            E3.5e3.6

            ?

            字符型常量

            一個字符常量占一個字節(jié)存儲空間.用單引號限定。有普

            通字符和轉(zhuǎn)義字符。如:

            普通字符:如

            ‘A’

            、

            ’c’

            、

            ’5‘

            都是合法的字符常量。

            轉(zhuǎn)義字符:如

            ’n’換行’’反斜杠

            ’’’單引號’”’雙引號

            ’ddd’三位八進制’xhh’二位十六進制

            0x41

            (表示以十六進制數(shù)41為ASCII碼值的字符,即

            A

            的轉(zhuǎn)義字符形式).

            0

            (表示空字符,在字符串中用作字符串的結(jié)束標志)

            注意:轉(zhuǎn)義字符表面上由多個字符

            組成,但在內(nèi)存中只占1字節(jié)的空

            間。

            ?字符串常量

            用英文雙引號括起來.如:”hellon”

            ?

            字符串中的字符個數(shù)稱為字符串的長度.空字符串長度為

            0.

            ?

            字符串存儲中每個字符占一個字節(jié),字符串結(jié)尾自動加一

            個結(jié)束標志符’0’,所以字符串存儲的時候,占用的空

            間長度要比串的實際長度多1.

            strlen(“china”),求字符串的字

            符個數(shù),5(個)

            sizeof(“china”),求字符串占用

            的存儲空間,6(字節(jié))

            注意下面兩種情況:

            (1)charch[100]={“Hello”};

            該串的長度(字符個數(shù))為5,但數(shù)組ch

            的空間長度為100。

            (2)charch[]={“Hello”};

            該串的長度(字符個數(shù))為5,但數(shù)組ch

            的空間長度為6。

            3.變量

            指在程序運行過程中其值可以改變的量,表示存儲數(shù)據(jù)的空

            間,需要時要先定義。

            變量的命名必須符合標識符的命名規(guī)則,且不能和

            C

            語言

            中關(guān)鍵字同名。

            (

            例如

            :main

            是關(guān)鍵字

            )

            例如

            :a

            、

            b

            ab

            、

            a_1

            為合法變量

            define

            、

            printf

            為非法變量

            注意

            :ab

            是一個整體,含義不同于

            a

            乘以

            b

            變量定義,如:

            intx,a1,a2;

            charch1,ch2;

            floatm;

            doubles;

            ?

            VC++6.0下,int型數(shù)據(jù)占4個字節(jié),float型數(shù)據(jù)占4

            個字節(jié),double型數(shù)據(jù)占8個字節(jié),.char型數(shù)據(jù)占

            1個字節(jié).

            ?自加和自減運算符

            例如:a++和++a等價于a=a+1

            b--和--b等價于b=b-1

            a++和++a的區(qū)別:

            假設(shè)a的初值為5

            表達式a++值為5,最后a值為6。

            表達式++a值為6,最后a值為6。

            ?

            條件運算

            由"?"和":"構(gòu)成,它是根據(jù)條件從兩個表達式中選擇一個

            進行計算取值的操作,優(yōu)先級高于賦值運算符,低于算術(shù)運

            算和關(guān)系運算.

            例如:inta=1,b=2,c=3,d=4,z;

            z=(a>b)?c:d;結(jié)果:z值為4

            三、輸入輸出函數(shù)

            重點:輸入輸出的格式控制

            1.數(shù)據(jù)輸出printf

            格式:printf(格式符,輸出項1,輸出項2,….)

            格式符功能

            %c輸出一個字符

            %d輸出十進制整數(shù)

            %f輸出小數(shù)形式浮點數(shù)

            %e輸出指數(shù)形式浮點數(shù)

            %s輸出一個字符串

            數(shù)據(jù)寬度說明:

            1)在%和格式字符之間插入一個整數(shù)來指定輸出寬度。

            例如:%4d、%5c

            2)對于float和double類型的實數(shù),可以用n1.n2形式

            n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)

            點后小數(shù)的位數(shù)。

            例如:%12.3f、%12.0f

            題型:判斷輸出結(jié)果時格式的正確與否!

            例1輸出整型變量a和b的值,數(shù)據(jù)寬度均為4。

            printf(“a=%4d,b=%4d”,a,b);

            2

            輸出單精度變量

            k

            的值。

            printf(“%10.2f”,k);

            2.

            數(shù)據(jù)輸入

            scanf

            格式

            :scanf(

            格式符,輸入項

            1

            ,輸入項

            2

            ,

            …)

            格式符功能

            %c

            輸入一個字符

            %d

            輸入十進制整數(shù)

            %f

            輸入單精度數(shù)

            %lf

            輸入雙精度數(shù)

            %s

            輸入一個字符串

            題型:判斷輸入數(shù)據(jù)時的格式正確與否!

            1

            從鍵盤上輸入兩個整數(shù),保存在變量

            a

            b

            中。

            scanf(“%d%d”,&a,&b);

            2

            從鍵盤上輸入一個雙精度數(shù),保存在變量

            data

            中。

            scanf(“data=%lf”,&data);

            鍵盤輸入

            23.5

            ,則輸入格式應(yīng)為:

            data=23.5

            3.

            字符專用的

            getchar

            函數(shù)和

            putchar

            函數(shù)

            分別用來輸入字符和輸出字符。

            1

            從鍵盤上輸入一個字符保存在

            ch

            中。

            charch;

            ch=getchar();

            2charc1=’A’,c2;

            c2=c1+1;

            putchar(c2);

            輸出結(jié)果是

            ’B’

            。

            3

            輸出一個回車換行符。

            putchar(‘n’);

            :

            從鍵盤上輸入一串字符,最后以

            ’!’

            為結(jié)束標志。分別

            統(tǒng)計大寫字母,小寫字母、數(shù)字出現(xiàn)的次數(shù)。

            #include

            main()

            {

            charch;

            intn1=0,n2=0,n3=0;

            printf(“

            請輸入一串字符以

            !

            結(jié)束

            :n”);

            ch=getchar();//

            先輸入一個字符

            while(ch!='!')

            {

            if(ch>='A'&&ch<='Z')

            n1++;

            if(ch>='a'&&ch<='z')

            n2++;

            if(ch>='0'&&ch<='9')

            n3++;

            ch=getchar();//

            繼續(xù)輸入下一個字符

            }

            printf("

            大寫字母出現(xiàn)次數(shù)是

            %dn",n1);

            printf("

            小寫字母出現(xiàn)次數(shù)是

            %dn",n2);

            printf(“

            數(shù)字出現(xiàn)次數(shù)是

            %dn",n3);

            }

            4.

            字符串專用的輸入輸出函數(shù)

            gets()

            puts()

            例如:

            charstr[100];

            gets(ch);//

            輸入一個字符串存入字符數(shù)組

            str

            puts(ch);//

            輸出字符數(shù)組

            str

            中存放的字符串

            6

            .復合語句

            格式

            :

            {

            語句

            1

            語句

            2

            ….

            語句

            n

            }

            2若已經(jīng)定義

            inta,b;

            且已賦值,要將

            a

            b

            中的

            數(shù)進行交換,下面選項中不正確的是

            A){a=a+b,b=a-b,a=a-b}

            B){t=a,a=b,b=t;}

            C){a=t;t=b;b=a;}

            D){t=b;b=a;a=t;}

            結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu):

            順序結(jié)構(gòu)、選擇結(jié)構(gòu)(分支結(jié)構(gòu))、循

            環(huán)結(jié)構(gòu)

            四、選擇結(jié)構(gòu)

            注意:

            條件表達式的構(gòu)造;關(guān)系運算、邏輯運

            算;

            選擇結(jié)構(gòu)的基本語句:

            if語句

            if-el

            if-el的嵌套結(jié)構(gòu)(el與if的匹配

            規(guī)則)

            switch語句的語法要求,執(zhí)行流程

            1.關(guān)系運算符

            >

            、

            <

            、

            >=

            <=

            、

            ==

            、

            !=

            關(guān)系運算的結(jié)果只有兩種

            :

            真或假

            C語言中關(guān)系運算的結(jié)果為真用1表示,假

            用0表示。

            16>=6‘a(chǎn)’>’A’’1’<‘5’

            結(jié)果均為真,值為

            1

            26!=6‘D’==’d’‘9’>’F’

            結(jié)果均為假,值為

            0

            2.邏輯運算符

            &&(

            )||(

            )!(

            )

            優(yōu)先級

            :!>&&>||

            1

            若變量

            a

            值為

            10

            ,變量

            b

            值為

            16

            ,計算表達式。

            a>b||a>sqrt(b)&&b>=16

            最后結(jié)果為真,表達式的值為

            1

            3.

            條件表達式的構(gòu)造:

            注意:

            數(shù)學上的表達式:0≤x≤10

            在C程序中的表達:x>=0&&x<=10

            判斷char型變量ch中存放的是大寫字母或小寫字母:

            判斷整數(shù)n能否被整除m整除:

            判斷年份是否是閏年:

            語句

            單分支結(jié)構(gòu):

            if(條件表達式)語句

            若表達式為真,則執(zhí)行語句;否則if語句結(jié)束。

            注意:

            條件表達式可以是常量、變量、關(guān)系

            表達式、邏輯表達式

            當常量、變量、關(guān)系表達式、邏輯表

            達式的取值不是0的時候,條件為真;

            若取值為0,則條件為假。

            -el:二選一

            if(條件表達式)

            {語句組1}

            el

            {語句組2}

            表達式的值非0表示真,執(zhí)行語句組1;否則,執(zhí)

            行語句組2.

            例1從鍵盤上輸入兩個整數(shù),輸出較大的數(shù)。

            #include

            main()

            {

            intx,y;

            printf(“請輸入兩個整數(shù):n”);

            scanf(“%d%d”,&x,&y);

            if(x>y)

            printf(“%d”,x);

            el

            printf(“%d”,y);

            }

            語句的嵌套

            多選一結(jié)構(gòu):

            if(表達式1)

            {語句組1}

            elif(表達式2)

            {語句組2}

            elif(表達式3)

            {語句組3}

            el

            {語句組n}

            注意:

            el與if的配對規(guī)則:

            el總是與它前面的、最近的、沒有

            與其他el進行配對的if進行配對。

            1

            根據(jù)輸入的學生成績,大于或等于

            90

            分為

            A

            60

            分以下等級為

            E

            ,其余每

            10

            分一個等級。

            #include

            main()

            {

            intg;

            printf(“

            請輸入一個整數(shù)

            :n”);

            scanf(“%d”,&g);

            if(g>=90)printf(“An”);

            elif(g>=80)printf(“Bn”);

            elif(g>=70)printf(“Cn”);

            elif(g>=60)printf(“Dn”);

            elprintf(“En”);

            }

            語句

            一般格式:

            switch(表達式)/*switch表達式為整

            型或字符型值!*/

            {

            ca常量1:語句組1/*ca后面必須是

            常量或常量表達式!*/

            ca常量2:語句組2

            .........

            default:語句組//也可省略該語句

            }

            可以使用break語句來中止后面語句的執(zhí)行.

            ?

            switch表達式通常為整型或字符型值,ca中的常量類

            型與之對應(yīng),ca后面的表達式可以是常量或常量表達

            式,不能為變量表達式.

            若表達式的值與表達式1相等,則執(zhí)行語句1;若與表達

            式2相等,則執(zhí)行語句2……若均不相等則執(zhí)行語句n。

            例1分析switch語句的執(zhí)行

            #include

            main()

            {

            intg=3;

            switch(g)

            {

            ca1:printf(“****n”);break;

            ca2:printf(“

            n”);break;

            ca3:printf(“&&&&n”);

            ca4:printf(“@@@@n”);break;

            ca5:printf(“$$$$n”);break;

            default:printf(“~~~~n”);

            }

            }

            程序運行結(jié)果:&&&&@@@@

            五、循環(huán)結(jié)構(gòu)

            注意:

            三種循環(huán)語句:

            while語句、do-while語句、for語句

            語法格式,流程理解;運用;while循

            環(huán)和do-while循環(huán)的區(qū)別

            典型問題:

            一組有規(guī)律的數(shù)的求和、求積數(shù)、

            素數(shù)判斷(特別重要)

            循環(huán)

            格式

            :

            while(

            條件表達式

            )

            循環(huán)體

            若條件表達式為真,則執(zhí)行循環(huán)體。再判斷表達式,若仍為

            真,則重復執(zhí)行循環(huán)體直到表達式為假時循環(huán)結(jié)束。

            注意:

            條件表達式可以是常量、變量、關(guān)系

            表達式、邏輯表達式

            當常量、變量、關(guān)系表達式、邏輯表

            達式的取值不是0的時候,條件為真;

            若取值為0,則條件為假。

            1

            編程計算

            S=1+2+……100

            #include

            main()

            {

            intk=1

            s=0;//

            和數(shù)變量初始值為

            0

            ,切記!

            while(k<=100)

            {s=s+k;

            k=k+1;//

            循環(huán)變量變化,必須的!

            }

            printf(“%d”,s);

            }

            -while循環(huán)

            格式

            :

            do

            循環(huán)體

            while(

            表達式

            );

            先執(zhí)行循環(huán)體,然后判斷表達式。若為真則重復執(zhí)行

            循環(huán)體直到表達式為假時循環(huán)結(jié)束。

            1

            do-while

            循環(huán)計算

            10!

            #include

            main()

            {

            intk=1;

            doubles=1;//

            積數(shù)變量初始值為

            1

            ,切記!

            do

            {s=s*k;k++;}

            while(k<=10);

            printf(“%ld”,s);

            }

            注意:while循環(huán)和do-while循環(huán)

            的區(qū)別

            while循環(huán)是先判斷表達式,因

            此循環(huán)體有可能一次也不執(zhí)行。

            do-while循環(huán)是先執(zhí)行一次循

            環(huán)體,再判斷表達式,所以不論

            表達式為真為假,循環(huán)體至少要

            執(zhí)行一次。

            循環(huán)

            格式

            :

            for(

            表達式

            1;

            表達式

            2;

            表達式

            3)

            循環(huán)體

            先執(zhí)行表達式

            1

            ,然后判斷表達式

            2

            ,若為真則執(zhí)行

            循環(huán)體。然后執(zhí)行表達式

            3

            ,再判斷表達式

            2

            ,若仍

            為真則重復執(zhí)行循環(huán)體直到表達式

            2

            為假時結(jié)束。

            1

            for

            循環(huán)計算

            S=1+2+…100

            #include

            main()

            {

            intk,sum=0;

            for(k=1;k<=100;k++)

            sum=sum+k;

            printf(“%d”,sum);

            }

            2

            若一個三位數(shù)個位、十位、百位的立方和等于它本身

            則稱這個數(shù)為水仙花數(shù)。例如

            153

            是一個水仙花數(shù)。

            編程輸出所有的水仙花數(shù)。

            #include

            main()

            {

            inta,b,c,i;

            for(i=100;i<=999;i++)

            {

            a=i/100;

            b=i%100/10;

            c=i%10;

            if(a*a*a+b*b*b+c*c*c==i)

            printf("%dn",i);

            }

            }

            4.令循環(huán)中斷的break語句

            break語句可以用在switch語句中用于結(jié)束某分

            支的執(zhí)行,也可用在循環(huán)語句中,使循環(huán)提前結(jié)束。

            用在循環(huán)體內(nèi)表示強行退出循環(huán)。

            例1計算S=1+2+3+…n,直到累加和大于5000為止。

            #include

            main()

            {

            inti,s=0;

            for(i=1;;i++)

            {

            s=s+i;

            if(s>5000)break;

            }

            printf(“%d”,s);

            }

            注意:當有多重循環(huán)時,break只能退出最內(nèi)層循環(huán)。

            素數(shù)判斷的算法!

            ue語句

            用在循環(huán)體中用來跳過本次循環(huán)余下的語句,立即開

            始下一輪循環(huán)的判斷和執(zhí)行,整個循環(huán)并未因

            continue

            結(jié)束。

            1

            寫出下列程序運行結(jié)果。

            inti,k=0,s=0;

            for(i=1;i<=5;i++)

            {

            s=s+i;

            if(s>5)

            {printf(“i=%d,s=%d,k=%dn”,i,s,k);

            continue;

            }

            k=k+s;

            printf(“i=%d,s=%d,k=%dn”,i,s,k);

            }

            運行結(jié)果

            :

            i=1,s=1,k=1

            i=2,s=3,k=4

            i=3,s=6,k=4

            i=4,s=10,k=4

            i=5,s=15,k=4

            六、數(shù)組

            注意:

            數(shù)組的定義和初始化、數(shù)組與循環(huán)的結(jié)

            合、數(shù)組的應(yīng)用(如:最大值最小值問

            題、)、字符串與字符數(shù)組

            數(shù)組是包含多項相同類型數(shù)據(jù)的一種數(shù)據(jù)結(jié)構(gòu),它使用同一

            個名字命名,再用下標進行分量標識.數(shù)組元素的下標從0

            開始,數(shù)組長度為n時,最末元素的下標是n-1.

            1.

            定義一維數(shù)組

            一維數(shù)組定義格式

            數(shù)據(jù)類型數(shù)組名[數(shù)組長度];

            //數(shù)組長度指數(shù)組中可以存放的數(shù)據(jù)元素的個數(shù),用整數(shù)

            常量表示,也可用代表一個正整數(shù)的符號常量表示

            1

            定義一個包含

            4

            個整數(shù)的數(shù)組

            a

            inta[4];

            2

            定義一個包含

            3

            個雙精度數(shù)的數(shù)組

            b

            doubleb[3];

            注意

            :C

            語言中數(shù)組的下界從

            0

            開始計數(shù)。

            例如

            :a[4]

            4

            個元素分別為

            a[0]

            、

            a[1]

            、

            a[2]

            、

            a[3]

            數(shù)組有一維數(shù)組,二維數(shù)組,和多維數(shù)組.數(shù)組中的每一個分

            量稱為一個數(shù)組元素。

            2.

            數(shù)值型一維數(shù)組的初始化

            用一對大括號將數(shù)組的初值括起來。

            例如:inta[6]={10,20,30,40,50,60};

            注意:C語言中,不允許初值個數(shù)多于數(shù)組定義的長度。

            inta[]={10,20,30,40,50,60};

            給初值的情況下,數(shù)組的長度可省略,系統(tǒng)以初值的個數(shù)作

            為數(shù)組的長度。

            ?

            對部分元素的初始化,例如:inta[6]={10,20,30}是對前

            3個元素的賦值.

            例1inta[3]={1,2,3};

            此例中a[0]值為1、a[1]值為2、a[2]值為3

            例2inta[5]={0};

            此例中數(shù)組a的全部元素值均為0

            例3inta[3]={1,2,3,4};

            此例中由于初值個數(shù)多于數(shù)組元素個數(shù),所以非法。

            4inta[]={0,0,0,0};

            此例中省略數(shù)組元素個數(shù),初值為

            4

            0

            等價于

            inta[4]={0};

            注意

            :

            數(shù)組名是一個常量值,不能對它賦值。

            例如

            :inta[3];

            a=5;

            此語句非法,應(yīng)改為

            a[0]=5;

            3.一維數(shù)組應(yīng)用

            例1從鍵盤上輸入10個整數(shù),輸出最大數(shù)和最小數(shù)。

            #include

            main()

            {

            inta[10],i,max,min;

            printf("

            請輸入

            10

            個整數(shù)

            :n");

            for(i=0;i<=9;i++)

            scanf("%d",&a[i]);

            max=a[0];

            min=a[0];

            for(i=1;i<=9;i++)

            {

            if(a[i]>max)max=a[i];

            if(a[i]

            }

            printf("

            最大數(shù)是

            %dn",max);

            printf("

            最小數(shù)是

            %dn",min);

            }

            例2斐波數(shù)列的定義如下:

            1、1、2、3、5、8、13、……

            編程輸出斐波數(shù)列的第40項值。

            #include

            main()

            {

            longa[40];

            inti;

            a[0]=1;

            a[1]=1;

            for(i=2;i<=39;i++)

            a[i]=a[i-1]+a[i-2];

            printf("%ld",a[39]);

            }

            4.

            字符數(shù)組

            字符串用字符數(shù)組存放。每元素存放一個字符.

            如:

            charch[]={'x10','x21','x1f','x5a'};

            該數(shù)組中的初值字符為轉(zhuǎn)義字符。

            ?

            字符串

            用雙引號將一串字符括起來稱字符串。如:

            ”Hello,world!”

            C

            語言中用一維數(shù)組來存放,并以

            ’0’

            作為結(jié)束標志。

            ‘0’

            就是

            0

            ,占用空間但不計入串的實際長度。

            例如

            :

            字符串

            ”student”

            的長度為

            7

            ,占用空間為

            8

            通常利用字符數(shù)組存放字符串。如:

            charstr[20]={"hello"};

            該字符串的實際長度為5個字符,占用的數(shù)組空間長度為20

            '0'是字符串的結(jié)束標志.系統(tǒng)在存放一個字符串時,會在

            串的最后一個字符后添加'0'。

            ?

            任何一個一維數(shù)組在內(nèi)存中都占用一段連續(xù)的空間.

            ?

            用"%s"格式輸入字符串時,遇到回車鍵結(jié)束,但獲得的字

            符中不包含回車鍵本身,而是在字符串末尾添加'0'.

            ?

            使用一個一維scanf()函數(shù)使用"%s"格式輸入多個字符

            串時,輸入的各字符串之間要以空格鍵分隔.

            如:charch[20];

            scanf(“%s”,ch);//從鍵盤輸入一個字符串存入數(shù)組ch

            ?

            用%s格式符為一個字符數(shù)組輸入字符串時,只有第一個

            空格之前的字符串被讀入到字符數(shù)組中.

            如:對上面的ch數(shù)組,輸入“Helloworld!”則只有空

            格前面的“Hello”被存入數(shù)組。

            ?字符串常用函數(shù)

            使用下列函數(shù)時要包含頭文件

            1)字符串拷貝函數(shù)

            strcpy(s1,s2)

            表示將s2復制到s1中。

            2)字符串連接函數(shù)

            strcat(s1,s2)

            表示將s2連接到s1后面形成一個新字符串。

            3)字符串長度函數(shù)

            strlen(s)

            計算出

            s

            的實際長度不包括

            ’0’

            。

            4)

            字符串比較函數(shù)

            strcmp(s1,s2)

            s1>s2,

            函數(shù)返回值大于

            0

            s1=s2,

            函數(shù)返回值等于

            0

            s1

            函數(shù)返回值小于

            0

            ?

            字符串應(yīng)用

            1

            從鍵盤上輸入一個字符串,輸出它的長度。

            #include

            #include

            main()

            {

            char*p,str[100];

            p=str;

            printf("

            請輸入一個字符串

            :n");

            gets(p);

            printf("%d",strlen(p));

            }

            5.定義二維數(shù)組

            ?

            定義格式

            :

            類型名數(shù)組名

            [

            一維上界

            ][

            二維上界

            ]

            1

            定義一個

            2

            2

            列的整型數(shù)組

            a

            inta[2][2];

            此例中數(shù)組

            a

            共有

            4

            個元素,分別是

            a[0][0]

            、

            a[0][1]

            、

            a[1][0]

            a[1][1]

            。

            2

            定義一個

            4

            4

            列的整型矩陣

            a

            inta[4][4];

            ?

            二維數(shù)組的初始化

            用嵌套的大括號將數(shù)組初值括起來。

            1inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

            2inta[4][3]={{1,2},{4,5},{7},{10}};

            此例中系統(tǒng)自動給空缺的地方補

            0

            3inta[4][3]={{1,2},{4,5}};

            系統(tǒng)自動給后面的行補初值

            0

            4inta[4][3]={1,2,4,5};

            此例中數(shù)組

            a

            的第一行中元素和第二行的第一個

            元素依次為

            1,2,4,5

            其余全部為

            0

            ?

            定義二維數(shù)組大小

            1inta[][3]={{1,2,3},{4,5},{6},{8}};

            4

            個行花括號

            ,

            因此說明是

            4

            3

            列。

            2inta[][3]={1,2,3,4,5};

            表示一個

            2

            3

            列數(shù)組。

            ?定義并初始化二維數(shù)組時,數(shù)組的列

            數(shù)(第二維)不能省略!

            如:

            inta[2][]={{1,2},{3,4,5}};是錯誤的。

            ?二維數(shù)組應(yīng)用

            例:從鍵盤上輸入5個學生3門課程的成績,分別計算

            每個學生的平均分和每門課程的平均分。

            #include

            #defineM5

            #defineN3

            main()

            {

            inta[M][N],i,j,sum;

            printf("請輸入15個分數(shù)(0-100):n");

            for(i=0;i<=M-1;i++)

            for(j=0;j<=N-1;j++)

            scanf("%d",&a[i][j]);

            printf("每個學生的平均分n");

            for(i=0;i<=M-1;i++)

            {

            sum=0;

            for(j=0;j<=N-1;j++)

            sum=sum+a[i][j];

            printf("%4d",sum/N);

            }

            printf("n");

            printf("

            每門課程的平均分

            n");

            for(i=0;i<=N-1;i++)

            {

            sum=0;

            for(j=0;j<=M-1;j++)

            sum=sum+a[j][i];

            printf("%4d",sum/M);

            }

            }

            七、函數(shù)

            注意:

            函數(shù)的種類:庫函數(shù)、自定義函數(shù);

            函數(shù)的定義;

            函數(shù)的參數(shù):形參、實參、參數(shù)的個數(shù);

            函數(shù)的類型;

            函數(shù)的聲明;

            函數(shù)調(diào)用過程中參數(shù)傳遞問題;

            1.函數(shù)的定義

            ?

            帶返回值的函數(shù)

            格式

            :

            類型名函數(shù)名

            (

            參數(shù)列表

            )

            {

            語句

            return

            返回值

            }

            1

            已知

            F(X)=2*X+3

            ,計算

            F(1)+F(2)+….F(10)

            的值。

            #include

            intf(intx)

            {

            return2*x+3;

            }

            voidmain()

            {

            inti,sum=0;

            for(i=1;i<=10;i++)

            sum=sum+f(i);

            printf("%d",sum);

            }

            2

            編程輸出

            2

            100

            之間所有的素數(shù)之和。

            #include

            intisprime(intnum)

            {

            inti;

            for(i=2;i<=num-1;i++)

            if(num%i==0)

            return0;

            return1;

            }

            voidmain()

            {

            inti,sum=0;

            for(i=2;i<=100;i++)

            if(isprime(i)==1)

            sum=sum+i;

            printf("%d",sum);

            }

            3

            從鍵盤上輸入兩個整數(shù),分別輸出它們的最大公約數(shù)

            和最小公倍數(shù)。

            #include

            intgetmax(inta,intb)

            {

            intresult;

            result=a

            while(a%result!=0||b%result!=0)

            result=result-1;

            returnresult;

            }

            intgetmin(inta,intb)

            {

            intresult=1;

            while(result%a!=0||result%b!=0)

            result=result+1;

            returnresult;

            }

            voidmain()

            {

            inta,b;

            printf("

            請輸入兩個整數(shù)

            :n");

            scanf("%d%d",&a,&b);

            printf("

            最大公約數(shù)是

            %dn",getmax(a,b));

            printf("

            最小公倍數(shù)是

            %dn",getmin(a,b));

            }

            ?

            不帶返回值的函數(shù)

            格式

            :

            void

            函數(shù)名

            (

            參數(shù)列表

            )

            {

            語句

            }

            ?

            函數(shù)的類型

            表示函數(shù)返回值的類型,是函數(shù)定義

            時,函數(shù)名前面的標識符,若缺省,則

            系統(tǒng)默認為int型。

            ?

            函數(shù)調(diào)用過程中的傳值和傳地址

            傳值是指子程序中變量的變化不會影響主程序變量。

            傳地址是指子程序中變量的變化會影響主程序變量。

            1

            交換兩變量

            a

            b

            的值。

            (

            傳值方式

            )

            #include

            voidchange(inta,intb)

            {

            intt;

            {t=a;a=b;b=t;}

            }

            voidmain()

            {

            inta=3,b=5;

            printf("a=%db=%dn",a,b);

            change(a,b);

            printf("a=%db=%dn",a,b);

            }

            運行結(jié)果

            :

            a=3b=5

            a=3b=5

            函數(shù)

            change(inta,intb)

            為傳值方式,最后

            a

            b

            的值

            并未交換。故傳值方式不能改變主程序變量的值。

            2

            交換兩變量

            a

            b

            的值。

            (

            傳地址方式

            )

            #include

            voidchange(int*a,int*b)

            {

            intt;

            {t=*a;*a=*b;*b=t;}

            }

            voidmain()

            {inta=3,b=5;

            printf("a=%db=%dn",a,b);

            change(&a,&b);

            printf("a=%db=%dn",a,b);

            }

            運行結(jié)果

            :

            a=3b=5

            a=5b=3

            函數(shù)

            change(int*a,int*b)

            為傳地址方式,最后

            a

            b

            的值

            成功交換。故傳地址方式能改變主程序變量的值。

            八、指針

            ?

            指針變量初始化的方法inta;

            int*p=&a;

            ?

            賦值語句的方法inta;

            int*p;

            p=&a;

            不允許把一個數(shù)賦予指針變量,故下面的賦值是錯誤

            的:int*p;p=1000;被賦值的指針變量前不能再加“*”

            說明符,如寫為*p=&a也是錯誤的。

            ?

            通過指針變量獲得地址值

            通過賦值語句將一個指針變量的值賦給另一個指針變量。

            如:int*p,*q,a=0;

            p=&a;

            q=p;

            則指針變量p和q保存的是同一個變量a的地址,即p

            和q指向同一個整型變量。對p指向的變量的操作也就是對

            q指向的變量的操作。

            如:*p++;printf(“%d”,*q);的輸出結(jié)果為1。

            ?

            給指針變量賦“空”值

            在stdio.h頭文件中,系統(tǒng)定義了一個符號常量NULL,

            其值為0,可通過給指針變量賦一個“空”值(即0值),使

            其不指向任何內(nèi)存單元,方法為:

            p=NULL;或p=0;或p=’0’;

            指針變量定義及賦值,舉例:

            1

            定義兩個指向整型變量的指針

            p1

            p2

            。

            int*p1,*p2;

            2

            定義兩個整型變量

            m

            n

            及兩個指針

            p

            q

            ,并使

            p

            q

            分別指向

            m

            n

            。

            intm,n,*p,*q;

            p=&m;

            表示

            p

            存放變量

            m

            的地址

            q=&n;

            表示

            q

            存放變量

            n

            的地址

            3

            定義一個包含

            10

            個整數(shù)的數(shù)組

            a

            和一個指針

            p

            ,并

            使

            p

            指向

            a

            。

            inta[10],*p;

            p=a;

            表示

            p

            指向數(shù)組

            a

            的首地址,即

            a[0]

            的地址。

            注意

            :

            3

            p=a

            不能寫成

            p=&a

            ,因為

            a

            本身就是地址。

            3

            指針間的賦值

            假設(shè)已有下列定義

            :

            int*q,*p,k=0;

            q=&k;

            例如

            :p=q;

            表示兩指針間賦值,讀作

            p

            指向

            q

            。

            此時

            p

            q

            均指向變量

            k

            的地址。

            4

            空指針

            C

            語言中空值用

            NULL

            表示,其值為

            0

            5

            定義指針時可以給指針賦值

            NULL

            例如

            :int*p=NULL;

            表示

            p

            沒有指向任何地址

            等價于

            p=’0’;

            p=0;

            注意

            :

            此時指針

            p

            沒有實際單元,所以暫時不能訪問。

            6

            通過指針引用存儲單元

            假設(shè)已有下列定義

            :

            int*p,m,n=0;

            p=&n;

            例如

            :m=*p;

            表示將

            p

            指向存儲單元內(nèi)容給變量

            m

            等價于

            m=n;

            *p=*p+1;

            等價于

            n=n+1;

            注意

            :*p=*p+1;

            還可以寫成下面的形式

            *p+=1;

            ++*p;

            (*p)++;

            7

            指針的移動

            當指針指向一片連續(xù)空間時,移動才有意義。

            假設(shè)已有下列定義

            :

            inta[5],*p,*q,k;

            p=a;

            例如

            :q=p+2;

            表示將

            q

            指向元素

            a[2]

            的地址

            p++;

            表示將

            p

            向后移一個單元

            q--;

            表示將

            q

            向前移一個單元

            k=p[2];

            等價于

            k=a[3];

            8

            指針的比較

            若兩指針指向一片連續(xù)空間,可比較大小。

            假設(shè)已有下列定義

            :

            inta[10],*p,*q,k;

            p=a;

            q=p+2;

            例如

            :if(p

            小于

            q”);

            由于條件成立,所以輸出

            p

            小于

            q

            。

            k=q-p;

            表示

            p

            q

            之間相差的元素個數(shù)

            最后

            k

            值為

            2

            ?

            函數(shù)之間地址值的傳遞

            1)形參為指針變量時實參和形參之間的數(shù)據(jù)傳遞

            在函數(shù)調(diào)用過程中,主調(diào)函數(shù)通過實參傳遞給被調(diào)函數(shù)的

            形參,這種調(diào)用稱為傳值調(diào)用。形參的改變不會影響實參。

            如果實參傳遞給形參的不是普通變量,而是地址,則形參

            和實參指向的實際上是同一個內(nèi)存單元,形參指向的存儲

            單元的改變,也就是實參指向的存儲單元的改變。這種將

            地址作為參數(shù)傳遞的調(diào)用方式稱為傳引用調(diào)用。

            例:

            傳值調(diào)用:

            main()

            {

            inta=1,b=2;

            fun(a,b);

            printf(“%d,%d”,a,b);

            }

            voidfun(intp,intq)

            {

            intt;

            t=p;p=q;q=t;

            }

            輸出結(jié)果:1,2輸出結(jié)果:2,1

            傳引用調(diào)用時應(yīng)當注意實參的基類型必須與形參的基類

            型一致。

            通過這種方式,可以在被調(diào)函數(shù)中直接改變主調(diào)函數(shù)中變

            量的值。

            傳引用調(diào)用:

            main()

            {

            inta=1,b=2;

            fun(&a,&b);

            printf(“%d,%d”,a,b);

            }

            voidfun(int*p,int*q)

            {

            int*t;

            t=p;p=q;q=t;

            }

            ?

            函數(shù)返回地址值

            函數(shù)的返回值不光可以為基本類型,還可以為指針類型,

            即可以定義返回指針的函數(shù),稱為指針型函數(shù)。

            其一般定義形式如下:

            基類型*函數(shù)名(形參表)

            {

            函數(shù)體

            }

            其形參一般為指針。

            注意:在被調(diào)函數(shù)中定義的變量屬于局部變量,其生存期

            為函數(shù)執(zhí)行過程中。當被調(diào)函數(shù)執(zhí)行完返回主調(diào)函數(shù)中時,

            被調(diào)函數(shù)中定義的變量將不再存在。所以,如果被調(diào)函數(shù)返

            回的地址是被調(diào)函數(shù)中定義的變量的地址,則返回的地址值

            無效。

            ?

            指針的應(yīng)用

            1

            從鍵盤上輸入兩個整數(shù),輸出較大數(shù)。

            (

            要求使用指針

            )

            #include

            main()

            {

            inta,b,*p,*q;

            p=&a;

            q=&b;

            printf("

            請輸入兩個整數(shù)

            :n");

            scanf("%d%d",p,q);

            if(*p>*q)

            printf("%d",*p);

            el

            printf("%d",*q);

            }

            2

            從鍵盤上輸入

            10

            個整數(shù),輸出最大數(shù)和最小數(shù)。

            #include

            main()

            {

            inta[10],*p,k,max,min;

            p=a;

            printf("

            請輸入

            10

            個整數(shù)

            :n");

            for(k=0;k<=9;k++)

            scanf("%d",&p[k]);

            max=p[0];

            min=p[0];

            for(k=1;k<=9;k++)

            {

            if(p[k]>max)max=p[k];

            if(p[k]

            }

            printf("

            最大數(shù)是

            %dn",max);

            printf("

            最小數(shù)是

            %dn",min);

            }

            九、指針處理字符串

            例1定義一個未知長度的字符串s。

            char*s=”Hello”;

            此例采用指針方式,

            s

            指向字符串

            ”Hello”

            的起始地址

            ?

            字符串的賦值

            假設(shè)已有下列定義

            :

            char*sp,s[6];

            1

            sp

            賦值

            ”hello”

            ,讓指針變量

            sp

            指向字符串。

            sp=”hello”;

            2

            給字符數(shù)組

            s

            賦值

            ”hello”

            。

            strcpy(s,”hello”);

            表示將

            ”hello”

            復制到

            s

            3

            給字符數(shù)組

            s

            賦值

            ”student”

            。

            strcpy(s,”student”);

            此例語法上沒有錯誤,但數(shù)組

            s

            空間不夠,最后

            會產(chǎn)生錯誤結(jié)果。

            注意:

            1)例2不能寫成s=”hello”;因為s是數(shù)組名即地址常量,

            故不能直接賦值。

            2)strcpy為字符串函數(shù),需要包含頭文件。

            ?

            字符數(shù)組的單獨賦值

            1charstr[10]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘!’,‘0’};

            此例中數(shù)組

            str

            10

            個元素

            ,

            最后

            2

            個元素也是

            ’0’

            此字符串共占

            10

            個空間,實際長度為

            7

            。此例中

            若省略

            ’0’

            效果相同。

            2charstr[]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘!’,‘0’};

            此例定義一個包含

            7

            個字符的字符串,最后一個

            ’0’

            不能省略。此時

            str

            可以作為字符串使用。

            3charstr[]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘!’};

            此例只是定義一個

            7

            個字符的數(shù)組,但由于沒有

            ’0’

            str

            不能作為字符串使用,否則會產(chǎn)生錯誤。

            9

            字符數(shù)組的整體賦值

            1charstr[10]={“string!”};

            charstr[10]=”string!”;

            以上兩種寫法都是合法的,效果相同。

            2charstr[7]=”string!”;

            這種方法雖然語法上沒有錯,但由于

            ’0’

            沒有放入

            注意:

            數(shù)組中,可能會產(chǎn)生錯誤結(jié)果。

            將上述語句改為charstr[]=”string!”;

            就完全正確了,系統(tǒng)自動計算數(shù)組大小。

            這種寫法簡單又不會出錯,推薦使用。

            10

            字符串的輸入和輸出

            使用

            scanf

            printf

            時,格式符均為

            %s

            。

            1charstr[15];

            scanf(“%s”,str);

            表示將輸入的一串字符依次存放在

            str

            中。

            2charstr[15];

            scanf(“%s”,&str[3]);

            表示將輸入的一串字符從第

            4

            個元素的地址開始

            依次存放。

            3charstr[15],*p;

            p=str;

            scanf(“%s”,p);

            這和例

            1

            功能相同,只是使用指針方法。

            4charstr[]=”student”;

            printf(“%s”,str);

            表示輸出整個字符串

            str

            的內(nèi)容。

            ?

            字符串應(yīng)用

            1

            從鍵盤上輸入一個字符串,輸出它的長度。

            #include

            #include

            main()

            {

            char*p,str[100];

            p=str;

            printf("

            請輸入一個字符串

            :n");

            gets(p);

            printf("%d",strlen(p));

            }

            2

            從鍵盤上輸入一個字符串,輸出其反字符串。

            方法一

            (

            單個輸出法

            )

            #include

            #include

            main()

            {

            chars[100];

            inti;

            printf("

            請輸入一個字符串

            :n");

            scanf("%s",s);

            for(i=strlen(s)-1;i>=0;i--)

            printf("%c",s[i]);

            }

            方法二

            (

            整體輸出法

            )

            #include

            #include

            main()

            {

            chars1[100],s2[100];

            inti,j=0;

            printf("

            請輸入一個字符串

            :n");

            scanf("%s",s1);

            for(i=strlen(s1)-1;i>=0;i--)

            s2[j++]=s1[i];

            s2[j]='0';

            printf("%s",s2);

            }

            本文發(fā)布于:2023-03-03 12:51:37,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/1677819098121003.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。

            本文word下載地址:c語言知識點.doc

            本文 PDF 下載地址:c語言知識點.pdf

            上一篇:植物景觀
            下一篇:返回列表
            相關(guān)文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網(wǎng)旗下知識大全大全欄目是一個全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 午夜爽爽爽男女污污污网站| 欧美 喷水 xxxx| 国产午夜精品在人线播放| 亚洲成人动漫在线| 欧美人成在线播放网站免费| 少妇被无套内谢免费看| 激情久久av一区二区三区| 亚洲综合国产一区二区三区| 亚洲成av人片天堂网无码| 人妻精品久久无码区| 欧美极品色午夜在线视频| 亚洲综合另类小说专区| 潮喷失禁大喷水无码| 亚洲va中文字幕欧美不卡| 亚洲欧美人成电影在线观看| 狠狠色婷婷久久综合频道日韩| 熟妇人妻中文a∨无码| 中文字幕无码视频手机免费看| 日韩在线视频线观看一区| 狠狠婷婷色五月中文字幕| 久久不见久久见免费影院| 东方四虎av在线观看| 国产91在线播放免费| 亚洲精品国产一区二区三| 久久亚洲欧美日本精品| 亚洲一区二区中文av| 成全影视大全在线观看| 亚洲aⅴ无码专区在线观看q| 欧美亚洲综合成人A∨在线| 亚洲欧洲日韩久久狠狠爱| 99RE6在线观看国产精品| 99re热精品视频中文字幕不卡| 色欲国产精品一区成人精品| 91麻豆亚洲国产成人久久| 国产线播放免费人成视频播放| 国产精品中出一区二区三区| 久青草视频在线观看免费| 国内熟妇人妻色在线视频| 精品一区二区三区四区色| 成全我在线观看免费第二季| 成人国产av精品免费网|