




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章順序結構程序設計C語言程序設計14.1C語句概述C程序源程序文件1源程序文件2源程序文件n…………..預處理命令全局變量聲明函數1函數2函數n………函數首部函數體局部變量聲明執行部分(語句)一、C程序的組成2C程序的執行部分是由語句組成的。程序的功能也是由執行語句實現的。C語句可分為以下五類:表達式語句函數調用語句控制語句復合語句空語句
變量定義不是語句,如:inta;C程序的語句1.表達式語句表達式語句由表達式加上分號“;”組成。其一般形式為:表達式;執行表達式語句就是計算表達式的值。二、C程序的語句3例如:
x=y+z;賦值語句
y+z;加法運算語句,但計算結果不能保留,無實際意義
i++;自增1語句,i值增12.函數調用語句由函數名、實際參數加上分號“;”組成。其一般形式為:函數名(實際參數表);
執行函數語句就是調用函數體并把實際參數賦予函數定義中的形式參數,然后執行被調函數體中的語句,求取函數值,或完成函數的功能。例如:printf("CProgram");調用庫函數,輸出字符串。43.控制語句控制語句用于控制程序的流程,以實現程序的各種結構方式。它們由特定的語句定義符組成。C語言有九種控制語句。可分成以下三類:(1)條件判斷語句
if語句,switch語句(2)循環執行語句
dowhile語句,while語句,for語句(3)轉向語句
break語句,goto語句,continue語句,return語句54.復合語句把多個語句用括號{}括起來組成的一個語句稱復合語句。在程序中應把復合語句看成是單條語句,而不是多條語句,例如{
x=y+z;a=b+c;
printf(“%d%d”,x,a);}
是一條復合語句。復合語句內的各條語句都必須以分號“;”結尾,在括號“}”外不能加分號。5.空語句
只有分號“;”組成的語句稱為空語句。空語句是什么也不執行的語句。在程序中空語句可用來作空循環體。例如
while(getchar()!='\n');64.2賦值語句賦值語句是由賦值表達式再加分號構成的表達式語句。其一般形式為:變量=表達式;它是程序中使用最多的語句之一。在賦值語句的使用中需要注意以下幾點:
1.賦值符“=”右邊的表達式也可以又是一個賦值表達式,因此,下述形式
變量=(變量=表達式);
是成立的,從而形成嵌套的情形。其展開之后的一般形式為:
變量=變量=…=表達式;
例如:a=b=c=d=e=5;按照賦值運算符的右接合性,因此實際上等效于:e=5;d=e;c=d;b=c;a=b;72.
注意在變量說明中給變量賦初值和賦值語句的區別。給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。
3.在變量說明中,不允許連續給多個變量賦初值。如下述說明是錯誤的:inta=b=c=5必須寫為:
inta=5,b=5,c=5;而賦值語句允許連續賦值。
4.
注意賦值表達式和賦值語句的區別。賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。下述語句是合法的:
if((x=y+5)>0)z=x;語句的功能是,若表達式x=y+5大于0則z=x。
下述語句是非法的:if((x=y+5;)>0)z=x;因為x=y+5;是語句,不能出現在表達式中。84.3數據輸入/輸出的概念一、數據輸入/輸出的概念內存RAM從鍵盤將數據輸入從數據文件讀入將數據輸出到屏幕將數據輸出到文件數據輸入/輸出是相對計算機內存9二、數據輸入/輸出語句
在C語言中所有的數據輸入/輸出都是由庫函數完成的。因此都是函數語句。在C語言中使用庫函數時,要使用預編譯命令#include將相關的頭文件(*.h)包含到用戶源文件中。使用形式:
#include"頭文件"
或#include<頭文件>說明:1.標準輸入/輸出頭文件是:stdio.h2.<>表示是標準的工程、標準的頭文件;查找過程檢查預定義的目錄。3.“”則表明是用戶提供的頭文件;查找該文件從當前文件所在的目錄開始。104.4字符數據的輸入/輸出一、字符輸出函數putchar()
putchar函數是字符輸出函數,其功能是在顯示器上輸出單個字符。其一般形式為:putchar(字符變量)
例如:putchar('A');輸出大寫字母A
putchar(x);輸出字符變量x的值
putchar(‘\n’);換行,對控制字符則執行控制功能,不在屏幕上顯示。使用本函數前必須要用文件包含命令:
#include<stdio.h>11二、字符輸入函數getchar()
函數getchar函數的功能是從鍵盤上輸入一個字符。其一般形式為:字符變量=getchar();如:
#include<stdio.h>voidmain(){charc;
printf("inputacharacter\n");c=getchar();
putchar(c);}
使用getchar函數還應注意幾個問題:
1.使用本函數前必須包含文件<stdio.h>。
122.getchar函數只能接受單個字符,輸入數字也按字符處理。輸入多于一個字符時,只接收第一個字符,多余的字符存入到鍵盤的緩沖區,若有下一個getchar函數語句,則直接從鍵盤的緩沖區讀一個字符。
#include<stdio.h>main(){charc1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);}
當程序運行后:輸入ABCDEF,輸出為:AB3.在TC屏幕下運行含本函數程序時,將退出TC屏幕進入用戶屏幕等待用戶輸入。輸入完畢再返回TC屏幕134.5格式輸入/輸出一、格式輸出函數printf()
一般形式為:
printf(“格式控制字符串”,輸出表列)
例如:printf("%3d\n",x)%格式說明起始符3輸出數據的寬度d輸出數據的類型x輸出項14說明:格式字符串的一般形式為:
%[標志][輸出最小寬度][.精度][長度]類型
其中方括號[]中的項為可選項。各項的意義介紹如下:1.類型類型字符用以表示輸出數據的類型,表示輸出類型的格式字符及意義(P81表4-1)
d,i
以十進制形式輸出帶符號整數(正數不輸出符號)
o
以八進制形式輸出無符號整數(不輸出前綴O)x,X
以十六進制形式輸出無符號整數(不輸出前綴OX)u
以十進制形式輸出無符號整數
f
以小數形式輸出單、雙精度實數
e,E
以指數形式輸出單、雙精度實數
g,G
以%f%e中較短的輸出寬度輸出單、雙精度實數
c
輸出單個字符
s
輸出字符串15%[標志][輸出最小寬度][.精度][長度]類型2.標志標志字符為-、+、#、空格四種,其意義如下所示:
-
結果左對齊,右邊填空格
+
輸出符號(正號或負號)
空格輸出值為正時冠以空格,為負時冠以負號
#對c,s,d,u類無影響;對o類,在輸出時加前綴0;對x類,在輸出時加前綴0x;對e,g,f類當結果有小數時才給出小數點3.輸出最小寬度用十進制整數來表示輸出的最少位數。若實際位數多于定義的寬度,則按實際位數輸出,若實際位數少于定義的寬度則左補以空格或0。16%[標志][輸出最小寬度][.精度][長度]類型4.精度
精度格式符以“.”開頭,后跟十進制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字符,則表示輸出字符的個數;若實際位數大于所定義的精度數,則截去超過的部分。5.長度
長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。17%[標志][輸出最小寬度][.精度][長度]類型main(){
inta=15;floatb=138.3576278;doublec=35648256.3645687;chard='p';
printf("a=%d,%5d,%-5d,%o,%x\n",a,a,a,a,a);
printf("b=%f,%5.4f,%e\n",b,b,b);
printf("c=%f,%8.4f\n",c,c,c);
printf("d=%c,%8c\n",d,d);}18注意:
1.
格式字符串是以%開頭的字符串,格式控制字符串用于指定輸出格式。
2.在%后面跟有各種格式字符,以說明輸出數據的類型、形式、長度、小數位數等。
3.非格式字符串在輸出時原樣照印,在顯示中起提示作用。
4.輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數量和類型上應該一一對應。19二、格式輸入函數scanf
1.scanf()函數的一般形式
scanf(“格式控制字符串”,地址表列);
其中,格式控制字符串的作用與printf函數相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。例如:&a,&b分別表示變量a和變量b的地址
main(){inta,b,c;
printf("inputa,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);}202.格式字符串格式字符串的一般形式為:
%[*][輸入數據寬度][長度]類型
其中有方括號[]的項為任選項。各項的意義如下:(P83表)1)
類型表示輸入數據的類型,其格式符和意義如下所示:
d輸入十進制整數
o輸入八進制整數
x輸入十六進制整數
u輸入無符號十進制整數
f或e輸入實型數(用小數形式或指數形式)
c輸入單個字符
s輸入字符串21%[*][輸入數據寬度][長度]類型2)“*”符
用以表示該輸入項讀入后不賦予相應的變量,即跳過該輸入值。如scanf("%d%*d%d",&a,&b);
當輸入為:123時,把1賦予a,2被跳過,3賦予b。3)寬度
用十進制整數指定輸入的寬度(即字符數)。例如:scanf("%5d",&a);
輸入:12345678
只把12345賦予變量a,其余部分被截去。又如:scanf("%4d%4d",&a,&b);輸入:12345678將把1234賦予a,而把5678賦予b。4)長度
長度格式符為l和h,l表示輸入長整型數據(如%ld)和雙精度浮點數(如%lf)。h表示輸入短整型數據。22
3.使用scanf函數還必須注意以下幾點:(1)
scanf函數中沒有精度控制。如:scanf("%5.2f",&a);是非法的。不能企圖用此語句輸入小數為2位的實數。
(2)
scanf中要求給出變量地址,如給出變量名則會出錯。如scanf("%d",a);是非法的,應改為scnaf("%d",&a);才是合法的。
(3)
在輸入多個數值數據時,若格式控制串中沒有非格式字符作輸入數據之間的間隔則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數據(如對“%d”輸入“12A”時,A即為非法數據)時即認為該數據結束。
(4)在輸入字符數據時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。23例如:
scanf("%c%c%c",&a,&b,&c);輸入為:def
則把'd'賦予a,''賦予b,'e'賦予c。
只有當輸入為:def時,才能把'd'賦于a,'e'賦予b,'f'賦予c。
如果在格式控制中加入空格作為間隔,如
scanf(“%c
%c%c”,&a,&b,&c);則輸入時各數據之間可加空格。
24
(5)如果格式控制串中有非格式字符則輸入時也要輸入該非格式字符。例如:scanf("%d,%d,%d",&a,&b,&c);
其中用非格式符“
,”作間隔符,故輸入時應為:5,6,7
又如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);則輸入應為a=5,b=6,c=7
(6)如輸入的數據與輸出的類型不一致時,雖然編譯能夠通過,但結果將不正確。voidmain(){inta;
printf("inputanumber\n");
scanf("%d",&a);
printf("%ld",a);}25由于輸入數據類型為整型,而輸出語句的格式串中說明為長整型,因此輸出結果和輸入數據不符。如改動程序如下:
voidmain(){longa;
printf("inputalonginteger\n");
scanf("%ld",&a);
printf("%ld",a);}運行結果為:
inputalonginteger12345678901234567890當輸入數據改為長整型后,輸入輸出數據相等。26順序結構
A塊、B塊順序執行(每塊代表一個或一組操作)4.6順序結構程序設計舉例274.6順序結構程序設計舉例例4.10輸入三角形的三邊長,求三角形面積#include<math.h>#include
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工企業2025年度安全操作規程培訓計劃
- 商業綜合體配電柜安裝施工方案范文
- 醫院消防安全防范措施
- 小學二年級語文下冊互動學習計劃
- 血漿游離脂肪酸和心力衰竭的相關性研究
- 幼兒園安全知識普及演練計劃
- 農業機械設備及檢測設備投入計劃
- 大型活動安全應急演練計劃
- 2025-2030高級定制時裝行業市場深度調研及發展趨勢與投資戰略研究報告
- 2025-2030金槍魚行業市場深度調研及趨勢前景與投融資研究報告
- Liaison快速操作指南中文版說課材料
- 國家開放大學《人文英語3》章節測試參考答案
- 中國暈厥診斷與治療專家共識(2014 )
- 長途大客車總布置設計
- T∕CAAA 002-2018 燕麥 干草質量分級
- 一年級《20以內的加減法填括號口算題(共100道)》專項練習題
- 方格網計算步驟及方法
- 課題評分表(共1頁)
- 六年級趣味數學(課堂PPT)
- 詢價單(模板)
- 關于我縣二次供水調研報告
評論
0/150
提交評論