版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章簡(jiǎn)單的C程序設(shè)計(jì)4.1C語(yǔ)言基本語(yǔ)句(1)表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成,其一般形式為:表達(dá)式;C語(yǔ)言語(yǔ)句可以分為五大類(lèi):例如:a=3.5;i++;t=t+1;x+y;(2)函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成,其一般形式為:函數(shù)名(實(shí)參表);例如:printf(“THISISAEXAMPLE”);
clrscr();y=exp(x);必須將數(shù)學(xué)函數(shù)的頭文件包含到源程序中。
#include“math.h”(3)控制語(yǔ)句
控制語(yǔ)句是用來(lái)完成一定的控制功能的。
C語(yǔ)言有九種控制語(yǔ)句,它們是:
(1)if()~~else~~(條件語(yǔ)句)(2)switch(多分支選擇語(yǔ)句)
(3)for()~~(循環(huán)語(yǔ)句)(4)while()~~(循環(huán)語(yǔ)句)(5)do~~while()(循環(huán)語(yǔ)句)(6)continue(結(jié)束本次循環(huán)語(yǔ)句)(7)break(終止執(zhí)行switch語(yǔ)句)(8)goto
(轉(zhuǎn)向語(yǔ)句)(9)return(從函數(shù)返回語(yǔ)句)(4)空語(yǔ)句只有一個(gè)分號(hào)的語(yǔ)句稱(chēng)為空語(yǔ)句,其一般形式為:
;例如:if(a>=0);elsea=-a;這是求的什么?a的絕對(duì)值(5)復(fù)合語(yǔ)句
復(fù)合語(yǔ)句就是將若干條C語(yǔ)句用花括號(hào)“{”和“}”括起來(lái)其一般形式為:{語(yǔ)句1;語(yǔ)句2;
…
語(yǔ)句n;
}
例:兩數(shù)交換{x=a;
a=b;
b=x;
}試比較:
Main(){int
a,b,x;a=2;b=5;if(a>b){x=a;
a=b;
b=x;}Main(){int
a,b,x;a=2;b=5;if(a>b)x=a;
a=b;
b=x;}a=2;b=5a=5;b=隨機(jī)4.3數(shù)據(jù)輸入輸出的概念及在c語(yǔ)言中的實(shí)現(xiàn)1、C語(yǔ)言輸入輸出操作由標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸入輸出函數(shù)實(shí)現(xiàn)。2、C語(yǔ)言中的標(biāo)準(zhǔn)輸入輸出函數(shù)有:
putchar(輸出字符)
getchar(輸入字符)
printf(格式輸出)
scanf(格式輸入)
puts(輸出字符串)
gets(輸入字符串)3、標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)包含在頭文件stdio.h中,使用時(shí)需將它包含進(jìn)來(lái):
#include“stdio.h”printf和scanf函數(shù)可省略4.4字符數(shù)據(jù)輸入輸出一、字符輸出函數(shù)putchar()
把一個(gè)字符從標(biāo)準(zhǔn)輸出設(shè)備上輸出。一般形式為:putchar(c);
其中C可為字符型變量、整型變量、字符型常量、整型常量、表達(dá)式。注意1.
putchar()是標(biāo)準(zhǔn)函數(shù),在“stdio
h”函數(shù)庫(kù)中,因此,如果在程序中調(diào)用了該函數(shù),必須在程序開(kāi)始處加上如下語(yǔ)句:
#include“stdio
h”2.
putchar()一次只能輸出一個(gè)字符輸出字符:#include“stdio.h”main(){chara,b,c;
scanf(“%c%c%c”,&a,&b,&c);
putchar(a);
putchar(b);
putchar(c);}標(biāo)準(zhǔn)函數(shù)說(shuō)明二、字符輸入函數(shù)getchar()
getchar()函數(shù)的作用是把一個(gè)字符從標(biāo)準(zhǔn)的輸入設(shè)備上輸入。其一般調(diào)用形式為:getchar()
例如:#include“stdio.h”main(){charc;c=getchar();
putchar(c);putchar(‘\007’);}chara=‘1’,c;c=getchar(a);wrongchara=‘1’,c;c=getchar();getchar()還經(jīng)??捎迷诒磉_(dá)式中如:我們希望輸入并打印一串字符以‘?’結(jié)束:
while((c=getchar())!=‘?’)
printf(“%c“,c);一、格式輸出函數(shù)printf()printf()的作用就是按照指定格式向終端設(shè)備輸出數(shù)據(jù)其一般調(diào)用形式為:printf(格式控制,輸出表列);格式控制是以雙引號(hào)括起來(lái)的字符串,它規(guī)定了輸出項(xiàng)輸出的格式輸出表列由一個(gè)或多個(gè)輸出項(xiàng)組成,當(dāng)有多個(gè)輸出項(xiàng)時(shí),輸出項(xiàng)之間用“,”分隔。每一個(gè)輸出項(xiàng)可以是變量、常量或表達(dá)式。4.5、格式輸入與輸出格式控制包括:格式說(shuō)明和普通字符。格式說(shuō)明:格式說(shuō)明由%及格式字符組成,如%d、%f。普通字符:普通字符就是要原樣輸出的字符。printf(“num1=%d,num2=%d\n”,num1,num2);普通字符格式說(shuō)明輸出項(xiàng)表若num1=1,num2=2,則輸出結(jié)果為:num1=1,num2=2_格式說(shuō)明的個(gè)數(shù)、類(lèi)型要與輸出項(xiàng)表中的輸出項(xiàng)的個(gè)數(shù)、類(lèi)型相匹配。格式說(shuō)明按從左至右的順序與輸出項(xiàng)表中的輸出項(xiàng)配對(duì)。格式字符整型數(shù)據(jù)的輸出d——以十進(jìn)制形式輸出u——以十進(jìn)制形式輸出無(wú)符號(hào)整數(shù)o——以八進(jìn)制形式輸出x——以十六進(jìn)制形式輸出
例:
inti=65;
printf(“%c,%d,%u,%x,%o\n”,i,i,i,i,i);
輸出:A,65,65,41,101
例:
intk=-1;
printf(“%d,%u\n”,k,k);
000000000000000111111111111111101111111111111111輸出:-1,655535
實(shí)型數(shù)據(jù)的輸出f——以小數(shù)形式輸出。e——以指數(shù)形式輸出。g——根據(jù)數(shù)值的大小,自動(dòng)選擇以f或e格式輸出,其原則是選擇輸出時(shí)占寬度較小的一種,且不輸出無(wú)意義的零。例如:
floatf=123.123;
printf(“%f,%e,%g”,f,f,f);輸出結(jié)果為:123.123001,1.23123e+02,123.1231.
%f使整數(shù)部分如數(shù)輸出,小數(shù)占6位。
%e按標(biāo)準(zhǔn)化指數(shù)形式輸出,即小數(shù)點(diǎn)前有且只有一位非零數(shù)字,小數(shù)點(diǎn)后5位小數(shù),指數(shù)部分占4位(如e+02),其中“e”占1位,指數(shù)符號(hào)占1位,指數(shù)占2位。2.
雙精度實(shí)數(shù)也用%f格式輸出。單精度實(shí)數(shù)的有效位為7位;
雙精度實(shí)數(shù)則為16位;main(){floata,b;doublex,y;a=111111.111;b=222222.222;x=1111111111111.111111111;y=2222222222222.222222222;
printf(“a+b=%f,x+y=%f”,a+b,x+y);}輸出結(jié)果為:a+b=333333.328125,x+y=3333333333333.333010main(){floata=10.4,b=2.5;
printf(“a=%f,b=%f\n”,a,b);
printf(“a+b=%f\n”,a+b);
printf(“a-b=%f\n”,a-b);
printf(“a*b=%f\n”,a*b);
printf(“a/b=%f\n”,a/b);}輸出結(jié)果為:a=10.400000,b=2.500000a+b=12.900000a-b=7.900000a*b=25.999999a/b=4.160000設(shè)有兩個(gè)浮點(diǎn)數(shù)a=10.4,b=2.5,編寫(xiě)程序分別計(jì)算:(1)a+b(2)a-b(3)a*b(4)a/b字符型數(shù)據(jù)的輸出c——輸出單個(gè)字符s——輸出一個(gè)字符串例如:charc=‘a(chǎn)’;
printf(“%c,%s”,c,“CHINA”);輸出結(jié)果為:a,CHINA附加格式說(shuō)明符用途:確定輸出的寬度、精度、小數(shù)位數(shù)、對(duì)齊方式。位置:在%與格式字符間。1.控制字段寬度
m:指定輸出最小寬度為m。若數(shù)據(jù)不足m位,則左端補(bǔ)空格;若大于m位,則按實(shí)際位數(shù)輸出。
如:printf(“%3d”,21);printf(“%3d”,2134);
輸出:?2121340m:指定輸出的最小寬度為m,
若數(shù)據(jù)不足m位,則左端補(bǔ)0。
如:printf(“%03d”,21);
輸出:021m.n:m為輸出的總寬度;
n表示輸出的小數(shù)位數(shù);對(duì)字符串表示截取的字符個(gè)數(shù)。如:printf(“%7.2d”,3.1415926);
輸出:???3.14
如:printf(“%5.3s”,”COMPUTER”);
輸出:??COM*:寬度由緊跟在控制字符串后面的常量或變量的值確定。例如:inti=15;
printf(“%*d\n”,8,i);/*表示以字段寬度8輸出整型變量i*/
輸出:??????15例如:intk=6,num=33;
printf(“%*d\n”,k,num);/*表示以字段寬度6輸出整型變量i*/輸出:????33main(){inti=65;floatx=3.14159;printf(“%5d\n”,i);printf(“%05d\n”,i);
printf(“%*d\n”,5,i);printf(“%7.5f\n”,x);printf(“%7.4f\n”,x);}輸出結(jié)果為:???6500065???653.14159?3.1416控制對(duì)齊方式–
:左對(duì)齊;否則:右對(duì)齊;例如:
inti=15;
printf(“%–8d\n”,i);輸出:15??????printf(“%8d\n”,i);輸出:??????15例如:intk=8567;printf(“|%-06d|\n”,k);輸出:A、|008567|B、|8567|C、|856700|D、|8567|Disright!字符“l(fā)”l:輸出長(zhǎng)整型數(shù)據(jù)如:%ld——輸出長(zhǎng)整型
%lf——輸出雙精度型使用printf()函數(shù)時(shí)的注意事項(xiàng)當(dāng)格式字符少于輸出項(xiàng)時(shí),多余的輸出項(xiàng)不予輸出;當(dāng)格式字符多于輸出項(xiàng)時(shí),將輸出不定值;如:printf(“c=%cf=%f”,c,f,g);
printf(“x=%ds=%f”,x);例如:longu=51274;printf(“%ld”,u);2.格式說(shuō)明總是以%開(kāi)頭,以9個(gè)格式字符之一為結(jié)束,
中間可以插入附加格式字符。若某個(gè)格式字符不在%之后,則視其為普通字符。如:
printf(“c=%cf=%fd=%ds=%s”,c,f,d,s);
3.如果想輸出字符“%”,則應(yīng)在格式字符串中用連續(xù)兩個(gè)%表示。
如:printf(“%f%%\n”,1.0/3);
輸出:0.333333%4.格式字符一律用小寫(xiě)字母,如%d不能寫(xiě)成%D二、格式輸入函數(shù)scanf()作用:把從終端上輸入的數(shù)據(jù)傳送給對(duì)應(yīng)的變量。調(diào)用形式:scanf(格式控制,輸入項(xiàng)地址表);例如:
scanf(“%d%d%d”,&a,&b,&c);&——取地址運(yùn)算符&a——指變量a所在的內(nèi)存地址輸入數(shù)據(jù)時(shí),以空格、tab鍵或回車(chē)鍵分隔1.格式說(shuō)明輸入格式字符附加格式字符可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。如:scanf(“%3d%3d”,&a,&b);當(dāng)輸入123456時(shí),系統(tǒng)會(huì)自動(dòng)將123給a,456給b在scanf()中不能規(guī)定輸入數(shù)據(jù)的精度則scanf(“%7.2f”,&a);
是不符合C語(yǔ)言語(yǔ)法的“*”附加符用來(lái)表示跳過(guò)相應(yīng)的數(shù)據(jù)例如:scanf(“%d%*d%d”,&a,&b);當(dāng)從鍵盤(pán)輸入:1234567則a=12b=67在scanf()函數(shù)執(zhí)行中,
輸入數(shù)據(jù)時(shí)應(yīng)注意的幾個(gè)問(wèn)題:1.如果在“格式控制”字符串中出現(xiàn)普通字符,則在執(zhí)行中輸入數(shù)據(jù)時(shí)應(yīng)照原樣輸入。例如:scanf(“%d,%d”,&a,&b);輸入時(shí)應(yīng)輸入如下形式:3,4若輸入34
則是錯(cuò)誤的又如:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);輸入形式應(yīng)為如下:a=12,b=24,c=362.在用“%c”格式輸入字符時(shí),空格字符和轉(zhuǎn)義字符都作為有效字符。例如:scanf(“%c%c%c”,&c1,&c2,&c3);如輸入:abc則c1=‘a(chǎn)’c2=‘’c3=‘b’正確輸入法:abcscanf(“%d”,&x);……if(x==3){printf(“請(qǐng)輸入字符”);
scanf(“\n%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“請(qǐng)輸入字符”);
scanf(“%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“請(qǐng)輸入字符”);
scanf(“%c%c”,&t,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“請(qǐng)輸入字符”);
scanf(“%*c%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}當(dāng)我們輸入3<換行>后,程序并沒(méi)有等待第二次輸入,為什么?此時(shí)x為多少,a為多少?x=3,a=‘\n’如何修改?三、簡(jiǎn)單程序設(shè)計(jì)的基本方法1.分析問(wèn)題
(1)已知條件:(2)所求結(jié)果:(3)解決辦法:(如何由已知條件得到所求結(jié)果)2.解決問(wèn)題
(1)程序中所需的變量(變量名、類(lèi)型)
(2)算法的描述步驟
(3)輸入輸出語(yǔ)句的形式
(4)寫(xiě)程序(按照C語(yǔ)言程序的基本結(jié)構(gòu)將上述分析的問(wèn)題逐一寫(xiě)出即可)變量定義輸入語(yǔ)句算法的描述輸出語(yǔ)句main(){}標(biāo)準(zhǔn)函數(shù)說(shuō)明符號(hào)常量定義例1:求方程ax2+bx+c=0的根,a,b,c由鍵盤(pán)輸入,(設(shè)b2-4ac0)1.分析問(wèn)題
(1)已知條件:三個(gè)系數(shù)a,b,c(2)所求結(jié)果:方程的兩個(gè)根x1,x2(3)解決辦法:(如何由已知條件得到所求結(jié)果)
根據(jù)求根公式:假設(shè)其中變量a、b、c、x1、x2、p、q、disc均為實(shí)型2.解決問(wèn)題
(1)程序中所需的變量(變量名、類(lèi)型)三個(gè)系數(shù)a,b,c、方程的兩個(gè)根x1,x2及中間變量
p、q、disc均為實(shí)型。(2)算法的描述步驟先判斷disc
再?zèng)Q定是否求根
disc>=0if()disc<0else求根顯示無(wú)實(shí)根
(3)輸入輸出語(yǔ)句的形式輸入三個(gè)系數(shù):scanf(“%f%f%f”,&a,&b,&c);
輸出方程兩根:printf(“x1=%.2f\nx2=%.2f\n”,x1,x2);變量定義輸入算法main(){
}4、寫(xiě)程序:#include“math.h”if(b*b-4*a*c>=0){p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;}elseprintf(“norealroot\n”);floata,b,c,p,q,disc,x1,x2;scanf(“%f%f%f”,&a,&b,&c);輸出printf(“x1=%.2f\nx2=%.2f\n”,x1,x2);例2:從鍵盤(pán)輸入三角形的三條邊長(zhǎng),求三角形的面積.1.分析問(wèn)題
(1)已知條件:三角形的3條邊長(zhǎng)
(2)所求結(jié)果:三角形的面積
(3)解決辦法:(如何由已知條件得到所求結(jié)果)
根據(jù)三角形的面積公式:其中2.解決問(wèn)題
(1)程序中所需的變量(變量名、類(lèi)型)三角形的三條邊長(zhǎng)分別用變量a、b、c均為實(shí)型三角形的面積用變量area為實(shí)型半周長(zhǎng)用變量p為實(shí)型
(2)算法的描述步驟先求p
再求area
(3)輸入輸出語(yǔ)句的形式輸入三條邊長(zhǎng):scanf(“%f%f%f”,&a,&b,&c);
輸出三角形面積:printf(“area=%f\n”,area);floata,b,c,p,area;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2;area=sqrt(p*(p-a)*(p-b)*(p-c));printf(“area=%f\n”,area);main(){}#include“math.h”(4)寫(xiě)程序Printf、scanf
練習(xí)題例如:
floatf=123.456;printf(“%f,%10f,%10.2f,%.2f\n”,f,f,f,f);printf(“%e,%10e,%10.2e,%.2e\n”,f,f,f,f);printf(“%3s,%7.2s,%.4s\n”,“CHINA”,“CHINA”,“CHINA”);
結(jié)果為:輸出123.456001,123.456001,????123.46,123.461.23456e+02,1.23456e+02,???1.2e+02,1.2e+02CHINA,?????CH,CHIN
請(qǐng)大家自己用附加格式輸出:
*
*******main(){chars='*',k='';
printf("%c%c%c%c%c\n",k,k,k,k,s);
printf("%c%c%c%c%c%c\n",k,k,k,s,k,s);
printf("%c%c%c%c%c%c%c\n",k,k,s,s,s,s,s);}main(){chars='*';printf("%5c\n",s);printf("%4c%2c\n",s,s);printf("%3c%c%c%c%c\n",s,s,s,s,s);}main(){charc=‘a(chǎn)’;
inti=65;floatx=347.25;
printf(“%c,%d\n”,c,c);
printf(“%c,%d,%u,%x,%o\n”,i,i,i,i,i);
printf(“%f,%e,%g\n”,x,x,x);}輸出結(jié)果為:a,97A,65,65,41,101347.250000,3.47250e+02,347.25看結(jié)果main(){chars='*',k='';
printf("%c%c%c%c%c\n",k,k,k,k,s);
printf("%c%c%c%c%c%c\n",k,k,k,s,k,s);
printf("%c%c%c%c%c%c%c\n",k,k,s,s,s,s,s);}輸出:??????????????*????*_????*?????*??????*???????*???*????*???*?????*???*?*????*???*?*?????*???*?*??????*???*?*??*????*???*?*??**????*???*?*??***????*???*?*??****?
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智能電網(wǎng)建設(shè)與運(yùn)營(yíng)入股合同范本3篇
- 2025年度個(gè)人委托代繳社保代理合同樣本3篇
- 二零二五年度地下管線(xiàn)探測(cè)與測(cè)繪分包合同精準(zhǔn)實(shí)施范本3篇
- 2025年水泥編織袋市場(chǎng)拓展與品牌戰(zhàn)略合作框架協(xié)議3篇
- 2025年度制片人知識(shí)產(chǎn)權(quán)聘用合同規(guī)范
- 二零二五年度倉(cāng)儲(chǔ)用地租賃合同簡(jiǎn)易范本3篇
- 二零二五年度農(nóng)行電子商務(wù)平臺(tái)技術(shù)支持與維護(hù)合同
- 2025年離婚協(xié)議簽訂時(shí)效與婚姻解除后續(xù)子女監(jiān)護(hù)權(quán)協(xié)議合同3篇
- 二零二五版廢輪胎膠粉回收及橡膠制品生產(chǎn)合同3篇
- 二零二五年度品牌酒店用品采購(gòu)合同
- JTG∕T E61-2014 公路路面技術(shù)狀況自動(dòng)化檢測(cè)規(guī)程
- 高中英語(yǔ)短語(yǔ)大全(打印版)
- 2024年資格考試-對(duì)外漢語(yǔ)教師資格證筆試參考題庫(kù)含答案
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以?xún)晌粩?shù)-豎式運(yùn)算300題
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計(jì)算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗(yàn)
- 五年級(jí)數(shù)學(xué)應(yīng)用題100道
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套課件(馬工程)
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評(píng)定方法
評(píng)論
0/150
提交評(píng)論