![第3章-1程序控制結構_第1頁](http://file4.renrendoc.com/view/6f46d5e8a58f35b9c8ee39b45ffdaf27/6f46d5e8a58f35b9c8ee39b45ffdaf271.gif)
![第3章-1程序控制結構_第2頁](http://file4.renrendoc.com/view/6f46d5e8a58f35b9c8ee39b45ffdaf27/6f46d5e8a58f35b9c8ee39b45ffdaf272.gif)
![第3章-1程序控制結構_第3頁](http://file4.renrendoc.com/view/6f46d5e8a58f35b9c8ee39b45ffdaf27/6f46d5e8a58f35b9c8ee39b45ffdaf273.gif)
![第3章-1程序控制結構_第4頁](http://file4.renrendoc.com/view/6f46d5e8a58f35b9c8ee39b45ffdaf27/6f46d5e8a58f35b9c8ee39b45ffdaf274.gif)
![第3章-1程序控制結構_第5頁](http://file4.renrendoc.com/view/6f46d5e8a58f35b9c8ee39b45ffdaf27/6f46d5e8a58f35b9c8ee39b45ffdaf275.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章§3.1C語句概述C程序源程序文件1源程序文件2源程序文件n預處理命令函數n函數1數據聲明函數首部函數體數據聲明執(zhí)行語句一個c程序可以由若干個源程序文件組成。一個源文件可以由若干個函數和預處理命令以及全局變量聲明部分組成。一個函數由函數首部和函數體組成。函數體由數據聲明和執(zhí)行語句組成。C語句分為:5類控制語句函數調用語句表達式語句空語句復合語句(語句塊)(一)控制語句:完成一定的控制功能 1if()~else條件語句6break間斷語句 2for()~循環(huán)語句7switch()開關語句 3while()~循環(huán)語句8goto轉向語句 4do~while();循環(huán)語句9return返回語句 5continue繼續(xù)語句(二)函數調用語句一個函數調用加一個分號構成一個語句Printf(“ThisisaCstatement.”);(三)表達式語句一個表達式加一個分號構成表達式語句:(四)空語句:只有一個分號的語句(什么也不做)。用來做流程的轉向點。用來作為循環(huán)語句中的循環(huán)體。(五)復合語句:用一對{}括起來的語句(語句塊)例:{ z=x+y; t=z/100; printf(“%f”,t);}§3.2賦值語句賦值語句是由賦值表達式加上一個分號構成例:a=100賦值表達式
a=100;賦值語句條件中不能含有賦值符號,但是賦值表達式可以包含于條件表達式中例:if(a=b)t=a;錯誤
if((a=b)>0)t=a;正確§3.3數據輸入輸出的概念及在C語言中的實現(一).所謂輸入、輸出是以計算機為主體而言的輸出:從計算機向外部輸出設備(顯示器,打印機)輸出數據輸入:從輸入設備(鍵盤,鼠標,掃描儀)向計算機輸入數據.(二).C語言本身不提供輸入、輸出語句,輸入和輸出操作是由C函數庫中的函數來實現的例如:字符輸入函數:getchar()字符輸出函數:putchar()格式輸入函數:scanf()格式輸出函數:printf()字符串輸入函數:gets()字數串輸出函數:puts()§3.4字符數據的輸入輸出(一).字符輸出函數一般形式:putchar(c)
函數作用:向終端輸出一個字符例1輸出單個字符。
#include<stdio.h>
main()
{
chara,b,c;
a='B';b='O';c='Y';
putchar(a);putchar(b);putchar(c);
putchar('\n');
}運行結果:BOY(二).字符輸入函數一般形式:getchar()
函數作用:從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。函數值:從輸入設備得到的字符。例2輸入單個字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar('\n');
}運行程序:
從鍵盤輸入字符‘a’
按Enter鍵
屏幕上將顯示輸出的字符‘a’
a
a§3.5格式輸入與輸出(一).格式輸出函數:printf()函數函數作用:向終端(或系統(tǒng)隱含指定的輸出設備)輸出若干個任意類型的數據。一般格式:printf(格式控制,輸出表列)%d,%i:以有符號的十進制形式輸出整型數據(正數不輸出符號)%ld:以有符號的十進制形式輸出長整型數據%o:以八進制無符號形式輸出整數%x,%X:以十六進制無符號形式輸出整數(%x以小寫形式,%X以大寫形式)%u:以無符號十進制形式輸出整數%c:以字符形式輸出,只輸出一個字符%s:以字符串形式輸出字符串%f:以浮點數形式(包括float和doulbe)輸出單、雙單精度數據,隱含輸出六位小數%lf:以小數形式輸出雙精度數數據,隱含輸出15位小數幾種常見的格式符的修飾符:l:用于長整型整數,可加在格式符d,o,x,u,f前面h:用于短整型整數m(代表一個正整數):數據最小寬度n(代表一個正整數):對實數,表示輸出n位小數;對字符串,表示截取的字符個數。d格式符:用來輸出有符號的十進制整數。幾種用法:①%d:按十進制整型數據的實際長度輸出。②%md:m為指定的輸出字段的寬度。如果數據的位數小于m,則數據右對齊,左端補以空格,若大于m,則按實際位數輸出。例:
printf(″%4d,%4d″,a,b);
若a=123,d=12345,則輸出結果為
123,12345
%-md:輸出數據左對齊,右端補以空格。③%ld:輸出長整型數據。
例:longa=135790;/*定義a為長整型變量*/
printf(″%ld″,a);④
%hd:輸出短整型數據。(2)o格式符:以無符號八進制形式輸出整數。輸出的數值不帶符號,符號位也一起作為八進制數的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內存單元中的存放形式(以補碼形式存放)如下:1111111111111111輸出為:-1,177777不會輸出帶負號的八進制整數。對長整數(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例:printf("%8o",a);輸出為:177777。(數字前有2個空格)(3)x格式符:以十六進制數形式輸出整數。同樣不會出現負的十六進制數。例:inta=-1;printf(″%x,%o,%d″,a,a,a);輸出結果為:ffff,177777,-1可以用“%lx”輸出長整型數,也可以指定輸出字段的寬度例:“%12x”(4)u格式符:用來輸出unsigned型數據.一個有符號整數(int型)也可以用%u格式輸出;一個unsigned型數據也可以用%d格式輸出。unsigned型數據也可用%o或%x格式輸出。(5)c格式符:用來輸出一個字符。如:chard=′a′;printf(″%c″,d);輸出字符′a′.一個整數,只要它的值在0~255范圍內,可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會將該整數作為ASCII碼轉換成相應的字符;一個字符數據也可以用整數形式輸出。例3無符號數據的輸出。
#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);
}運行結果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534例4字符數據的輸出。
#include<stdio.h>
voidmain()
{
charc='a';inti=97;
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
}運行結果:
a,97
a,97(6)s格式符:輸出字符串.①%s。例如:printf(″%s″,″CHINA″)輸出字符串“CHINA”(不包括雙引號)。②%ms,輸出的字符串占m列,若串長大于m,則全部輸出,若串長小于m,則左端補空格。③%-ms,若串長小于m,字符串左對齊,右端補空格。④%m.ns,輸出占m列,右對齊。只取字符串中左端n個字符,輸出在m列的右側,左補空格。⑤%-m.ns,n個字符輸出在m列,左對齊,右補空格,若n〉m,m自動取n值。例5:字符串的輸出。
#include<stdio.h>
voidmain()
{
printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");
}運行結果:
CHINA,CH,CHIN,CHI(7)f格式符或lf格式符:用來以單、雙精度形式輸出實數。有以下幾種用法:①%f或%lf。不指定字段寬度,由系統(tǒng)自動指定字段寬度,使整數部分全部輸出,并輸出6位小數。應當注意,在輸出的數字中并非全部數字都是有效數字。單精度實數的有效位數一般為7位,雙精度實數的有效位數一般為15位。②%m.nf或%m.nlf。指定輸出的數據共占m列,其中有n位小數。如果數值長度小于m,則左端補空格。③%-m.nf與%m.nf基本相同,只是使輸出的數值向左端靠,右端補空格。
例6輸出實數時的有效位數。
#include<stdio.h>
voidmain()
{
floatx,y;
x=111111.111;y=222222.222;
printf("%f",x+y);
}
運行結果:
333333.328125
例7輸出雙精度數時的有效位數。
#include<stdio.h>
voidmain()
{
doublex,y;
x=1111111111111.1111111;
y=2222222222222.2222222;
printf("%f",x+y);
}運行結果:
3333333333333.333010例8輸出實數時指定小數位數。
#include<stdio.h>
voidmain()
{
floatf=123.456;
printf("%f%10f%10.2f%.2f%-10.2f\n",f,f,f,f,f);
}運行結果:
123.456001123.456001123.46123.46123.46
說明:可以在printf函數中的“格式控制”字符串中包含轉義字符。一個格式說明必須以“%”開頭,以9個格式字符之一為結束,中間可以插入附加格式字符。想輸出%,則應該在格式控制字符串中用連續(xù)兩個%表示。(二).格式輸入函數(scanf函數)函數作用:按照變量在內存的地址將變量值存進去。一般格式:scanf(格式控制,地址表列)同printf函數是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址例9用scanf函數輸入數據。
#include<stdio.h>
voidmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}運行情況:
345(輸入a,b,c的值)
3,4,5(輸出a,b,c的值)a在內存中的地址&是地址運算符
使用scanf函數時應注意的問題:(1)scanf函數中的“格式控制”后面應當是變量地址,而不應是變量名。
(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數據時在對應位置應輸入與這些字符相同的字符。(3)在用“%c”格式輸入字符時,空格字符和“轉義字符”都作為有效字符輸入
(4)在輸入數據時,遇以下情況時系統(tǒng)認為該數據輸入結束。①遇空格,或按“回車”或“跳格”(Tab)鍵;②按指定的寬度結束,如“%3d”,只?。沉?;③遇非法輸入。(5)在TurboC2.0中,如程序中包含printf和sacnf函數時,可以不加#include<stdio.h>。順序結構程序設計舉例例3.2(教材P66頁)從鍵盤上輸入園半徑,輸出園面積(結果保留小數點后兩位)。程序代碼如下:#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輸入三角形的三邊長,求三角形面積。假設:三個邊長a,b,c能構成三角形。已知面積公式:area=s=(a+b+c)*0.5開始輸入三邊長計算s計算面積結束#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);
}數學函數庫因為要用到其中的sqrt函數運行情況:
3,4,6
a=3.00,b=4.00,c=6.00,s=6.50
area=5.33例11從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。
#include<stdi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淺談水利工程的安全運行與管理
- 2025年鐵罐蠟行業(yè)深度研究分析報告
- 耐熱布行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 假發(fā)產品采購合同范例
- 個人裝飾合同范本
- 修路材料購買合同范本
- 2025年度鍋爐設備環(huán)保排放達標技術服務合同范本
- 劇院管理務實項目管理制度
- 農村代理記賬合同范本
- 個人房屋修建合同范本
- 2025年大慶職業(yè)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 山東省濟南市2024-2024學年高三上學期1月期末考試 地理 含答案
- 【課件】液體的壓強(課件)-2024-2025學年人教版物理八年級下冊
- 實施彈性退休制度暫行辦法解讀課件
- 冷凍食品配送售后服務體系方案
- 2024-2030年中國自動光學檢測儀(AOI)市場競爭格局與前景發(fā)展策略分析報告
- 銷售培訓合同范例
- 財務工作總結與計劃-財務經理總結與計劃
- 發(fā)酵饅頭課件教學課件
- 中華護理學會團體標準-氣管切開非機械通氣患者氣道護理
- YAMAHA(雅馬哈)貼片機編程培訓教材
評論
0/150
提交評論