C語言順序結構詳解_第1頁
C語言順序結構詳解_第2頁
C語言順序結構詳解_第3頁
C語言順序結構詳解_第4頁
C語言順序結構詳解_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2024/4/291順序程序設計2024/4/292結構化程序設計目標:將學習三種結構的程序設計方法順序結構程序設計選擇結構程序設計循環結構程序設計。2024/4/293三種控制結構順序結構選擇結構循環結構AB⑴BAPyesno⑵noPAyes⑶2024/4/29

4C語句概述實現順序結構的語句實現選擇結構的語句實現循環結構的語句賦值語句函數調用語句復合語句if語句switch語句while語句do-while語句for語句2024/4/295實現順序結構的語句順序結構的程序中的語句是按照從上到下的順序逐行排列的;程序的執行順序是按語句的排列順序進行的。完成順序程序設計的語句包括:賦值語句函數調用語句復合語句2024/4/296賦值語句賦值語句由賦值表達式加上一個分號構成,作用是將一個確定的值賦給一個變量。

語句格式:例:;=ysin(x)+cos(x)變量名=表達式;2024/4/297賦值語句的作用:將“=”右側表達式的值送到“=”左側的變量所對應的單元中。賦值語句中的“=”是賦值號而不是數學意義上的等號;它代表的是一種操作→賦值操作;賦值號兩側的內容不能調換;A=B;和B=A;具有不同的含義;A=B;B=A;意味著將B的值送給A;意味著將A的值送給B;2024/4/29

8賦值的意義:在計算機內部,一個變量對應一塊內存存儲空間;具有一個名字。賦值的過程:就是將指定的值送入指定的存儲空間的過程。賦值的結果:指定的變量所對應的存儲空間具有了指定的值。xX=10102024/4/299例:順序執行以下三個賦值語句,結果如何?a=0;b=10;a=b;ab1.a=0;2.b=10;3.a=b;010102024/4/2910復合語句由一組語句組成,并放在一對花括號“{}”中間。語句格式:

{說明部分; 執行部分;}復合語句復合語句是一個整體,在語法結構上與一個單一語句相同。2024/4/2911函數調用語句C程序中,需要使用很多復雜的功能,例如,輸入數據、輸出數據、數學公式的使用(sinx、cosx、ex等)。這些功能的使用是通過函數調用來實現的。系統把一些獨立的功能編制成標準函數,提供給使用者調用的格式。下面我們先介紹兩個最常用的標準函數:格式輸出函數和格式輸入函數2024/4/2912格式輸出函數2024/4/2913格式輸出函數語句格式:printf(格式控制,輸出變量列表);函數名參數表#include<stdio.h>輸出的變量名列表功能:printf函數可以將任意類型的多個數據,按指定格式輸出到標準輸出設備上(一般為顯示器)。2024/4/2914由雙引號括起來的字符串;形式:"控制字符"由“%”和格式字符組成,它的作用是將對應的變量按照指定的類型輸出。需要原樣輸出的字符用于控制輸出普通字符格式說明轉義字符格式控制printf(

格式控制

,輸出變量列表);2024/4/2915格式說明符:由%和格式字符組成,作用是將輸出的數據按照指定的格式輸出。2024/4/2916指數形式輸出單、雙精度實數%e輸出十六進制無符號整數%x小數形式輸出單、雙精度實數%f輸出一個字符%c輸出十進制無符號整數%u輸出一個字符串%s當指數小于-4或大于指定精度使用%e格式,否則用%f格式%g

輸出八進制無符號整數%o輸出十進制帶符號整數%d含義格式字符2024/4/2917附加格式說明字符含義L輸出長整型,可用在格式符d、o、x、u,f的前面

整數

輸出數據的最小寬度.整數對實數表示輸出的小數位數;對字符串表示截取的字符個數-輸出數字或字符在域內向左靠齊例:%ld%lf對應長整型數據的輸入輸出格式描述對應double型數據的輸入輸出格式描述2024/4/2918附加格式說明字符含義L輸出長整型,可用在格式符d、o、x、u,f的前面

整數

輸出數據的最小寬度.整數對實數表示輸出的小數位數;對字符串表示截取的字符個數-輸出數字或字符在域內向左靠齊例:%5d%8.3f對應的整型數據的輸入輸出寬度為5對應float型數據的輸出;輸出的數據寬度為8個字符,小數點后保留3位。2024/4/2919main(

{inta,b;floatx;charc;a=123;b=-1;x=3.14;c='A';printf("%d,%6d\n",a,a);printf("%d,%x,%o,%u\n“,b,b,b,b);printf("%c,%d\n",c,c);printf("%f,%6.1f\n",x,x);}寫出程序運行結果2024/4/2920printf("%d,%6d\n",a,a);1111111111111111-1在內存中的存放運行結果a=123;b=-1;x=3.14;c='A';printf("%d,%x,%o,%u\n",b,b,b,b);

printf("%c,%d\n",c,c);123,□□□123-1,ffff,177777,65535A,65printf("%f,%6.1f\n",x,x);}3.140000,□□□3.12024/4/2921轉義字符轉義字符是一組以“\”開頭的特殊字符序列,用單引號括起來。用來表示任何可以輸出的字母字符、專用字符、控制字符、圖形字符。在printf的格式控制串中,控制輸出格式。常用的有:\b、\f、\n、\r、\t、\ooo、\xhh、\0;2024/4/2922課上練習:寫出以下程序段的運行結果#include<stdio.h>voidmain(){charc1=‘a’,c2=‘b’,c3=‘c’,c4=‘\101’,c5=‘\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\bc%c%c\n”,c4,c5);}2024/4/29

23用實驗來學習和驗證2024/4/29

24#include<stdio.h>voidmain(){/*沒有\n時*/ printf("thisisoneprograminc"); printf("thisisoneprograminc");/*在格式控制串尾有\n時*/ printf("thisisoneprograminc\n"); printf("thisisoneprograminc");/*在格式控制串首有\n時*/ printf("thisisoneprograminc"); printf("\nthisisoneprograminc");}思考題:轉義字符’\n’在格式控制中的作用是什么?2024/4/29

25/*轉義字符/b在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉義字符’/b’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉義字符’/b’*/ printf("thisisoneprograminc"); printf("\b\bthisisoneprograminc\n");}思考題:轉義字符’\b’在格式控制中的作用是什么?2024/4/29

26/*轉義字符/r在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉義字符’/r’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉義字符’/r’*/ printf("thisisoneprograminc"); printf("\rthisisoneprograminc\n"); }思考題:轉義字符’\r’在格式控制中的作用是什么?2024/4/29

27/*轉義字符/t在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉義字符’/t’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉義字符’/t’*/ printf("thisisoneprograminc");printf("\tsecondprogram\n");}思考題:轉義字符’\t’在格式控制中的作用是什么?2024/4/29

28/*轉義字符/ooo和/xhh在控制串中的作用*/#include<stdio.h>voidmain(){ printf("thisisoneprograminc"); printf("\101thisisthesecondprogram\n"); printf("\x1athisissecondprogram\n");}思考題:轉義字符’\ooo’和‘/xhh’在格式控制中的作用各是什么?2024/4/29

29普通字符在printf的格式控制串中,除了以上的特殊字符(%+格式符、轉義字符)以外的字符,都是需要原樣輸出的字符,稱為普通字符。例:

printf("\x1athisissecondprogram\n");在一個printf語句的格式控制串中,首先將處理特殊字符(轉義字符控制輸出的狀態、格式控制符(%+d等)控制對應位置的變量的值的顯示格式),控制串中的其它字符都將按原樣輸出。2024/4/29

30同理,學習和驗證每一個格式控制符的作用2024/4/29

31標準格式輸入函數2024/4/29

32格式輸入函數格式:scanf(格式控制,地址表列);與

printf中的含義相同函數名將輸入的數據放入此變量中2024/4/29

33標準格式輸入函數的功能:scanf函數可以從標準輸入設備輸入任意類型的多個數據(一般為鍵盤),存入指定的變量單元中。例:scanf(“%d,%f”,&a,&b);意味著從鍵盤讀入兩個數據,分別存入變量a和b中。%d:按十進制整數格式讀入;%f:按實數格式讀入;2024/4/29

34格式輸入函數scanf中格式控制串的格式應與地址表列中變量的順序相一致;scanf中格式控制串的格式應與輸入數據的格式相一致;當語句格式如下時:scanf(“%d,%f”,&a,&b);輸入數據的格式應為:12,3.14如果語句寫成:scanf(“%d%f”,&a,&b);輸入數據的格式應為:123.142024/4/29

35怎樣保證輸入數據的正確性?在對數據進行輸入時,需要解決兩方面的問題:輸入語句格式的正確;輸入數據格式的正確;雖然說,在輸入語句中的格式控制串與在輸出中的意義一樣,但在使用時,還是有很多不同點的。2024/4/29

36格式控制串的意義:%d等:控制對應于該控制符的變量的數據的類型轉義字符:用于控制輸入時的狀態控制意義和輸出時一致;普通字符:在輸入語句中的普通字符在輸入數據是必須原樣寫的;思考:當輸入數據的類型與格式說明符不一致時會出現什么現象?如果在輸入數據時,不寫輸入語句中的普通字符會如何?2024/4/29

37用隱含的分隔符。語句格式為:scanf(“%d%d”,&a,&b);輸入數據時,在輸入數據中用空格或換行符分隔數據。輸入數據的格式應為:34

或:

34使用顯示分隔符。語句格式為:scanf("%d,%d",&a,&b);如果在格式控制串中有其它字符,在輸入數據時在相應位置應輸入與這些字符相同的字符。例:輸入語句的幾種格式:輸入結果:a=3,b=43,42024/4/29

38#include<stdio.h>voidmain(){ inta,b; scanf(“%d%d“,&a,&b); printf(“a=%d,b=%d\n”,a,b);}變量順序與輸入數據順序對輸入結果的影響;輸入數據:讀入的數據:輸出結果:輸入數據:讀入的數據:輸出結果:3553a=3b=5a=5b=3a=3,b=5a=5,b=32024/4/29

39#include<stdio.h>voidmain(){inta; floatx;scanf(“%d%f”,&a,&x); printf(“a=%d,x=%f\n”,a,x);}格式控制字符對輸入結果的影響輸入數據:讀入的數據:輸出結果:輸入數據:讀入的數據:輸出結果:35.65.63a=3x=5.6a=5x=0.6a=3,x=5.6a=5,x=0.62024/4/29

40#include<stdio.h>voidmain(){inta,b; /*沒有顯示分格符時*/scanf(“%d%d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);/*有顯示分格符時*/scanf(“%d,%d“,&a,&b);printf(“a=%db=%d\n”,a,b);}格式控制字符之間有無顯示分隔符對輸入的影響輸入數據:讀入的數據:輸出結果:輸入數據:讀入的數據:輸出結果:353,5a=3b=5a=3b=5a=3,b=5a=3b=53,5a=3b=?a=3,b=?35a=3b=?a=3b=?2024/4/29

41#include<stdio.h>voidmain(){inta,b; scanf(“%d%d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);scanf(“%2d%3d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);}格式控制字符%后面添加域寬與否對輸入的影響輸入數據:讀入的數據:輸出結果:輸入數據:讀入的數據:輸出結果:123512456a=123b=5a=12b=456a=123,b=5a=12,b=45612456a=12b=4a=12,b=42024/4/29

42提示:格式控制符對輸入的結果的影響,還有很多,開動腦筋,可以試驗出很多結論2024/4/29

43順序結構

程序設計舉例2024/4/29

44voidmain(){charc1,c2;charc;

printf("Pleaseenteracharacter:\n");

c=getchar();c1=c-1;c2=c+1;

printf("%c%c%c\n",c1,c,c2);

}例:給出一個大寫字母,要求按字母順序打印出3個字母,指定的字母是三個字母中間的一個字母。輸入的字母不能為A或Z。求解過程#include"stdio.h"輸入一個字母。求出它的前趨和后繼。輸出三個字母。2024/4/29

45輸入三角形的三邊長,求三角形的面積。分析:三角形面積計算公式:area=√s(s-a)(s-b)(s-c)s=(a+b+c)/2安排計算步驟:寫出完整的程序2024/4/29

46解決問題的步驟:定義變量area=√s(s-a)(s-b)(s-c)輸入:a,b,c;計算s;計算area;輸出area;floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“theareais%f\n”,area);2024/4/29

47寫出完整程序:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“theareais%f\n”,area);}2024/4/29

48設1990年我國工業產值是100,如果每年以7.4%的速度增長,求20年后我國的工業產值是多少?分析:計算產值的公式是:安排計算步驟:寫出完整的程序 p1=p0(1+r)n

其中:p1為n年后的產值,p0為初始值,r為增長率,n為年數。

2024/4/29

49解決問題的步驟:定義變量:輸入:p0,n,r;計算p1;輸出p0,n,r,p1;floatp1,p0,r;p1=p0(1+r)n其中:p1為n年后的產值,p0為初始值,r為增長率,n為年數。

intn;2024/4/29

50寫出完整程序:/*功能:計算工業產值*/#include<stdio.h>#include<math.h>voidmain(){intn;floatp0,p1,r;scanf("%d,%f,%f",&n,&p0,&r);p1=p0*pow(1+r/100,n);printf("p1=%10.4f\n",p1);}2024/4/29

51例.求華氏溫度100°F對應的攝氏溫度。攝氏溫度C=(5/9)(F-32)#include<stdio.h>intmain(void){intcelsius,fahr;fahr=100;celsius=5*(fahr-32)/9.0;printf("fahr=%d,celsius=%d\n",fahr,celsius);return0;}編寫程序,輸入一個F值,輸出對應的C值。scanf(“%f”,&fahr);2024/4/29

52擴展閱讀2024/4/29

53常用數學庫函數庫函數C語言處理系統提供事先編好的函數,供用戶在編程時調用。scanf(),printf(),exp()在相應的系統文件(頭文件)中定義一些必需的信息。#include命令用戶調用庫函數時,將相應的頭文件包含到源程序中。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論