版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言筆記注意:在C語言中,關(guān)鍵字都是小寫的。C語言簡潔、緊湊,使用方便、靈活。ANSIC一共只有32個(gè)關(guān)鍵字:autobreakcasedefaultchar const continuedowhiledoubleelseenum extern floatforgotoifintlongregister return shortsignedstaticsizofstruct switch typedefunionunsignedvoidvolatile9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。TurboC擴(kuò)充了11個(gè)關(guān)鍵字:asm_cs_ds_es_sscdeclfarhugeinterruptnearpascal#define八進(jìn)制以0開頭,如0123,即(123)8十六進(jìn)制以O(shè)x開頭,如0123,即(123)16整型:一個(gè)正數(shù)的補(bǔ)碼和其原碼形式相同,如10得0000000000001010一個(gè)負(fù)數(shù)的補(bǔ)碼是取-10的絕對(duì)值10,對(duì)10的二進(jìn)制形式取反加1,101+1=110Signedintunsignedintshortlongcharfloat單精度double雙精度,longdouble%d,%o,%x, %c,%s, —個(gè)整常量后面加一個(gè)字母丨或L,則認(rèn)為是longintmain()個(gè)說明或一個(gè)語句占一行。用{}括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個(gè)字母對(duì)齊,并單獨(dú)占一行。低一層次的語句或說明可比高一層次的語句或說明縮進(jìn)若干格后書寫。以便看起來更加清晰,增加程序的可讀性??瞻追?空格符、制表符、換行符等統(tǒng)稱為空白符在C語言中使用的詞匯分為六類:標(biāo)識(shí)符,關(guān)鍵字,運(yùn)算符,分隔符,常量,注釋符等1?標(biāo)識(shí)符(在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符)C規(guī)定,標(biāo)識(shí)符只能是字母(A?Z,a?z)、數(shù)字(0?9)、下劃線(_)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。⑴標(biāo)準(zhǔn)C不限制標(biāo)識(shí)符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時(shí)也受到具體機(jī)器的限制。在標(biāo)識(shí)符中,大小寫是有區(qū)別的。標(biāo)識(shí)符雖然可由程序員隨意定義,但標(biāo)識(shí)符是用于標(biāo)識(shí)某個(gè)量的符號(hào)。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,作到“顧名思義”。2?關(guān)鍵字(關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相同)(1)類型說明符:如前面例題中用到的int,double等(2)語句定義符:ifelse就是條件語句的語句定義符(3)預(yù)處理命令字:include3?運(yùn)算符:4?分隔符:在C語言中采用的分隔符有逗號(hào)和空格兩種5?常量:C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號(hào)常量、轉(zhuǎn)義字符等多種。6?注釋符:C語言的注釋符是以"/*"開頭并以"*/"結(jié)尾的串#definePRICE30/*#define定義PRICE代表常量30*/ PRICE是符號(hào)常量習(xí)慣上符號(hào)常量用大寫,變量用寫小寫例如:整型變量a和b,可以進(jìn)行求余運(yùn)算:a%b(%是求余符號(hào))若指定a和b為實(shí)型變量,則不允許進(jìn)行”求余”運(yùn)算.整型八進(jìn)制以0開頭的數(shù)是八進(jìn)制.如0123表示八進(jìn)制123,即(123)8其值為1X82+2X81+3X8。8,十六進(jìn)制以0x開頭的數(shù)是十六進(jìn)制?如0x123表示十六進(jìn)制123,即(123)16,其值為1X162+2X161+3X160在C編譯系統(tǒng),每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié).實(shí)際上,數(shù)值是以補(bǔ)碼表示的?一個(gè)正數(shù)的補(bǔ)碼和其原碼的形式是相同?而負(fù)數(shù)的補(bǔ)碼是將該值的絕對(duì)值的二進(jìn)制形式,按位取反再加1.例如:求-10的補(bǔ)碼,取-10的絕對(duì)值為10,然后10的二進(jìn)制為1010,對(duì)1010(0000000000001010)取反,,一共占16個(gè)字節(jié),再加1為整數(shù)的16位中,最左面的一位是表示符號(hào),該位為0表示數(shù)值為正,該位為1則數(shù)值為負(fù)Signedint有符號(hào)-32768-32767unsignedint無符號(hào)0-65535shortint短整型longint長整型.不一樣的微機(jī),位數(shù)是不一樣的.整型int%d,%0,%x實(shí)型floatdouble%f字符型char一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)%cPrintf(“%f,%d,%c\n”,a,b,c);\ddd:1到3位8進(jìn)制數(shù)所代表的字符如:\101(八進(jìn)制)為65(二進(jìn)制)的字符”A”注意:”\0”或”\000”是代表ASCII碼為0的控制字符,即”空操作”字符.它將用在字符串中.\xhh:1到2位16進(jìn)制數(shù)所代表的字符\n:換行,將當(dāng)前位置移到下一行開頭,ASCII代碼為10(十進(jìn)制)\t:水平制表(跳到下一個(gè)tab位置),制表區(qū)占8列,ASCII代碼為9(十進(jìn)制)\b:退格,將當(dāng)前位置移到前一列,ASCII代碼為8(十進(jìn)制)\r:回車,將當(dāng)前位置移到本行開頭,ASCII代碼為13(十進(jìn)制)\f:換頁,將當(dāng)前位置移到下頁開頭,ASCII代碼為12(十進(jìn)制)\\:反斜杠字符”\”,ASCII代碼為92(十進(jìn)制)\':單引號(hào)(撇號(hào))字符,ASCII代碼為39(十進(jìn)制)\”:雙引號(hào)字符,ASCII代碼為34(十進(jìn)制)字符串常量‘a(chǎn)'是字符常量(是用一對(duì)單引號(hào)括起來的),"a"是字符串常量(是用一對(duì)雙引號(hào)括起來的)C規(guī)定在每一個(gè)字符串的結(jié)尾加一個(gè)”字符串結(jié)束標(biāo)志”,是以字符'\0'作為字符結(jié)束標(biāo)志,從ASCII代碼表中可以看到ASCII碼為0的字符是”空操作字符”各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算如字符數(shù)據(jù)必定先轉(zhuǎn)換為整數(shù),short型轉(zhuǎn)換為int型float型數(shù)據(jù)在運(yùn)算時(shí)一律先轉(zhuǎn)換成雙精度型即是二個(gè)全是float型也要先轉(zhuǎn)換成double型.Charshortlfintfunsignedflongfdoubleafloat運(yùn)算符優(yōu)先級(jí)和結(jié)合性級(jí)別類別含義運(yùn)算符結(jié)合方向1強(qiáng)制轉(zhuǎn)換、數(shù)組、結(jié)構(gòu)、聯(lián)合圓括號(hào)()自左至右下標(biāo)運(yùn)算符[]指向結(jié)構(gòu)成員運(yùn)算符或結(jié)構(gòu)體成員運(yùn)算符->或2邏輯邏輯非!自右至左(單目運(yùn)算符)字位按位取反2增量自增(加一)++減量自減(減一)--指針地址與運(yùn)算符(取地址)&指針運(yùn)算符(取內(nèi)容)*算術(shù)負(fù)號(hào)運(yùn)算符(單目減)-長度計(jì)算長度計(jì)算sizeof3算術(shù)乘*自左至右(雙目運(yùn)算符)除/求余(取模)%4算術(shù)和指針運(yùn)算加+減-5字位左移<<右移>>6關(guān)系大于等于>=大于>小于等于<=小于<7等于(恒等于)==
不等于!=8字位按位與&9按位異或A10按位或|11邏輯邏輯與&&左結(jié)合左結(jié)口雙目運(yùn)算符12邏輯或||13條件條件運(yùn)算14賦值賦值=復(fù)合賦值+=*=/=%=》=<<=&=A=1=15逗號(hào)逗號(hào)運(yùn)算/-右1結(jié)合右結(jié)口強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(double)a將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整形,如果寫成(int)x+y則只將x轉(zhuǎn)換成int型,然后與y相加(float)(5%3)將5%3的值轉(zhuǎn)換成float型說明:在強(qiáng)制轉(zhuǎn)換時(shí),得到一個(gè)所需的類型的中間變量,原來變量的類型未發(fā)生變化.求余"%”運(yùn)算符要求其兩側(cè)均為整型量,floatx,則x%3是不合法,必須(int)x%3自增自減運(yùn)算符(只能用于變量,不能用于常理和表達(dá)式)++i是在使用之前先使i的值加(減)1若j=++i;i=3;printf("%d\n”,++j)為4i++是在使用之后使i的值加(減)1若j=i++;i=3;printf("%d\n”,j++)為3-i++中,其中-為負(fù)號(hào)運(yùn)算和++為同優(yōu)先級(jí),而結(jié)合方向是自右至左,所以相當(dāng)于-(i++)(1)控制語句C語言9種控制語句:1、 if()~~~~~~else~~~~~~(條件語句)2、for()~~~~~ (循環(huán)語句)3、while()~~~~~ (循環(huán)語句)4、 do~~~'~~while()~~~~~~(循環(huán)語句)5、 continue (結(jié)束本次循環(huán)語句)6、break (中止執(zhí)行switch或循環(huán)語句)7、 switch (多分支選擇語句)8、goto (轉(zhuǎn)向語句)9、 return (從函數(shù)返回語句)
上述括號(hào)()表示其中是一個(gè)條件,~~~~表示內(nèi)嵌的語句例:if(x>y)z=x;elsez=y;函數(shù)調(diào)用語句:printf(“ThisisaCstatement.\n”);表達(dá)式語句:a=3;(一個(gè)賦值表達(dá)式)空語句: ; (即只有一個(gè)分號(hào)語句)復(fù)合語句{}: {z=x+y;t=z/100;printf(“%f\n”,t);}輸入輸出函數(shù)#include<>或“”/*頭文件*/Scanf()輸入函數(shù)printf()輸出函數(shù)是系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)#include(預(yù)編譯命令)Putchar(Putchar(:輸出字符)Printf(:格式輸出)getchar(輸入字符)scanf(格式輸入)Puts(輸出字符串) gets(輸入字符串)c語言中include后用引號(hào)與尖括號(hào)的區(qū)別使用尖括號(hào)的話,編譯時(shí)會(huì)先在系統(tǒng)inelude目錄里搜索,如果找不到才會(huì)在源代碼所在目錄搜索;使用雙引號(hào)則相反,會(huì)先在源代碼目錄里搜索。這就意味著,當(dāng)系統(tǒng)里(如/usr/include/里)有一個(gè)叫做的頭文件,而你的源代碼目錄里也有一個(gè)你自己寫的頭文件,那么使用尖括號(hào)時(shí)用的就是系統(tǒng)里的;而使用雙引號(hào)的話則會(huì)使用你自己寫的那個(gè)。所以建議:使用系統(tǒng)里提供的頭文件時(shí)使用尖括號(hào)使用自己編寫的頭文件時(shí)使用雙引號(hào)輸出單個(gè)字符:#include<>Main(){chara,b,c;a=‘B';b=‘O'c=‘Y';putchar(a);putchar(b);putchar(c);}也可以輸出轉(zhuǎn)義字符如:putchar(‘\101');putchar(‘\'');輸入單個(gè)字符:getchar()函數(shù)沒有參數(shù),其一般形式為getchar() 字符輸入函數(shù)#include<>main(){charc;c=getchar();putchar(c);}格式輸入輸出函數(shù)Printf(“%d\n”,x);%d么按整型數(shù)據(jù)的實(shí)際長度輸出%md么m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出.Printf("%4d,%4d\n”,a,b)若a=123,b=12345則a輸出結(jié)果為:空格123則b輸出結(jié)果為:12345%ld么輸出長整型數(shù)據(jù)若longa=1356739;printf(“%9ld”,a);則a輸出結(jié)果為:空格空格1356739%o是以八進(jìn)制形式輸出整數(shù).%x是以十六進(jìn)制形式輸出整數(shù).%u用來輸出unsigned型數(shù)據(jù),即無符號(hào)數(shù),以十進(jìn)制形式輸出.%c用來輸出一個(gè)字符.chara='w';printf("%c”,w);%s用來輸出一個(gè)字符串.printf("%s”,”CHINA”);%ms輸出的字符占m列,如字符串本身長度大于m則突破m的限制,全部輸出字符串,若串長小于m,則左補(bǔ)空格.%-ms如果串長小于m則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格.%輸出占m列,但只取字符串左端n個(gè)字符.這n個(gè)字符輸出在m列的右端,左補(bǔ)空格.%輸出占m列,但只取字符串左端n個(gè)字符.這n個(gè)字符輸出在m列的左端,右補(bǔ)空格.n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出.%f用來輸出實(shí)數(shù)(單精度和雙精度),以小數(shù)形式輸出.%e以指數(shù)形式輸出實(shí)數(shù),輸出數(shù)據(jù)所占的寬度和數(shù)字部分小數(shù)位數(shù)由系統(tǒng)自動(dòng)指定給出6位小數(shù),指數(shù)部分占5列(如e+002),其中e占一位,指數(shù)符號(hào)占一位,指數(shù)占3位%g用來輸出實(shí)數(shù),它根據(jù)數(shù)值大小自動(dòng)選f格式或e格式.Scanf輸入函數(shù)scanf(“%d,%d,%d”,&a,&b,&c)#include<>main(){inta,b,c;scanf("%d,%d,%d",&a,&b,&c);/*輸入這三個(gè)數(shù)的時(shí)候丫逗號(hào)也要輸?shù)?*/printf("%d,%d,%d\n",a,b,c);getch();}若:scanf("%d%d%d",&a,&b,&c);輸入a,b,c三個(gè)數(shù)時(shí),12空格13空格88Scanf(“%3d%3d”,&a,&b);輸入:123456,系統(tǒng)自動(dòng)把123賦給a,456賦給bScanf(“%3c”,&ch);輸入:abc,由于ch只能容納一個(gè)字符,系統(tǒng)就把第一個(gè)字符'a'賦給ch如果%后面有一個(gè)”*”附加說明符,表示跳過它指定的列數(shù).如:scanf("%2d%*3d%2d”,&a,&b);輸入:12空格345空格67回車,將12賦給a,%*3d表示讀入3位整數(shù)但不賦給任何變量.然后再讀入2位整數(shù)67賦給b.第二組數(shù)據(jù)345被跳過.在輸入數(shù)據(jù)進(jìn),遇以下情況時(shí)數(shù)據(jù)認(rèn)為結(jié)束:1、 遇空格,或按回車或跳格(Tab)鍵;2、 按指定的寬度結(jié)束,如“%3d”,只取3列;
3、遇非法輸入;例:輸入三角形的三邊長,求三角形面積s=1/2(a+b+c) area=?號(hào)s(s-a)(s-b)(s-c)Floata,b,c,area,s;scanf(“%f,%f,%f”,&a,&b,&c);s=2*(a+b+c);Area=sqrt(s*(s-a)*(s-b)*(s-c));Printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);printf(“area=%7.2f\n”,area);If語句If與else的配對(duì)關(guān)系:else總是與它上面的最近的if配對(duì).If與else的數(shù)目一樣時(shí)If與else的數(shù)目一樣時(shí),采用If()If()語句1Else語句2ElseIf()語句3Else語句4If與else的數(shù)目不一樣時(shí),釆用加花括號(hào)來確定If(){if()語句1}Else語句2判斷某一年是否閏年其中一種方法main(){intyear,leap;printf("inputyear:");scanf("%d",&year);if(year%4==0)if(year%100==0)if(year%400==0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf("%dyes\n",year);elseprintf("%dnoyear\n",year);getch();}main(){intx,y;scanf(“%d”,&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf(“x=%d,y=%d\n”,x,y);getch();/*能顯示輸出*/}/*判斷某一年是否閏年另一種方法*/#include<>voidmain(){intyear;printf("inputyear:");scanf("%d",&year);if(((year%4==0)&&(year%100!=0))||(year%400==0))printf("%dyes\n",year);elseprintf("%dnoyear\n",year);getch();}條件運(yùn)算符(三目運(yùn)算符,自右至左)main(){intx,y,max;scanf("%d,%d",&x,&y);max=(x>y)x:y;/*如果(a>b)條件為真,則條件表達(dá)式取值a,否則取值b*/printf("%d\n",max);getch();/*能顯示輸出*/}/*輸入一個(gè)字符,判斷大小寫,如果是大寫,轉(zhuǎn)換成小寫,并輸出最后得到的字符*/Main(){charch;Scanf(“%c”,&ch);If(ch>=‘A'&&ch<=‘Z'){ch=ch+32;printf(“%c\n”,ch);}/*去掉花括號(hào)將編譯出錯(cuò)*//* ch=(ch>=‘A'&&ch<=‘Z')(ch+32):ch 也可以用條件運(yùn)算符*/Elseprintf(“%c\n”,ch);getch();/*能顯示輸出*/Switch語句是多分支選擇語句Switch(表達(dá)式)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí)就執(zhí)行case后面的語句{case常量表達(dá)式1語句1;break;每一個(gè)case常量表達(dá)式的值必須互不相同case常量表達(dá)式2:語句2 ;break;執(zhí)行一個(gè)分支后可以用一個(gè)break語句來終止switch語句的執(zhí)行case常量表達(dá)式3:語句3 ;break;case常量表達(dá)式n:語句n;break;default:語句n+1;最后一個(gè)分支default可以不加break語句。}Case后面包含一個(gè)以上執(zhí)行語句,但可以不必用花括弧括起來,會(huì)自動(dòng)順序執(zhí)行本case后面所有的執(zhí)行語句Switch(表達(dá)式)表達(dá)式的值為A或B或C時(shí)都執(zhí)行同一組語句case‘A':case‘B':case‘C':case‘D':printf(">60\n”);break;/*求方程的解*/#include<> /*輸入輸出函數(shù)要調(diào)用,也可以不寫*/#include<> /*用到絕對(duì)值函數(shù)和開根號(hào)函數(shù),所以要調(diào)用*/main(){floata,b,c,disc,x1,x2,realpart,imagpart; /*定義類型*/scanf("%f,%f,%f",&a,&b,&c); /*輸入方程的三個(gè)數(shù)*/printf("theequation"); /*顯示theequation,意思是方程*/訐(fabs(a)<=pow(10,-6))printf("isnotaquadratic");/*對(duì)a求絕對(duì)值,判斷a=0(fabs(a)<=le-6))就不是二次方程*/elsedisc=b*b-4*a*c; /*計(jì)算b*b-4*a*c的值是等于還是小于還是大于0*/if(fabs(disc)<=pow(10,-6))printf("hastwoequalroots:%8.4f\n",-b/(2*a));/*hastwoequalroots是有兩個(gè)相等的根的意思,這個(gè)判斷是等于0后有兩個(gè)相等實(shí)根*/elseif(disc>pow(10,-6)) /*大于0后有兩個(gè)不等實(shí)根*/{x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("hastwoequalroots:%8.4fand%8.4f\n",x1,x2);}else{realpart=-b/(2*a);/*小于0后有兩個(gè)共軛復(fù)根的實(shí)部*/imagpart=sqrt(-disc)/(2*a);printf("hascomplexroots:\n");/*hascomplexroots是有復(fù)雜的根源的意思*/printf("%8.4f+%\n",realpart,imagpart);printf("%8.4f-%\n",realpart,imagpart);}getch();}說明:le-6:是科學(xué)計(jì)數(shù)法,表示10的-6次方,用函數(shù)是pow(10,-6))不用0來判斷,用一個(gè)很小的數(shù)就認(rèn)為disc是0,是為了產(chǎn)生誤差,因?yàn)閷?shí)數(shù)在計(jì)算和存儲(chǔ)時(shí)會(huì)有一些微小的誤差。/*算運(yùn)費(fèi)*/#include<>main(){intc,s;floatf,d,p,w; /*總運(yùn)費(fèi)f(freight貨物),基本運(yùn)費(fèi)p(price價(jià)格),貨物重w(weight重量),距離s,折扣d(discount)*/printf("inputnumber:\n");scanf("%f,%f,%d",&p,&w,&s);if(s>=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=2;break;case2:case3:d=5;break;case4:case5:case6:case7:d=8;break;case8:case9:case10:case11:d=10;break;case12:d=15;break;}f=p*w*s*(1-d/;printf("freight=%f\n",f);getch();}Goto語句為無條件轉(zhuǎn)向語句,形式:goto語句標(biāo)號(hào);語句標(biāo)號(hào)用標(biāo)識(shí)符表示,它的定名規(guī)則與變量名相同.即字母,下劃線,數(shù)字.一般來說來兩種用途:1、 與訐語句一起構(gòu)成循環(huán)結(jié)構(gòu);2、從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外.但在C語言中可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán).用if語句和goto語句構(gòu)成循環(huán),求1+2+3+ +99+100#include<>main(){intsum=0,i=1;loop: if(i<=100){sum=sum+i;i++;gotoloop;}printf("sum=%d\n",sum);getch();}While語句用來實(shí)現(xiàn)當(dāng)型循環(huán)結(jié)構(gòu),一般形式:while(表達(dá)式)語句當(dāng)表達(dá)式非0值時(shí)執(zhí)行while語句中的內(nèi)嵌語句,先判斷表達(dá)式后執(zhí)行語句/*用while語句構(gòu)成循環(huán),求1+2+3+ ..+99+100*/#include<>main(){intsum=0,i=1;while(i<=100){sum=sum+i;i++;} /*如果不加花括弧則while語句的范圍只到“sum=sum+i”*/printf("sum=%d\n",sum);getch();}Do循環(huán)體While(表達(dá)式)Do-While是循環(huán)語句特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立/*用do-while語句構(gòu)成循環(huán),求1+2+3+ ??+99+100*/#include<>main(){intsum=0,i=1;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d\n",sum);getch();}按esc后一個(gè)一個(gè)顯示輸出/*用do-while語句構(gòu)成循環(huán),求1+2+3+ ??+99+100*/#include<>main(){intsum=0,i=1;do{sum=sum+i;i++;printf("sum=%d\n",sum);getch();}while(i<=100);printf("sum=%d\n",sum);getch();}For語句格式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值;) 語句;表達(dá)式1 表達(dá)式2表達(dá)式3先求解表達(dá)式1。再求解表達(dá)式2,若值為真,則執(zhí)行for語句中的內(nèi)嵌語句,然后就求解表達(dá)式3,若為假則結(jié)束循環(huán)。1、“表達(dá)式T可以省略for(;表達(dá)式2;表達(dá)式3)語句;/*分號(hào)不能少*/2、“表達(dá)式2”省略即不判斷循環(huán)條件,循環(huán)將無終止地進(jìn)行下去。3、 “表達(dá)式3”也可以省略,如i++不放在“表達(dá)式3”,而作為循環(huán)體的一部分效果是一樣的。4、 全部省略么不賦值,不判斷,不增量,無終止地執(zhí)行循環(huán)體。5、 for(i=O;(c=getchar())!=‘\n';i+=c;)終端接收一個(gè)字符給C,判斷表達(dá)式的值是否不等于'\n'(換行符)for(;(c=getchar())!='\n';)則輸入Computer輸出則也是Computerbreak語句和continue語句break是終止整個(gè)循環(huán)的執(zhí)行;continue只是結(jié)束本次循環(huán);訐(fabs(a)<=pow(10,-6))的意思是if(a=0)頭文件:#include<>_pow(x,y)函數(shù)是求X的值,幾的幾次方。Pow(x,y)函數(shù)是計(jì)算xy的值函數(shù)原型:doublepow(doublex,doubley)Abs(x)函數(shù)是求整數(shù)x的絕對(duì)值函數(shù)原型:intabs(intx)Fabs(x)函數(shù)是求雙精度實(shí)數(shù)的絕對(duì)值函數(shù)原型:doublefabs(doublex)Sqrt(x)函數(shù)是開根號(hào)子 函數(shù)原型:doublesqrt(doublex)攝氏溫度C=5/9(F華氏溫度-32)
數(shù)組一維數(shù)組類型說明:數(shù)組名[常量表達(dá)式]如如:inta[10];表示數(shù)組名為a,此數(shù)組有10個(gè)元素。數(shù)組必須先定義后使用。C語言規(guī)定只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。main(){inti,a[10];for(i=0;i<10;i++) a[i]=i;for(i=9;i>=0;i--) printf(“outnumber%d\n”,a[i]);/*從9到0輸出*/getch();}/*輸出數(shù)字101到110*/#include<>main()/*輸出數(shù)字101到110*/#include<>main(){inti,t=100,a[10];for(i=0;i<=9;i++){t++;a[i]=t;printf("outnumber%d\n",a[i]);}getch();}#include<>main(){inti,t,a[10];printf("intputnumber:");scanf("%d",&t);for(i=0;i<=9;i++){t++;a[i]=t;printf("outnumber%d\n",a[i]);}getch();}一維數(shù)組初始化定義成:inta[10]={0,1,2,3,4,5,6,7,8,9};定義成:inta[10]={0,1,2,3,4,5};表示只給前面5個(gè)元素賦初值,后面的5個(gè)元素值為0/*后一個(gè)數(shù)是前二個(gè)數(shù)之和‘Fibonacci數(shù)列*/#include<>main(){inta[20]={1,1};inti;for(i=2;i<20;i++)a[i]=a[i-2]+a[i-1];for(i=0;i<20;i++){if(i%5==0)printf(“\n”);printf(“%12d”,a[i]);}getch();}#include<>main(){longinta[30]={1,1};inti;for(i=2;i<30;i++)a[i]=a[i-2]+a[i-1];for(i=0;i<30;i++){if(i%5==0)printf("\n");printf("%12ld",a[i]);}getch();}起泡法對(duì)10個(gè)數(shù)排序(由小到大):將相鄰的兩個(gè)數(shù)比較,將小的調(diào)到前頭。main(){inta[11];inti,j,t;printf(“inpuf10numers:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++) /*因?yàn)?0個(gè)數(shù),所以要要循環(huán)j=10-1次*/for(i=1;i<=10-j;i++)/*第j趟要進(jìn)行n-j次兩兩比較*/if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“thesortednumbers:\n”);for(i=1;i<=10;i++)printf(“%d\n”,a[i]);getch();}二維數(shù)組類型說明:數(shù)組名[常量表達(dá)式][常量表達(dá)式]如:floata[3][4];3行4列C語言對(duì)二維數(shù)組采用這樣的定義,可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個(gè)一維數(shù)組??梢钥醋魇且粋€(gè)一維數(shù)組它有3個(gè)元素a[0],a[1],a[2]每個(gè)元素又包含有4個(gè)元素的一維數(shù)組。二維數(shù)組初始化inta[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12} };inta[3][4]={ 1,2,3,4,5,6,7,8,9,10,11,12 };a[3][4]={{1},{5},{9}};只對(duì)各行第1列賦值,其余元素值自動(dòng)為0/*將二維數(shù)組行和列互換,存到另一個(gè)二維數(shù)組*/#include""main(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n"); /*array陣列*/for(i=0;i<=1;i++) /*行*/{for(j=0;j<=2;j++) /*列*/{printf("%6d",a[i][j]);b[j][i]=a[i][j]; /*賦值給b[j][i]值*/}printf("\n");}printf("arrayb:\n"); /*以下是數(shù)組b輸出*/for(i=0;i<=2;i++) for(j=0;j<=2;j++){for(j=0;j<=1;j++) {for(i=0;i<=1;i++)printf("%6d",b[i][j]); printf("%6d",b[j][i]);printf("\n"); printf("\n");} } /*左右兩部分輸出結(jié)果一樣的*/getch();}/*一個(gè)3X4矩陣,求出其中最大值的那個(gè)元素的值及所在的行號(hào)和列號(hào)*/#include""main(){inti,j,row=0,colum=0,max;/*row行\(zhòng)排colum列*/inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}pritntf(“max=%d,row=%d,colum=%d\n”,max,row,colum);getch();}字符數(shù)組:用來存放字符數(shù)據(jù)的數(shù)組,一個(gè)元素存放一個(gè)字符.初始化charc[10];c[0]=‘I';c[1]=‘';c[2]=‘a(chǎn)';c[3]=‘m';c[4]=‘';c[5]=‘h';c[6]=‘a(chǎn)';c[7]=‘p';c[8]=‘p';c[9]=‘y';字符型與整型是互相通用,所以也可以定義intc[10];初始化:charc[10]={T,‘''a:'m',‘'‘h''a''p''p''y'};如果初值個(gè)數(shù)小于數(shù)組長度,將剩下的元素自動(dòng)定為空字符“\0”也可以定義二維字符數(shù)組chara[5][5]={{''''''''''},{''''''''''},{''''''''''},{''''''''''},{''''''''''}};單引號(hào)中間就是想賦的值C語言中將字符串作為字符數(shù)組來處理。C語言規(guī)定了一個(gè)“字符串結(jié)束標(biāo)志”,以字符'\0'代表。系統(tǒng)對(duì)字符串常量也自動(dòng)加一個(gè)'\0'作為結(jié)束符。說明:'\0'代表ASCII碼為0的字符,是一個(gè)不可以顯示的字符,而是一個(gè)“空操作字符”單個(gè)字符作初值用單引號(hào),字符串是用雙引號(hào)。charc[10]={“China”};前面5個(gè)元素為'C','h','i','n','a',第6個(gè)為'\0',后4個(gè)元素為空字符,所以也是‘\0'字符數(shù)組的輸入輸出逐個(gè)字符輸入輸出,用格式符“%C” 輸入或輸出一個(gè)字符。將整個(gè)字符串一次輸入或輸出,用格式符“%s”輸入或輸出一串字符。輸出字符不包括結(jié)束符'\0'用“%s”格式符輸出字符串時(shí),printf函數(shù)中的輸出項(xiàng)是字符數(shù)組名,而不是數(shù)組元素名。如寫成printf("%s”,c[O]);是不對(duì)的。應(yīng)為:printf("%s”,c);定義:chara[13];Scanf("%s”,a);若輸入:Howareyou回車而只將第一個(gè)空格前的“How”送到a中。注意:scanf函數(shù)中輸入項(xiàng)是字符數(shù)組名。輸入項(xiàng)是字符數(shù)組名時(shí),不要再加地址符&,因?yàn)樵贑語言中數(shù)組名代表該數(shù)組的起始地址,Scanf("%s”,&a);這樣的寫法是不對(duì)的。printf(“%o”,c);可以輸出數(shù)組C的起始地址。puts(字符數(shù)組,輸出字符串)charstr[]={“China\nBeijing”};puts(str);gets(字符數(shù)組,輸入字符串)定義:charstr[];gets(str);若輸入:Computer回車,將所輸入的字符串送給字符數(shù)組str,8個(gè)字母加一個(gè)自動(dòng)加上去的'\0'共9個(gè)字符送入str。注意:puts和gets函數(shù)只能輸入或輸出一個(gè)字符串。不能寫成:puts(str1,str2)或gets(str1,str2)Strcat(字符數(shù)組1字符數(shù)組2)是字符串連接,作用:連接兩個(gè)字符數(shù)組中的字符串,把字符2接到字符1的后面,結(jié)果放在字符數(shù)組1中。字符數(shù)組1必須足夠大,以便容納連接后的新字符串。charstr1[30]={"People'sRepublicof”};charstr2[]={"China”};printf(“%s”,strcat(str1,str2));輸出:People'sRepublicofChinastrcpy(字符數(shù)組1字符串2)是字符串復(fù)制。作用:將字符串2復(fù)制到字符數(shù)組1中去。字符數(shù)組1必須足夠大,以便容納被復(fù)制的字符串。字符數(shù)組1必須寫成數(shù)組名形式(如str1),字符串2可以是字符數(shù)組名也可以是一個(gè)字符串常量,如strcpy(str1,“China”);復(fù)制時(shí)連同字符串后面的'\0'一起復(fù)制到字符數(shù)組1中。不能用賦值語句將一個(gè)字符串?;蜃址麛?shù)組直接給一個(gè)字符數(shù)組?如:str1={"China”};和str1=str2;都是不合法的。用賦值語句只能將一個(gè)字符賦給一個(gè)字符型變量或字符數(shù)組元素。如:chara[5],cl1,cl2;cl1='A';Cl2='B';a[0]='C';a[1]='h'; 以此類推??梢杂胹trncpy函數(shù)將字符串2中前面若干個(gè)字符復(fù)制到字符數(shù)組1中去。如:strncpy(str1,str2,2);Strcmp(字符串1,字符串2)是字符串比較。作用:比較字符串1和字符串2。對(duì)兩個(gè)字符串自左至右逐個(gè)字符相比(按ASCII碼大小比較)直到出現(xiàn)不同的字符或遇到'\0'為止比較結(jié)果由函數(shù)值帶回:1、 如果字符串1=字符串2,函數(shù)值為02、 如果字符串1>字符串2,函數(shù)值為正整數(shù)3、 如果字符串1<字符串2,函數(shù)值為負(fù)整數(shù)注意:對(duì)兩個(gè)字符串比較,不能用以下形式:if(str1==str2)printf(“yes”);而只能用if(strcmp(str1,str2)==0)printf("yes”);/*輸入slzzOOO正確后顯示*/#include""main(){charstr1[]={"slzzOOO"};charstr2[16];printf("inputmima:\n");scanf("%s",str2);if(strcmp(str1,str2)==O)printf("ILOVEYOU");elseprintf("NONONONONONONONONO");getch();}strlen(字符數(shù)組)是測(cè)字符串長度。作用:用來測(cè)試字符串長度的函數(shù)。函數(shù)的值為字符串的實(shí)際長度,不包括‘\0'在內(nèi)。charstr[1O]={“China”};printf(“%d”,strlen(str));strlwr(字符串)是字符串小寫。作用:將字符串中大寫字母換成小寫字母。/*將字符串中大寫字母換成小寫字母*/#include""main(){charstr[16]={"ChinaWOaiNI"};printf("%s\n",str);printf("%s",strlwr(str));getch();}strupr(字符串)是字符串大寫。作用:將字符串中小寫字母換成大寫字母。/*將字符串中小寫字母換成大寫字母*/#include""main(){charstr[16]={"ChinaWOaiNI"};printf("%s\n",str);printf("%s",strupr(str));getch();/*輸入一行字符,統(tǒng)計(jì)有多少個(gè)單詞,單詞之間用空格分隔開*/思路:單詞數(shù)目可以由空格出現(xiàn)的次數(shù)決定(連續(xù)的若干空格作為出現(xiàn)一次空格;一行開頭的空格不統(tǒng)計(jì)在內(nèi))。#include""main(){charstr[81];inti,num=0,word=0;/*num為單詞數(shù),word=0則表示前一個(gè)字符是空格,word=1意味著前一個(gè)字符為非空格*/charc;gets(str); /*輸入字符串*/for(i=0;(c=str[i])!='\0';i++) /*如果是空操作就結(jié)束循環(huán),‘\0'是空操作*/if(c=='')word=0;/*空格鍵的ASCII碼值是032(space鍵)。如果C為空格,word為0,沒有新單詞*/else訐(word==0)/*C不是空格,條件滿足前一個(gè)字符是空格,新單詞開始,word為1前一個(gè)為非空格*/{word=1;num++;/*單詞個(gè)數(shù)+1*/}printf("Thereare%dwordsintheline.\n",num);getch();}當(dāng)前為空格,未出現(xiàn)單詞,使word為0,num不累加;當(dāng)前不為空格,前一字符為空格(word=0),新單詞出現(xiàn),num加1,word=1當(dāng)前不為空格,前一字符非空格(word=1),未出現(xiàn)新單詞,num不加1預(yù)處理一》宏定義:1、 不帶參數(shù):#define標(biāo)識(shí)符常量表達(dá)式/*#define是宏定義命令,宏名(標(biāo)識(shí)符)好習(xí)慣用大寫*/#defineNIL0x80可以用#undefNIL命令終止宏定義的作用域。宏定義定義時(shí)可以引用已定義的宏名,可以層層置換如:#defineR#definePI#defineL2*PI*R#defineSPI*R*R2、 帶參數(shù):/*相當(dāng)于小函數(shù)*/#define宏名(參數(shù)表)字符串/*不僅要時(shí)行字符串替換還要進(jìn)行參數(shù)的替換,在宏定義時(shí),宏名與帶參數(shù)的括弧之間不應(yīng)該加空格,否則將空格以后的字符串都作為替代字符串的一部分,這可是很容易出錯(cuò)的*/如:#defineSQ(a,b)a*b使用:x=12;y=10;area=SQ(x,y);/*則area=12*10=120*/define金山詞霸2009牛津版翻譯為確定宏不存在類型問題,宏名無類型,它的參數(shù)也無類型,只是一個(gè)符號(hào)代表。調(diào)用函數(shù)只可得到一個(gè)返回值,而宏可以設(shè)法得到幾個(gè)結(jié)果。如#definePI#defineCIRCLE(R,L,S,V)L=2*PI*R;S=PI*R*R;V=*PI*R*R*Rmain(){floatR,L,S,V;printf("INPUTSUZI:\n");scanf("%f",&R);CIRCLE(R,L,S,V);printf("R=%6.2f,L=%6.2f,S=%6.2f,V=%6.2f\n",R,L,S,V);getch();}宏替換不占運(yùn)行時(shí)間,只上編譯時(shí)間.二》文件包含:#include<文件名〉或#include"文件名"/*在C中用雙引用形式更保險(xiǎn),在C51中常用物是尖括弧形式*/include金山詞霸2009牛津版翻譯為包括用<>尖括號(hào)形式時(shí)系統(tǒng)到存放C庫函數(shù)頭文件所在的目錄中找,這種稱為標(biāo)準(zhǔn)方式一個(gè)include命令只能指定一個(gè)被包含文件.如果文件1包含文件2,而文件2中要用到文件3的內(nèi)容,則而文件1中要用到兩個(gè)include命令.
即在文件即在文件1中定義:#include“”用雙引號(hào)么先在用戶當(dāng)前目錄中尋找,若找不到再按標(biāo)準(zhǔn)方式#include“”如果中有全局靜態(tài)變量,它也在文件中有效,不必用extern聲明。條件編譯條件編譯幾種形式:#ifdef標(biāo)識(shí)符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025交通事故致人死亡賠償協(xié)議書14篇
- 借款借貸合同協(xié)議書七篇
- 補(bǔ)水美容病因介紹
- 內(nèi)蒙古通遼市(2024年-2025年小學(xué)六年級(jí)語文)統(tǒng)編版能力評(píng)測(cè)(下學(xué)期)試卷及答案
- 全國賽課一等獎(jiǎng)初中統(tǒng)編版七年級(jí)道德與法治上冊(cè)單元思考與行動(dòng)《追求美好人生》精美課件
- (2024年)藝術(shù)學(xué)校建設(shè)項(xiàng)目可行性研究報(bào)告
- 【中職專用】中職對(duì)口高考-機(jī)電與機(jī)制類專業(yè)-核心課-模擬試卷1(河南適用)(答案版)
- 2023年天津市和平區(qū)高考語文三模試卷
- 2023年復(fù)合管道項(xiàng)目融資計(jì)劃書
- 蔬菜園藝工中級(jí)考試題
- 安全設(shè)施設(shè)備管理制度(3篇)
- 第三單元試題-2024-2025學(xué)年統(tǒng)編版語文四年級(jí)上冊(cè)
- 關(guān)于銷售的課件
- 2024-2030年中國竹業(yè)行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 西南名校聯(lián)盟2025屆生物高三第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 分布式光伏合同小E施工版(個(gè)人學(xué)習(xí)參考模版)
- 關(guān)于心理健康的課件
- 廣東省惠州市2024年中考英語模擬試卷(含答案)
- 廣東省廣州市2023-2024學(xué)年七年級(jí)上學(xué)期語文期中試卷(含答案)
- 2024至2030年中國芯片原子鐘行業(yè)調(diào)查及市場(chǎng)前景咨詢報(bào)告
- 第七單元:長方形和正方形(講義)-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)人教版
評(píng)論
0/150
提交評(píng)論