版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言的基本構(gòu)成和#include“stdio.h”{inta,b,sum;/*定義變量 /*把整數(shù)10賦值給變量a*/ /*把整數(shù)20賦值給變量b*/sum=a+b;/*把兩數(shù)之和賦值給變量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*輸出計(jì)算結(jié)果}(1).C程序由函數(shù)組成,一個(gè)程序必須且只能有一個(gè)主函數(shù)(main()),C程序總是從主函數(shù)開始執(zhí)行,(2定義函數(shù)時(shí)函數(shù)名后必須有一對(duì)小括號(hào),函數(shù)體必須放在一對(duì)花括號(hào)內(nèi),在函數(shù)體中,函數(shù)體有a,,m給它們賦值。例如:int是錯(cuò)誤的,而it正確?!?”“*/(6).C語言程序書寫格式自由,語句可以從任一列開始書寫,一行內(nèi)可以寫多個(gè)語句。但是慣,是程序便于閱讀。標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃標(biāo)識(shí)符的大小寫字母是有區(qū)別的,如abc和ABC是兩個(gè)完全不同的標(biāo)識(shí)符(3)符的分類預(yù)定義標(biāo)識(shí)符C語言中它也有特定的含義。預(yù)定義標(biāo)識(shí)符可以用位“用戶表標(biāo)識(shí)用戶標(biāo)識(shí)符:由用戶根據(jù)需要定義的標(biāo)識(shí)符被成為用戶標(biāo)識(shí)符。用戶標(biāo)示符用來給變量、函數(shù)、數(shù)組或者指針等命名。C型常數(shù)、字符常量、字符串常量。小數(shù)部分:基數(shù)乘取整,順二進(jìn)制轉(zhuǎn)為八、十六進(jìn)規(guī)則:三(四)合一,按序相拼(整數(shù)部分,從右向左取,小數(shù)部分從左向右取,位數(shù)不足補(bǔ)零,1字節(jié)=8字長(zhǎng):指CPU能同時(shí)處理的二進(jìn)制位數(shù)CPU的型號(hào)而定。如:16位微機(jī)的字長(zhǎng)就是16位或B:表示字節(jié),字節(jié)是表示容量的最小單位。位(bit:是計(jì)算機(jī)中信息表示的最小單位(直接轉(zhuǎn)換為二進(jìn)制即可如:50000000000000101二字節(jié)能存放的最大數(shù)是0111111111111111對(duì)帶符號(hào)數(shù),最是符號(hào)位,用0表示正,用1表示負(fù)忽略負(fù)號(hào),求出原碼將原碼按位取反(0、1互換如:取-5的補(bǔ)碼。000000000000010111111111111110101111111111111011將補(bǔ)碼轉(zhuǎn)換成相應(yīng)的整數(shù)的步驟將補(bǔ)碼按位取反加1將步驟1得到的二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),然后加上負(fù)號(hào)即可。1000000000000000按位取反加01111111111111111000000000000000=轉(zhuǎn)換成十進(jìn)制:1×215=加負(fù)號(hào):-幾個(gè)特殊的帶符號(hào)整數(shù)--無符號(hào)整數(shù):只有正整數(shù),沒有負(fù)整數(shù),最不表示符號(hào)位,每一位均參與轉(zhuǎn)換帶符號(hào)整無符號(hào)整--例2-12:若有:inta=-1;unsignedb=65535;則 -2-14:若有unsignedb=65536;b的值是:0 按照帶符號(hào)數(shù)轉(zhuǎn)為十進(jìn)制1unsignedb=655536;而b屬于無符號(hào)整型,在內(nèi)存中只占兩字節(jié),所以只能包括16位類所占位所占字節(jié)類所占位所占字節(jié)2unsigned44unsigned444unsigned28標(biāo)準(zhǔn)C沒有具體要求規(guī)定各類型數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù)以這次考試標(biāo)準(zhǔn)viusalc++6.0為實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù)3.31.實(shí)型常小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,必須有小數(shù)點(diǎn),小數(shù)點(diǎn)的某一側(cè)可以沒有數(shù)字。如:.23,123.876,123.指數(shù)形式:用“e”或“E”后接一個(gè)整數(shù),表示以10為底的冪數(shù)注意:“e”或“E”之前之后必須有數(shù)字,且之后的數(shù)字必須是整數(shù)。他們和前后的數(shù)字之間不能2-15:下列合法的常量是(A.- 例2-16:下列合法的實(shí)型常量是 (A) (C) (D) (E) 3.32.實(shí)型變單精度型float占4字節(jié)雙精度型double8字節(jié)長(zhǎng)雙精度longdouble16字節(jié)(較少用算術(shù)運(yùn)算符及其表達(dá)式 %(%兩邊必須是整型數(shù)據(jù)。12.0%3表達(dá)式是錯(cuò)誤的求余()例如:17%3結(jié)果是:217%-3結(jié)果是:2,-17%3結(jié)果是:-2,-17%-3結(jié)果是:-強(qiáng)制類型轉(zhuǎn)強(qiáng)制類型表達(dá)式(類型名)表達(dá)注意:類型名(表達(dá)式)這種形式是C++的強(qiáng)制類型表達(dá)方式5.1.賦值運(yùn)算符格式:變量名=表達(dá) 4=3是的表達(dá)式 a+(b=3)都是合法的表達(dá) a=(b=10)/(c=2)都是合法的表達(dá)實(shí)型數(shù)據(jù)賦給整型變量時(shí),小數(shù)部分被舍去,整型數(shù)據(jù)賦給實(shí)型變量時(shí),系統(tǒng)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)換為實(shí)型數(shù)據(jù)。例如:floata;int表達(dá)式a=10%3的值是書本:5.2.復(fù)合賦值運(yùn)算符及其表達(dá)式:+=- 例如:a+=3相當(dāng)于a=a+3,a/=b+4相當(dāng)a/=(b+4)例:若a=12,則執(zhí)行表達(dá)式a+=a-=a+a后a的值是多少? /*a的值是12*/a+=a-=24/*a的值是12*/a+=a=a-24/*a的值是12*/a+=a=-12/*a的值是12*/ /*a的值是-12*/a=a+(-12)/*a的值是-12*/ /*a的值是-24*/5.3. -如:6++(a+b)--都是錯(cuò)誤的。當(dāng)它們用于變量名前時(shí),表達(dá)式的值為變量的值加一或減一。當(dāng)位于變量名后時(shí),表達(dá)式的值為變量原來的值。不論位于變量名前還是變量名后,只要進(jìn)行了自增、自減運(yùn)算,變量的值都會(huì)在原來的基礎(chǔ)上加1或減。如:a=3a++表達(dá)式的值是3運(yùn)算之后變量的值是4a=3則++a表達(dá)式的值是4之后變量的值是4a=3a--表達(dá)式的值是3之后變量的值是2a=3--a表達(dá)式的值是2之后變量的值是口訣j=i++;這個(gè)表達(dá)式是 后增值。即:先把i的初始值給變量j,然后i再自加1j=++i;這歌表達(dá)式是先增值后。即:i先自加1,然后再將我們自加后的值賦值給變量j。但是記住它們是一起執(zhí)行的,就是說:例如j=i++先后增值實(shí)際上是一起執(zhí)行的,它們之不存在先后關(guān)系,我們只是位了好記才用到了上面的方法。老師在上課的時(shí)候先不要說,但是必須知道。=iji和上面j=++,=++i的方法是一樣。5.4逗號(hào)運(yùn)算符及其表達(dá)格式:表達(dá)式1,表達(dá)式2,…,表達(dá)式注意:1.逗號(hào)表達(dá)式的值是整個(gè)逗號(hào)表達(dá)式中最后一個(gè)表達(dá)式的值求值順序是從左到右依次求解例如:a=(3,b=1)的值是1運(yùn)算結(jié)束后a的值是1b的值是1二.相關(guān)試1.20084月相關(guān)試以下敘述中正確的以下選項(xiàng)中不合法的標(biāo)識(shí)符printB)FORC)&a以下選項(xiàng)中不屬于字符常量的A) B) D)A)x=y*5=x+zB)int(15.8%5)x=y+z+5,++y填空(7)設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【72.2007年9月相關(guān)(11)C語言源程序名的后綴 B)y-m-3)以下選項(xiàng)B)y-m-3)以下選項(xiàng)中,合法的一組C語言數(shù)值常量 B) .5e--(14)以下敘述中正確的A)C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)C)C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D)main可作為用戶標(biāo)識(shí)符,用以命名任意一個(gè)函數(shù)作為主函數(shù)以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的A)均占4個(gè)字 B)根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)由用戶自己定 D)由C語言編譯系統(tǒng)決若變量均已正確定義并賦值,以下合法的C語言賦值語句 3.2007年4月相關(guān)下列敘述中錯(cuò)誤的是(DA)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是(BA)大寫字母B)連接符C)數(shù)字字符D)下劃以下敘述中錯(cuò)誤的是(CA)C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中(19)有以下程序,其中%u表示按無符號(hào)整數(shù)輸出(B{unsignedintx=0xFFFF; /*x的初值為十六進(jìn)*/}/*注意:x是占兩個(gè)字節(jié)*/A)- 所占分考核幾專家點(diǎn)C語句分0-簡(jiǎn)單識(shí)字符輸出函數(shù)1-難度適中,重點(diǎn)字符輸入函數(shù)1-難度適中,重點(diǎn)格式輸入函數(shù)3-難度適中,重點(diǎn)理解重點(diǎn)掌格式輸出函數(shù)3-難度適中,重點(diǎn)理解重點(diǎn)掌語C語句共分為5類控制語函數(shù)調(diào)用語句printf“this isacstatement表達(dá)式語每一個(gè)合法的表達(dá)式后加上分號(hào)()就構(gòu)成了表達(dá)式語句語句和表達(dá)式的區(qū)別表達(dá)式有唯一確定的值,而語句沒有值賦值語i=1,j=2是逗號(hào)表達(dá)式i=1;j=2;是兩條賦值語句i++i--;++i;--i;都是賦值語句等價(jià)于i=i+1;或i=i-1;空語句:只有一個(gè)單獨(dú)的分號(hào)構(gòu)成的語句。如:;就是一條空語句復(fù)合語句:用一對(duì){}將若干語句括起來構(gòu)成一條復(fù)合語輸入輸出語在使用庫函數(shù)時(shí)必須先用預(yù)編譯命令#include<頭文件名>或#include“頭文件名”將相應(yīng)的頭文件如printf()函:printf“功能:按格式控制指定的格式輸出數(shù)據(jù)如:pinf“=%,+=%d3,+輸出結(jié)果是(1)d格%d:按實(shí)際長(zhǎng)度輸出十進(jìn)制整%md:輸出占m列,若小于m列,左邊補(bǔ)空格,若大于m列,按實(shí)際輸出%-md:輸出占m列,若小于m列,右邊補(bǔ)空格,若大于m列,按實(shí)際輸出輸出結(jié)果 輸出結(jié)果(2)u格%u:以無符號(hào)十進(jìn)制形式輸出整數(shù)printf(“%u”,-1);65535(3)o格printf(“%d,%o”,-1,-1);-1,177777xX格%x或%X以無符號(hào)十六進(jìn)制形式輸出整數(shù)。不輸出前導(dǎo)符0x0X,小寫對(duì)小寫,大寫對(duì)大寫。-注:若要輸出十六進(jìn)制和八進(jìn)制的前導(dǎo)符,則要用%#o和%#x、%#Xc格%c用來輸出一個(gè)字符,不輸出單引號(hào)定界符。%c和%d可以相互轉(zhuǎn)換 printf(“%c,%d”,100,100);s格用來輸出一個(gè)字符串,不輸出雙引號(hào)和字符串結(jié)束符%s:輸出字符串的有效字符printf(“%s”,”china\0yunnan”);%ms:輸出占m列,若小于m列,左邊補(bǔ)空格,大于m列,按實(shí)際輸出swfc,swfc,swfc%m.ns:輸出占m列,只輸出字符串的左n個(gè)字符到m列的右端f格式:按小數(shù)形式輸出實(shí)型數(shù)據(jù)%f:默認(rèn)輸出6位小%m.nf:輸出占m列,其中有n位小數(shù)。若超過m列,確保n位小數(shù)后按實(shí)際輸出。注意四舍五入如:printf(“%7.3f,%- e格以指數(shù)形式輸出一個(gè)實(shí)數(shù)。小數(shù)點(diǎn)前只有一位非零數(shù),5位小數(shù),3位指數(shù)。234000e+002,1.234500e-g格自動(dòng)在%f和%e中選擇較短的一種輸出,對(duì)于小數(shù)部分不輸出無意義的0。 %%表示輸出一個(gè)%如除了x,e,g大小寫均可外,其它都只能小寫。如:pinf(“%d1.23);/出錯(cuò)*/scanf()函:scanf“如:anf(“%3d%2d&,&);若輸入則:a的值是:386b的值是:30ab的值是:3 則:ch的值是:’3’b的值是%*md:表示跳過m列不讀。則:a的值b的值是:原來的值若要給a賦值5,b賦值10,正確的輸入是:a=5,b=10若要讓a,b,c分別得到1,2,3,正確的輸入是:1*,2#,3<回車空格可以是多個(gè)。但是,%c格式除外。如若想讓a的值為5,b的值為10。確的輸入是5空格10<回車>5<回車10<回車5格格10<回車(6)多個(gè)%c格式之間沒有其它字符,仍然不能用回車或空格來分隔。若輸入:a空格b空格c<回車a的值是’a’,b的值是空格,c的值是’b’()如:inta;anf(“%f&a出錯(cuò)*/普通字符原樣輸入,原樣輸出對(duì)于%d格式,指定寬度小于輸出寬度,原樣輸出%#o,%#x,%#X表示要輸出八進(jìn)制的前導(dǎo)符數(shù)字0,和十六進(jìn)制的前導(dǎo)符0x,0X%x,%X格式,小寫對(duì)小寫,大寫對(duì)大%*md:表示跳過相應(yīng)的輸入項(xiàng)注意進(jìn)制間的轉(zhuǎn)換,以及無符號(hào)數(shù)和帶符號(hào)數(shù)之間的轉(zhuǎn)換scanf()函數(shù)中,給double類型變量輸入數(shù)據(jù)時(shí),應(yīng)該使用%lf類型說明符,而輸出時(shí),可以1.2008年4月試題分charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);已知字符a的ASCll十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果2.2007年9月試題 a,b,c,*p=&c;之后,接著執(zhí)行以下選項(xiàng)中的語句,則能正確執(zhí)行的語句 有以下程序 scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入 7777abc后,y的值 填空(6)執(zhí)行以下程序時(shí)輸 <CR>,則輸出結(jié)果是【6】 }3.2007年4月試題設(shè)變量均已正確定義,若要通過scan(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1空格字符)(D) D)10X〈回車〉 填空(6)執(zhí)行以下程序后的輸出結(jié)果是 {int }第三章?lián)窠Y(jié)構(gòu)所占分考核幾專家點(diǎn)關(guān)系運(yùn)算符及優(yōu)先次0-簡(jiǎn)單識(shí)關(guān)系表達(dá)0-簡(jiǎn)單,屬重點(diǎn)識(shí)記知識(shí)邏輯運(yùn)算符及優(yōu)1-簡(jiǎn)單識(shí)邏輯表達(dá)1-簡(jiǎn)單,屬重點(diǎn)識(shí)記知識(shí)if語句的幾種形1-簡(jiǎn)單識(shí)if語句的嵌1-難度適中,重點(diǎn)條件運(yùn)算0-難度適中,重點(diǎn)switch語2-簡(jiǎn)單,重點(diǎn)掌握重點(diǎn)理語句標(biāo)0-偏難,不是重1-簡(jiǎn)單識(shí)二.教學(xué)內(nèi)邏輯真(非零值 假(零關(guān)系運(yùn)算符及其表達(dá) 關(guān)系運(yùn)算符優(yōu)先級(jí)別低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符(< 如:a>b+c等價(jià)于a>(b+c)a==b<c等價(jià)于a==(b<c)a=b<c等價(jià)于a=(b<c)4==4表達(dá)式的值為4=4表達(dá)式不合關(guān)系表達(dá)式的值只有10,其中1表示“真0表示邏輯運(yùn)算符及其表達(dá)&&邏輯“與||邏輯“或邏輯“非”優(yōu)先級(jí)別&&》||運(yùn)算規(guī)則例如:3>4結(jié)果是:03&&4結(jié)果!3&&4結(jié)果是:00||3結(jié)果是:1注意:在求解邏輯與()表達(dá)式時(shí),若&運(yùn)算符左邊表達(dá)式的值為(假,則不再進(jìn)行&右邊表達(dá)式的運(yùn)算,且將整個(gè)&表達(dá)式的值定為0;在求解邏輯或()表達(dá)式時(shí),若左邊表達(dá)式的值為非0值(真,則不再進(jìn)行右邊表達(dá)式的運(yùn)算,且將整個(gè)邏輯表達(dá)式的值定為(真。if語句格式 語句1; 語句1;語句稱為:全 單if后的表達(dá)式必須用()括起,else后沒有表達(dá)式ifelse都只能控制緊跟它的一條語句,若要控制多條語句,必須用一對(duì){}括起構(gòu)成一條復(fù)2.2執(zhí)行方式2.21if語句的執(zhí)行方式:首先判斷表達(dá)式的值是否為“真若“真則執(zhí)行語句部分達(dá)式的值為“假則“跳過”語句部分執(zhí)行if語句后面的其它語句果表達(dá)式的值為則執(zhí)行else語句后面的語句。{intif(m++>5)elseprintf(“m=%d”,m--}{intif(++m>5)printf(“m=%d”,m);elseprintf(“m=%d\n”,m--);printf“m=%d”,m);}2.3if語句的嵌if(表達(dá)式if(表達(dá)式2)語句1; 語句2;if(表達(dá)式3)語句3; 語句else總是與前面最近的且未配對(duì)的if語句配對(duì),組成一對(duì)if-elseif(表達(dá)式if(表達(dá)式2)語句1;if(表達(dá)式3)語句2; 語句else語句有的同學(xué)會(huì)把它誤以為和第一個(gè)if配對(duì),但是實(shí)際的情況是和第if語句配對(duì),if(表達(dá)式if(表達(dá)式2)語句1;if(表達(dá)式3)語句2; 語句{ints,t,a,b;if(a>0)s=s+1;if(a>b)t=s+1;elseif(a==b)t=s;elset=2*s;}若運(yùn)行時(shí)輸入 10回車,則程序的執(zhí)行結(jié)果是{ints,t,a,b;if(a>0){s=s+1;if(a>b)t=s+1;}elseif(a==b)t=s;elset=2*s;}若運(yùn)行時(shí)輸入 10回車,則輸出結(jié)果是{inta=4,b=3,c=5,t=0;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;printf(“%d%d}{inta=4,b=3,c=5,t=0;if(a<b){t=a;a=b;b=t;}if(a<c)printf(“%d%d}聯(lián)想交換的思想:若要交換a和b的值,通常的做法是條件運(yùn)算符格式:表達(dá)式1?表達(dá)式2:表達(dá)式3執(zhí)行方式:先求“表達(dá)式1”的值,若其值為“真求出“表達(dá)式2”的值作為整個(gè)條件表達(dá)式的值;若其值為求出“表達(dá)式3”的值作為整個(gè)表達(dá)式的值。相當(dāng)于注意:表達(dá)式1、2、3的值不要求具有相同的類型,最后結(jié)果的類型為表達(dá)式2、3中較高類型的一種。如:(x=6)>(y=5)?1:1.5表達(dá)式的值是1.0而不是1。switch語switch(表達(dá)式{case 常量表達(dá)式2:語句… 常量表達(dá)式n:語句n;break; }switch、case、default、break都是關(guān)鍵字?;ɡㄌ?hào)里面的語句叫做switch語句體。Switch語句體中可以沒break語句default部分。Switch語句的圓括號(hào)中表達(dá)式的值必須是整型或是字符型,不能為實(shí)型。case后的表達(dá)式可執(zhí)行Switch語句時(shí),首先計(jì)算Switch后圓括號(hào)的表達(dá)式的值,然后將這個(gè)值與語句體中case如果沒有任何一個(gè)常量表達(dá)式的值與之相等,則執(zhí)行default后的語句塊。在執(zhí)行的時(shí)候如break語句,則跳switch語句。如果執(zhí)行完一casedefault語句塊后沒有遇到break,則繼續(xù)順序往下執(zhí)行,知道遇到break語句或者語句體被執(zhí)行完畢default最多只能有一個(gè),通常出現(xiàn)在switch語句的最后部分,但也可以出現(xiàn)在case之間或所有的case之前。四.試題分1.20084月試題分析(17)已知字母的代碼值為6,若變量k為ha型,以下不能正確判斷出k中的值為大寫字母的表達(dá)式是A)kk>='A'&&kk<='Z'B)!(kk>='A'||kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)A)(c==2)||(c==4)||(c==6)B)(c>=2&&c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;其輸出結(jié)果A)程序段有語法錯(cuò)B)3,5,3C)3,5,5#include<stdio.h>{intx=1,y=0,a=0,b=0;{case{case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}}A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=12.2007年9月試有以下計(jì)算y
(xx(xx若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段A)if(x>=0) B)elsey=sqrt(-x); if(x<0)y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);if(x<0)y=sqrt(-設(shè)有條件表達(dá)式:(EXP)?i++:j- ,則以下表達(dá)式中與(EXP)完全等價(jià)的 c;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是 C)'A'<=c&&c D)c<=('z'-32)&&('a'-32)<=以下程序的功能是:輸出a、b、c三個(gè)變量中的最小值。請(qǐng)?zhí)羁?includemain( t1=a<b? 【7】;t2=ct1?【8】printf("%d\n",t2}3.20074設(shè)變量xy均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是(C C)if(x>y)x-- D)if(y<0){;}elsey++; elsex++;以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式( 以下敘述中正確的是(Cbreak語句只能用于switch語句體continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循break語句只能用在循環(huán)體內(nèi)和switch語句在循環(huán)體內(nèi)使用break語句和continue語句的作用相有以下程序({intk=5,n=0; case3:n+=1;break;case2:case4:n+=2;k--}}程序運(yùn)行后的輸出結(jié)果 所占分考核幾專家點(diǎn)while語2-所占分考核幾專家點(diǎn)while語2-重點(diǎn)理解重點(diǎn)掌do...while語2-重點(diǎn)理解重點(diǎn)掌for語5-重點(diǎn)理解重點(diǎn)掌循環(huán)嵌4-重點(diǎn)理解重點(diǎn)掌循環(huán)比0-簡(jiǎn)單識(shí)break語2-難度適中,重點(diǎn)continue語2-難度適中,重點(diǎn)二.教學(xué)while格式 while(表達(dá)式{
循環(huán)體語}whileC語言的關(guān)鍵字其值為“真(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。while語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)作。如:le(表達(dá)式;/是循環(huán)體,它是一條空語句*/例如:分析下列程序的輸出結(jié)果執(zhí)行過程計(jì)算圓括號(hào)中表達(dá)式的值。若為非0則執(zhí)行循環(huán)體語句,若為0則跳出循環(huán)執(zhí)行完循環(huán)體語句后重復(fù)過程(1{inti=1,sum=0;}}這是學(xué)習(xí)C語言基礎(chǔ)循環(huán)的最好的練習(xí),老師讓學(xué)生練習(xí)的時(shí)候可以把i控制在10以內(nèi),讓學(xué)生知d0-while格式 循環(huán)while(表達(dá)式doC語言的關(guān)鍵字,需要和while一起搭配使用其值為“真(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。while語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)作。如:d{;}ile(表達(dá)式;/*是循環(huán)體,它是一條空語句*/由于do-while循環(huán)結(jié)構(gòu)整個(gè)語法上也是C語言語句此最后的分號(hào)必不可它同樣表示語句執(zhí)行過程執(zhí)行循環(huán)體語句計(jì)算圓括號(hào)中表達(dá)式的值。若為非0則重復(fù)(1,否則跳出循環(huán)forforC語言的關(guān)鍵字值;表達(dá)2的作用是控制循環(huán);表達(dá)3的作用是賦值。for語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)合3.5執(zhí)行過程計(jì)算表達(dá)式計(jì)算表達(dá)式2,若其值為非0,轉(zhuǎn)步驟(3;若其值為0則轉(zhuǎn)步驟(執(zhí)行一次for循環(huán)體計(jì)算表達(dá)式3,轉(zhuǎn)步驟(2結(jié)束循環(huán),執(zhí)行for語句后面的語句{inti,j;}for(i=1;;i++)/*表達(dá)式2的值始終為真,這是死循環(huán)breakcontinuebreak語句用于結(jié)束循環(huán)或switchcontinue語句用于結(jié)束本次循環(huán),跳過循環(huán)中continue后尚未執(zhí)行的語句,繼續(xù)進(jìn)行下一次循環(huán)條注意:break語句只能控制直接包含它的switch結(jié)構(gòu)或循環(huán)。continue語句只能控制直接包含它的循環(huán)。1:main{inti,s1=0,s2=0,s3=0;{casecase2:s2++;break;case3:s3++;contiune;}}把1~100之間能被4整除的數(shù)輸出(老師一定要學(xué)生這中方法{inti;{if(i%4!=0)continue;}}三.試題1.20084#include<stdio.h>{intfor(;x>0;x--{if(x%3){printf(“%d,”,x--);continue;}}}A)7,4,2B)8,7,5,2C)9,7,6,4D)8,5,4,2以下不構(gòu)成無限循環(huán)的語句或者語句組A)n=0;B)n=0;do{++n;}while(n<=0);while(1){n++;}C)n=10;D)for(n=0,i=1;;i++)#includestdio.h>{intfor(i=0;i<12;i++)for(i=1;i<5;i++)printf(“%d”,c[i]);}程序的運(yùn)行結(jié)果A)1234B)2344C)4332D)112#includestdio.h>voidfun(int*s,intnl,int{inti,j,t;i=nl;j=n2;}{intfun(a,0,3);fun(a,4,9);}程序運(yùn)行的結(jié)果 #include<stdio.h>#includestring.h>voidfun(char*s[],int{char*t;inti,j;if(strlen(s[i])>strlen(s[j]))}{charfun(ss,5);}程序的運(yùn)行結(jié)果A)xy,aaaaccB)aaaacc,xyC)bcc,aabcc(35)有以下程#includevoidfun(char*a,char{while(*a==’*’)a++;while(*b=*a){b++;a++;}}{char*s=”****a*b****”,t[80];fun(s,t);puts(t);}程序的運(yùn)行結(jié)果A)*****a*bB)a*bC)a*b****D)若有定義:intk;,以下程序段的輸出結(jié)果是【8for(k=2;k<6;k++,k++)printf(“##%d”,k);{int{p[i]=&x[2*i+1];printf(“%d”,p[i][0]);}}2.20079若變量已正確定義,有以下程序 printf("%d,",i); while(i++);其輸出結(jié)果 D)程序進(jìn)入無限循 printf("%d",--}程序的運(yùn)行結(jié)果 i,j,m=55;for(j=3;j<=i;j++) printf("%d\n",m);}程序的運(yùn)行結(jié)果 (34)有以下程 *a, n/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小 t,i,for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if t=a[i];a[i]=a[j]; } fun(c+4,for(i=0;i<10;i++) printf("%d,",c[i]);}程序的運(yùn)行結(jié)果 以下程序的輸出結(jié)果是9#include n=12345, printf("%d", }for(s=1.0,k=1;k<=n;k++) printf("s=%f\n\n",s);請(qǐng)?zhí)羁?,使下面程序段的功能與之完全s=1.0; 【10】) s=s+1.0/(k*(k+1));【11】; printf("s=%f\n\n",s);以下程序的輸出結(jié)果是12 for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');}3.20074月試題分以下敘述中正確的是(Cbreak語句只能用于switch語句體continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循break語句只能用在循環(huán)體內(nèi)和switch語句在循環(huán)體內(nèi)使用break語句和continue語句的作用相有以下程序({intk=5,n=0; case3:n+=1;break;case2:case4:n+=2;k--}}程序運(yùn)行后的輸出結(jié)果 有以下程{inti,j;{for(j=i;j<4;j++)printf(“%d*%d=%d}}程序運(yùn)行后的輸出結(jié)果是( 1*1=11*2=2 B)1*1=11*2=22*2=4C)D) 3*2=6}(7)當(dāng)執(zhí)行以下程序時(shí),輸 <回車>,則其中while循環(huán)體將執(zhí) 次#include<stdio.h>{charWhil(ch=gtchar()=’’)}
第五章字符型數(shù) 位運(yùn)字符常字符常量:用一對(duì)單引號(hào)括起的一個(gè)字符例如:’A’,’a’,’6’是合法的字符型常量”a”,’ab’,A,512’都是不合法的字符型常量轉(zhuǎn)義字符常量:必須以一個(gè)反斜杠“\”開頭.常見的轉(zhuǎn)義字符見表5-1\n:回車換行\(zhòng)t:橫向跳格\v:豎向\b:退 \r:回 \f:換\\: \ddd:ddd表示最多可以有三位8進(jìn)制數(shù)\xhh:hh表示最多可以有二位16進(jìn)制數(shù)注意:三位8進(jìn)制數(shù)不一定以0開頭,只要是0~7之間的數(shù)字即可。例:下列字符常量中合法的是() 例:下列字符常量中合法的是( D.’”’ 字符型變關(guān)鍵字:char,字符型變量在內(nèi)存中占1字節(jié)。例:chara=’5’;‘a(chǎn)’字符的ASCII碼值是‘A’字符的ASCII碼值是65(大寫字母加上32后就變成了與其相對(duì)應(yīng)的小寫字母。數(shù)字’0’~’9’對(duì)應(yīng)的ASCII碼值是48~57格式:putchar(字符 功能:輸出一個(gè)字符,但不輸出單引號(hào)。其中“字符”可以合法的字符型或整型數(shù)據(jù)。它會(huì)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的字符輸出。putchar‘a(chǎn);a printf(“%c”,’a’);puthar(6;Ah=‘g;pthar(;charch=‘g’;printf(“%c”,ch);輸出功能:接收一個(gè)從鍵盤輸入的字符注意:1.它可以接收從鍵盤上輸入的任何字符,包括回車符、空格符等a,b;a=getcha(;b=getchar(;若輸入:1<回車>則變量a的值為字符1量b的值為符scanf函數(shù)輸入數(shù)據(jù):在進(jìn)行字符數(shù)據(jù)輸入的時(shí)候,空格符、回車、橫向跳格都是合法有效的字位運(yùn)算(詳細(xì)的見52頁1.2008年試(13)以下選項(xiàng)中不屬于字符常量的A) B) D)charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);已知字符a的ASCll十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果C)a,97,12k=12D)a,97,k=12已知字母的代碼值為6,若變量k為ha型,以下不能正確判斷出k中的值為大寫字母的表達(dá)式是A)kk>='A'&&kk<='Z'C)(kk+32)>='a'&&(kk+32)<='z' A)a^bB)a|bC)a&b2.20079已有定義 否為大寫字母的表達(dá)式 C)'A'<=c&&c D)c<=('z'-32)&&('a'-32)<=已知字符'A'的ASCII代碼值是65,字符變量c1的值是'A',c2的值是'D'。執(zhí)行語句printf("%d%d",c1,c2-2);后,輸出結(jié)果 for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');}3.20074(25)以下合法的字符型常量是( 轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是()A)c=(c- C)c=c- D)c=(‘A’+c)%26-當(dāng)執(zhí)行以下程序時(shí),輸 <回車>,則其中while循環(huán)體將執(zhí) 次#include<stdio.h>{charWhil(ch=gtchar()=’’)}第六章函一.教學(xué)重點(diǎn)、所占分考核幾專家點(diǎn)1-簡(jiǎn)單,重點(diǎn)識(shí)記知識(shí)函數(shù)的定0-簡(jiǎn)單,重點(diǎn)識(shí)記知識(shí)形參和實(shí)參及函數(shù)調(diào)2-難度適中,重點(diǎn)理解重點(diǎn)掌函數(shù)調(diào)用的一般形式和調(diào)用2-偏難,重點(diǎn)掌握重點(diǎn)理函數(shù)的說明及其0-簡(jiǎn)單識(shí)函數(shù)的嵌套調(diào)1-偏難,重點(diǎn)掌握重點(diǎn)理函數(shù)的遞歸調(diào)1-偏難,重點(diǎn)掌握重點(diǎn)理二.教學(xué)函數(shù)的定義
函數(shù)是C程序的基本單位函數(shù)返回值的類型名函數(shù)名(類型名 形參名1,類型名 形參名{}一個(gè)C程序可以由一個(gè)或多個(gè)源程序文件組成個(gè)源程序文件可以由一個(gè)或多個(gè)函數(shù)組成。程序>>函函數(shù)返回值的類型名缺省時(shí),返回值類型默int型,而不是沒有返回值。若沒有返回值的時(shí)候應(yīng)該為void.main。戶標(biāo)識(shí)符。在同一函數(shù)內(nèi)形式參數(shù)必須是唯一的。如果函數(shù)不帶形式參數(shù),則形式參數(shù)列表可以省略。函數(shù)體部分的一對(duì)花括號(hào)必不可少函數(shù)之間的關(guān)系是相互平行、獨(dú)立的,不是相互隸屬的函數(shù)不能嵌套定義,不能在一個(gè)函數(shù)體內(nèi)定義另一個(gè)函數(shù)函數(shù)可以相用,但不能調(diào)用main()函數(shù)函數(shù)的分類從形式分 從用戶使用的角度:用戶自定義函數(shù):doubleadd(inta,intb){函數(shù)體函數(shù)的定義的數(shù)名(類型名參1,類型名參2,…)/*函數(shù)首部{函數(shù)體intmin(intx,int intmin({函數(shù)體 int/*現(xiàn)代方式 {函數(shù)體}/*傳統(tǒng)方式floatfun(intx,int float intx;int 以上函數(shù)的定義是合法的intfun(int{ intfun(intx;int{… intfun(intx,y)inty; int{int…}intfun(x,y)intx,y,z;{…以上函數(shù)的定義均是的形參只有在該函數(shù)被調(diào)用時(shí)才占內(nèi)存單元,即該變量才可用;函數(shù)調(diào)用結(jié)束時(shí)形參所占的內(nèi)存單元被釋放,即不可用。實(shí)參和形參的數(shù)據(jù)類型應(yīng)該對(duì)應(yīng)相同。否則,必須將函數(shù)的定義放在函數(shù)調(diào)用之前或在調(diào)用之前對(duì)函數(shù)作原型。voidsum(intx,inty)//函數(shù)定義,x,y是被調(diào)用函數(shù)的參數(shù),我們叫它形{}main({sum(3,5);//函數(shù)調(diào)用,這里的3和5是調(diào)用函數(shù)的參數(shù),我們叫為實(shí)}/*類型對(duì)應(yīng)不相同函數(shù)的返回值即函數(shù)值return語句的格式retrun表達(dá)式;或return表達(dá)式功能:將表達(dá)式的值作為函數(shù)值返回給主調(diào)函數(shù),并結(jié)束本函數(shù)的執(zhí)行函數(shù)值應(yīng)return語句返回,一個(gè)函數(shù)中可以有return語句,只要執(zhí)行其中任何一return語句,該函數(shù)立即結(jié)束執(zhí)行,并將該retrun后表達(dá)式的值返回。例如:intmax(inta,intb){ returna; return}函數(shù)值的類型保持與函數(shù)定義時(shí)所指定的類型相同,而與retrun后表達(dá)式的值的類型無關(guān)。若定義函數(shù)時(shí)不指定函數(shù)的類型,則默認(rèn)是int。max(floata,float intmax(floata,float{return {return(void例如:voidfun(inta){}調(diào)用格式:函數(shù)名(實(shí)參無參調(diào)用格式:函數(shù)名()帶參調(diào)用格式:函數(shù)名(實(shí)參列表調(diào)用函數(shù)時(shí),函數(shù)名必須一致。函數(shù)名是唯一區(qū)別函數(shù)的標(biāo)志實(shí)參和形參的類型匹配,個(gè)數(shù)一致,形式上一一對(duì)應(yīng)一般情況下,函數(shù)應(yīng)該先定義后調(diào)用voidswap(inta,intb)/*函數(shù)定義{a=a+b;b=a-b;a=a-}{inta=2,b=5;}格式:函數(shù)類型函數(shù)名(形參類型1,形參類型 函數(shù)類型函數(shù)名(形參類型1形參名1,形參類型2形參名2對(duì)上例中的swap函數(shù)作原型的格式:voidvoidswap(inta,intb);voidswap(intx,inty);若被調(diào)函數(shù)定義在主調(diào)函數(shù)之前時(shí),可以不作原型。若被調(diào)函數(shù)定義在主調(diào)函數(shù)之后,則在用前應(yīng)作原型voidswap(inta,intb)/*函數(shù)定義{inta=2,b=5;}{intvoidswap(int,int);/*原型*/}voidswap(inta,intb)/*函數(shù)定義如果在程序文件的開始就對(duì)函數(shù)作外部原型,則在各主調(diào)函數(shù)中不必再作原型。例:voidswap(int,int);/*外部原型申明*/{intx=1,y=2;}voidswap(inta,int補(bǔ)充:若果形參中有數(shù)組,則作原型時(shí)數(shù)組的中括號(hào)不能省略例如:floatfn(douleb 可以用以下方式原型floatfun(double[]);floatfun(doublea[]);而以下的方式是錯(cuò)誤的floatfun(double函數(shù)的嵌套調(diào)用和遞歸調(diào)嵌套調(diào)用:在一個(gè)函數(shù)內(nèi)調(diào)用另一個(gè)函遞歸調(diào)用:在一個(gè)函數(shù)內(nèi)直接或間接調(diào)用它本身。若在函數(shù)A內(nèi)直接調(diào)用函數(shù)A稱為直接遞歸。若函數(shù)A調(diào)用函數(shù)B,函數(shù)B又調(diào)用函數(shù)A則稱為間接遞歸調(diào)用。longfun(int{if(k==1||k==2)returnelsereturnfun(k-1)+fun(k-}{intn;}intfunc(inta,int{return}{intx=2,y=5,z=8,r;}C函數(shù)參數(shù)之間的數(shù)據(jù)傳遞僅僅通過實(shí)參向形參的單向數(shù)值傳遞“。數(shù)據(jù)只能從實(shí)參向形參單向傳遞到目前為止,函數(shù)之多能返回一個(gè)值。就是return回來的值。voidswap(inta1,intb1)/*函數(shù)定義 voidswap(int*a3,int int int int intswap(a,b);/*函數(shù)調(diào)用 swap(&a2,&b2);/*函數(shù)調(diào)用 地值變2a5b用地址表來講解這些問題比較好三.試題1.20084#includestdio.h>intf(intx){intif(x==0||x==1)return(3);return}{intz=f(3);}程序的運(yùn)行結(jié)果A)0B)9C)6voidfun(int{if(x/2>0)printf(“%d}{fun(3);2.20079月試題分(25)若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同 單形參只是形式上的存在,不占用具 單同名的實(shí)參和形參占同 單函數(shù)的形參和實(shí)參分別占用不同 單(27)以下敘述中錯(cuò)誤的可以給指針變量賦一個(gè)整數(shù)作為地址當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦3.20074以下程序的運(yùn)行結(jié)果 intvoidfun(int{m+=k;k+=m;printf(“m=%d\n k=%d”,m,k++);}{intfun(i++);printf(“i=%d}第七章指一.教學(xué)重點(diǎn)、所占分考核幾專家點(diǎn)指針變量的定義2-簡(jiǎn)單識(shí)指針變量作為函數(shù)參2-簡(jiǎn)單,重點(diǎn)掌指向數(shù)組元素的3-難度適中,重點(diǎn)掌握重點(diǎn)理用數(shù)組名作為函數(shù)參2-難度適中,重點(diǎn)指向數(shù)組的指3-偏難,重點(diǎn)理返回指針值的函1-簡(jiǎn)單,重點(diǎn)掌二.教學(xué)內(nèi)存中的每一個(gè)字節(jié)都有一個(gè)唯一的編號(hào),這個(gè)編號(hào)就是該字節(jié)的地址inta=15,b=20;變量的地址:是對(duì)應(yīng)單元的首地址(起始地址。那么a的地址就是2001,b的地址是指針:變量的地址就是該變量的”指針”,(指針就是地址,地址就是指針)指針變量:用于存放變量地址的變量稱為指針變量指針變量的定格式:類型名*指針變量名;如:int*p; inta,*q;例1:int*p,a=20;例2:int*p=20;/*出錯(cuò)*/inta=20,*p=a;/*出錯(cuò),指針變量只能用于存放地址值指向指針變量的定義格式:類型名**指向指針變量名如:int**q;例:int*p,**q,a=5;/*我們定義了一個(gè)int型的指針變量、int型的指向指針變量和一個(gè)型的變量指針變量的賦值int*p, 或int int intp=&,q&p;/*須知道指針變量只能存取變量的地址或是和它相同類型指針的值指向指針只能存取指針變量的地址。學(xué)生在學(xué)習(xí)的時(shí)候一定要讓他們知道變量間的賦值必須是相同類型的才可以真確的賦值成功。*/給指針變量賦“空值NULL是在stdio.h頭文件中的預(yù)定義符,因此在使用NULL時(shí),應(yīng)該在程序前面寫上:#includeNULL的代碼值是0,所以等價(jià):p=0;或注意:當(dāng)p指向NULL時(shí)候,p并不是指向地址為0的單元,而是具有一個(gè)確定的值“空, 對(duì)指針的操3.1單int那么a=*p,a++等價(jià)與(*p)++。這里*p意味著取指針變量指向變量的內(nèi)容指針變量定義中的“*”和間接運(yùn)算符“*”有本質(zhì)的區(qū)別。當(dāng)定義一個(gè)指針變量的時(shí)候,“*”是說明一個(gè)變量是指針變量,而“*”作為間接運(yùn)算符的時(shí)候意味著取指針變量所指向變量的內(nèi)容。間接運(yùn)算符必須出現(xiàn)在運(yùn)算對(duì)象的左邊,運(yùn)算對(duì)象可以是地址或存放了地址的指針變量第八章一.教學(xué)重點(diǎn)、難所占分考核幾專家點(diǎn)一維數(shù)組的定義及1-簡(jiǎn)單,重點(diǎn)掌一維數(shù)組的初始1-簡(jiǎn)單,重點(diǎn)掌二維數(shù)組的定義及3-偏難,重點(diǎn)掌握重點(diǎn)理二維數(shù)組的初始1-簡(jiǎn)單,重點(diǎn)掌通過賦初值定義二維數(shù)1-偏難,重點(diǎn)理二.教學(xué)講一維數(shù)組的定義和一維數(shù)組的定格式:類型名組名[常量表達(dá)式];例如:inta[8];數(shù)組名屬于用戶標(biāo)識(shí)符,必須滿足用戶標(biāo)識(shí)符名規(guī)則。如:intdo[float3om[1];charchara-b[5];定義數(shù)組時(shí),方括號(hào)必不可少,方括號(hào)中的表達(dá)式不能含有變量,且表達(dá)式的值必須是大于0正整如:inta[5.3];inta[-4];inta[n];inta[0];{intN=5;inta[N];}都是的定#defineM5inta[M];同一數(shù)組元素在內(nèi)存中所占的空間是依次連續(xù)的,每個(gè)數(shù)組只能有一個(gè)下標(biāo),數(shù)組下標(biāo)是從開始,到數(shù)組長(zhǎng)度減4結(jié)束。例如:inta[5]; 格式:數(shù)組名[下標(biāo)表達(dá)式如:doublea[10];/*定義數(shù)組intb=a[4];/* 數(shù)組元素a[4]*/intb=a[2*2];/* 數(shù)組中的元素其實(shí)就是一個(gè)變量,占一個(gè)單元。如數(shù)組b中的變量就是int型的變量數(shù)組元素時(shí),下標(biāo)表達(dá)式的值的上限為定義是常量表達(dá)式減一,下限為0.在時(shí)保證下標(biāo)數(shù)組是一個(gè)構(gòu)造類型是集合的概念,因此不能整體數(shù)組里面的所用元素企圖簡(jiǎn)單地通數(shù)組名b體代表其中的4個(gè)it類型的變量是不行。注意:不能對(duì)數(shù)組進(jìn)行整體,只能單獨(dú)其元素intintb[10]=a;/*錯(cuò)誤的intb[10]=a[10];/*錯(cuò)誤的,沒有元素a[10]*/floata[10],b[10];b=a;/*錯(cuò)誤,a代表整個(gè)數(shù)組,不能整體*/在定義一維數(shù)組的同時(shí)可以將各元素的初值依次放在一對(duì){}中賦給數(shù)組例如:inta[10,2,,4,,6,,8,,10};inta[5]=1,2,3,4,5;inta[5]={1;2;3;4;5};錯(cuò){(即數(shù)組長(zhǎng)度數(shù),則將初值依次賦給前面的元素,而未得到初值的元素自動(dòng)賦零。例如:inta[5]={1,2,3,4,5,6};inta[5]={1,2,3};intint可以通過賦初值來定義數(shù)組的大小。此時(shí)數(shù)組的長(zhǎng)度可以省略。若定義時(shí),未賦初值,則長(zhǎng)度絕不能省略。例如:inta[1,2,3,4};數(shù)組的長(zhǎng)度是4。inta[];是的。只能在定義時(shí)可以用{}例如:inta[4;a={1,2,3;或a[4]={1,2,3,4};是的int本節(jié)習(xí)題下列一維數(shù)組定義中正確的是 intinta[inta(; intintintinta[5];inta[5];int{intn=5;intintint二維數(shù)二維數(shù)組的定格式:類型名數(shù)組名[常量表達(dá)式1][常量表達(dá)式例如:int在內(nèi)存中的存放(依次連續(xù)格式:數(shù)組名[下標(biāo)表達(dá)式1][下標(biāo)表達(dá)式例如:inta[3][4];intb[3][4]=a;/*是的inta[3][4]={0},intb,n=2;執(zhí)行上述語句后,問b的值是多少數(shù)組元素時(shí),下標(biāo)可以是C語言中任何合法的表達(dá)式,且可以含有變量。intintb=a[10.5%5][2];/*錯(cuò)誤二維數(shù)組初始直接賦inta[2][0]的值是多少?9[2][]={,0,,0,;/按行賦int[3][]={1,,},{,5,}{7,,9}};inta[3][4]={{1,2,3,4},{5,6,7,8,9},{10,11,12,13}};int[3][]={1,,3,},{,6,,8,},{1,1,1,13}{1,};intint以上定義均是的義時(shí)未賦初值,則各維的長(zhǎng)度均不能省略。例如:inta[inta[][3];或inta[3][];都是的。main({intinti,j,s=0;}輸出結(jié)果是三.試題分1.20084月考試試題分以下錯(cuò)誤的定義語句A)intB)intC)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)intx[][3]={1,2,3,4};(26)若有定義:inta[2][3];,以下選項(xiàng)中對(duì)a數(shù)組元素正確的A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][#includestdio.h>{intfor(i=0;i<12;i++)for(i=1;i<5;i++)printf(“%d”,c[i]);}程序的運(yùn)行結(jié)果A)1234B)2344C)4332D)1122.20079月試題分(31)若有定義語句 a[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素 3.20074月試題分(13)設(shè)有定義語句:inta[][3]={{0},{1},{2}};,則數(shù)組元素a[1][2](14)執(zhí)行以下程序的輸出結(jié)18 printf("%d }所占分考核幾專家點(diǎn)指向數(shù)組元素的3-所占分考核幾專家點(diǎn)指向數(shù)組元素的3-難度適中,重點(diǎn)掌握重點(diǎn)理用數(shù)組名作為函數(shù)參2-難度適中,重點(diǎn)指向數(shù)組的指3-偏難,重點(diǎn)理二級(jí)指針及指針1-偏難,重點(diǎn)掌握重點(diǎn)理二.教學(xué)講(1在C語言中數(shù)組是占用一串連續(xù)的單元數(shù)組中每個(gè)元素都可以看作一個(gè)變量,因此個(gè)數(shù)組元素都有一個(gè)地址。那么:int指針p的基類型是int,數(shù)組a的各個(gè)元素也是int類型的。我們用p=&a[0],將指針pa[0]。由于數(shù)組元素在內(nèi)存中是連續(xù)的,因此我們可以通過移動(dòng)指針p來數(shù)組中的每一個(gè)元素。(2)C語言規(guī)定數(shù)組名代表數(shù)組在內(nèi)存中的起始地址,即可a表示a的首地址。p=a是讓指針p指向數(shù)組a的起始地址。(3)a是一個(gè)地址常量它指向a數(shù)組的首地址因此我們不能對(duì)a進(jìn)行重新賦值如:a=&I,a++通過指針一維數(shù)組元(1)通過指針數(shù)組元int int 指針變量p指向數(shù)組元素a[0], 指針變量p指向數(shù)組元素a[0], 來變量a[0]。如:*p=10;是 來變量a[0]。如:*p=10;是對(duì)指針的空間賦值,即a[0]=10變成了10.(2)通過數(shù)組的首地址數(shù)組元int由于a組的首地址,我們把a(bǔ)當(dāng)作一個(gè)指針常量。因此*a等價(jià)于*(a+1)等價(jià)于a[0]。a等價(jià)于&a[0(3)用帶下標(biāo)的指針變量一維數(shù)組元intp[0]來表示a[0],p[1]來表示對(duì)數(shù)組元素a[i]等價(jià)的方法a[i];p[i];*(a+i);若指針變量P指向了一維數(shù)組a的首地址,即:inta[10int則有下面的等價(jià)關(guān)系a+i等價(jià)于p+i,都是&a[i]*(a+i)等價(jià)于*(p+i)都與a[i]相a[i]等價(jià)于p++、++p、p+=1、p=p+1作用都是讓p指向下一個(gè)元素。p--、--p、p-=1、p=p-1作用都是讓指向前一個(gè)元素*p++與*(p++)等價(jià),都是得到p當(dāng)前所指向的元素的值,并讓p指向下一個(gè)元素。*p--與*(p--)等價(jià),都是得到p當(dāng)前所指向的元素的值*++p與*(++p)等價(jià),都是先讓p指向下一個(gè)元素,再取出重指向的元素。*--p與*(--p)等價(jià),都是先讓p指向前一個(gè)元素,再取出重新指向的元(7)(*p)++、++(*p)、++*p的作用都是讓p當(dāng)前所指的元素值增加1。(*p)--、--(*p)、--*p的作用都是讓p當(dāng)前所指的元素值減?。?。指向數(shù)組的指針和指針變int列指針:加1跳過一個(gè)元素的指針(如:一維數(shù)組名行指針:加1跳過一行的指(如:二維數(shù)組名對(duì)列指針進(jìn)行一次指針(下標(biāo))例如:inta[5,2,,4,5*=a;則a[3]等價(jià)于p[3]等價(jià)于*(p+3),都得到元素a[3]的值4對(duì)行指針進(jìn)行一次指針(下標(biāo))運(yùn)算得到的列指針(即元素的地址,而不是元素。若要通過行指針元素,必須進(jìn)行兩次指針運(yùn)算或下標(biāo)運(yùn)算。若a是一個(gè)二維數(shù)組,則有a+i是行指針,指向行號(hào)為i的一整行*(a+i)和a[i]等價(jià)都是一個(gè)列指針向的是元素示行號(hào)為i的最前面元素的地址a[i][0]*(a+i)+ja[i]+j等價(jià),即&a[i][j]*(*(a+i)+j*(a[i]+j]float則對(duì)a數(shù)組元素的是 指向數(shù)組元素的指針變指指例如:intint則所指元常用于取二維數(shù)組a元素地址的方式:&a[i][j]、a[i]+j、m它是一個(gè)行指針,對(duì)它加1要跳過m個(gè)元而指向一維數(shù)組的指針變量是一個(gè)列指針。對(duì)它加1跳過1個(gè)元素?;愋?*指針變量名定義后該指針變量與具有m列的二維數(shù)組名具有相同的性質(zhì),即該指針變量可以指向一個(gè)具有m列的二維數(shù)組通過該指針變量名二維數(shù)組元素時(shí)方式與通過二維數(shù)組名的方式一樣。int[5][];int(*p)[7];此時(shí)p[0][0]a[0][0]對(duì)p[4][3]a[4][3]對(duì)charchar(*r)[80];例1.請(qǐng)分析r[0][0]和r[2][3]分別對(duì)應(yīng)的元素 2.若有intt[3][2];能正確表示t數(shù)組元素地址的表達(dá)式是( 定義格式類型名*數(shù)組名[常量表達(dá)式inta[10];普通數(shù)組int*a[10];指針int(*a)[10];指向由10個(gè)元素組成的一維數(shù)組的指針變int*a)();指向函數(shù)的指針變量int*a()返回指針值的函數(shù){…指針數(shù)組的每一個(gè)元素都是指針類型,即它的每一個(gè)元素相當(dāng)于一個(gè)指針變量{charintfor(i=0;i<3;i++)for(i=0;i<3;i++)}有下列語floatinta; inta[10];int int三.試題分1.20084月試題分{int{p[i]=&x[2*i+1];printf(“%d”,p[i][0]);}}{inta[5]={2,4,6,8,10},p=a;p++;}2.20079月試題分(31)若有定義語句 a[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素 若有定義語句 a[2][3],*p[3];,則以下語句中正確的 有以下程 *a, n/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小 t,i,for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024丙方丁方關(guān)于特色農(nóng)業(yè)產(chǎn)業(yè)鏈開發(fā)的合同
- 2024年學(xué)校食堂供餐合同
- 2024年家居風(fēng)格搭配與軟裝設(shè)計(jì)協(xié)議
- 2024年廣告投放與媒體代理合同
- 2023年湄潭縣林業(yè)局選調(diào)所屬事業(yè)單位工作人員考試真題
- 2024全新家具維修服務(wù)提供合同(含價(jià)格列表)
- 2023年廣西廣投臨港工業(yè)有限公司社會(huì)招聘考試真題
- 2023年來賓市城市管理局商調(diào)所屬事業(yè)單位工作人員考試真題
- 2023年佛山市禪城區(qū)祖廟街道公有企業(yè)招聘考試真題
- 2024年供應(yīng)商庫存責(zé)任協(xié)議
- 企業(yè)網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 《制作簡(jiǎn)易顯微鏡》實(shí)驗(yàn)報(bào)告單
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗(yàn)
- 提升服務(wù)品質(zhì)-改善就醫(yī)體驗(yàn)-持續(xù)開展改善醫(yī)療服務(wù)行動(dòng)課件整理
- 電箱巡檢記錄表
- 人血白蛋白的合理臨床應(yīng)用
- 食品快速檢測(cè)技術(shù)1+X證書理論知識(shí)考試題庫(含答案)
- 醫(yī)院安全風(fēng)險(xiǎn)辨識(shí)清單
- ZZ029-養(yǎng)老照護(hù)賽項(xiàng)賽題(10套)-2023年全國(guó)職業(yè)院校技能大賽擬設(shè)賽項(xiàng)賽題(10套)
- 《導(dǎo)向核心素養(yǎng)的小學(xué)語文學(xué)習(xí)評(píng)價(jià)的研究》課題研究方案
- 政治表現(xiàn)及具體事例三條經(jīng)典優(yōu)秀范文三篇
評(píng)論
0/150
提交評(píng)論