




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、名師精編優(yōu)秀資料期末復(fù)習(xí)C語言知識點歸納一、概述1. 一個C語言源程序可以由一個或多個函數(shù)組成,有且只有1個main()函數(shù),可以放在程序中的任何位置 .2. 一個C程序不論有幾個函數(shù),都是從main()函數(shù)開始執(zhí)行.3. 標識符按照C語言所定義的規(guī)則來命名的符號。規(guī)則:由字母、數(shù)字、下劃線組成,但第一個字符必須是字母或下劃線。例如:area、a234、_1234為合法標識符456P、a-b、a+b為非法標識符注意:標識符區(qū)分大小寫。例如:PAGE和page是兩個不同的標識符。4. C 語言有 32個關(guān)鍵字,關(guān)鍵字不能用作用戶標識符。5. C源程序文件的擴展名".c"。6.
2、 VC+6.0下c語言程序的完整實現(xiàn)過程包括4個基本步驟:編輯源程序編譯源程序構(gòu)建(鏈接)形成可執(zhí)行文件(.exe)運行可執(zhí)行文件.二、數(shù)據(jù)類型、表達式1.C語言中,整型、字符型、實型是最基本的數(shù)據(jù)類型2.常量指在程序運行中,其值不能被改變。分為整型常量、實型常量、字符常量、字符串常量。整型常量C語言中主要有十進制、八進制、十六進制等。十進制 例如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、0x
3、10、0x34為合法十六進制數(shù)100、ABC 0xAFH為非法十六進制數(shù)注意:C 語言中只有十進制數(shù)可以為負數(shù)。實型常量 表示方式有兩種:小數(shù)形式和指數(shù)形式。名師精編優(yōu)秀資料小數(shù)形式例如:0.123、.123、123.都是合法形式指數(shù)形式例如:2.3026可用以下任何一種指數(shù)表示0.23026E1、2.3026e0、23.026E-1但下面的指數(shù)形式為非法E3 、.5e3.6、2.3e -2(e 和-2 間有空格)符號常量用符號名來表示一個常量。格式:#define 符號名常量值例:已知圓的半徑為5.0,計算圓的面積(圓周率取3.14)#in elude <stdio.h> #de
4、fi ne PI 3.14 mai n() double r, s;r=5.0; s=PI*r*r;“s=%fn ” ,s);printf(C語言中整型常量的3種表示:8進制以0引導(dǎo),16進制以O(shè)x或0X引導(dǎo),十進制不能以0開頭.實型(float或double型)常量在程序中只能用十進制數(shù), 不能用其他進制表示。2種表示形式,普通的和指數(shù)形式,如3e5或者3E5,三者不可省略任何一部分.一個字符常量占一個字節(jié)存儲空間.用單引號限定,如:'0x41 '(為轉(zhuǎn)義字符,表示以十六進制數(shù)41為ASCII碼值的 字符,即A'的轉(zhuǎn)義字符形式).n回車換行 反斜杠'單引號”雙
5、引號ddd三位八進制 xhh二位十六進制0空值例1:n '表示回車換行表示一個單引號例2:101 '表示字符A'x41 '表示字符A' 0 '(表示空字符,在字符串中用作字符串的結(jié)束標志)字符串常量用英文雙引號括起來.女口:” hellon ”字符串中的字符個數(shù)稱為字符串的長度.空字符串長度為 0.字符串存儲中每個字符占一個字節(jié),字符串結(jié)尾自動加一個 結(jié)束標志符0 ',所以字符串存儲的時候,占用的空間長度 要比串的實際長度多 1.如:char ch =“Hello ” ;實際串的長度為5,但數(shù)組空間長度為6。變量指在程序運行過程中其值可以
6、改變的量。變量的命名必須符合標識符的命名規(guī)則,且不能和C語言中關(guān)鍵字同名。(例如:main是關(guān)鍵字)例如:a、b、ab為合法變量define、printf 為非法變量注意:ab是一個整體,含義不同于a乘以bo有符號整型變量用英文 singned表示,存儲時最高一位是符 號位,無符號整型變量用英文 unsigned表示.字符型變量的數(shù)據(jù)類型標識符是符號char,每個字符型變量只能存儲一個字符.例如:A'、 c'' 5 都是合法的字符常量” A”、 abc'都是非法的字符常量。字符變量用關(guān)鍵字char定義,可以同時賦初值。例1定義兩個字符變量chi和ch2。char
7、 ch1,ch2;例2定義兩個字符變量a和b,初值分別為1'和2'char a= ' 1' , b= ' 2'getchar函數(shù)禾口 putchar函數(shù)分別用來輸入字符和輸出字符。字符的輸入和輸出使用scanf和printf 時,格式符均為 Q例1從鍵盤上輸入一個字符保存在ch中。char ch;ch=getchar();例 2 char c1=' A' , c2;c2=c1+1;putchar(c2);輸出結(jié)果是B'。例3輸出一個回車換行符。putchar( n ');例:從鍵盤上輸入一串字符,最后以!為結(jié)束標志
8、。分別統(tǒng)計大寫字母,小寫字母、數(shù)字出現(xiàn)的次數(shù)#in clude<stdio.h>mai n()char ch;int n1=0, n2=0, n3=0;printf(“請輸入一串字符以!結(jié)束:n ”);ch=getchar();while(ch!='!')if(ch>='A' && ch<='Z')n 1+;if(ch>='a' && ch<='z')n 2+;if(ch>='0' && ch<='
9、;9')n 3+;ch=getchar();printf("大寫字母出現(xiàn)次數(shù)是 %dn",n1);printf("小寫字母出現(xiàn)次數(shù)是%dn", n2);printf(“數(shù)字出現(xiàn)次數(shù)是 dn",n3);VC+ 6.0下,int型數(shù)據(jù)占4個字節(jié),float 型數(shù)據(jù)占4個字節(jié), double型數(shù)據(jù) 占8個字節(jié),.char型數(shù)據(jù) 占1個字節(jié).運算符與表達式算術(shù)運算符+、-、*、/、%俅余數(shù))例如:3+2 1.2*3.2 5%3 1/2求余運算符只能用于整型數(shù)據(jù)的相除求余數(shù),結(jié)果為整數(shù).如:7%2.0為非法表達式,7/2結(jié)果為3,7%2結(jié)果為1運
10、算規(guī)則1)如果運算數(shù)類型一致,則結(jié)果為運算數(shù)的類型。所有實數(shù)運算都是以雙精度進行.2)如果運算數(shù)類型不一致,則系統(tǒng)自動轉(zhuǎn)換,使運算符兩邊類型 一致后再進行運算。賦值運算中,賦值號右側(cè)量的類型將轉(zhuǎn)換成左側(cè)的類型.例1 1.0/2.0 結(jié)果為0.5例2 1/2結(jié)果為015/3.0結(jié)果為5.0強制類型轉(zhuǎn)換 格式:(類型名)(表達式)例3(int)3.234 結(jié)果為3例 4(float)(10%3)結(jié)果為 1.000000關(guān)系運算符>,>=,<,<=的優(yōu)先級相同且高于=,!=的優(yōu)先級. 關(guān)系運算符的優(yōu)先級低于算術(shù)運算符咼于賦值運算符 關(guān)系運算符是左結(jié)合性.關(guān)系表達式的值為真則是
11、1,假為0.邏輯運算符&&(與)11(或)?。ǚ牵﹥?yōu)先級:非運算 >與運算或運算非運算規(guī)則結(jié)果假操作數(shù)直/、與運算規(guī)則操作數(shù)1操作數(shù)2纟直/、直/、直/、直/、假假假直/、假假假假或運算規(guī)則操作數(shù)1操作數(shù)2結(jié)果直/、直/、直/、直/、假直/、假直/、直/、假假假名師精編優(yōu)秀資料例1若變量a值為10,變量b值為16,計算表達式。a>b | a>sqrt(b) && b>=16最后結(jié)果為真,表達式的值為1邏輯運算符!高于&&,和|,高于算術(shù)運算符.&&和|是左結(jié)合的,!是右結(jié)合的.注意&&及 |
12、運算的短路現(xiàn)象。&&的短路運算:(表達式1) && (表達式2),若(表達式1)的值為0,則表達式2將不被計算,整個&&的結(jié)果為0。|的短路運算:(表達式1) |(表達式2),若(表達式1)的值為1,則表達式2將不被計算,整個|的結(jié)果為1。數(shù)學(xué)關(guān)系式0<xv10在C語言中的表達:(0<x) &&(x<10) 或 0<x && x<10名師精編優(yōu)秀資料賦值表達式格式:變量名=表達式例如:a=10 a=a+1 a-b-7+1為合法表達式a+b=8 a=7+1=b為非法表達式整個表達式的值等
13、于最左邊變量的值。例如:a=b=c=8*8 整個表達式最后的值為 64 復(fù)合賦值表達式 復(fù)合運算符:+=、-=、*=、/=、%=例如:n=n+1表達式可寫成n+=1n=n%3 表達式可寫成n%=3n*=m+3表達式可寫成n=n*(m+3)例1假設(shè)變量a初值為9,計算下列表達式。a+=a-=a+a解答:1) 計算a+a,結(jié)果為18, a值未變。2) 計算a- =18,即a=a-18,結(jié)果為-9,a值變?yōu)?9。3) 計算a+=-9,即a=a+(-9),結(jié)果為-18,a值變?yōu)?18整個表達式最后結(jié)果為-18,a最后值為-18。注意:a=a+1 為賦值表達式,而 a=a+1; 為賦值語句。自加和自減運
14、算符自加和自減只適用于整型變量.例如:a+ 和+a等價于 a=a+1b-和-b等價于b=b-1a+禾口+a的區(qū)另U :假設(shè)a的初值為5表達式 a+值為 5, 最后 a 值為 6。表達式+a值為6,最后a值為6。逗號表達式格式: 表達式1,表達式2,.,表達式n從左至右依次計算每個表達式,最后一個表達式的值即為整個逗號表達式的值。例女口 : 表達式 i=3,+i,i+5最后結(jié)果為 9, i 最后值為 4。條件運算由"?"和":"構(gòu)成,它是根據(jù)條件從兩個表達式中選 擇一個進行計算取值的操作,優(yōu)先級高于賦值運算符,低于算 術(shù)運算和關(guān)系運算.三、輸入輸出函數(shù)名師
15、精編優(yōu)秀資料數(shù)據(jù)輸出printf格式:printf( 格式符,輸出項1,輸出項2,.)格式符功能%c輸出一個字符%d輸出十進制整數(shù)%f輸出小數(shù)形式浮點數(shù)%e輸出指數(shù)形式浮點數(shù)%s輸出一個字符串數(shù)據(jù)寬度說明:1)在唏口格式字符之間插入一個整數(shù)來指定輸出寬度。例如:%4d、5c2)對于float和double類型的實數(shù),可以用 n1.n2形式 n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù) 點后小數(shù)的位數(shù)。例如:%12.3f、%12.0f例1輸出整型變量a和b的值,數(shù)據(jù)寬度均為4。printf(“4d%4”,a,b);例2輸出單精度變量k的值,保留2位小數(shù)。數(shù)據(jù)輸入seanf 格式:seanf
16、(格式符,輸入項1,輸入項2,)格式符功能%e輸入一個字符%d輸入十進制整數(shù)%f輸入單精度數(shù)%lf輸入雙精度數(shù)%s輸入一個字符串例1從鍵盤上輸入兩個整數(shù),保存在變量a和b中。seanf(“ d%”,&a,&b);例2從鍵盤上輸入一個雙精度數(shù),保存在變量data中。seanf(“ %lf ” ,&data);此處兩例中&是 C語言運算符,表示取變量地址。復(fù)合語句格式:語句1 語句2.語句n例1用復(fù)合語句將變量a,b,e依次賦值為最小素數(shù)。 a=2; b=3; e=5; 例2用復(fù)合語句實現(xiàn)變量a和b的值的交換。 k=a; a=b; b=k; C語言編譯預(yù)處理不帶參數(shù)
17、的宏#define PI 3.14159 意思是用符號常量Pl(宏名)代替3.14159(宏體),注意:宏定義不是c語 句,后面不加分號.in elude命令是編譯預(yù)處理的文件包含命令,形式為了#include<文件名 >或者 #include"文件名",調(diào)用標準函數(shù)中的輸入輸出函數(shù),#i nclude "stdio.h",如果調(diào)用數(shù)學(xué)函數(shù)(女口 sqrt函數(shù)、fabs函數(shù)等),則應(yīng)加上#include"math.h "或者#include <math.h>四、分支結(jié)構(gòu)關(guān)系運算符>、<、>=、
18、<=、=、匸關(guān)系運算的結(jié)果只有兩種:真或假C語言中用 1 表示真,用 0 表示假。例1 6>=6a'>' A' 5'>'結(jié)果均為真,值為1例2 6!=6D=' d'9'>'F'結(jié)果均為假,值為0邏輯運算符if語句的一般形式單分支結(jié)構(gòu):if(表達式)語句若表達式為真,則執(zhí)行語句;否則 if語句結(jié)束。二選一結(jié)構(gòu):if(表達式)語句組1else語句組2表達式的值非0才執(zhí)行語句組1,否則執(zhí)行語句組2.例1從鍵盤上輸入兩個整數(shù),輸出較大的數(shù)。#in elude <stdio.h>ma
19、i n()int x,y;printf(“請輸入兩個整數(shù):n ”);scanf(“d%”,&x,&y);if (x>y)printf( “ %d ,x);elseprintf( “ %d ,y);條件運算符格式: 表達式1?表達式2:表達式3若表達式1為真,結(jié)果為表達式2;否則為表達式3例如:x的初值為5,執(zhí)行以下語句y=+x>6?l00:200; 最后 y 的值為 200if語句可嵌套,在花括號里繼續(xù)使用.多選一結(jié)構(gòu):if(表達式1)語句組1Else if( 表達式2)語句組2Else if( 表達式3)語句組3else語句組n名師精編優(yōu)秀資料例1根據(jù)輸入的學(xué)生成
20、績,大于或等于90分為A, 60分以下等級為E,其余每10分一個等級。#in elude <stdio.h>mai n()int g;printf(“請輸入一個整數(shù):n ”);scanf( “%d,&g);if (g>=90) printf(“An ” );else if(g>=80) printf(“Bn ”);else if(g>=70) printf(“Cn ”);else if(g>=60) printf(“Dn ”);else printf(“ En ” );switch(表達式)/ switch表達式通常為整型或字符型值case常量1:語
21、句組1 /case后面必須是常量case常量2:語句組2default:語句組 /也可省略該語句名師精編優(yōu)秀資料可以使用中break來中止后面語句的執(zhí)行switch表達式通常為整型或字符型值,case中的常量類型與 之對應(yīng),case后面的表達式可以是常量或常量表達式,不能為變量表達式.switch 語句格式:switch( 表達式) case常量表達式1:語句1case常量表達式2:語句2case 常量表達式n-1:語句n-1default:語句 n若表達式的值與表達式1相等,則執(zhí)行語句1;若與表達式2相等,則執(zhí)行語句2若均不相等則執(zhí)行語句n。例1用switch語句重寫學(xué)生等級程序。#in e
22、lude <stdio.h>mai n() int g;printf( “請輸入一個整數(shù):n ”);sca nf(“d,&g);switch(g/10)case 10: printf(“ An ”);break;case 9:printf(“ An ”);break;case 8:printf(“ Bn ”);break;case 7:printf(“ Cn ”);break;case 6:printf(“ Dn ”);break;default:printf(“ En ”);程序中break表示跳過后面的分支。五、循環(huán)結(jié)構(gòu)while循環(huán)格式:while(表達式)循環(huán)體若表
23、達式為真,則執(zhí)行循環(huán)體。再判斷表達式,若仍為真 則重復(fù)執(zhí)行循環(huán)體直到表達式為假時循環(huán)結(jié)束。例1編程計算S=1+2+100。#in clude<stdio.h> mai n()int k=1,s=0;while (k<=100) s=s+k; k=k+1; printf( “ %d ,s);do-while 循環(huán) 格式:do循環(huán)體while( 表達式);先執(zhí)行循環(huán)體,然后判斷表達式。若為真則重復(fù)執(zhí)行 循環(huán)體直到表達式為假時循環(huán)結(jié)束。例1用do-while 循環(huán)計算10!#in clude<stdio.h>mai n()int k=1;long s=1;do s=s*
24、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í)行一次。for循環(huán)格式:for(表達式1;表達式2;表達式3)循環(huán)體先執(zhí)行表達式1,然后判斷表達式2,若為真則執(zhí)行 循環(huán)體。然后執(zhí)行表達式 3,再判斷表達式2,若仍 為真則重復(fù)執(zhí)行循環(huán)體直到表達式 2為假時結(jié)束。例1用for循環(huán)計算S=1+2+-100 #in clude<stdio.h>mai
25、n()int k,sum=0;for(k=1;k<=1OO;k+)sum=sum+k;printf(“ %d ,sum);例2若一個三位數(shù)個位、十位、百位的立方和等于它本身則稱這個數(shù)為水仙花數(shù)。例如153是一個水仙花數(shù)。編程輸出所有的水仙花數(shù)。#in clude<stdio.h>mai n()int a,b,c,i;for(i=100;iv=999;i+)a=i/100;b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c=i)prin tf("%dn",i);break語句適用的場合是switch語句中,及循環(huán)語句中 用在循環(huán)體內(nèi)
26、表示強行退出循環(huán)。例1計算S=1+2+3+-n,直到累加和大于 5000為止。#in elude <stdio.h>mai n()int i,s=0;for(i=1; ;i+)s=s+i;if(s>5000) break;printf( “ %d ,s);注意:當有多重循環(huán)時,break只能退出最內(nèi)層循環(huán)。continue 語句用在循環(huán)體中用來跳過本次循環(huán)余下的語句,立即開始 下一輪循環(huán),整個循環(huán)并未結(jié)束。例1寫出下列程序運行結(jié)果。int i, k=0, s=0;for(i=1;i<=5; i+)s=s+i;if(s>5) printf(“ i=%d,s=%d,k
27、=%dn” ,i,s,k);con ti nue;k=k+s;printf(“i=%d,s=%d,k=%dn” ,i,s,k);運行結(jié)果:i=1,s=1,k=1i=2,s=3,k=4i=3,s=6,k=4i=4,s=10,k=4i=5,s=15,k=4六、數(shù)組數(shù)組是包含多項相同類型數(shù)據(jù)的一種數(shù)據(jù)結(jié)構(gòu),它使用同一 個名字命名,再用下標進行分量標識.數(shù)組元素的下標從0 開始,數(shù)組長度為n時,最末元素的下標是 n-1.定義一維數(shù)組 格式:類型名 數(shù)組名元素個數(shù)例1定義一個包含4個整數(shù)的數(shù)組aint a4;例2定義一個包含3個雙精度數(shù)的數(shù)組bdouble b3;注意:C語言中數(shù)組的下界從0開始計數(shù)。例
28、如:a4的4個元素分別為a0、a1、a2、a3數(shù)組有一維數(shù)組,二維數(shù)組,和多維數(shù)組.數(shù)組中的每一個分 量稱為一個數(shù)組元素。一維數(shù)組定義格式 數(shù)據(jù)類型 數(shù)組名數(shù)組長度;/數(shù)組長度指數(shù)組中可以存放的數(shù)據(jù)元素的個數(shù),用整數(shù)常量表示,也可用代表一個正整數(shù)的符號常量表示 例如:int array10;C語言規(guī)定只能逐個使用數(shù)組元素,而不能一次使用整個數(shù)組。數(shù)值型一維數(shù)組的初始化用一對大括號將數(shù)組的初值括起來。例如:int a6=10,20,30,40,50,60;注意:C語言中,不允許初值個數(shù)多于數(shù)組定義的長度。int a =10,20,30,40,50,60;給初值的情況下,數(shù)組的長度可省略,系統(tǒng)以初
29、值的個數(shù)作為數(shù) 組的長度。對部分元素的初始化,例如:int a6=10,20,30 是對前3 個元素的賦值.例 1 int a3=1, 2, 3;此例中a0值為1、a1值為2、a2值為3例 2 int a5=0;此例中數(shù)組a的全部元素值均為0例 3 int a3=1, 2, 3, 4;此例中由于初值個數(shù)多于數(shù)組元素個數(shù),所以非法。例 4 int a =0, 0, 0, 0;此例中省略數(shù)組元素個數(shù),初值為 4個0等價于 int a4=0;注意:數(shù)組名是一個常量值,不能對它賦值。例如:int a3;a=5;此語句非法,應(yīng)改為 a0=5;一維數(shù)組應(yīng)用例1從鍵盤上輸入10個整數(shù),輸出最大數(shù)和最小數(shù)。#
30、in clude<stdio.h>mai n()int a10,i,max,m in;printf("請輸入10個整數(shù):n");for(i=0;i<=9;i+)sca nf("%d", &ai);max=a0;min=a0;for(i=1;i<=9;i+)if(ai>max) max=ai;if(ai<mi n) mi n=ai;printf("最大數(shù)是 %dn",max);printf("最小數(shù)是 %dn",min);字符數(shù)組字符型一維數(shù)組中每1個元素存放一個字符常量.
31、如:char ch='x10', 'x21', 'x1f', 'x5a'該數(shù)組中的初值字符為轉(zhuǎn)義字符。字符串用雙引號將一串字符括起來稱字符串。C語言中用一維數(shù)組來存放,并以0 '作為結(jié)束標志。0 '就是0,占用空間但不計入串的實際長度。例如:字符串” student ”的長度為7占用空間為8通常利用字符數(shù)組存放字符串。如:char str20= "hello"該字符串的實際長度為5個字符,占用的數(shù)組空間長度為20'0'是字符串的結(jié)束標志.系統(tǒng)在存放一個字符串時,會在串的最后一個字
32、符后添加'0'。任何一個一維數(shù)組在內(nèi)存中都占用一段連續(xù)的空間 用"s"格式輸入字符串時,遇到回車鍵結(jié)束,但獲得的字符中 不包含回車鍵本身,而是在字符串末尾添加'0'.使用一個一維scanf()函數(shù)使用"%s"格式輸入多個字符串時 輸入的各字符串之間要以空格鍵分隔.如:char ch20;scanf(“°%s ,ch); /從鍵盤輸入一個字符串存入數(shù)組ch用$格式符為一個字符數(shù)組輸入字符串時,只有第一個空格 之前的字符串被讀入到字符數(shù)組中.如:對上面的ch數(shù)組,輸入“ Hello world !”則只有空格前 面的
33、“ Hello ”被存入數(shù)組。gets()函數(shù)和 puts()函數(shù)專門用于字符串的輸入輸出,而 且只能對一個字符串進行操作.gets()函數(shù)格式為:gets(字符數(shù)組名);如:char str20;gets(str); /*從鍵盤輸入一個字符串存入數(shù)組ch,輸入時以回車鍵作為結(jié)束符.*/puts()使用格式與gets()相同.puts(str); / 輸出str數(shù)組中存放的字符串字符串常用函數(shù)使用下列函數(shù)時要包含頭文件<stri ng.h>1) 字符串拷貝函數(shù)strcpy(s1,s2)表示將s2復(fù)制到si中。2) 字符串連接函數(shù)strcat(s1,s2)表示將s2連接到si后面形成
34、一個新字符串3) 字符串長度函數(shù)strle n(s)計算出s的實際長度不包括0 '。4) 字符串比較函數(shù)strcmp(s1,s2)若s1>s2,函數(shù)返回值大于0若s1=s2,函數(shù)返回值等于0若si<s2,函數(shù)返回值小于0字符串應(yīng)用例1從鍵盤上輸入一個字符串,輸出它的長度。#in clude<stdio.h> #in cludevstri ng.h>mai n()char* p, str100;p=str;printf("請輸入一個字符串:n");gets(p);prin tf("%d",strle n( p);定義二
35、維數(shù)組格式:類型名 數(shù)組名一維上界二維上界例1定義一個2行2列的整型數(shù)組aint a22;、a01、此例中數(shù)組a共有4個元素,分別是a00a10、a11。例2定義一個4行4列的整型矩陣aint a44;二維數(shù)組的初始化用嵌套的大括號將數(shù)組初值括起來。例 1 int a43= 1,2,3, 4,5,6, 7,8,9,10,11,12 ;例 2 int a43= 1,2, 4,5, 7, 10 ;此例中系統(tǒng)自動給空缺的地方補0例 3 int a43= 1,2, 4,5 ;系統(tǒng)自動給后面的行補初值0例 4 int a43=1, 2, 4, 5;此例中數(shù)組a的第一行中元素和第二行的第一個元素依次為1,
36、2,4,5其余全部為0定義二維數(shù)組大小例 1 int a 3= 1,2,3, 4,5, 6, 8 ;有4個行花括號,因此說明是4行3列。例 2 int a 3=1, 2, 3, 4, 5;表示一個 2 行 3 列數(shù)組。定義并初始化二維數(shù)組時,數(shù)組的列數(shù)不能省略。如:int a2=1,2,3,4,5;是錯誤的。二維數(shù)組應(yīng)用例:從鍵盤上輸入5個學(xué)生3門課程的成績,分別計算每個學(xué)生的平均分和每門課程的平均分。#in clude<stdio.h> #defi ne M 5名師精編優(yōu)秀資料#defi ne N 3mai n()int aMN,i,j,sum;printf("請輸入
37、15 個分數(shù)(0-100):n");for(i=0;iv=M-1;i+)for(j=0;j<=N-1;j+)sca nf("%d", &aij);printf("每個學(xué)生的平均分n");for(i=0;i<=M-1;i+)sum=0;for(j=0;j<=N-1;j+)sum=sum+aij;prin tf("%4d",sum/N);prin tf("n");printf("每門課程的平均分n");for(i=0;i<=N-1;i+)Quibujsum=
38、0;for(j=0;jv=M- 1;j+)sum=sum+aji;prin tf("%4d",sum/M);七、函數(shù)帶返回值的函數(shù)格式:類型名 函數(shù)名(參數(shù)列表)語句return 返回值例 1 已知 F(X)=2*X+3,計算 F(1)+F(2)+ .F(10)的值。#in clude<stdio.h>in t f(i nt x):L ujntej:0 ujntej(0=!%iunu)ji (+!lu nu 二!2=!)0j :!屮!(ujnu tui)eujuds!屮! <qoipts>ep nQU!# 眩N誨臺胡旦蛆劇NOOL妥乙乙呦:(iuns
39、(up%u)wuud:(!)j+uj ns=uu ns(+!:(H=>!l=!)oj:O=UJns屮! Ouibuj:£+x¥乙 ujntej名師精編優(yōu)秀資料int i,sum=O;for(i=2;iv=100;i+)if(isprime(i)=1) sum=sum+i;prin tf("%d",sum);例3從鍵盤上輸入兩個整數(shù),分別輸出它們的最大公約數(shù) 和最小公倍數(shù)。#in clude<stdio.h>int getmax(i nt a,i nt b)int result;result=a<b?a:b;while(a%resu
40、lt!=O | b%result!=0)result=result-1;return result;int getm in (i nt a,i nt b)int result=1;while(result%a!=O | result%b!=O)result=result+1;return result;mai n()int a,b;printf("請輸入兩個整數(shù):n");sca nf("%d%d", &a,&b);printf(”最大公約數(shù)是 dn",getmax(a,b);printf(”最小公倍數(shù)是 %dn",ge
41、tmin(a,b);不帶返回值的函數(shù)格式:void 函數(shù)名(參數(shù)列表)語句函數(shù)的遞歸指一個函數(shù)在內(nèi)部又調(diào)用自己的過程。例:用遞歸的方法計算斐波數(shù)列的第40項。#in clude<stdio.h>long f(int n)if(n=1 | n=2)return 1;elsereturn f(n-1)+f( n-2);mai n()prin tf("%ld",f(40);傳值和傳地址傳值是指子程序中變量的變化不會影響主程序變量。 傳地址是指子程序中變量的變化會影響主程序變量。 例1交換兩變量a和b的值。(傳值方式)#in clude<stdio.h> void cha nge(i nt a,i nt b)int t;名師精編優(yōu)秀資料 t=a; a=b; b=t; mai n()int a=3,b=5;printf("a=%d b=%dn",a,b);cha nge(a,b);prin tf("a=%d b=%dn",a,b);運行結(jié)果:a=3 b=5a=3 b=5函數(shù)change(int a,int b)為傳值方式,最后a和b的值并未交換。故傳值方式不能改變主程序變量的值。例2交換兩變量a和b的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中音樂與其他學(xué)科融合教學(xué)的有效策略和實踐路徑
- 拔尖創(chuàng)新人才培養(yǎng)新路徑與行動計劃
- 運營直播面試題及答案
- 三方分紅合同協(xié)議書
- 魚船出租合同協(xié)議書
- 區(qū)域合伙合同協(xié)議書
- 合同就業(yè)協(xié)議書怎么填
- 會議咨詢服務(wù)合同協(xié)議書
- 合同協(xié)議書為何最優(yōu)先
- 餐飲協(xié)議書合同
- 老年人誤吸的預(yù)防團體標準試題
- 17小猴子下山 第一課時 公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 廚房人員消防安全知識培訓(xùn)
- 2024年廣東省中山市教學(xué)共進聯(lián)盟中考一模數(shù)學(xué)試題(含答案)
- 聚合工藝作業(yè)安全培訓(xùn)課件
- 2024年山東省公共衛(wèi)生臨床中心招聘筆試沖刺題含答案解析
- 電廠凝結(jié)水系統(tǒng).課件
- 乳腺癌中醫(yī)護理查房
- 2024年司法考試真題及答案
- 天車檢驗報告
- 口腔護士進修總結(jié)匯報
評論
0/150
提交評論