


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言筆記注意:在C語言中,關(guān)鍵字都是小寫的。C語言簡潔、緊湊,使用方便、靈活。 ANSI C共只有32個關(guān)鍵字:auto break case default char const continuedo whiledoubleelseenumexter nfloatforgotoifintlongregisterreturnshortsign edstaticsizofstructswitchtypedefunionun sig nedvoidvolatile9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。Turbo C擴(kuò)充了 11個關(guān)鍵字:asm _cs _ds _
2、es _ss cdecl far huge interruptnear pascal#defi ne八進(jìn)制以0開頭,如0123,即(123)8十六進(jìn)制以0x開頭,如0123,即(123)16整型:一個正數(shù)的補(bǔ)碼和其原碼形式相同,如10得0000000000001010一個負(fù)數(shù)的補(bǔ)碼是取-10的絕對值10,對10的二進(jìn)制形式取反加1,101+1=110Signed int un sig ned int short long charfloat單精度double 雙精度,long double%d, %o,%x,%c,%s, 個整常量后面加一個字母I或L,則認(rèn)為是long intmain ()個說
3、明或一個語句占一行。2用括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。一般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨(dú)占一行。3低一層次的語句或說明可比高一層次的語句或說明縮進(jìn)若干格后書寫。以便看起來 更加清晰,增加程序的可讀性??瞻追嚎崭穹?、制表符、換行符等統(tǒng)稱為空白符在C語言中使用的詞匯分為六類:標(biāo)識符,關(guān)鍵字,運(yùn)算符,分隔符,常量,注釋符等。1標(biāo)識符(在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符)C規(guī)定,標(biāo)識符只能是字母(AZ az)、數(shù)字(09)、下劃線(_)組成的字符串,并且其 第一個字符必須是字母或下劃線。(1)標(biāo)準(zhǔn)C不限制標(biāo)識符的長度,但它受各種版本的 C語言編譯系統(tǒng)限制,同時也受到
4、具 體機(jī)器的限制。(2)在標(biāo)識符中,大小寫是有區(qū)別的。(3)標(biāo)識符雖然可由程序員隨意定義,但標(biāo)識符是用于標(biāo)識某個量的符號。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,作到顧名思義”。2關(guān)鍵字(關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同 )(1) 類型說明符:如前面例題中用到的int,double等(2) 語句定義符:if else就是條件語句的語句定義符(3) 預(yù)處理命令字:in elude3運(yùn)算符:4分隔符:在C語言中采用的分隔符有逗號和空格兩種5常量:C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn) 義字符等多種。6
5、注釋符:C語言的注釋符是以T開頭并以“*/結(jié)尾的串#define PRICE 30 /*#define 定義 PRICE代表常量 30*/PRICE是符號常量習(xí)慣上符號常量用大寫,變量用寫小寫例如:整型變量a和b,可以進(jìn)行求余運(yùn)算:a%b (%是求余符號)若指定a和b為實(shí)型變 量,則不允許進(jìn)行”求余”運(yùn)算.整型八進(jìn)制以0開頭的數(shù)是八進(jìn)制如0123表示八進(jìn)制123,即(123)8,其值為1X82+2X81+3X8° 十六進(jìn)制以0x開頭的數(shù)是十六進(jìn)制如0x123表示十六進(jìn)制123,即(123)16,其值為1X162+2X161+3X160在C編譯系統(tǒng),每一個整型變量在內(nèi)存中占2個字節(jié)實(shí)際
6、上,數(shù)值是以補(bǔ)碼表示的一個正數(shù)的補(bǔ)碼和其原碼的形式是相同而負(fù)數(shù)的補(bǔ)碼是將該值的絕對值的二進(jìn)制形式,按位取反再加1.例如:求-10的補(bǔ)碼,取-10的絕對值為10,然后10的二進(jìn)制為1010,對 1010(00000000 00001010)取反,,一共占 16 個字節(jié),再加1為整數(shù)的16位中,最左面的一位是表示符號,該位為0表示數(shù)值為正,該位為1則數(shù)值為負(fù)Sig ned int 有符號-32768-32767unsigned int無符號 0-65535short int短整型long int長整型.不一樣的微機(jī),位數(shù)是不一樣的.整型int%d ,%0, %x實(shí)型 float double%f字
7、符型char 一個字符變量在內(nèi)存中占一個字節(jié)%cPrintf( “n",a,b,c);ddd : 1到3位8進(jìn)制數(shù)所代表的字符如:101(八進(jìn)制)為65(二進(jìn)制)的字符”注意:”0”或”000 ”是代表ASCII碼為0的控制字符,即”空操作”字符.它將用在字符串中xhh :1到2位16進(jìn)制數(shù)所代表的字符n :換行,將當(dāng)前位置移到下一行開頭,ASCII代碼為10(十進(jìn)制)t :水平制表(跳到下一個tab位置),制表區(qū)占8列,ASCII代碼為9(十進(jìn)制)b :退格,將當(dāng)前位置移到前一列,ASCII代碼為8(十進(jìn)制)r :回車,將當(dāng)前位置移到本行開頭,ASCII代碼為13(十進(jìn)制)f :換
8、頁,將當(dāng)前位置移到下頁開頭,ASCI I代碼為12(十進(jìn)制) :反斜杠字符” ”,ASCII代碼為92(十進(jìn)制)':單引號(撇號)字符,ASCII代碼為39(十進(jìn)制)”:雙引號字符,ASCII代碼為34(十進(jìn)制)字符串常量是字符常量(是用一對單引號括起來的),”a”是字符串常量(是用一對雙引號括起來的)C規(guī)定在每一個字符串的結(jié)尾加一個”字符串結(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)算時一律先轉(zhuǎn)換成雙精度型,即是二
9、個全是float型也要先轉(zhuǎn)換成double型.Char shortl 宀 int 宀 unsigned long double J float運(yùn)算符優(yōu)先級和結(jié)合性級別類另S含義運(yùn)算符結(jié)合方向1強(qiáng)制轉(zhuǎn)換、數(shù)組、結(jié)構(gòu)、聯(lián)合圓括號()自左至右下標(biāo)運(yùn)算符指向結(jié)構(gòu)成員運(yùn)算符或 結(jié)構(gòu)體成員運(yùn)算符->或2邏輯邏輯非!自右至左(單目運(yùn)算符)字位按位取反增量自增(加一)+減量自減(減一)-指針地址與運(yùn)算符(取地址)&指針運(yùn)算符(取內(nèi)容)*算術(shù)1負(fù)號運(yùn)算符(單目減)-長度計算長度計算sizeof3算術(shù)乘*自左至右(雙目運(yùn)算符)除/求余(取模)%4算術(shù)和指針運(yùn)算加+減-5子位左移<<右移&
10、gt;>6關(guān)系大于等于>=大于>小于等于<=小于<7等于(恒等于)=不等于!=8字位按位與&9按位異或A10按位或|11邏輯邏輯與1&&12邏輯或II左結(jié)合 雙目運(yùn)算符13條件條件運(yùn)算:14賦值賦值=復(fù)合賦值+=*=/=%=<< =&=A =1 =15逗號逗號運(yùn)算J右結(jié)合強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(double)a 將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整形,如果寫成(int)x+y貝U只將x轉(zhuǎn)換成int型撚后與y相加 (float)(5%3)將5%3的值轉(zhuǎn)換成float型說明:在強(qiáng)制轉(zhuǎn)換時,得到一個所
11、需的類型的中間變量,原來變量的類型未發(fā)生變化 求余”運(yùn)算符要求其兩側(cè)均為整型量,float x ,則x%3是不合法,必須(int)x%3自增自減運(yùn)算符(只能用于變量,不能用于常理和表達(dá)式)+i是在使用之前先使i的值加(減)1若j=+i; i=3; printf( %dn ”,+j)為4i+是在使用之后使i的值加(減)1 若j=i+; i=3; printf( %dn ”,j+)為3-i+中,其中-為負(fù)號運(yùn)算和+為同優(yōu)先級,而結(jié)合方向是自右至左,所以相當(dāng)于-(i+)(1)控制語句C語言9種控制語句1、(條件語句)2、for()(循環(huán)語句)3、while()(循環(huán)語句)4、do' whil
12、e()(循環(huán)語句)5、con ti nue(結(jié)束本次循環(huán)語句)6、break(中止執(zhí)行switch或循環(huán)語句)7、switch(多分支選擇語句)8、goto(轉(zhuǎn)向語句)9、return(從函數(shù)返回語句)上述括號()表示其中是一個條件,示內(nèi)嵌的語句例:if(x>y) z=x;else z=y;(2) 函數(shù)調(diào)用語句(3) 表達(dá)式語句:printf( This is a C statement.n ”);a=3;(一個賦值表達(dá)式)(4)空語句:;(即只有一個分號語句)(5)復(fù)合語句:z=x+y; t=z/100; printf( %fn ”,t);輸入輸出函數(shù)#include <>
13、 或"” /* 頭文件 */Scanf()輸入函數(shù)printf()輸出函數(shù)是系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)#include(預(yù)編譯命令)Putchar(輸出字符)getchar(輸入字符)Printf(格式輸出)scanf(格式輸入)Puts(輸出字符串)gets(輸入字符串)c語言中include后用引號與尖括號的區(qū)別使用尖括號的話,編譯時會先在系統(tǒng)include目錄里搜索,如果找不到才會 在源代碼所在目錄搜索;使用雙引號則相反,會先在源代碼目錄里搜索。這就意 味著,當(dāng)系統(tǒng)里(如/usr/include/里)有一個叫做的頭文件,而你的源代碼目錄 里也有一個你自己寫的頭文件,那么使用尖括號時用的
14、就是系統(tǒng)里的;而使用雙引號的話則會使用你自己寫的那個。所以建議:使用系統(tǒng)里提供的頭文件時使用尖括號使用自己編寫的頭文件時使用雙引號輸出單個字符:# include <>Mai n() char a,b,c;a= B'b= O'= Y'putchar(a); putchar(b); putchar(c);也可以輸出轉(zhuǎn)義字符如:putchar( 101 ' putchar(輸入單個字符:getchar()函數(shù)沒有參數(shù),其一般形式為getchar() 字符輸入函數(shù)#in clude <>main () char c;c=getchar();pu
15、tchar(c);格式輸入輸出函數(shù)Printf( %dn ”,x);%d么按整型數(shù)據(jù)的實(shí)際長度輸出%md么m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出 Printf( %4d,%4dn”,a,b);若 a=123,b=12345則a輸出結(jié)果為:空格123則b輸出結(jié)果為:12345%ld么輸出長整型數(shù)據(jù)若long a=1356739;printf( %9ld”,a);則a輸出結(jié)果為:空格空格1356739%o是以八進(jìn)制形式輸出整數(shù).%x是以十六進(jìn)制形式輸出整數(shù).%u用來輸出unsigned型數(shù)據(jù),即無符號數(shù),以十進(jìn)制形式輸出.%c用來輸出一個字符.c
16、har a='w 'printf( %c",w);%s用來輸出一個字符串.pri ntf( %s”, "CHINA”);%ms輸出的字符占m列,如字符串本身長度大于m則突破m的限制,全部輸出字符串,若串長小于m,則左補(bǔ)空格.%-ms如果串長小于 m則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格.%輸出占m列,但只取字符串左端n個字符.這n個字符輸出在 m列的右端,左補(bǔ)空格.%輸出占m列,但只取字符串左端n個字符.這n個字符輸出在m列的左端,右補(bǔ)空格.n>m, 則m自動取n值,即保證n個字符正常輸出.%f用來輸出實(shí)數(shù)(單精度和雙精度),以小數(shù)形式輸出.%e以指數(shù)
17、形式輸出實(shí)數(shù),輸出數(shù)據(jù)所占的寬度和數(shù)字部分小數(shù)位數(shù)由系統(tǒng)自動指定給出6位小數(shù),指數(shù)部分占5列(如 e+002),其中e占一位,指數(shù)符號占一位,指數(shù)占3位%g用來輸出實(shí)數(shù),它根據(jù)數(shù)值大小自動選f格式或e格式.Scanf輸入函數(shù) scanf( %d,%d,%d",&a,&b,&c)#in clude <>main () int a,b,c;scanf("%d,%d,%d",&a,&b,&c);/*輸入這三個數(shù)的時候 ”,”逗號也要輸?shù)?*/prin tf("%d,%d,%dn",a,b,c
18、);getch();若:scanf("%d%d%d",&a,&b,&c);輸入 a,b,c 三個數(shù)時,12 空格 13 空格 88Sca nf( %3d%3d", &a, &b);輸入:123456,系統(tǒng)自動把123賦給a,456賦給bSca nf( %3c", &ch);輸入:abc,由于ch只能容納一個字符,系統(tǒng)就把第一個字符 ''賦給ch如果后面有一個”附加說明符,表示跳過它指定的列數(shù).如:scanf( %2d %*3d %2d”, &a, &b);輸入:12空格345
19、空格67回車,將 12賦給a,%*3d表示讀入3位整數(shù)但不賦給任何變量.然后再讀入2位整數(shù)67賦給b.第二組數(shù)據(jù)345被跳過在輸入數(shù)據(jù)進(jìn),遇以下情況時數(shù)據(jù)認(rèn)為結(jié)束:1、 遇空格,或按回車或跳格(Tab)鍵;2、 按指定的寬度結(jié)束,如“3d”,只取3列;3、遇非法輸入;例:輸入三角形的三邊長,求三角形面積 s=1/2(a+b+c)area=根號s(s-a) (s-b) (s-c)Float a,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
20、=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn”,a,b,c,s);printf( area=%7.2fn ”,area);if配對.main() int x,y;scanf( %d", &x);if(x<0) y=-1;else if(x=0) y=0; else y=1; printf( x=%d,y=%dn”,x,y);getch();/*能顯示輸出*/If語句If與else的配對關(guān)系:else總是與它上面的最近的If與else的數(shù)目一樣時,采用If()If() 語句1Else 語句2ElseIf() 語句3Else 語句4If與else的數(shù)
21、目不一樣時,采用加花括號來確定If()if()語句 1Else 語句2判斷某一年是否閏年其中一種方法main()int year,leap;printf("input year:");scanf("%d", &year);if(year%4=0)if(year%100=0) if(year%400=0) leap=1; else leap=0;else leap=1;else leap=0;if(leap) printf("%d yesn",year); else printf("%d no yearn",
22、year); getch();/*判斷某一年是否閏年另一種方法 */#include <>void main()int year;printf("input year:");scanf("%d", &year);if(year%4=0)&&(year%100!=0)|(year%400=0)printf("%d yesn",year);else printf("%d no yearn",year); getch();條件運(yùn)算符(三目運(yùn)算符,自右至左)main() int x,y,
23、max;scanf("%d,%d",&x,& y);max=(x>y) x:y; /*如果(a>b)條件為真,則條件表達(dá)式取值 a,否則取值b*/printf("%dn",max);getch();/*能顯示輸出*/*輸入一個字符,判斷大小寫,如果是大寫,轉(zhuǎn)換成小寫,并輸岀最后得到的字符*/Main() char ch;Scanf( %c",&ch);If(ch>= A' && ch<= Z' ) ch=ch+32; printf( %cn”,ch);/* 去掉花括
24、號將編譯出錯 */* ch=(ch>= A' && ch<= Z' ) (ch+32) :ch也可以用條件運(yùn)算符*/Else printf( %cn ",ch);getch();/*能顯示輸出*/Switch語句是多分支選擇語句Switch(表達(dá)式)表達(dá)式的值與某一個 case后面的常量表達(dá)式的值相等時就執(zhí)行case后面的語句case常量表達(dá)式1 :語句1case常量表達(dá)式 2:語句2;break;每一個case常量表達(dá)式的值必須互不相同;break;執(zhí)行一個分支后可以用一個break語句來終止switch語句的執(zhí)行case常量表達(dá)式 3:
25、語句3break;case常量表達(dá)式 n:語句 nbreak;default:語句n+1 ;最后一個分支default可以不加break語句Case后面包含一個以上執(zhí)行語句,但可以不必用花括弧括起來,會自動順序執(zhí)行本case后面所有的執(zhí)行語句Switch(表達(dá)式)表達(dá)式的值為A或B或C時都執(zhí)行同一組語句case A': case B':case C': case D': printf( >60n ");break ;/*求方程的解*/#include <>/*輸入輸出函數(shù)要調(diào)用,也可以不寫*/#include <>/*用到
26、絕對值函數(shù)和開根號函數(shù),所以要調(diào)用*/main()float a,b,c,disc,x1,x2,realpart,imagpart; /* 定義類型 */scanf("%f,%f,%f",&a,&b,&c);/* 輸入方程的三個數(shù) */printf("the equation");/* 顯示 theequation,意思是方程 */if(fabs(a)v=pow(10,-6) printf("is not a quadratic"); /* 對 a 求絕對值,判斷 a=0(fabs(a)v=le_6)就不是二次
27、方程*/else disc=b*b-4*a*c; /*計算b*b-4*a*c的值是等于還是小于還是大于0*/if(fabs(disc)<=pow(10,-6) printf("has two equal roots:%8.4fn",-b/(2*a); /*has two equal roots 是有兩 個相等的根的意思,這個判斷是等于0后有兩個相等實(shí)根*/else if(disc>pow(10,-6)/*大于0后有兩個不等實(shí)根*/x1= (-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf("has t
28、wo equal roots:%8.4f and %8.4fn",x1,x2);elserealpart=-b/(2*a); /*小于0后有兩個共軛復(fù)根的實(shí)部*/imagpart=sqrt(-disc)/(2*a);printf("has complex roots:n"); /*has complex roots是有復(fù)雜的根源的意思 */printf("%8.4f+%n",realpart,imagpart);printf("%8.4f-%n",realpart,imagpart);getch();說明:le-6 :是科學(xué)
29、計數(shù)法,表示10的-6次方,用函數(shù)是pow(10,-6)不用0來判斷,用一個很小 的數(shù)就認(rèn)為disc是0,是為了產(chǎn)生誤差,因為實(shí)數(shù)在計算和存儲時會有一些微小的誤差。/* 算運(yùn)費(fèi)*/#include <>main()int c,s;/*總運(yùn)費(fèi)f(freight貨物),基本運(yùn)費(fèi)p(price價格),貨物重w(weight重量),距離s,float f,d,p,w; 折扣 d(discount)*/printf("input numberin''); scanf("%f,%f,%d",&p,&w,&s);if(s>
30、;=3000) c=12;else c=s/250;switch(c)case O:d=O;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break; f=p*w*s*(1-d/; printf("freight=%fn",f); getch();Goto語句為無條件轉(zhuǎn)向語句,形式:goto語句標(biāo)號;語句標(biāo)號用標(biāo)識符表示,它的定名規(guī)則與變量名相同
31、.即字母,下劃線,數(shù)字.一般來說來兩種用途:1、與if語句一起構(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()int sum=0,i=1;loop:if(i<=100) sum=sum+i;i+;goto loop;printf("sum=%dn",sum);getch();While語句用來實(shí)現(xiàn)當(dāng)型循環(huán)結(jié)構(gòu),一般形式:while(表達(dá)式)語句當(dāng)表達(dá)式非0值時執(zhí)行while語句
32、中的內(nèi)嵌語句,先判斷表達(dá)式后執(zhí)行語句/* 用 while 語句構(gòu)成循環(huán),求 1+2+3+ .+99+100*/#include <>main()int sum=0,i=1;while(i<=100) sum=sum+i;i+;/*如果不加花括弧則 while語句的范圍只到“ sum=sum+i” */printf("sum=%dn",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*/#in elud
33、e <>main ()int sum=0,i=1;dosum=sum+i;i+;while(i<=100);prin tf("sum=%dn",sum);getch();按esc后一個一個顯示輸出/* 用 do-while 語句構(gòu)成循環(huán),求 1+2+3+ .+99+100*/#in clude <>main ()int sum=0,i=1;do sum=sum+i;i+;prin tf("sum=%dn",sum); getch();while(i<=100);prin tf("sum=%dn",s
34、um);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á)式1”可以省略for(;表達(dá)式2;表達(dá)式3) 語句; /*分號不能少*/2、 “表達(dá)式2”省略即不判斷循環(huán)條件,循環(huán)將無終止地進(jìn)行下去。3、 “表達(dá)式3”也可以省略,如i+不放在“表達(dá)式3”,而作為循環(huán)體的一部分效果是 一樣的。4、全部省略么不賦值,不判斷,不增量,無終止地執(zhí)行循環(huán)體。5、 for (i=0;(c=getchar()
35、!= n ;i+=c;)終端接收一個字符給 C,判斷表達(dá)式的值是否不 等于n(換行符)for (;(c=getchar()!= n '則輸入 Computer 輸出則也是 Computerbreak語句禾口 continue語句break是終止整個循環(huán)的執(zhí)行;continue只是結(jié)束本次循環(huán);if(fabs(a)<=pow(10,-6)的意思是 if(a=0)頭文件:#include <> pow(x,y)函數(shù)是求Xy的值,幾的幾次方。Pow(x,y)函數(shù)是計算 W 的值 函數(shù)原型: double pow(double x,double y)Abs(x)函數(shù)是求整數(shù)x
36、的絕對值函數(shù)原型:int abs(int x)Fabs(x)函數(shù)是求雙精度實(shí)數(shù)的絕對值函數(shù)原型:double fabs(double x)Sqrt(x) 函數(shù)是開根號子函數(shù)原型: double sart(double x)攝氏溫度C=59(F華氏溫度-32)數(shù)組一維數(shù)組 類型說明:數(shù)組名常量表達(dá)式如:int a10;表示數(shù)組名為a,此數(shù)組有10個元素數(shù)組必須先定義后使用。 C 語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。main() int i,a10;for(i=0;i<10;i+)ai=i;for(i=9;i>=0;i-)printf(“out number%dn”,a
37、i); /* 從 9到 0輸出*/getch();/* 輸出數(shù)字 101 到 110*/#include <>main() int i,t=100,a10;for(i=0;i<=9;i+)t+ ;ai=t;printf("out number %dn",ai);getch();/*輸入數(shù)字 ,從此數(shù)字后輸出 10個數(shù)*/ #include <>main() int i,t,a10;printf("intput number:");scanf("%d",&t); for(i=0;i<=9;i+
38、)t+ ; ai=t;printf("out number %dn",ai);getch();一維數(shù)組初始化定義成: int a10=0,1,2,3,4,5,6,7,8,9;定義成: int a10=0,1,2,3,4,5; 表示只給前面 5 個元素賦初值,后面的 5個元素值為 0 /* 后一個數(shù)是前二個數(shù)之和 ,Fibonacci 數(shù)列 */#include <>main() int a20=1,1;int i;for(i=2;i<20;i+)ai=ai-2+ai-1;for(i=0;i<20;i+) if(i%5=0) printf( “n ”)
39、;printf(“%12d”,ai);getch();#include <>main() long int a30=1,1;int i;for(i=2;i<30;i+)ai=ai-2+ai-1;for(i=0;i<30;i+) if(i%5=0) printf("n");printf("%12ld",ai);getch();起泡法對10個數(shù)排序(由小到大):將相鄰的兩個數(shù)比較,將小的調(diào)到前頭。main() int a11;int i,j,t;/*第j趟要進(jìn)行n-j次兩兩比較*/printf( inpuf 10 numers :n
40、”);for(i=1;i<11;i+) printf( n ”); for(j=1;j<=9;j+)scanf( %d",& ai);/*因為10個數(shù),所以要要循環(huán)j=10-1次*/for(i=1;i<=10-j;i+)if(ai>ai+1) t=ai; ai=ai+1; ai+1=t;printf( the sorted numbers :n ”); for(i=1;i<=10;i+) printf( “ n”,ai);getch();二維數(shù)組類型說明:數(shù)組名常量表達(dá)式常量表達(dá)式如如: float a34;3行4列C語言對二維數(shù)組采用這樣的定義
41、,可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個一維數(shù)組??梢钥醋魇且粋€一維數(shù)組它有 3個元素a0, a1, a2 每個元素又包含有4個元素的一維 數(shù)組。二維數(shù)組初始化int a34= 1,2,3,4,5,6,7,8,9,10,11,12;int a34= 1,2,3,4,5,6,7,8,9,10,11,12;a34=1,5,9 ;只對各行第1列賦值,其余元素值自動為 0/*將二維數(shù)組行和列互換,存到另一個二維數(shù)組 */#include ""main()int a23=1,2,3,4,5,6;int b32,i,j;/*array 陣列 */* 行 */print
42、f("array a:n");for(i=0;i<=1;i+) for(j=0;jv=2;j+)/* 列 */printf("%6d",aij);bj【i=a【ij;/* 賦值給 bji值*/printf("n");printf("array b:n");/* 以下是數(shù)組 b 輸出 */for(i=0;i<=2;i+)for(j=0;j<=2;j+) for(j=0;jv=1;j+) for(i=0;i<=1;i+)printf("%6d",bij);printf(&qu
43、ot;%6d",bji);printf("n");printf("n");/*左右兩部分輸出結(jié)果一樣的*/getch();/* 一個3X4矩陣,求岀其中最大值的那個元素的值及所在的行號和列號*/#include ""main()int i,j,row=0, colum=0,max; /*row 行 排 colum 歹y */int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;for(i=0;i<=2;i+)for(j=0;j<=3;j+)if(aij>max) max=a
44、ij;row=i;colum=j;pritntf( max=%d,row=%d,colum=%dn ",max,row,colum);getch();字符數(shù)組:用來存放字符數(shù)據(jù)的數(shù)組,一個元素存放一個字符初始化 char c10;c0= T ;c1= ,; c2= a' c3= mc4= c5= hc6= ac7= p' c8= p' c9= y'字符型與整型是互相通用,所以也可以定義訊c10;初始化:char c10= I' ,a: m'h', a', pp', y' ;如果初值個數(shù)小于數(shù)組長度,將剩下
45、的元素自動定為空字符“0”也可以定義二維字符數(shù)組char a55= ' , ' , , , ' , , ' , ' , ' , ' , , , , , ' , , , , ;單引號中間就是想賦的值C語言中將字符串作為字符數(shù)組來處理。C語言規(guī)定了一個“字符串結(jié)束標(biāo)志”,以字符 0'代表。系統(tǒng)對字符串常量也自動加一個0 '作為結(jié)束符。說明: 0 '代表ASCII碼為0的字符,是一個不可以顯示的字符,而是一個“空操作字符” 單個字符作初值用單引號,字符串是用雙引號。char c10= “China"前面
46、 5 個元素為C, h', i','n',a',第 6 個為 0 ',后 4 個元素 為空字符,所以也是0,字符數(shù)組的輸入輸出逐個字符輸入輸岀,用格式符“%C"輸入或輸岀一個字符。將整個字符串一次輸入或輸岀,用格式符“s”輸入或輸岀一串字符。輸岀字符不包括結(jié)束符 0,用"s”格式符輸岀字符串時,printf函數(shù)中的輸岀項是字符數(shù)組名,而不是數(shù)組元素名。如寫成printf( %s",c0);是不對的。應(yīng)為:printf( %s",c);定義:char a13; Scanf( %s",a);若輸入:H
47、ow are you回車 而只將第一個空格前的“ How ”送 到a中。注意:scanf函數(shù)中輸入項是字符數(shù)組名。輸入項是字符數(shù)組名時,不要再加地址符&,因為在.C語言中數(shù)組名代表該數(shù)組的起始地址,Scanf( %s",&a);這樣的寫法是不對的。|printf( %o",c);可以輸出數(shù)組C的起始地址。puts(字符數(shù)組,輸出字符串)char str= ChinanBeijing ”;puts(str);gets(字符數(shù)組,輸入字符串)定義:char str;gets(str);若輸入:Computer回車,將所輸入的字符串送給字符數(shù)組str,8個字母加一
48、個自動加上去的 0 '共9個字符送入str。注意:puts和gets函數(shù)只能輸入或輸出一個字符串。不能寫成:puts(str1,str2)或gets(str1,str2)Strcat(字符數(shù)組1,字符數(shù)組2)是字符串連接,作用:連接兩個字符數(shù)組中的字符串,把 字符2接到字符1的后面,結(jié)果放在字符數(shù)組1中。字符數(shù)組1必須足夠大,以便容納連接后的新字符串。char str130= People'sRepublic of"char str2= China" ;printf( %s",strcat(str1,str2);輸出:People'Repu
49、blic of Chinastrcpy(字符數(shù)組1,字符串2)是字符串復(fù)制。作用:將字符串2復(fù)制到字符數(shù)組1中去。字符數(shù)組1必須足夠大,以便容納被復(fù)制的字符串。字符數(shù)組1必須寫成數(shù)組名形式(如 str1 ),字符串2可以是字符數(shù)組名也可以是一個字符串常量,如 strcpy(str1, "China”);復(fù)制時連同字符串后面的0 '一起復(fù)制到字符數(shù)組1中。不能用賦值語句將一個字符串常或字符數(shù)組直接給一個字符數(shù)組.如:str1= China”; str1=str2;都是不合法的。用賦值語句只能將一個字符賦給一個字符型變量或字符數(shù)組元素。如:char a5,cl1,cl2; cl1
50、= ' A'CI2= ' B' ; a0= ' C, a1= ' h ' 以此類推??梢杂胹trncpy函數(shù)將字符串2中前面若干個字符復(fù)制到字符數(shù)組1中去。如:strncpy(str1,str2,2);Strcmp(字符串1,字符串2)是字符串比較。作用:比較字符串1和字符串2。對兩個字符串自左至右逐個字符相比(按ASCII碼大小比較)直到岀現(xiàn)不同的字符或遇到0 '為止比較結(jié)果由函數(shù)值帶回:1、如果字符串 仁字符串2,函數(shù)值為02、如果字符串1字符串2,函數(shù)值為正整數(shù)3、如果字符串1字符串2,函數(shù)值為負(fù)整數(shù)注意:對兩個字符串比較,
51、不能用以下形式:if(str仁 =str2) printf( yes”;而只能用if(strcmp(str1,str2)=0)printf( yes");/*輸入slzz000正確后顯示*/#include ""main()char str1="slzz000"char str216;printf("input mi ma:n");scanf("%s",str2);if(strcmp(str1,str2)=0) printf("I LOVE YOU");else printf(&quo
52、t;NO NO NO NO NO NO NO NO NO");getch();strlen(字符數(shù)組)是測字符串長度。作用:用來測試字符串長度的函數(shù)。函數(shù)的值為字符串的實(shí)際長度,不包括0 '在內(nèi)。char str10= China" rintf( %d”,strlen(str);strlwr(字符串)是字符串小寫。作用:將字符串中大寫字母換成小寫字母。/*將字符串中大寫字母換成小寫字母*/#include ""main()char str16="China WO ai NI"printf("%sn",str
53、);printf("%s",strlwr(str);getch();strupr(字符串)是字符串大寫。作用:將字符串中小寫字母換成大寫字母。/*將字符串中小寫字母換成大寫字母*/#include ""main()char str16="China WO ai NI"printf("%sn",str);printf("%s",strupr(str);getch();/*輸入一行字符,統(tǒng)計有多少個單詞,單詞之間用空格分隔開*/思路:單詞數(shù)目可以由空格岀現(xiàn)的次數(shù)決定(連續(xù)的若干空格作為岀現(xiàn)一次空格;
54、一行開頭的空格不統(tǒng)計 在內(nèi))。#include ""main()char str81;int i,num=0,word=0; /*num為單詞數(shù),word=0則表示前一個字符是空格 ,word=1意味著前一個字符為非空 格*/char c;gets(str);/*輸入字符串*/for(i=0;(c=stri)!='0'i+)/*如果是空操作就結(jié)束循環(huán) 0 '是空操作*/if(c=' ') word=0; /*空格鍵的 ASCII碼值是032(space鍵)。如果C為空格,word為0,沒有新單詞 */else if(word=0) /
55、*C不是空格,條件滿足前一個字符是空格,新單詞開始,word為1前一個為非空格*/word=1;num+; /*單詞個數(shù)+1*/ printf("There are %d words in the line.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)識符常量表達(dá)式/*#define是宏定義命令,宏名(標(biāo)識符)好習(xí)慣用大寫*/#defi
56、 ne NIL 0x80可以用#undef NIL命令終止宏定義的作用域。 宏定義定義時可以引用已定義的宏名,可以層層置換 如:#define R#define PI#define L 2*PI*R#define S PI*R*R2、帶參數(shù):/*相當(dāng)于小函數(shù)*/#define宏名(參數(shù)表)字符串/*不僅要時行字符串替換還要進(jìn)行參數(shù)的替換,在宏定義時,宏名與帶參數(shù)的括弧之間不應(yīng)該加空格,否則將空格以后的字符串都作為替代字符串的一部分,這可是很容易出錯的*/女口: #define SQ(a,b) a*b 使用:x=12;y=10;area=SQ(x,y);/* 則 area=12*10=120*/define金山詞霸2009牛津版翻譯為確定 宏不存在類型問題,宏名無類型,它的參數(shù)也無類型,只是一個符號代表。 調(diào)用函數(shù)只可得到一個返回值,而宏可以設(shè)法得到
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級必須收藏:名著《西游記》每回檢測題(41至45回)
- 高績效公司必知必會的會計、審計和稅務(wù)知識
- 趣味醫(yī)學(xué)課堂人體奧秘的探索
- 幼兒園評估與反饋機(jī)制研究計劃
- 質(zhì)量管理體系在注塑工業(yè)的商業(yè)價值
- 跨境電商平臺在旅游商品銷售中的角色
- 零售行業(yè)中的財務(wù)成本控制方案
- 2025年02月湖北荊州市石首市事業(yè)單位統(tǒng)一公開招聘工作人員58人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年02月山東魯南技師學(xué)院公開招聘工作人員14人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 浙江鴨2025版高中生物考前特訓(xùn)選擇題快練考點(diǎn)5遺傳的分子基礎(chǔ)含解析
- QBT 2605-2003 工業(yè)氯化鎂行業(yè)標(biāo)準(zhǔn)
- 2024年江西機(jī)電職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 《拒絕沉迷手機(jī)遠(yuǎn)離“垃圾快樂”》班會課件
- 普通高中政治課程標(biāo)準(zhǔn)測試題及答案
- 2024年知識競賽-《民用爆炸物品安全管理條例》知識競賽筆試參考題庫含答案
- 屋頂 屋頂?shù)呐潘O(shè)計 屋頂?shù)呐潘绞剑ńㄖ?gòu)造)
- Web-of-sciencenew文獻(xiàn)檢索-課件
- (高清版)DZT 0368-2021 巖礦石標(biāo)本物性測量技術(shù)規(guī)程
- 企業(yè)事業(yè)部制的管理與監(jiān)督機(jī)制
- 消毒供應(yīng)中心工作總結(jié)
- 研究生導(dǎo)師談心談話記錄內(nèi)容范文
評論
0/150
提交評論