字母c语言教学课件,计算机二级考试C语言辅导课件.ppt
計算機二級考試C語言輔導課件.ppt
國家計算機二級考試 C語言輔導課件,一、C語言程序的結構,1.程序的構成,main函數和其他函數。 2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。 3.源程序的書寫格式。 4.C語言的風格。 5.相關題目,C語言程序是由函數構成,即函數是C程序的基本組成單位. 每一個C語言源程序可以包含多個程序文件,但必須而且只能具有一個main函數作為程序的主控函數,稱為主函數.位置雖然不確定,但程序的運行都是從主函數開始到主函數結束.一個源程序的不同程序文件之間通過調用來使用,但main函數不能被調用,只有一個程序文件中具有main函數,其它程序文件沒有.一個函數中不能定義另一個函數,函數不能嵌套定義.int f1int k int w; wk*k; returnw; void main int i,j; long s1,s2;fori1;i10;is1s1f1i; forj1;j10;js2s2f2j; printf“ld,ld”,s1,s2;int f2int mint z; zm*m*m; returnz;,1頭文件的作用,使用方法,擴展名.h 2注釋部分的格式/* */,位置,作用 3大括號 表示函數體的開始和結束include include”math.h” main float x; scanf“f”,x;/*輸入一個實數*/printf“f”,sinx; 1分號是語句的結束符 2一行可以容納多條語句,而一條語句可以在多行 3 源程序.c-目標程序.obj-可執行程序.編譯 連接 main int a,b;a10;b20;printf“ad,bd”,a,b; 1標識符語法規則C語言中的標識符只能由字母、數字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。區分大小寫,變量習慣上用小寫,符號常量用大寫。對長度無統一規定。一般為8位,Turbo C則允許32個字符。標識符不能跨行書寫,不能與關鍵字同名。_12 a1 1s s2 232個關鍵字總結主要在第一章,涉及選擇題1112 1)以下敘述中正確的是(07 9) A)C語言程序將從源程序中第一個函數開始執行 B)可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行 C)C語言規定必須用main作為主函數名,程序將從此開始執行,在此結束 D)main可作為用戶標識符,用以命名任意一個函數作為主函數 2以下敘述中正確的是(08.4)AC程序中的注釋只能出現在程序的開始位置和語句的后面BC程序書寫格式嚴格,要求一行內只能寫一個語句CC程序格式自由,一個語句可以寫在多行D用C語言編寫的程序只能放在一個程序文件中 3以下選項中合法的標志符是09.3A1_1 B1-1 C_1 D1_ _,C,C,C,4以下敘述中正確的是08.9AC程序的基本組成單位是語句BC程序中的每一行只能寫一條語句C簡單C語句必須以分號結束DC語句必須在一行內寫完 5計算機能直接執行的程序是08.9A源程序 B目標程序 C匯編程序 D可執行程序 6)以下敘述正確的是10.3 A)C語言程序是由過程和函數組成的 B)C語言函數可以嵌套調用,例如funfunx C)C語言函數不可以單獨編譯 D)C語言中除了main函數,其他函數不可作為單獨文件形式存在,C,D,B,二、數據類型及其運算,1.C的數據類型基本類型,構造類型,指針類型,無值類型void及其定義方法。 2.C運算符的種類、運算優先級和結合性。 3.不同類型數據間的轉換與運算。 4.C表達式類型賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式和求值規則。 5.相關習題,1常量各自類型的表現形式1整型常量 十進制123,八進制0123,十六進制0X123,57L2實型常量十進制12.3, 12. , .3,指數形式 2.0e5 2.0e1.5,e23字符常量a,1, 023,xa7,n,t4字符串常量“a”,”ab123” 注意字符常量與字符串常量的不同定界符字符個數占據內存長度 2各種數據類型整型short int 2 ,int 2 ,long int 4, unsinged 實型float 4 7,double 8 15字符型 char 1,3變量的定義掌握格式,含義,特點一次只能對應一個值新值覆蓋舊值int a; float b4.5;1同種類型變量用一個類型標志符定義之間用逗號隔開int a20;b10;2不同種類型變量定義之間用分號隔開int a20,float b2.0;3變量定義時不允許出現連續賦值int ab20;1除法當被除數和除數均為整數,則商一定為整數 3/2 , 3.0/2 2求余被除數和除數必須均為整數 3.22 方法 1被除數和除數取絕對值,求余2余數的符號與被除數相同 3自增自減運算1操作數只能是變量3 2x,x的區別先做再變,先變再做 設x的原值等于3yx; yx;printf“d”,x; printf“d”,x;6x 6x x3 x3 4賦值運算符 1賦值號左邊只能出現變量名yx10,x910 2復合賦值運算符的寫法及含義 a-aa*a a為2 3結合性 5逗號運算符優先級最低掌握運算順序,注意一個逗號表達式只有一個結果printf“d”,x,x6,x7; 6條件運算符 1唯一的一個三目運算符2結合性3規則 wxy 找等價 表達式1的值非0或01賦值轉換以變量類型為準int a ; a 2.3; float b; b7; 2計算時自動轉換低精度向高精度轉換,特別的是單精度數運算一定轉為雙精度數,以提高運算速度25頁表達式ab-a20 3強制類型能夠轉換格式 類型名表達式int3.7/2 intx2 int x2 注意強制類型轉換不改變變量自身的類型,變量類型一旦定義在程序運行階段是無法改變的1關系表達式 1優先級所有相同,比算術運算符低 32942不同類型數據之間也可以用關系運算符比較大小a30 12.31 3關系表達式結果0或1 4注意和的區別x3 x3 x13; x13;5數學中的式子22 x9,2邏輯表達式1優先級、 i j 3條件表達式 4逗號表達式1優先級最低 2運算從左至右,各表達式的值 3表達式的值只有一個,一組表達式中最后一個表達式的值,5代數式如何正確轉為C中的表達式1乘號不能省略 2x - 2*x2函數的括號不能省 sinx- sinx3 優先級的問題 2ab 2*a*b/2*c2c4標準函數名總結主要涉及到第二章和第四章一部分 ,試題為131617或18 1若有表達式wx y, 則其中與w等價的表達式是08.9 AW 1 BW0 CW1 DW02若函數中有定義語句int k;則09.3 A系統將自動給k賦初值0 B這時k中值無定義 C系統將自動給k賦初值-1 D這時k中無任何值3以下選項中能做數據常量的是09.3 Ao115 B0118 C1.5e1.5 D115L,D,B,D,4有以下程序 include main char c1,c2; c1A8-4; c2A8-5; printf“c,dn”,c1,c2; 已知字母A的ASCII碼為65,程序運行后的輸出結果是(09.9) A E,68 B D,68 C E,D D輸出無定值5若有定義double a22;int i0,k18;,則不符合C語言規定的賦值語句是10.3A)aa,i; B)i(ak)(ik); C)ia11; D)ia; 6設x為int型變量,請寫出一個關系表達式 【6】 ,用以判斷x同時為3和7的倍數時,關系表達式的值為真。10.3,A,A,X30 X70,X3 X7,三、基本語句,1.表達式語句,空語句,復合語句。 2.輸入輸出函數的調用,正確輸入數據并正確設計輸出格式。 3.相關習題,1表達式語句 i ; 35,68; a3 ; 2函數調用語句 printf“This is a C statement.”; sqrt x ; 3空語句即只有一個分號的語句。 if max y ; else max y; 4復合語句用 把多個語句括起來稱為復合語句,又稱分程序 1while x y t x ; x y; y t;1字符輸入函數 putchar 功能,參數及其類型,返回值及其類型putchara; putchar023;putcharx1a;putchar3035;char x; int y; float z;putcharx; putchary; putcharz;2字符輸入函數getchar功能,返回值及其類型xgetchar; putchargetchar;3格式輸出函數printf 1輸出類型在格式控制字符串中加入類型說明符d,ld,o,x,u,f,e,c,s 說明1輸出項與格式描述符個數相等,類型匹配 2 輸出時,格式限制符中的普通字符按原樣輸 出printf“xd,f”,x; printf“xd”,x,y;printf“xd,yf”,x,y;3輸出時,注意數值的符號負號和小數點占據的位 數 printf“3d,3d,3.2f”,-456,456,3.27;printf“3d,_3d,3.2f”,456,456,3.27;2輸出長度在類型限定前加上數字3d,8d,-8d,5.3f,.3f,5c,5.3s 說明1實數輸出時,默認是6位小數2截取小數時需四舍五入 3輸出表達式時,先按從右到左運算,在從左至右輸出n 1; printf“d,d,d”,n,n,n; 基本原則不能使輸出數據失真,當限制長度比實際長度短,按實際長度輸出printf“3s,2d,2.3”,”abcd”,123,23.5678; 4格式輸入函數scanf (1) “格式控制”后面應當是變量地址,而不應是變量名。int n; scanf“d”(2)如果在“格式控制”字符串中除了格式說明符以外還有其他普通字符,則在輸入數據時應輸入與這些字符相同的字符。scanf“n1d,n2d”, (3)在輸入數值數據時,遇以下情況時該認為結束。a.遇空格,或按“回車”或“跳格”Tab鍵。b.按指定的寬度結束。c.遇非法輸入。,scanf“dd”總結基本內容在第三章,重點是scanf函數和printf函數的應用,選擇題一般各占一題1819,還有后面的綜合應用1若變量已正確定義為int型,要通過語句scanf“d,d,d”, printf(“d8.6f”,x,y);的輸出結果是09.3 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930,B,A,3 若整型變量a和b中的值分別為7和9,要求按以下格式輸出a和b的值 08.4 a7b9 請完成輸出語句printf“_”,a,b; 4有以下程序main int a 0,b0; a10;/*給a賦值b20; 給b賦值*/printf“abdn”,ab /*輸出結果*/ 程序運行后的輸出結果是06.9 Aab10 Bab30 C30 D出錯,adnbd,B,5 有以下程序 include main() char a,b,c,d; scanf(“cc”, 當執行程序時,按下列方式輸入數據(從第1列開始,代表回車,注意回車也是一個字符) 12 34 則輸出結果是10.3 A)1234 B)12 C)12 D)12 3 34,C,四、選擇結構程序設計,1.用if語句實現選擇結構。 2.用switch語句實現多分支選擇結構。 3.選擇結構的嵌套。 4.相關習題,1關系表達式 2 32 aA Aa 1優先級前四個比后兩個高,比算術運算符低 32942不同類型數據之間也可以用關系運算符比較大小a30 12.31 3關系表達式結果0或1 4注意和的區別x3 x3 x13; x13;5數學中的式子22 x9,2邏輯表達式連接兩個或兩個以上表達式1優先級、 i j,1If分類1單分支if. ifx2 printf“ok”;,2雙分支ifelseif x2 printf“ok”;else printf“no”;,假0,3多分支ifelse if else if. else,ifx10 printf“1”; else ifx9 printf“2”; else ifx8 printf“3”; else printf“4”;,隱含條件 x9 x10,說明 1一個if多分支結構中至多一個else可以沒有,且else后不能加 條件表達式 2一個條件表達式后的有效語句只能有一條,若有多條,則必須構成復合語句 ifx1x2printf“d“,1;printf“d“,2; else printf“d“,3; 3If中的條件表達式可以是各種類型的,只需通過判斷表達式結果為0或非0,決定執行什么語句char x; int y; float k; ifx.else ifyelse ifk10else ifyxelse ifyk,排序1.輸入兩個實數,按代數值由小到大的次序輸出這兩個數,算法分析1、輸入兩個實數,分別賦給兩個實型變量a,b 2、兩個數的比較2.1如果ab 則進行交換 ifab ta;ab;bt; 2.2如果a不大于b,則不 能交換 3、輸出a,b,源程序main float a,b,t;scanf“f,f”2.輸入3個數a,b,c,要求按由小到大的順序輸出,算法 1if ab 將a和b對換 (a是a,b中的小者) 2if ac 將a和c對換 (a是a,c中的小者,因此a是三者中最小者) 3if bc 將b和c對換 (b是b,c中的小者,也是三者中次小者) 4順序輸出a,b,c,源程序main float a,b,c,t;scanf“f ,f,f”將上if語句改為 main float a,b,c,t;scanf“f ,f,f”,switch結構與if多分支結構的區別1switch結構只能表示等于關系,即 switch后的表達式是否與case 后的常量相等,而if可表示大于小于等于switcha/b case 0 ;case 1 ; break;default ;可省 2當前面條件均不成立時,switch執行default后的語句而if執行else后的語句,兩個關鍵字均可省;但default的位置可調整,放到case之前運行結果不會不同;而else則不可. int a6; switcha case 1printf“1”;break;default printf“2”;break;case 6printf“3”;,main int a6; if a1printf“1“; else printf“2“; else ifa6printf“3“; 3If結構中至多只能執行一條語句,執行完即結束,而對于switch結構,找到符合條件的位置即找到入口,如不遇break語句則從入口處按從上至下的順序,執行到該結構結束 int a6; switcha case 1printf“1”;break;case 6printf“3”; default printf“2”;break; 4break語句在if結構中不能使用1If與else的匹配原則就近,else之上,沒有其它if與之匹配由上至下,從第一個else找匹配的 2If嵌套的讀題順序匹配、從外向內執行includevoid mainunsigned int year,leap;printf“enter year”;ifyear4000leap 1;elseifyear40,程序1 main float x; int y; scanf“f”, ,程序2將上if語句改為 y-1; ifx0 ifx0 y1; else y0;,總結第四章,選擇題20-25中1-2題,填空題1-2題1有以下程序include mainint a1,b2,c3,d0;if a1 程序運行后的輸出結果是09.3 A 1,2,3 B 1,3,2 C 1,3,3 D 3,2,1,C,2以下程序段中,與語句kabbc100;功能相同的是(09.9) Aifab,A,3)以下選項中與if(a1)ab; else a;語句功能不同的switch語句是10.3 A)switch(a) case 1ab;break; defaulta; B)switch(a1) case 0ab;break; case 1a; C)switch(a) defaulta;break; case 1ab; D)switch(a1) case 1ab;break; case 0a; ,B,4沒有定義int a1,b2,c3;以下語句中執行結果與其它三個不同的是09.9) Aifab ca,ab,bc;Bifab ca,ab,bc; Cifab ca;ab;bc;Difab ca;ab;bc;,C,5)有如下嵌套的if語句 if (ab) if(ac)ka; else kc; else if(bc) kb; else kc; 以下選項中與上述if語句等價的語句是10.3 A)kabab; kbcbc; B)kabbcabbcbc; C)kabacacbcbc; D)kabab;kacac;,C,編程1)輸入兩個字符,若這兩個字符的ASCII碼之差為偶數,則輸出它們的后繼字符,否則輸出它們的前驅字符 2)輸入某個點A的平面坐標x,y, 判斷輸出A點是在圓內,圓外還是在圓周上,其中圓心的坐標為2,3,半徑為1; 3有一函數,五、循環結構程序設計,1.for循環結構。 2.while和do-while循環結構。 3.continue語句和break語句。 4.循環的嵌套。 5.相關習題,1while 格式,實例 main int x1; s0;whilex5ssx; x;printf“dn”,s;,流程圖,2dowhile,dowhile的先執行與while的先判斷結果可能會有所不同注意區別 main int x1; s0; whilex5 dossx; ssx;x; x;printf“dn”,s; whilex5;printf“dn”,s; 區別 1格式 ,特別是分號 2判斷條件的先后,有時會影響程序的結果若上題中x的值被賦為6,結果是否有不同,流程圖,2for賦初值;循環結束的條件;控制變量的變 化,2三個表達式可省,但分號不能省 for ( ; i 100 ; i ) for ( i 1; ; i )for ( i 1; i 100 ; ) for ( ; i 100 ; )for ( ; ; ; ) fork0,m1;i1;i,j ,main int x1; s0; whilex5 forx1,s0;x5;x ssx; ssx;x; printf“d”,s;printf“dn”,s; 1注意for循環執行順序,實例main float x1,s0;for;x3;ss1/x; x;printf“d”,s; ,4循環的嵌套注意1讀程序的順序,從外層循環進入內層循環,進入內層循環后,把內層循環執行完后,才能進入下一次的外層循環.2在內層循環中執行時要注意外層循環控制變量的值是否有變化.,main int x8,y,s0;whilex6fory1;y2;yssx;x;printf“d”,s; ,3continue結束本次循環,break結束個循環,但注意在循環嵌套中只結束本層循環.,fori1;i3;iforj1;j2;jifi1 break;printf“dn”,j;,fori1;i3;iforj1;j2;j ifj 2 continue;printf“dn”,j;,fori1;i3;i ifi3 break;printf“dn”,i;,fori1;i3;iifi3 continue;printf“dn”,i;,5常用算法 1累加求和題 2圖形輸出題 3查找題 4取某個數或某組數的每位數字累加求和題,基本思路找規律,找加數變化規律 1找出相鄰加數之間值的變化規律 2或者加數與項數之間值的變化規律,經典例題 13579.101 s 0fori1;i2/1-3/25/3-8/513/8-flag 1;a2;b1;fori1;i20;is sflag*a/bta; aab;bt; flag-flag;,main double f,k;int m,i,j;scanf“d“main double f,k;int m,i,j;scanf“d“s11/121/123.1/1234n,若把f的初值改為0,main double f,k;int m,i,j;scanf“d“fn11/11/21/3.1/m,include double funint m main int m;double f;FILE *out;printf“ m”;scanf“d”, ,請編寫程序,它的功能是計算下列級數和,和值等于 sx/1x2/2x3/3xn/n 當n10、x0.3時,函數值為1.349859,下列給定程序中,函數fun的功能是根據整型形參m的值,計算如下公式的值 1-1/4-1/9-1/16.-1/n*n 請改正函數fun中的錯誤,使它能得出正確的結果。 注意不要改動main函數,不得增行或刪行,也不得更改程序的結構。 試題程序 include include include double funint mdouble y1.0;int I;/*found/forI2;Im;I /*found/y-1/I*I;returny; void mainint n5;system“CLS“;printf“nThe result is 1fn“, funn;圖形輸出題, *,main int i,j;fori1;i3;i forj1;j3-i;jprintf“ “;for j1;j2*i-1;jprintf“*“;printf“n“;,基本思路1)確定行數,從而確定外層循環的次數; 2)找出每行列數與行號之間的規律,從而寫出內層循環;3)找出每行空格數與行號之間的規律,從而確定每行起始位置。,輸出九九乘法表 1*11 1*22 2*24 1*33 2*36 3*39 1*44 2*48 3*412 4*416 1*55 2*510 3*515 4*520 5*525 1*66 2*612 3*618 4*624 5*630 6*636 1*77 2*714 3*721 4*728 5*735 6*742 7*749 1*88 2*816 3*824 4*824 5*840 6*848 7*856 8*864 1*99 2*918 3*927 4*936 5*945 6*954 7*963 8*972 9*981,fori1;i9;iforj1;ji;jprintf“d*dd ”,j,i,i*j;printf“n”;查找題基本思路窮舉法,通常外層循環表示查找范圍,而內層用選擇結構表示查找條件,但有時,測試時也需要使用循環.,輸入所有的1100之間的偶數,并求出它們的平均數,main int x,ave0,num0; forx1;x100;x ifx20 continue;printf“d ”,x;ave avex;num; printf“aved”,ave/num;,編程輸出1到m含m之內能被7或11整除的所有整數,并計算個數。 例如,若賦值給m的值為50,則程序輸出 7 11 14 21 22 28 33 35 42 44 49判斷一個數是否是素數,計算并輸出3到n包括3和n之間的素數的平方根之和,main int i,j; float s; scanf“d”main int i,j; float s; scanf“d”main int i,j,flag; float s; scanf“d”實現求1000以內的自然數中的完數及其個數(所謂完數,指它恰好等于除它本身之外的因子之和,如6123,28124714),并顯示結果,main int i,k,s,num0;fori2;i1000;i s0;fork1;ki/2;kifik0 ssk; ifsi printf“d,“,i;num;printf“nnumd“,num; 取數字,任意輸入一個數,請把它的每位數字逆序輸出 例如356 輸出 6 5 3,main int x,m; scanf“d”, ,基本思路通過與10相除,逐次降低每位的位權,找出三位數中所有的”水仙花數”,輸出并統計個數;水仙花數是指3位數的各位數字的立方和等于這個數本身.例如,1531*1*15*5*53*3*3,main int i,m,k,s,num0;fori100;i999;i s0;mi;whilem0km10;mm/10;ssk*k*k;ifis printf“d,“,i;num;printf“nnumd“,num; 編程將長整型數中每一位上為奇數的數依次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。例如當原來的數為87653142時,新的數為7531。下列給定程序中函數fun的功能是計算正整數num各位上的數字之積。例如,若輸入252,則輸出應該是20。若輸入202,則輸出應該是0。 請改正程序中的錯誤,使它能得出正確的結果。 注意不要改動main函數,不得增行或刪行,也不得更改程序的結構。 試題程序include include long funlong num /*found/long k;dok *num10;/*found/num 10; whilenum;returnk; main int n;printf“Please enter a number “;scanf“ld“1有以下程序 include main char c1,c2;scanf“c”, 程序運行輸入65回車后,能否輸出結果、結束運行(請回答能或不能)【 】09.3,不能,2)有以下程序 include(stdio.h main() int al;b2; for(;a8;a) ba;a2; printf(“d,dn“,a,b); 程序運行后的輸出結果是10.3 A)9,18 B)8,11 C)7,11 D)10,14D,3有以下程序 include main int i,j;fori3;i1;i forj1;j2;j printf“d”,ij;printf“n”; 程序運行結果是08.9 A2 3 4 B4 3 2 C 2 3 D4 53 4 5 5 4 3 3 4 3 4 4 5 2 3,D,4有以下程序 includestdio.h main() in i,j,m1; for(i1;i3;i) for(j3;j0;j) if(i*j)3)break; mi*j; printf(“mdn“,m); 程序運行后的輸出結果是10.3 A)m6 B)m2 C)m4 D)m5,A,5)以下程序的功能是將值為三位正整數的變量x中的數值按照個位、十位、百位的順序拆分并輸出。請填空。10.3 include main() int x256;printf“d-d-dn“, 【 】 x/1010,x/100); ,X10,結束,七、函數,1.庫函數的正確調用。 2.函數的定義方法。 3.函數的類型和返回值。 4.形式參數與實在參數,參數值傳遞。 5.函數的正確調用,嵌套調用,遞歸調用。 6.局部變量和全局變量。 7.變量的存儲類別自動,靜態,寄存器,外部,變量的作用域和生存期。,調用格式 1函數語句把函數調用作為一個語句。printf ; 2 函數表達式函數出現在一個表達式中,這種表達式稱為函數表達式。這時要求函數帶回一個確定的值以參加表達式的運算。例如 c2*sina; 3 函數參數函數調用作為一個函數的實參。printf“d”,fabs-1; 注意頭文件定義格式函數類型 函數名參數類型 參數 名, , 參數類型 參數名,1、 無參函數的定義形式類型標識符 函數名() 聲明部分語句,2、 有參函數的定義形式 類型標識符 函數名(形式參數表列) 聲明部分 語句 ,print_message printf “How do you do n” ; ,int max int x,int y int z ;z x y x y ;return z ; ,main int x,y; scanf“d”, ,int funint a int b; ba*a;returnb; main int x,y; scanf“d”, ,編寫一個函數,由參數傳入一個整數,計算該數的各位數字之積。,main int x,y,z1;scanf“d”, ,說明1)定義時部分可省,請注意省略后默認的含義2)自定義函數定義的位置(任意位置)3)不能嵌套定義(可以嵌套調用)int maxint x,int y int minint x,int y return xyxy ,一.函數類型函數類型主要指的是函數返回值的類型,定義時確定 1如果在定義函數時不指定函數類型,系統會隱含指定函數類型為int型2在定義函數時對函數說明的類型一般應該和return語句中的表達式類型一致。如果不一致,則以函數類型為準。對數值數據,可以自動進行轉換。即函數類型決定返回值的類型。float f int f. return 1; return 1.5; 二.函數的返回值1函數的返回值是通過函數中的return語句獲得的。return 語句將被調用函數中的一個確定的值帶回主調函數中去格式 return 表達式;或 return 表達式;例 maxint x,int y returnxyxy; ,
總結
以上是生活随笔為你收集整理的字母c语言教学课件,计算机二级考试C语言辅导课件.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DroidCamX – 让您的 Andr
- 下一篇: 细节(一)