第3章-1程序控制結(jié)構(gòu)_第1頁
第3章-1程序控制結(jié)構(gòu)_第2頁
第3章-1程序控制結(jié)構(gòu)_第3頁
第3章-1程序控制結(jié)構(gòu)_第4頁
第3章-1程序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章§3.1C語句概述C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句一個(gè)c程序可以由若干個(gè)源程序文件組成。一個(gè)源文件可以由若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明部分組成。一個(gè)函數(shù)由函數(shù)首部和函數(shù)體組成。函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成。C語句分為:5類控制語句函數(shù)調(diào)用語句表達(dá)式語句空語句復(fù)合語句(語句塊)(一)控制語句:完成一定的控制功能 1if()~else條件語句6break間斷語句 2for()~循環(huán)語句7switch()開關(guān)語句 3while()~循環(huán)語句8goto轉(zhuǎn)向語句 4do~while();循環(huán)語句9return返回語句 5continue繼續(xù)語句(二)函數(shù)調(diào)用語句一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語句Printf(“ThisisaCstatement.”);(三)表達(dá)式語句一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成表達(dá)式語句:(四)空語句:只有一個(gè)分號(hào)的語句(什么也不做)。用來做流程的轉(zhuǎn)向點(diǎn)。用來作為循環(huán)語句中的循環(huán)體。(五)復(fù)合語句:用一對(duì){}括起來的語句(語句塊)例:{ z=x+y; t=z/100; printf(“%f”,t);}§3.2賦值語句賦值語句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成例:a=100賦值表達(dá)式

a=100;賦值語句條件中不能含有賦值符號(hào),但是賦值表達(dá)式可以包含于條件表達(dá)式中例:if(a=b)t=a;錯(cuò)誤

if((a=b)>0)t=a;正確§3.3數(shù)據(jù)輸入輸出的概念及在C語言中的實(shí)現(xiàn)(一).所謂輸入、輸出是以計(jì)算機(jī)為主體而言的輸出:從計(jì)算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計(jì)算機(jī)輸入數(shù)據(jù).(二).C語言本身不提供輸入、輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實(shí)現(xiàn)的例如:字符輸入函數(shù):getchar()字符輸出函數(shù):putchar()格式輸入函數(shù):scanf()格式輸出函數(shù):printf()字符串輸入函數(shù):gets()字?jǐn)?shù)串輸出函數(shù):puts()§3.4字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)一般形式:putchar(c)

函數(shù)作用:向終端輸出一個(gè)字符例1輸出單個(gè)字符。

#include<stdio.h>

main()

{

chara,b,c;

a='B';b='O';c='Y';

putchar(a);putchar(b);putchar(c);

putchar('\n');

}運(yùn)行結(jié)果:BOY(二).字符輸入函數(shù)一般形式:getchar()

函數(shù)作用:從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。函數(shù)值:從輸入設(shè)備得到的字符。例2輸入單個(gè)字符。

#include<stdio.h>

voidmain()

{

charc;

c=getchar();

putchar(c);

putchar('\n');

}運(yùn)行程序:

從鍵盤輸入字符‘a(chǎn)’

按Enter鍵

屏幕上將顯示輸出的字符‘a(chǎn)’

a

a§3.5格式輸入與輸出(一).格式輸出函數(shù):printf()函數(shù)函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)。一般格式:printf(格式控制,輸出表列)%d,%i:以有符號(hào)的十進(jìn)制形式輸出整型數(shù)據(jù)(正數(shù)不輸出符號(hào))%ld:以有符號(hào)的十進(jìn)制形式輸出長整型數(shù)據(jù)%o:以八進(jìn)制無符號(hào)形式輸出整數(shù)%x,%X:以十六進(jìn)制無符號(hào)形式輸出整數(shù)(%x以小寫形式,%X以大寫形式)%u:以無符號(hào)十進(jìn)制形式輸出整數(shù)%c:以字符形式輸出,只輸出一個(gè)字符%s:以字符串形式輸出字符串%f:以浮點(diǎn)數(shù)形式(包括float和doulbe)輸出單、雙單精度數(shù)據(jù),隱含輸出六位小數(shù)%lf:以小數(shù)形式輸出雙精度數(shù)數(shù)據(jù),隱含輸出15位小數(shù)幾種常見的格式符的修飾符:l:用于長整型整數(shù),可加在格式符d,o,x,u,f前面h:用于短整型整數(shù)m(代表一個(gè)正整數(shù)):數(shù)據(jù)最小寬度n(代表一個(gè)正整數(shù)):對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)。d格式符:用來輸出有符號(hào)的十進(jìn)制整數(shù)。幾種用法:①%d:按十進(jìn)制整型數(shù)據(jù)的實(shí)際長度輸出。②%md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則數(shù)據(jù)右對(duì)齊,左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。例:

printf(″%4d,%4d″,a,b);

若a=123,d=12345,則輸出結(jié)果為

123,12345

%-md:輸出數(shù)據(jù)左對(duì)齊,右端補(bǔ)以空格。③%ld:輸出長整型數(shù)據(jù)。

例:longa=135790;/*定義a為長整型變量*/

printf(″%ld″,a);④

%hd:輸出短整型數(shù)據(jù)。(2)o格式符:以無符號(hào)八進(jìn)制形式輸出整數(shù)。輸出的數(shù)值不帶符號(hào),符號(hào)位也一起作為八進(jìn)制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:1111111111111111輸出為:-1,177777不會(huì)輸出帶負(fù)號(hào)的八進(jìn)制整數(shù)。對(duì)長整數(shù)(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例:printf("%8o",a);輸出為:177777。(數(shù)字前有2個(gè)空格)(3)x格式符:以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例:inta=-1;printf(″%x,%o,%d″,a,a,a);輸出結(jié)果為:ffff,177777,-1可以用“%lx”輸出長整型數(shù),也可以指定輸出字段的寬度例:“%12x”(4)u格式符:用來輸出unsigned型數(shù)據(jù).一個(gè)有符號(hào)整數(shù)(int型)也可以用%u格式輸出;一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。(5)c格式符:用來輸出一個(gè)字符。如:chard=′a′;printf(″%c″,d);輸出字符′a′.一個(gè)整數(shù),只要它的值在0~255范圍內(nèi),可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸出。例3無符號(hào)數(shù)據(jù)的輸出。

#include<stdio.h>

voidmain()

{

unsignedinta=65535;intb=-2;

printf("a=%d,%o,%x,%u\n",a,a,a,a);

printf("b=%d,%o,%x,%u\n",b,b,b,b);

}運(yùn)行結(jié)果:

a=-1,177777,ffff,65535

b=-2,177776,fffe,65534例4字符數(shù)據(jù)的輸出。

#include<stdio.h>

voidmain()

{

charc='a';inti=97;

printf("%c,%d\n",c,c);

printf("%c,%d\n",i,i);

}運(yùn)行結(jié)果:

a,97

a,97(6)s格式符:輸出字符串.①%s。例如:printf(″%s″,″CHINA″)輸出字符串“CHINA”(不包括雙引號(hào))。②%ms,輸出的字符串占m列,若串長大于m,則全部輸出,若串長小于m,則左端補(bǔ)空格。③%-ms,若串長小于m,字符串左對(duì)齊,右端補(bǔ)空格。④%m.ns,輸出占m列,右對(duì)齊。只取字符串中左端n個(gè)字符,輸出在m列的右側(cè),左補(bǔ)空格。⑤%-m.ns,n個(gè)字符輸出在m列,左對(duì)齊,右補(bǔ)空格,若n〉m,m自動(dòng)取n值。例5:字符串的輸出。

#include<stdio.h>

voidmain()

{

printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");

}運(yùn)行結(jié)果:

CHINA,CH,CHIN,CHI(7)f格式符或lf格式符:用來以單、雙精度形式輸出實(shí)數(shù)。有以下幾種用法:①%f或%lf。不指定字段寬度,由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為7位,雙精度實(shí)數(shù)的有效位數(shù)一般為15位。②%m.nf或%m.nlf。指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補(bǔ)空格。③%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。

例6輸出實(shí)數(shù)時(shí)的有效位數(shù)。

#include<stdio.h>

voidmain()

floatx,y;

x=111111.111;y=222222.222;

printf("%f",x+y);

運(yùn)行結(jié)果:

333333.328125

例7輸出雙精度數(shù)時(shí)的有效位數(shù)。

#include<stdio.h>

voidmain()

doublex,y;

x=1111111111111.1111111;

y=2222222222222.2222222;

printf("%f",x+y);

}運(yùn)行結(jié)果:

3333333333333.333010例8輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。

#include<stdio.h>

voidmain()

{

floatf=123.456;

printf("%f%10f%10.2f%.2f%-10.2f\n",f,f,f,f,f);

}運(yùn)行結(jié)果:

123.456001123.456001123.46123.46123.46

說明:可以在printf函數(shù)中的“格式控制”字符串中包含轉(zhuǎn)義字符。一個(gè)格式說明必須以“%”開頭,以9個(gè)格式字符之一為結(jié)束,中間可以插入附加格式字符。想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個(gè)%表示。(二).格式輸入函數(shù)(scanf函數(shù))函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。一般格式:scanf(格式控制,地址表列)同printf函數(shù)是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址例9用scanf函數(shù)輸入數(shù)據(jù)。

#include<stdio.h>

voidmain()

{

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\n",a,b,c);

}運(yùn)行情況:

345(輸入a,b,c的值)

3,4,5(輸出a,b,c的值)a在內(nèi)存中的地址&是地址運(yùn)算符

使用scanf函數(shù)時(shí)應(yīng)注意的問題:(1)scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。

(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置應(yīng)輸入與這些字符相同的字符。(3)在用“%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入

(4)在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)系統(tǒng)認(rèn)為該數(shù)據(jù)輸入結(jié)束。①遇空格,或按“回車”或“跳格”(Tab)鍵;②按指定的寬度結(jié)束,如“%3d”,只?。沉校虎塾龇欠ㄝ斎?。(5)在TurboC2.0中,如程序中包含printf和sacnf函數(shù)時(shí),可以不加#include<stdio.h>。順序結(jié)構(gòu)程序設(shè)計(jì)舉例例3.2(教材P66頁)從鍵盤上輸入園半徑,輸出園面積(結(jié)果保留小數(shù)點(diǎn)后兩位)。程序代碼如下:#include<stdio.h>voidmain(){doubler,s;scanf("%lf",&r);s=3.14*r*r;printf("s=%.2lf\n",s);}例3.3(教材P67頁)輸入整型變量a和b的值,交換它們的值并輸出。程序代碼如下:#include<stdio.h>voidmain(){inta,b,t;scanf("%d,%d",&a,&b);t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);}例10輸入三角形的三邊長,求三角形面積。假設(shè):三個(gè)邊長a,b,c能構(gòu)成三角形。已知面積公式:area=s=(a+b+c)*0.5開始輸入三邊長計(jì)算s計(jì)算面積結(jié)束#include<stdio.h>

#include<math.h>

voidmain()

{

floata,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

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,s=%7.2f\n",a,b,c,s);

printf("area=%7.2f\n",area);

}數(shù)學(xué)函數(shù)庫因?yàn)橐玫狡渲械膕qrt函數(shù)運(yùn)行情況:

3,4,6

a=3.00,b=4.00,c=6.00,s=6.50

area=5.33例11從鍵盤輸入一個(gè)大寫字母,要求改用小寫字母輸出。

#include<stdi

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論