《最簡單的C程序設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《最簡單的C程序設(shè)計(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第四章 最簡單的,C,程序設(shè)計,順序程序設(shè)計,4.1 C,語句概述,一,.C,語句可以分為以下五類,:,1,、控制語句,完成程序流程控制,。,if(),else,條件語句,for(),循環(huán)語句,while(),循環(huán)語句,do,while(),循環(huán)語句,continue,結(jié)束本次循環(huán)語句,break,中止,switch,或循環(huán)語句,switch,多分支選擇語句,goto,轉(zhuǎn)向語句,return,從函數(shù)返回語句,(),表示條件,表示內(nèi)嵌的語句,。,2,、函數(shù)調(diào)用語句,printf(This,is a C sta
2、tement.),;,3,、,表達(dá)式語句:,在表達(dá)式后面加分號構(gòu)成。,例,:,a=3,;,/*,后面有分號,是語句*,/,4,、空語句,:,僅包含一個分號的語句,,例,、;,5,、復(fù)合語句,:,由大括號,括起來的語句序列。,例,、,z=x+y;,t=z/100;,printf(%f,t,);,程序的三種基本結(jié)構(gòu),1,、,順序結(jié)構(gòu)。,2,、選擇結(jié)構(gòu):,根據(jù)條件,p,選擇執(zhí)行程序的某部分,但無論選擇哪部分,程序均將匯集到同一個出口。,3,、循環(huán)結(jié)構(gòu):兩種,4.2,賦值語句,1,、,C,語言中的賦值號,“,=,”,是一個運算符,而其它大多數(shù)語言中不是運算符。,2,、賦值語句與賦值表達(dá)式,if(a=b
3、)0)t=a;,if(a=b;)0)t=a;,C,語言不提供輸入輸出語句,輸入輸出由開,發(fā)系統(tǒng)提供的函數(shù)實現(xiàn),函數(shù)的原型在頭文件,stdio.h,中定義,使用輸入輸出函數(shù)時,應(yīng)在,源程序的開頭使用如下語句,:,#include,stdio.h,4.3,數(shù)據(jù)的輸入與輸出概念與表達(dá),4.4,字符數(shù)據(jù)輸入輸出函數(shù),getchar,(),:,從輸入設(shè)備輸入一個字符,putchar,():,向,輸出設(shè)備,輸出一個字符。,4.4.1,putchar,(),函數(shù),作用,:,向終端輸出一個字符。,用法,:,putchar(c,);,/*c,是字符變量或整型變量*,/,例,4.1,#include,stdio.
4、h,main(),char a,b,c;,a=B;b=O;c=Y;,putchar(a,);,putchar(b,);,putchar(c,);,程序輸出:,BOY,a,、,b,、,c,是字符變量或整型變量,4.4.2,getchar,(),:,輸入,一個,字符,例,4.2,#include,stdio.h,main(),char c;,c=,getchar,();,putchar(c,);,運行時,若從鍵盤輸入字符,a,,,屏幕顯示為,:,a,這是鍵盤輸入的回顯。只有在按“回車”鍵后,字符才從鍵盤發(fā)出,程序,getchar,才獲得鍵盤的輸入,a,也可這樣寫:,putchar,(,getcha
5、r,(),;,printf(“%c”,gerchar,();,4.5,格式輸入與輸出,printf,(),:,輸出任意格式化數(shù)據(jù)列表。,scanf,(),:,從標(biāo)準(zhǔn)輸入設(shè)備,(,一般指鍵盤,),輸入數(shù)據(jù)。,一、,printf,(),的一般格式,printf,(,格式控制,輸出列表),;,例如:,printf,(“%d,%f n”,a,b);,printf,(,參數(shù),1,,參數(shù),2,,參數(shù),3,,,.,,參數(shù),n);,其中,“參數(shù),1”,表示“格式控制”;其余參數(shù)表示“輸出列表”。,二、格式字符,1,、,d,格式符:按十進(jìn)制格式輸出,。,%d:,輸出數(shù)字長度為變量數(shù)值的實際長度,%,md,:,輸
6、出,m,位,(,不足補空格,大于,m,位時按實際長度輸出,),%,ld,%mld:,l,(,小寫字母,L),表示輸出“長整型”數(shù)據(jù),%0md,%0mld:0,(,數(shù)字,0),表示位數(shù)不足,m,時左補,0,注:,%,后面的,m(,位數(shù)控制,),、,0,(位數(shù)不足補,0,)對于其他格式符也適用。,例,、,(,表示空格,),int,i=123;,long j=123456;,printf,(%d,%5d,%05d,%ld,i,i,i,j);,輸出,:,123,123,00123,123456,2,、,o(,字母,),格式符,:,按八進(jìn)制格式輸出,),3,、,x,格式符,:,按十六進(jìn)制格式輸出。,(,
7、不會出現(xiàn)負(fù)數(shù)格式,),4,、,u,格式符:,用于輸出,unsigned,類型數(shù)據(jù)。,5,、,c,格式符:,以字符形式輸出一個字符,。,printf(“%c”,a,),6,、,s,格式符:,以字符串格式輸出字符串,.,%s,、,%ms,、,%-ms,、,%-m.ns,、,%m.ns,7,、,f,格式符:,按實數(shù)格式輸出,.,%f,、,%-,m.nf,、,%,m.nf,8,、,e,格式符:,以指數(shù)形式輸出實數(shù),%e,、,%-,m.ne,、,%,m.ne,例,:4.4,main(),char c=a;,int,i=97;,printf(%c,%dn,c,c,);,printf(%c,%dn,i,i,
8、);,輸出,:,a,97,a,97,例,:4.5,main(),printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);,輸出,:,CHINA,CH,CHIN,CHI,例,:4.6,main(),float f=12.34;,printf(%f,,,%10f,,,%10.2f,,,%.2f,,,%-10.2fn,f,f,f,f,f);,4.5.2,數(shù)據(jù)輸入,scanf,(),:,從系統(tǒng)標(biāo)準(zhǔn)輸入設(shè)備,(,一般指鍵盤)輸入數(shù)據(jù)。,一、一般格式,scanf,(,格式控制,地址列表,),“,格式控制,”,與,printf,(),的格式控制類似。,“
9、地址列表”是輸入信息存放地址的列表,一般是變量地址。返回值等于成功輸入的項數(shù),例,4.9,#include“,stdio.h,”,/*,只有,printf,和,scanf,函數(shù)可以不要頭文件*,/,main(),int,a,b,c;,scanf(“%d%d%d”,&a,&b,&c,);,printf(%d,%d,%dn,a,b,c,);,運行時按如下方式輸入三個值:,345,(輸入,a,b,c,的值),輸出:,3,,,4,,,5,(,printf,輸出的,a,,,b,,,c,的值),三、使用,scanf,(),函數(shù)的注意事項,1,、,sacnf,(),中的變量必須使用地址。,scanf(%d,
10、%d,a,b,);,scanf(%d,%d,&a,&b,);,2,、,scanf,(),的“格式控制中”,可以使用其它字符,,但在輸入時必須輸入這些相同的字符。,Scanf(“%d,%d”,&a,&b,);,輸入時應(yīng):3,4,Scanf(“a,=%d,:,b=%d”,輸入時應(yīng):,a=3,:,b=4,3,、在用,%c,輸入時,空格和“轉(zhuǎn)義字符”均作為有效字符。,例、,scanf(%c%c%c,輸入:,abc,結(jié)果:,ac1,,,c2,,,bc3(,其余被丟棄,),4,、輸入數(shù)據(jù)時,遇以下情況結(jié)束一個數(shù)據(jù)的輸入,:(不是結(jié)束該,scanf,函數(shù),,scanf,函數(shù)僅在每一個數(shù)據(jù)域均有數(shù)據(jù),并按回車
11、后結(jié)束)。,遇空格、“回車”、“跳格”鍵。,遇寬度結(jié)束。,遇非法輸入。,如:,scanf(“%d%c%f”,&a,&b,&c,);,若輸入:,123a123,o,.26,算法簡介,例,4.10,輸入三角形的三邊長,計算其面積。,算法,:,問題求解的方法與步驟,.,算法的表示,:,1),自然語言,:,Step1:,輸入,a,b,c,Step2:,計算,p=(a+b+c)/2,Step3:,計算面積,s,Step4:,輸出面積,s,2),結(jié)構(gòu)化流程圖,計算面積,s,輸出面積,s,輸入,a,、,b,、,c,計算,p,結(jié)束,開始,3),偽代碼,(1),(,用英語描述,),begin(,算法開始,),i
12、nput a,b,c,s,(a+b+c)/2,area,s(s-a)(s-b)(s-c),output s,end,4),計算機語言,計算面積,area,輸出面積,area,輸入,a,、,b,、,c,計算,s,4.6,程序舉例,例,4.10,輸入三角形的三邊長,計算其面積。,1.,設(shè)計算法、,設(shè)三邊長,a,、,b,、,c,,,面積,area,的算法是:,2.,畫出流程圖,。,求平方根函數(shù),sqrt,(),在,math.h,中定義。,計算面積,s,輸出面積,s,輸入,a,、,b,、,c,計算,p,結(jié)束,開始,#include,math.h,main(),float a,b,c,s,area;,s
13、canf(%f,%f,%f,s,=1.0/2*(a+b+c);,area,=,sqrt(s,*(s-a)*(s-b)*(s-c);,printf(a,=,%,7.2f,b=,%,7.2f,c=,%,7.2f,n,a,b,c);,printf(area,=%7.2fn,area);,運行情況如下:,3,,,4,,,6,a=3.00,b=4.00,c=6.00,area=5.33,第,4,章小節(jié):,getchar,(),:,從標(biāo)準(zhǔn)輸入設(shè)備,stdin,輸入,一個字符 同時有回顯,putchar,():,向終端輸出一個字符。,printf,(),:,輸出任意格式化數(shù)據(jù)列表。,scanf,(),:,從
14、標(biāo)準(zhǔn)輸入設(shè)備,(,一般指鍵盤,),輸入數(shù)據(jù)。,課堂作業(yè),1,、若,X,和,Y,都是,INT,型變量,,X=100,Y=200,且有下面的程序片段:,printf(“%d,”,,,(X,Y),;,上面程序片段的輸出結(jié)果是,A)200 B)100,C)100 200 D),輸出格式符不夠,輸出不確定的值,2,、下面程序的輸出是,A)0 B)1 C)3 D),不確定的值,main(),int,x=10,y=3;,printf(“%dn,”,,,y=x/y),;,3,、執(zhí)行下面程序中輸出語句后,,a,的值是,A)65 B)20 C)15 D)10,main(),int,a;,printf(“%dn,”,,,(a=3*5,a*4,a+=5),;,4,、設(shè)有如下定義:,int,x=10,y=3,z;,則語句,printf(“%dn,”,,,z=(x%y,x/y),;,的輸出結(jié)果是,A)1 B)0,C)4 D)3,5,、以下程序的輸出結(jié)果是,main(),int,x=10,y=10;,printf(“%d,%dn”,,,x-,,,-y),;,