




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西華大學(xué)電氣信息學(xué)院 鄭海春2 合法語句 非法語句 4; 3=a+2; a; 5=(7+a); a+1-7; a+6=7; a=1; a-a=0; ;/空語句 賦值運(yùn)算符的左側(cè)只能是變量,不能是常量或者表達(dá)式。C語言本身不提供輸入輸出語句,輸入輸出操作是由函數(shù)來實(shí)現(xiàn)的。在C標(biāo)準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù),如printf , scanf , putchar , getchar , puts,gets等。這些名字不是C語言的關(guān)鍵字,而只是函數(shù)名而已。在使用C語言庫函數(shù)時(shí),要用文件包含命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。頭文件中包含了與用到的庫函數(shù)有關(guān)的信息。例如使用輸
2、入輸出庫函數(shù)時(shí),要用到“stdio.h”文件。應(yīng)在源文件開頭添加以下命令: #include “stdio.h” 或 #include 向屏幕輸出一個(gè)字符,格式putchar( c ),其中c可以是字符型或整型的變量、常量。/*3_1.c*/#include stdio.hvoid main()char a,b,c;int x; a=B;b=O;c=Y;x=67; putchar(); putchar(a); putchar(b); putchar(c); putchar(); putchar(n); putchar(101); /輸出字符A putchar(66); /輸出字符B putch
3、ar(x); /輸出字符C putchar(D); /輸出字符D putchar(015); /輸出回車,不換行 putchar(012); /輸出換行 putchar(n);從鍵盤輸入一個(gè)字符,格式int getchar() ,函數(shù)的返回值就是從輸入設(shè)備輸入的字符的ASCII碼值。注意:輸入的字符只有按下回車鍵后才能輸入。/*3_2.c*/#include void main()char c;c=getchar();putchar(c);putchar(n);a a例1:從終端輸入一行任意字符,編程實(shí)現(xiàn)把其中所有的小寫字母轉(zhuǎn)換成大寫字母,其它字符不變。#include stdio.hvoid
4、 main() char c;while(c=getchar()!=n)if(c=a & c=a& c=A & c=0&c=9) digit+;else other+;printf(%d %d %d %dn,letters,space,digit,other);例3:輸入一行字符,編寫程序統(tǒng)計(jì)其中空格符、換行符和Tab符的個(gè)數(shù)。#include stdio.h#include ctype.hvoid main() char c;int n=0;while(c=getchar()!=EOF)/EOF表示“CTRL+Z”組合鍵結(jié)束 if(isspace(c) n+;
5、printf(n=%dn,n);printf函數(shù)1.一般格式:printf(格式控制,輸出項(xiàng)1,輸出項(xiàng)2,)a=%d,b=%dn,a,b括號(hào)內(nèi)包括兩部分:“格式控制”是用雙引號(hào)括起來的字符串,它包括兩種信息:格式說明格式說明,由“%”和格式字符組成,如%d,%f,%c等。其作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。普通字符普通字符,即需要原樣輸出的字符。“輸出列表”是需要輸出的一些數(shù)據(jù),可以是表達(dá)式。2.格式字符d格式符,以十進(jìn)制十進(jìn)制形式輸出整數(shù)整數(shù), 用法如下:%d,按整型數(shù)據(jù)的實(shí)際長度輸出。%md,m為指定的輸出字段的寬度,若數(shù)據(jù)的位數(shù)小于m,則左補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。%l
6、d,輸出長整型數(shù)據(jù)。/*3_3.c*/ #include stdio.hvoid main()int a=123,b=12345; long d=135790; printf(%4d,%4d,%8ldn,a,b,d);o格式符,以八進(jìn)制八進(jìn)制形式輸出整數(shù)整數(shù),同樣可以指定字段寬度。x格式符,以十六進(jìn)制十六進(jìn)制形式輸出整數(shù)整數(shù),同樣可以指定字段寬度。/*3_4.c*/#include stdio.hvoid main() int a=15;long b=19; printf(%d,%o,%xn,a,a,a); printf(%ld,%lo,%lxn,b,b,b);/*改進(jìn):3_4.c*/#inc
7、lude stdio.hvoid main() int a=15;long b=19; printf(%d,%#o,%#xn,a,a,a); /* %# 八進(jìn)制輸出先導(dǎo)0 %# 十六進(jìn)制輸出先導(dǎo)0 x */ printf(%ld,%#lo,%#lxn,b,b,b);u格式符, 用來以十進(jìn)制十進(jìn)制形式輸出無符號(hào)型整數(shù)無符號(hào)型整數(shù)。c格式符,用來輸出一個(gè)字符。/*3_5.c*/#include stdio.hvoid main() char c=a; int i=97; printf(%c,%dn,c,c); printf(%c,%dn,i,i);s格式符,用來輸出一個(gè)字符串,對(duì)應(yīng)的變量必須是地址
8、。例如: printf(%s, CHINA); f格式符,用來輸出實(shí)數(shù)(包括單、雙精度包括單、雙精度),以小數(shù)形式小數(shù)形式輸出,有以下幾種用法:%f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全部如數(shù)輸出,并隱含輸出6位小數(shù)位小數(shù)。應(yīng)當(dāng)注意,并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為7位,雙精度數(shù)的有效位數(shù)一般為16位。%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù),若數(shù)值長度小于m,則左端補(bǔ)空格。%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。/*3_6.c*/#include stdio.hvoid main()float x=111111.111f,
9、y=222222.222f; double a=1111111111111.111111111; double b=2222222222222.222222222; float f=123.456f; printf(%fn,x+y); printf(%fn,a+b); printf(%f %10f %10.2f %.2f %-10.2fn,f,f,f,f,f);(8)e或E格式符,以指數(shù)形式指數(shù)形式輸出實(shí)數(shù)。 #include stdio.hvoid main() printf(%en,123.4567);(9)g或G格式符,采用最小的寬度輸出實(shí)型數(shù)。且不輸出無意義的0。 #include s
10、tdio.hvoid main()printf(%fn,123.4); printf(%En,123.4);printf(%Gn,123.4);注意:如果想輸出字符%,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示,如:/*3_7.c*/#include stdio.hvoid main()printf(%f%n,1.0/3);思考:int a=20; printf(“%dn”,a); 的屏幕打印結(jié)果?%dscanf函數(shù)1.一般格式:scanf(格式控制,地址列表地址列表)“格式控制”的含義同printf函數(shù)。注意:輸入double型實(shí)數(shù)時(shí)的格式符為%lf或%le。“地址列表”是由若干個(gè)地址組成
11、的變量的地址列表變量的地址列表。/*3_8.c*/#include stdio.hvoid main()int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);說明:變量之前必須加“&”符號(hào),“&”是“求地址運(yùn)算符”,在此只需正確表示,不必深究。2.使用scanf函數(shù)應(yīng)注意的問題 (1)scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。地址列表項(xiàng)之間必須用逗號(hào)分隔。(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)要求輸入與這些字符完全相同的字符(包括字符
12、的大小寫也必須完全一致)。(3)在用“%c”格式輸入字符時(shí),無須間隔符,空格、Tab、回車都將作為有效字符輸入。以下例外:scanf(“%c %c %c”,&c1,&c2,&c3);此時(shí),空格、Tab、回車都作為間隔符不能被讀入。(4)當(dāng)用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在未按下Enter鍵之前,可以任意修改。但按下Enter鍵后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。(5)在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時(shí),輸入的數(shù)據(jù)之間必須用空格、Enter鍵、Tab鍵分隔,這些間隔符的個(gè)數(shù)可以是一個(gè)或多個(gè)。(6)在scanf函數(shù)中的格式字符前可用一個(gè)整數(shù)指定輸入
13、數(shù)據(jù)所占的寬度。但不可對(duì)實(shí)型數(shù)指定小數(shù)的寬度。int a;scanf(“%3d”,&a); 正確float b;scanf(“%3f”,&b);正確float c;scanf(“%.2f”,&c);錯(cuò)誤(7)可以在格式字符和%之間加上一個(gè)”*”號(hào)跳過對(duì)應(yīng)的輸入數(shù)據(jù)。#include stdio.hvoid main() int a,b,c; scanf(%d%d%*d%d,&a,&b,&c); printf(%dn%dn%dn,a,b,c);#include stdio.hvoid main() float x,y,z; int a,b,c; s
14、canf(Please input x,y,z:%f%f%f,&x,&y,&z); scanf(%d,%d,%d,&a,&b,&c); printf(%f,%f,%fn,x,y,z); printf(%d,%d,%dn,a,b,c);說明:為了減少不必要的麻煩,使用scanf函數(shù)時(shí),在格式控制部分盡量不要使用其它字符。/*3_9.c*/#include stdio.h#include math.hvoid main()float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s=1.0/2
15、*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area);例題:輸入三角形的三邊長,求三角形面積。 分析:為簡(jiǎn)單起見,設(shè)輸入的三邊長a、b、c能構(gòu)成三角形。根據(jù)求三角形面積的數(shù)學(xué)公式:)()(csbsassarea關(guān)系運(yùn)算符:用于兩個(gè)值的比較。關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。C語言沒有邏輯型數(shù)據(jù)類型,以1代表“真”,以0代表“假”。關(guān)系運(yùn)算符含
16、義例子小于55.5 /得出1=小于等于5大于55.5 /得出0=大于等于6.3=5 /得出1= =等于5=5 /得出1!=不等于5!=5 /得出0注意:若x和y都是浮點(diǎn)數(shù),應(yīng)避免使用x= =y這樣的關(guān)系表達(dá)式,因?yàn)橥ǔ4娣旁趦?nèi)存中的浮點(diǎn)數(shù)是有誤差的,因此不可能精確相等,這將導(dǎo)致關(guān)系表達(dá)式x= =y的值總是為0。典型例題:a=3,b=2,c=1,則:關(guān)系表達(dá)式“(ab)=c”的值為?1優(yōu)先級(jí): = = != 同級(jí)同級(jí) 同級(jí)同級(jí) 高高 低低邏輯運(yùn)算符:C語言提供三種邏輯運(yùn)算符。邏輯表達(dá)式:用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。C
17、語言沒有邏輯型數(shù)據(jù)類型,以1代表“真”,以0代表“假”。但在判斷一個(gè)量是否但在判斷一個(gè)量是否為為“真真”時(shí),以時(shí),以0代表代表“假假”,以,以非非0代表代表“真真”。即將一個(gè)非零的數(shù)值認(rèn)作為“真”。邏輯運(yùn)算符含義例子!邏輯非!(5= =5) /得出0&邏輯與3 & (66) /得出0|邏輯或(56) | (65) /得出1短路特性:邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。例 a&b&c /只在a為真時(shí),才判別b的值; /只在a、b都為真時(shí),才判別 c的值例 a|b|c /只在a為假時(shí),才
18、判別b的值; /只在a、b都為假時(shí),才判別 c的值考題:考題:#includevoid main() int x=0,y=0,z=0;+x|+y|+z;printf(“%d%d%d”,x,y,z);輸出:1 0 0例題: (注:參考書中93頁表5-1的邏輯運(yùn)算真值表)1)若a=4,則!a的值為?2)若a=4,b=5,則a&b的值為?3)a=4,b=5,a|b的值為?4)a=4,b=5,!a|b的值為?5)4&0|2的值為?6)53&2|84-!0算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符優(yōu)先級(jí)順序:(注:參見附錄C)! 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 &
19、 | 賦值運(yùn)算符 逗號(hào)運(yùn)算符高低011111注意:在數(shù)學(xué)上關(guān)系式0 x10表示x的值應(yīng)在大于0并且小于10的范圍內(nèi),但在C語言中不能直接用0 x10這樣一個(gè)關(guān)系表達(dá)式來表述上述邏輯關(guān)系。對(duì)于這種情況,只有采用C語言提供的邏輯表達(dá)式 0 x & xb); printf(“%d”,a);else總是與它上面的最近的未配對(duì)的if配對(duì)。例題:某商場(chǎng)優(yōu)惠顧客:購買金額大于等于500元的8折,大于等于300元及500元以下的9折,300元以下的全部9.5折;編寫計(jì)算實(shí)際應(yīng)付金額的程序。/*3_10.c*/ #includestdio.h void main() float x; printf(請(qǐng)輸
20、入總金額:); scanf(%f,&x); if(x=500) x=x*0.8f; if(x=300)&(x500) x=x*0.9f; if(xb)?a:b; 相當(dāng)于 max=ab?a:b; (2)如果a=1,b=2,c=3,d=4,求 ab?a:cd?c:d的值? (3) 用條件運(yùn)算符求出m,n,p三個(gè)整數(shù)的最小值?4 (mn)?(mp?m:p):(np?n:p);思考:思考:如何用條件運(yùn)算符求三個(gè)數(shù)的最大值?如何用條件運(yùn)算符求三個(gè)數(shù)的最大值?例題:用switch語句實(shí)現(xiàn)從鍵盤輸入成績(jī),轉(zhuǎn)換成相應(yīng)的等級(jí)后輸出(90100為A, 8089為B, 7079為C, 6069為D,
21、59以下為E)。#include stdio.h void main() int score; printf(請(qǐng)輸入一個(gè)成績(jī):); scanf(%d,&score); switch(score/10) case 10: case 9: printf(“An”);break; /*執(zhí)行break后結(jié)束switch語句*/ case 8: printf(Bn);break; case 7: printf(Cn);break; case 6: printf(Dn);break; default: printf(En); 思考:思考:用用ifelse怎么做?怎么做?舉例:舉例:計(jì)算n!#inc
22、lude stdio.hvoid main()int i,n;double s=1;scanf(%d,&n);for(i=1;i5000) break; printf(s=%d,i=%dn,s,i);例題:輸出1到10之間不能被3整除的數(shù)。#include stdio.hvoid main() int n; for(n=1;n=10;n+) if(n%3=0) continue; printf(n=%dn,n); 思考:思考:如何求小于如何求小于m的最大的的最大的k的素?cái)?shù)的素?cái)?shù)? int #include stdio.hvoid main()long int f1,f2;int i;
23、f1=f2=1;for(i=1;i=20;i+)printf(%12ld %12ld ,f1,f2);if(i%2=0) printf(n);f1=f1+f2;f2=f2+f1;擴(kuò)展的斐波那契數(shù)列。(方法(方法2)#include stdio.hvoid main() long int f1,f2,f3; int i; f1=0;f2=1;f3=2; for(i=1;i=10;i+) printf(%ld %ld %ld ,f1,f2,f3); if(i%2=0) printf(n); f1=f1+f2+f3; f2=f2+f3+f1; f3=f3+f1+f2; 圖形問題:分析:凡是圖形問題都
24、是變相考數(shù)學(xué)。例題:例1:正直角三角形。#include stdio.hvoid main()int i,j;for(i=1;i=3;i+)for(j=1;j=i;j+) /當(dāng)前行列數(shù)=當(dāng)前行數(shù)printf(*);printf(n);思考:如何用*輸出倒直角三角形?#include stdio.hvoid main()int i,j;for(i=1;i=3;i+) for(j=1;j=3+1-i;j+)/當(dāng)前行列數(shù)當(dāng)前行列數(shù)=總行數(shù)總行數(shù)+1-當(dāng)前行數(shù)當(dāng)前行數(shù)printf(*); printf(n);#include stdio.hvoid main()int i,j;for(i=1;i=4;
25、i+) /空格組成的倒直角三角形輸出 for(j=1;j=4+1-i;j+)/當(dāng)前行列數(shù)=總行數(shù)+1-當(dāng)前行數(shù)printf( ); /正等腰三角形 for(j=1;j=2*i-1;j+)/當(dāng)前行列數(shù)=2*當(dāng)前行數(shù)-1printf(*); printf(n);例2:正等腰三角形。思考:如何用*輸出倒等腰三角形?#include stdio.hvoid main()int i,j;for(i=1;i=4;i+) /空格組成的正直角三角形輸出 for(j=1;j=i;j+)/當(dāng)前行列數(shù)=當(dāng)前行數(shù)printf( ); /倒等腰三角形 for(j=1;j=2*4-(2*i-1);j+) /當(dāng)前行列數(shù)=2
26、*總行數(shù)-(2*當(dāng)前行數(shù)-1)printf(*); printf(n);圖形輸出總結(jié):正直角三角形:當(dāng)前行列數(shù)=當(dāng)前行數(shù)倒直角三角形:當(dāng)前行列數(shù)=總行數(shù)+1-當(dāng)前行數(shù)正等腰三角形:當(dāng)前行列數(shù)=2*當(dāng)前行數(shù)-1倒等腰三角形:當(dāng)前行列數(shù)=2*總行數(shù)-(2*當(dāng)前行數(shù)-1)例3:如何輸出菱形。書上P130頁習(xí)題6.14。#include stdio.hvoid main() int i,j;for(i=1;i=4;i+)for(j=1;j=4+1-i;j+)printf( ); for(j=1;j=2*i-1;j+)printf(*);printf(n);for(i=1;i=3;i+)for(j=1;j=i+1;j+) printf( );for(j=1;j=1e-5);printf(%fn,x1);%d,%3a是是22 b是是6 c是是0 10a=b|a4|-x-4t=x;x=y;x=t;/兩數(shù)交換方法兩數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 月工作計(jì)劃范文大全(18篇)
- 六年級(jí)語文下冊(cè) 第一單元 語文園地配套教學(xué)設(shè)計(jì) 新人教版
- 《油氣勘探地球化學(xué)講課知識(shí)》課件
- 科技企業(yè)(項(xiàng)目)入駐培育孵化協(xié)議(3篇)
- 淡妝培訓(xùn)課件
- 《企業(yè)安全事故預(yù)防與應(yīng)對(duì)》課件
- 《紅樓夢(mèng)中的詩詞》課件
- 教師培訓(xùn)學(xué)習(xí)總結(jié)2025(18篇)
- 環(huán)衛(wèi)工作個(gè)人總結(jié)(15篇)
- 新二手電動(dòng)車轉(zhuǎn)讓合同(17篇)
- 《電力設(shè)備典型消防規(guī)程》知識(shí)培訓(xùn)
- 2025屆浙江省君兮協(xié)作聯(lián)盟高三下學(xué)期4月教學(xué)質(zhì)量檢測(cè)英語試題(含解析)
- 注冊(cè)會(huì)計(jì)師(綜合階段)題庫完美版帶答案分析2025
- 四川省成都東部新區(qū)龍?jiān)茖W(xué)校2024-2025學(xué)年五年級(jí)下冊(cè)半期測(cè)試題(含答案)
- 新課標(biāo)解讀丨《義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022年版)》解讀
- 兒童支氣管哮喘診斷與防治指南(2025版)解讀課件
- 2024年中國海洋大學(xué)招聘輔導(dǎo)員筆試真題
- 倉管員安全培訓(xùn)課件
- 紅藍(lán)黃光治療皮膚病臨床應(yīng)用專家共識(shí)解讀
- 氧氣管道施工方案
- 建筑施工現(xiàn)場(chǎng)突發(fā)事件應(yīng)急預(yù)案及要求措施
評(píng)論
0/150
提交評(píng)論