全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程64總復(fù)習(xí)_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程64總復(fù)習(xí)_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程64總復(fù)習(xí)_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程64總復(fù)習(xí)_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程64總復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言總復(fù)習(xí)〔64學(xué)時(shí)〕以考試難度為限.一、C語(yǔ)言的數(shù)據(jù)表示1.1常量和變量1.2表達(dá)式1.3數(shù)據(jù)類(lèi)型簡(jiǎn)單類(lèi)型、結(jié)構(gòu)類(lèi)型、指針類(lèi)型1.4輸入、輸出.1.1常量和變量1.常量常量是在程序執(zhí)行中,值不發(fā)生改變的數(shù)據(jù)。其值預(yù)先決定,之后不變。有不同的數(shù)據(jù)類(lèi)型。〔1〕常數(shù)〔有的稱(chēng)直接常量、頁(yè)面常量〕例如的:整數(shù):+5、-3、017〔八進(jìn)制〕、0x1f(16進(jìn)制)實(shí)數(shù)(浮點(diǎn)數(shù)):3.14、-1.2E-3、1E10單個(gè)字符:‘A’,占一個(gè)字節(jié)’\\’,轉(zhuǎn)義字符‘\’‘\’非法’\77’〔八進(jìn)制ASCII碼63,‘?’〕,’\78’非法’\x3f’〔十六進(jìn)制ASCII碼63,‘?’〕‘\x3g’非法字符串:“A〞后面有\(zhòng)0,占兩個(gè)字節(jié)E3,2E3.0不合法不是整型量占一個(gè)字節(jié).〔2〕符號(hào)常量給常量起標(biāo)識(shí)符名字。C語(yǔ)言的符號(hào)常量〔用宏定義〕:#definePI3.14159265好處:提高程序易讀性;方便修改常量的值;注意:1.一般用大寫(xiě)字母。2,#defineM3不是C語(yǔ)句,后面沒(méi)有“;〞。3.可以做M+1,不能做M++.〔3〕地址常量當(dāng)數(shù)組在定義時(shí),其變量名為其首地址,是地址常量。inta[10];可以做a+1,不能做a++..1.1常量和變量2.變量用各種操作來(lái)改變值數(shù)據(jù)。從“名〞和“值〞兩個(gè)角度認(rèn)識(shí)變量〔1〕變量名每個(gè)變量,要在使用前定義變量的名字,遵循標(biāo)識(shí)符命名規(guī)那么。只能用字母、數(shù)字和下劃線(xiàn)組成。不能以數(shù)字開(kāi)頭。不能用保存字(int,printf,main…..)。.變量定義就是申請(qǐng)數(shù)據(jù)的存儲(chǔ)空間,登記數(shù)據(jù)的各種存儲(chǔ)特性。例如:intm;2個(gè)字節(jié)-215~215-1(-32768~32767)longn;4個(gè)字節(jié)-231~231-1charch;1個(gè)字節(jié)0~255floatx;4個(gè)字節(jié)±3.4×

(10-38~1038)

doubley;8個(gè)字節(jié)±1.7×(10-308~10308)

可以用sizeof獲得字長(zhǎng)sizeof(char)=1sizeof(int)=2sizeof(double)=8.〔2〕變量的值變量值就是由變量名所指定空間上的存儲(chǔ)數(shù)據(jù)內(nèi)容。即變量的當(dāng)前值。數(shù)據(jù)內(nèi)容用語(yǔ)言的操作語(yǔ)句來(lái)改變。賦值語(yǔ)句;鍵盤(pán)輸入語(yǔ)句;charchx;intm;/*變量的定義*/chx=‘A’;m=12*3;/*賦值語(yǔ)句*/scanf(“%d〞,&m);/*鍵盤(pán)輸入語(yǔ)句*/在程序運(yùn)行時(shí),將數(shù)據(jù)存入制定內(nèi)存空間。②①變量初始化:定義變量時(shí)同時(shí)確定變量初值。例如:charchy=‘a(chǎn)’;intweight=2;

③.1.2C語(yǔ)言的表達(dá)式1、算術(shù)表達(dá)式2、關(guān)系表達(dá)式3、邏輯表達(dá)式4、賦值表達(dá)式5、逗號(hào)表達(dá)式6、條件表達(dá)式7、其他表達(dá)式C語(yǔ)言的表達(dá)式:使用規(guī)定的運(yùn)算符,將常量、變量、函數(shù)〔調(diào)用〕連結(jié)的一個(gè)有意義的式子。

.1、算術(shù)表達(dá)式用算術(shù)運(yùn)算符來(lái)表示對(duì)數(shù)據(jù)的算術(shù)運(yùn)算求值過(guò)程。算術(shù)運(yùn)算符:+-*/%2/3結(jié)果是0,2%3結(jié)果是2注意不同類(lèi)型運(yùn)算問(wèn)題:doublelongunsignedintfloatcharshort高低.2、關(guān)系表達(dá)式關(guān)系運(yùn)算符:>>=<<=(優(yōu)先級(jí)較高)!===(優(yōu)先級(jí)較低)關(guān)系表達(dá)式的結(jié)果:1〔真〕,非0〔假〕如:x>0,sin(x)<=0.5,(a+b)==(c*d)注意語(yǔ)法合理與數(shù)學(xué)邏輯錯(cuò)誤問(wèn)題:分析:10<=a<=15a=9是假10<=a<=1510<=a假00<=15真所以要寫(xiě)成10<=a&&a<=15.3、邏輯表達(dá)式用邏輯表達(dá)式來(lái)表示對(duì)數(shù)據(jù)的邏輯關(guān)系判斷,運(yùn)算結(jié)果是邏輯值“真〞1或者“假〞0。C邏輯運(yùn)算符包括:!&&||參加邏輯運(yùn)算的數(shù)據(jù)必須是邏輯量,可以是邏輯類(lèi)型的變量、常量,關(guān)系表達(dá)式或邏輯表達(dá)式。C語(yǔ)言中,沒(méi)有專(zhuān)門(mén)的邏輯量,1是真值,0是假值。也認(rèn)為非零的值為真值。如:inta=3,b=4,c=-5;(1)!((a<b)&&!c||1)(2)if(a)printf(“\nyes〞);a,c均按非0〔即真〕處理.邏輯運(yùn)算規(guī)律①在&&(與)表達(dá)式中,假設(shè)&&的左端為假,那么不再計(jì)算另一端,該表達(dá)式值肯定為0〔假〕。②在||(或)表達(dá)式中,假設(shè)||的左端為真,那么不再計(jì)算另一端,表達(dá)式的值必定為1〔真〕。inta=5,b=1k=a<=3&&b-->0k?b?假,后面不算了k=0,b=1.判斷閏年的條件是:能被4整除但不能被100整除,或能被400整除。(x%4==0&&x%100!=0)水仙花數(shù)是指一個(gè)三位正整數(shù),其各位數(shù)字的立方和等于該數(shù)本身(k*100+m*10+n==k*k*k+m*m*m+n*n*n)三角形的根本條件((a+b)>c)&&((c+b)>a)&&((c+a)>b)).4、賦值表達(dá)式=,+=,-=,*=,/=,++〔單目〕,--〔單目〕級(jí)別僅高于逗號(hào)表達(dá)式,右結(jié)合inta=3,c=2,ba=b=c;n*=m+2相當(dāng)于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ic賦值給b,b=2b賦值給a,a=2.5、條件表達(dá)式e1?e2:e3假設(shè)e1為真,表達(dá)式的值為e2,否那么為e3.(--a==b++)?--a:b++5-1==4Ta=4--aa=3表達(dá)式的值為3a=5,b=44-1==5Fb=6b++b=7表達(dá)式的值為6a=4,b=5條件表達(dá)式的值的類(lèi)型為e2,e3二者中類(lèi)型較高者。如果y=5;y<3?-1.0:2其值為2.0.6、逗號(hào)表達(dá)式表達(dá)式的值等于最后一個(gè)表達(dá)式的值,運(yùn)算等級(jí)最低!a=5,b=2,c=3a=7+b+c,

a++

a=(7+b+c,

a++)a=12a=57、強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式〔單目〕intm;sqrt((float)m);并沒(méi)有改變m的類(lèi)型和數(shù)值.理解記憶運(yùn)算符表

(高)(低)!++,--,等算數(shù)運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符&&||條件運(yùn)算符賦值運(yùn)算符

逗號(hào)運(yùn)算符右結(jié)合單目運(yùn)算符賦值運(yùn)算符.1.3數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型:在高級(jí)語(yǔ)言的數(shù)據(jù)表示機(jī)制中,數(shù)據(jù)類(lèi)型〔datatyPe〕是個(gè)核心概念。簡(jiǎn)單類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型整型實(shí)型字符型數(shù)組結(jié)構(gòu)體共用體數(shù)值型枚舉型空類(lèi)型.1.3數(shù)據(jù)類(lèi)型〔1〕整型〔輸入、輸出格式“%d〞〕類(lèi)型名字節(jié)數(shù)數(shù)值范圍int2-32768~32767short2-32768~32767long4-2147483648~2147483647還有無(wú)符號(hào)整型〔輸入、輸出格式“%u〞〕Unsigned[int]20~65535Unsignedshort20~65535Unsignedlong40~42949672951.簡(jiǎn)單類(lèi)型.(2)實(shí)型實(shí)型〔float〕數(shù)據(jù)的值集是實(shí)數(shù)集的一個(gè)有限子集.-3.4e38,-3.4e-39,3.4E-38,3.4E381.簡(jiǎn)單類(lèi)型類(lèi)型名字節(jié)數(shù)輸入、輸出格式有效數(shù)字位float4

%f

7doubule8%lf16longdoubule16%lf19不要以為是長(zhǎng)整型E38非法.(3)字符型〔輸入、輸出格式“%c〞〕ASCII碼,一個(gè)字符占1字節(jié);charca;ca=‘#’;注意轉(zhuǎn)義字符’\’的使用?!?〕字符串〔輸入、輸出格式“%s〞〕所謂“字符串〞是指假設(shè)干有效字符的序列。C語(yǔ)言字符串可以包括字母、數(shù)字、專(zhuān)用字符、轉(zhuǎn)義字符等。字符串常量:使用雙引號(hào)"China""BASIC""a+b=c""Li-Li""39.4""%d\n""解放軍“字符型的一維數(shù)組〔相當(dāng)于字符串變量〕charst[8],str[10];strcpy(st,"12345");strcpy(str,st);不能st=“12345〞;str=st;.2.結(jié)構(gòu)類(lèi)型“結(jié)構(gòu)〞一般可以稱(chēng)為數(shù)據(jù)元素,在不同的結(jié)構(gòu)類(lèi)型中,數(shù)據(jù)元素會(huì)有特定的名稱(chēng)。結(jié)構(gòu)類(lèi)型的數(shù)據(jù)由更加根本的成分組成。這些成分稱(chēng)為“數(shù)據(jù)項(xiàng)〞,結(jié)構(gòu)的子成員。1.3數(shù)據(jù)類(lèi)型.(1)數(shù)組

A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]1020304050607080一個(gè)數(shù)組〔array〕是由相同類(lèi)型的假設(shè)干數(shù)組元素構(gòu)成的有限序列。C語(yǔ)言的數(shù)定義:intB[8],A[8];charC[10];

2.結(jié)構(gòu)類(lèi)型.例日期類(lèi)型的定義〔2〕結(jié)構(gòu)體C語(yǔ)言中實(shí)現(xiàn):structDate{intmonth;/*月*/intday;/*日*/intyear;/*年*/};structDatemyd={12,16,1978};系統(tǒng)分配給它的內(nèi)存是各成員所需內(nèi)存量的總和。本例是6.

.〔1〕指針:變量名的在內(nèi)存中的存儲(chǔ)地址?!?〕指針變量inti=12,*p;P=&i;把存放變量i的地址的變量p稱(chēng)作指針變量。指針變量的存放內(nèi)容是數(shù)據(jù)的地址。3.指針類(lèi)型〔3〕指針引用變量指針變量可以指向各種不同的數(shù)據(jù)類(lèi)型,因此指針變量也要有不同的指針類(lèi)型。如:intm,*p;floatx,*q;inta[],*rm=12;p=&m;x=3.14;q=&x;r=a;注意:是否用&.1.4輸入、輸出輸出:printf(“…….〞,…….)%d,%6d,%ld%c,%s%f,%10.2f,%lf,%20.8lfn=3;printf(“\n%d,%d,%d〞,n,++n,n++);計(jì)算從右到左,輸出從左到右。%s是輸出以指定首地址到第一個(gè)\0或空格之間的字符串。chara[]=“abcdefg〞,*p=a;printf(“%s〞,*++p);bcd5,5,3.1.4輸入、輸出輸入:scanf(“…….〞,…….)%d,%ld對(duì)應(yīng)intlong%c,%s對(duì)應(yīng)charcharstr[]%f,%lf對(duì)應(yīng)flaotdouble常見(jiàn)錯(cuò)誤inta,b;chard,e[20];scanf("%d,%f\n〞,&a,&b);scanf("%d,%f〞,a,b);scanf("%7.2f",&a);scanf("%s",&e);scanf("%c",d);.(1)表達(dá)式語(yǔ)句(2)流程控制語(yǔ)句(3)復(fù)合語(yǔ)句C語(yǔ)言語(yǔ)句⒈指令語(yǔ)句⒉非指令語(yǔ)句⑴數(shù)據(jù)定義語(yǔ)句floatx;intm;⑵編譯預(yù)處理①宏定義#definePI3.14159②文件包含處理#include<stdio.h>二、C語(yǔ)言的程序結(jié)構(gòu)與相關(guān)語(yǔ)句.表達(dá)式語(yǔ)句1.表達(dá)式語(yǔ)句的組成:由一個(gè)表達(dá)式后接一個(gè)分號(hào)組成的。i=i+1〔是表達(dá)式,沒(méi)有構(gòu)成語(yǔ)句〕i=i+1;〔是語(yǔ)句〕x+y;〔是合法語(yǔ)句,但沒(méi)有實(shí)際意義〕⒉表達(dá)式語(yǔ)句的分類(lèi):①賦值語(yǔ)句:i=1;c=getchar();②函數(shù)調(diào)用語(yǔ)句:printf(n\Hello,world!");③空語(yǔ)句。其形式為:;④逗號(hào)表達(dá)式語(yǔ)句:++a,--b;.完成一定的控制功能。9種控制語(yǔ)句:判斷語(yǔ)句條件判斷語(yǔ)句if()…else…多分支選擇語(yǔ)句switch()…case循環(huán)語(yǔ)句

循環(huán)次數(shù)控制語(yǔ)句for()先判斷后執(zhí)行循環(huán)控制語(yǔ)句while()先執(zhí)行后判斷循環(huán)控制語(yǔ)句do…while()轉(zhuǎn)移控制語(yǔ)句直接轉(zhuǎn)移語(yǔ)句goto終止語(yǔ)句break(用在循環(huán)結(jié)構(gòu)、swicth)跳轉(zhuǎn)語(yǔ)句continue(僅用在循環(huán)結(jié)構(gòu))返回語(yǔ)句return流程控制語(yǔ)句.復(fù)合語(yǔ)句⒈一組語(yǔ)句括在一對(duì)花括號(hào)之中,稱(chēng)復(fù)合語(yǔ)句。{c=getchar();putchar(c);}注意,一個(gè)復(fù)合語(yǔ)句的后花括號(hào)之后不應(yīng)再寫(xiě)分號(hào)。⒉在語(yǔ)法上是一個(gè)整體,相當(dāng)于一個(gè)語(yǔ)句。但凡能夠使用簡(jiǎn)單語(yǔ)句的地方,都可以使用復(fù)合語(yǔ)句。一個(gè)復(fù)合語(yǔ)句中又可以包含另一個(gè)或多個(gè)復(fù)合語(yǔ)句。.二、C語(yǔ)言的程序結(jié)構(gòu)與相關(guān)語(yǔ)句程序的三種根本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)if()…else…switch()…case循環(huán)結(jié)構(gòu)for(){…..;}while(){……;}do{……;}while().選擇結(jié)構(gòu)單分支結(jié)構(gòu)if(a==b)printf(“yes〞);雙分支結(jié)構(gòu)if(a==b)printf(“yes〞);elseprintf(“no〞);多分支結(jié)構(gòu)switch_case

.多分支選擇語(yǔ)句switch〔表達(dá)式〕{case常量表達(dá)式1:語(yǔ)句序列1;[break;] case常量表達(dá)式2:語(yǔ)句序列2;[break;] ……… case常量表達(dá)式n:語(yǔ)句序列n;[break;] [default:語(yǔ)句序列n+1;]} 根據(jù)“表達(dá)式〞的值從上至下去尋找與表達(dá)式的值相匹配的“case常量表達(dá)式〞,執(zhí)行一個(gè)分支后,再執(zhí)行下一個(gè)分支,直到break結(jié)束,然后執(zhí)行switch結(jié)構(gòu)后面的程序。找不到匹配的入口標(biāo)號(hào)時(shí),執(zhí)行“語(yǔ)句序列n+1〞,然后結(jié)束。順序向下執(zhí)行程序。.main(){inta=1,b=1;switch(a){case1:switch(b){case0:printf(“$〞);break;case1:printf(“#〞);break;case2:printf(“*〞);}case2:printf(“^〞);case3:printf(“@〞);break;case4:printf(“&〞);}}a=1case1:swtch(1)b=1printf#,break跳出switch(b)結(jié)構(gòu)進(jìn)入switch(a)結(jié)構(gòu)case2:printf^case2:printf@break跳出switch(a)結(jié)構(gòu)#^@.for,while,do-while三種結(jié)構(gòu)循環(huán)變量初始化,繼續(xù)循環(huán)條件,改變循環(huán)變量是不可缺少的三個(gè)環(huán)節(jié)。for常用于循環(huán)次數(shù)的問(wèn)題中。括號(hào)中的兩個(gè)“;〞不可省。while與do-while常用于循環(huán)次數(shù)未知的問(wèn)題中。.注意在for和while語(yǔ)句之后一般沒(méi)有分號(hào)有分號(hào)表示循環(huán)體就是分號(hào)之前的內(nèi)容〔空循環(huán)體〕while(i<100);

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

printf("%d",i);if,swtich,while,for后面的語(yǔ)句只能是一句,因此,多句時(shí)別忘了{(lán)}。.在while(e)和for(;e;)中的e是循環(huán)繼續(xù)的條件,不能寫(xiě)其它條件!如果缺省,就是死循環(huán)!在if(e),while(e)和for(;e;)中e的值是邏輯值〔0或非0〕e一般是關(guān)系表達(dá)式,邏輯表達(dá)式或變量。if(x=1)if(x==1)main(){inti=1;do{i--;}while(i++);printf(“%d〞,i--);}A)-1B)0C)1D)陷入死循環(huán)i=1i--,i=0while(i)終止循環(huán)i++,i=1輸出i=1i--,i=0.break,coutinuebreak只能用于switch和循環(huán)語(yǔ)句中,作用提前終止本層次switch和循環(huán)。coutinue是跳過(guò)循環(huán)體內(nèi)尚未執(zhí)行的語(yǔ)句,接著執(zhí)行下次循環(huán)。.常用的循環(huán)算法求素?cái)?shù)、水仙花數(shù)、最小公倍數(shù)、最大公約數(shù)、分解多位數(shù)的數(shù)字,累加,累乘,分解質(zhì)因數(shù)等。各種有規(guī)律的圖案。while(m) { k=m%10;/*求最低位的數(shù)字*/ m=m/10;/*除去最低位的數(shù)字*/ }分解多位數(shù)的數(shù)字.判斷素?cái)?shù)main(){inti,x,flag=0;scanf(“%d〞,&x);for(i=2;i<x;i++)if(x%i==0){flag=1,break;}if(flag)printf(“%disaprime〞,x);elseprintf(“%dis’taprime〞,x);}.求階乘x!longfacto(intx){longy;for(y=1;x>0;--x)y*=x;return(y);}main(){longy;for(y=1;x>0;--x)y*=x;printf(“%ld〞,y);}main(){intm,n;longcmn,facto();scanf("%d%d",&m,&n);cmn=facto(m)/(facto(n)*facto(m-n));printf("%ld\n",cmn);}求C(m,n)=m!/(n!*(m-n)!).數(shù)組的定義類(lèi)型標(biāo)識(shí)符數(shù)組名[常量表達(dá)式]錯(cuò)誤的定義是:或intn;intn=10;scanf("%d",&n);inta[n];inta[n];

定義inta[5]時(shí),a[0],a[1]…..=?隨機(jī)數(shù)!只有inta[5]={3}后,后面幾項(xiàng)自動(dòng)賦0三數(shù)組.數(shù)組的初始化合法:inta[]={1,2,3,4,5};inti[][3]={1,2,3,4,5,6};inta[5]={1,2,3};chara[4]=“boy〞chara[3]={‘b’,’o’,’y’}不合法:inta[5]={,2,,4,5};inti[2][]={1,2,3,4,5,6};

inta[5]={};chara[4]={boy}.分別用三種方法(數(shù)組元素下標(biāo)法、數(shù)組名地址法、指針變量法)訪問(wèn)數(shù)組元素。#include<stdio.h>voidmain(){inta[5]={1,3,5,7,9},i,*p;for(i=0;i<5;i++)printf("%d",a[i]);/*下標(biāo)法*/printf("\n");for(i=0;i<5;i++)printf("%d",*(a+i));/*地址法*/printf("\n");for(p=a;p<a+5;p++)printf("%d",*p);/*指針變量*/}.數(shù)組的操作往往用循環(huán)結(jié)構(gòu).數(shù)值數(shù)組#defineM10inta[M];for(i=0;i<M;i++)字符數(shù)組#defineM10chara[M];for(i=0;a[i]!=‘\0’;i++)數(shù)值數(shù)組倒序#defineM10main(){inti,j,a[M];for(i=0;i<M;i++)scanf(“%d〞,a[i]);for(i=0,j=M;i<j;i++,i--)交換a[i],a[j]字符數(shù)組倒序main(){inti,j;chara[50];gets(a);for(i=0,j=strlen(a);i<j;i++,i--)交換a[i],a[j].用函數(shù)實(shí)現(xiàn)倒序數(shù)值數(shù)組voidinv(intx[],intn);#defineM10main(){inti,j,a[M];for(i=0;i<M;i++)scanf(“%d〞,a[i]);inv(a,M);for(i=0;i<M;i++)printf(“%d〞,a[i]);}字符數(shù)組voidinv(charx[])main(){inti,j;chara[50];gets(a);inv(a);puts(a);}多一個(gè)參數(shù),表示元素個(gè)數(shù)可以整體輸入,輸出必須單個(gè)輸入,輸出.數(shù)值數(shù)組voidinv(intx[],intm){inti,j,k;j=m;for(i=0;i<j;i++,i--){k=x[i];x[i]=x[j];x[j]=k;}}字符數(shù)組voidinv(intx[]〕{inti,j,k;j=strlen(x);for(i=0;i<j;i++,i--){k=x[i];x[i]=x[j];x[j]=k;}}.main(){inti,j,s=0,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j||i+j==2)s+=a[i][j];printf("s=%d\n",s);}主對(duì)角線(xiàn)i==j副對(duì)角線(xiàn)i+j==2.累加(積〕#defineM10main(){inti,a[M],s=0;for(i=0;i<M;i++)scanf(“%d〞,&a[i]);for(i=0;i<M;i++)s+=a[i];printf(“s=%d〞,s);}#defineM10main(){inti,a[M],s=1;for(i=0;i<M;i++)scanf(“%d〞,&a[i]);for(i=0;i<M;i++)s*=a[i];printf(“s=%d〞,s);}.求最大〔小〕值#defineM30main(){inti,k,k_i,a[M];for(i=0;i<M;i++)scanf(“%d〞,&a[i]);k=a[0];k_i=0;for(i=1;i<M;i++)if(k<a[i]){k=a[i];k_i=i;}printf(“max=%d,maxi=%d〞,k,k_i);}最小值if(k<a[i])最大值.字符數(shù)組charstr[50];inti;for(i=0;str[i]!=‘\0’,i++)構(gòu)造新的字符數(shù)組〔刪除,插入,復(fù)制,連接,倒序〕。1.用和不用字符串函數(shù)實(shí)現(xiàn)上述功能。2.用指針實(shí)現(xiàn)。3.必須注意最后一項(xiàng)一定是:str[i]=‘\0’;或*p=‘\0’;.二維字符數(shù)組二維數(shù)組在內(nèi)存中的排列順序是“按行優(yōu)先存放〞二維數(shù)組a[m][n]可以視為由n個(gè)一維數(shù)組a[m]組成的。二維字符數(shù)組中m由其中最長(zhǎng)的字符串決定。charstu[5][6]={“Tom",“Anne",“Mary",“Peter"};其中stu[0]=“Tom“stu[1]=“Anne".字符串函數(shù)要用#include<string.h>字符串拷貝函數(shù)strcpy字符串連接函數(shù)strcat字符串比較函數(shù)strcmp測(cè)字符串長(zhǎng)度函數(shù)strlen函數(shù)strlen的值為‘\0’之前的全部字符個(gè)數(shù).它與數(shù)組長(zhǎng)度不是一個(gè)概念.chars[6]={‘H’,’o’,’w’,’\0’,’o’,’k’}strlen(s)=3.字符串函數(shù)的應(yīng)用字符串賦值字符串比較s1=s2strcpy(s1,s2)s1==s2strcmp(s1,s2)==0s1>s2strcmp(s1,s2)>0s1<s2strcmp(s1,s2)<0.一函數(shù)定義的形式:[存儲(chǔ)類(lèi)型]數(shù)據(jù)類(lèi)型函數(shù)名(形式參數(shù)表)

{變量數(shù)據(jù)定義語(yǔ)句序列;可執(zhí)行語(yǔ)句序列;}intfun(intx,inty)

{intz;

z=x+y;

returnz;

}函數(shù)首部函數(shù)體四函數(shù).非void型intfun(intx,inty);main(){inta,b;scanf(“%d,%d〞,&a,&b);printf(“%d〞,fun(a,b));}intfun(intx,inty)

{intz;

z=x+y;

returnz;

}作為框架記住void型voidfun(intx,inty);main(){inta,b;scanf(“%d,%d〞,&a,&b);fun(a,b);printf(“%d,%d〞,a,b);}voidfun(intx,inty)

{intz;

z=x;x=y;y=z;printf(“%d,%d〞,x,y);}.填main()charfun(intx,inty)

{intz;

z=x+y;

returnz;

}main(){}inta,b;函數(shù)實(shí)參charc;函數(shù)返回值scanf(“%d,%d〞,a,b);實(shí)參賦值c=fun(a,b);調(diào)用函數(shù)printf(“%c〞,c);輸出結(jié)果注意變量數(shù)據(jù)類(lèi)型的對(duì)應(yīng)int%dlong%ldfloat%fdouble%lfchar%c或%s.遞歸調(diào)用的概念在C語(yǔ)言中,一個(gè)函數(shù)直接或間接地調(diào)用自身,便構(gòu)成了函數(shù)的遞歸調(diào)用。前者為直接遞歸調(diào)用,后者稱(chēng)間接遞歸調(diào)用。計(jì)算n!的函數(shù)rfact()longfac(intn){longp;if(n==0||n==1)p=1;elsep=n*fac(n-1);/*自己調(diào)自己*/returnp;}voidmain(){printf(“%ld〞,fac(5));}記住遞歸調(diào)用的框架.數(shù)組名作函數(shù)實(shí)參voidfun(inta[],intn);main(){intarr[10],i;for(i=0;i<10;i++)scanf(“%d〞,&arr[i]);fun(arr,10);for(i=0;i<10;i++)printf(“%d〞,arr[i]);}.main(){inti,a=2;for(i=1;i<=5;i++)f(i);printf(“%d\n〞,a);}f(j)intj;{staticinta=100;autok=1;++k;printf(“%d+%d+%d=%d\n〞,a,k,j,a+k+j);a+=10;}函數(shù)調(diào)用函數(shù)定義函數(shù)內(nèi)定義,值不保存。運(yùn)行結(jié)果:100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=1472兩個(gè)函數(shù)變量同名,互不影響。靜態(tài)變量.五指針(1)指針:某變量的地址值稱(chēng)為該變量的指針。(2)指針變量:指針變量是存放普通變量地址的變量。指針變量指向這個(gè)普通變量。1112ab地址1010101210101012pq地址100220042006指針變量

整型變量.指針變量的定義<存儲(chǔ)類(lèi)型>數(shù)據(jù)類(lèi)型*指針變量名1<=初值1><,…>;double*pd,d1,d2;/*pd為指向double型變量的指針

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論