第3章順序程序設計課件_第1頁
第3章順序程序設計課件_第2頁
第3章順序程序設計課件_第3頁
第3章順序程序設計課件_第4頁
第3章順序程序設計課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章順序結構程序設計§3.1結構化程序設計方法一、結構化程序設計方法:自頂向下、逐步求精、模塊化二、三種基本結構§3.2C語句概述

語句:C程序的最小單位。執(zhí)行語句實現(xiàn)一定的功能:賦值、輸入、輸出,構成程序的執(zhí)行部分;非執(zhí)行語句起說明作用。C語句可分為四類:簡單語句(包括函數(shù)調(diào)用語句、表達式語句)、空語句、復合語句、控制語句。1.簡單語句(1)表達式語句

一般形式:表達式;如:y+i;/*無意義*/

i++;/*自增1語句*/

x=3;/*賦值語句*/

(2)函數(shù)調(diào)用語句一般形式:函數(shù)名(實參表);如:printf(“******\n”);一、c語句分類2.空語句一般格式:;空語句常用于下面兩種情況:(1)循環(huán)語句中空循環(huán)體,起延遲作用。(2)模塊化程序中未實現(xiàn)的模塊及暫不連入的模塊,為增加函數(shù)預留位置。3.復合語句:{一條或多條語句}

使用一對{}將多個語句括起來構成的語句結構。例如,{

x=y+z;

a=b+c;

printf(“%d%d”,x,a);}是一條復合語句。4.控制語句控制程序的流程,實現(xiàn)程序的基本結構,由特定語句組成。C語言有9種控制語句。分成以下兩類:

1.結構化語句

1)

條件判斷語句:if、switch;

2)

循環(huán)執(zhí)行語句:

do……while、

while……、

for……;

2.非結構化語句:break、goto、continue、return。二、賦值語句格式:賦值表達式;功能:為變量提供確定的匹配值例如x=6;√x=y=z=0;√x=y+z=5;×

辨析下面各項:1.4+(y=3)√2.4+(y=3;)×3.inta=b=c=5;×4.inta=5,b=5,c=5;√5.

a=b=c=5;√6.

a=3,b=5,c=6;√7.a=2;b=5;c=6;√§3.3程序的注釋注釋語句的語法/*注釋文本*/遵循以下原則:(1)一個程序至少有一條注釋語句,對整個程序的功能進行說明。(2)對主要變量加注釋,說明其作用。例如:intmain()/*求三角形面積*/{

floata,b,c;/*三角形三邊*/

return0;}

輸入輸出以計算機為主體。c語言使用“標準輸入輸出函數(shù)”實現(xiàn)。共6個:輸出一個字符:putchar接受一個字符:getchar格式輸出:printf格式輸入:scanf輸出一個字符串:puts()接受一個字符串:gets()§3.4數(shù)據(jù)的輸入與輸出標準函數(shù)頭文件數(shù)學:math.h

字符:string.h

輸入輸出:stdio.h

參見p371-377。自定義函數(shù)。

預編譯命令#include格式:#include<stdio.h>或

#include"stdio.h“§

3.5字符數(shù)據(jù)輸入與輸出函數(shù)一、字符輸出函數(shù)putchar1.格式:putchar(ch)2.功能:將ch的值以字符(不加定界符‘’)形式輸出到屏幕上。返回值類型:字符型,函數(shù)值:所輸出的字符。說明:ch一般是字符或數(shù)值型常量、變量、表達式,實型自動截去小數(shù),大于255時取該數(shù)與256相除的余數(shù),小于0時取該數(shù)與-256相除的余數(shù)。例如:charch1=‘A’;

putcher(ch1);putcher(ch1+1);#include“stdio.h”intmain(){chara;a='B';putchar(65);putchar('\n');putchar(a);putchar('\101');

return0;}運行結果:A

BA【例3-1】注意:輸出的字符不帶定界符單引號。二、鍵盤輸入函數(shù)getchar1.格式:

getchar()2.功能:使程序運行暫停。在執(zhí)行界面當前光標處等待用戶從鍵盤上輸入字符數(shù)據(jù)回車后,放入緩存,程序繼續(xù)執(zhí)行。返回值類型:字符型,函數(shù)值:從鍵盤上輸入的第一個字符。用途:從鍵盤上提供字符數(shù)據(jù)。常用形式:

charc;

c=getchar();

注意:1.輸入的字符不加定界符單引號。2.輸入的任何內(nèi)容都做字符【例3-2】輸出一個字符。#include“stdio.h“voidmain(){charc;printf("inputacharacter\n");c=getchar();putchar(c);return0}說明:1)輸入不加定界符單引號。2)程序最后兩行可用下面任意一行代替:

putchar(getchar());printf(“%c”,getchar());inputacharacterAA定界符雙引號不輸出1.格式:printf(“格式控制”

[,

輸出表列])2.功能:按格式控制指定的格式,將輸出表列各項輸出。

如:將字符串******輸出到屏幕上,并使光標回車換行的輸出語句:

printf("******\n");可省。各種類型的變量、表達式,西文逗號間隔?!?.6格式輸入輸出函數(shù)一、格式輸出3.參數(shù)說明(1)格式控制:用于指定輸出格式,是用雙撇號括起來的字符串,也稱“轉換控制字符串”,它包括以下兩種信息:①格式說明格式說明由“%”和格式字符組成,如%d、%f等。其作用是將輸出的數(shù)據(jù)轉換為指定的格式輸出。格式說明總是以“%”開始。②普通字符普通字符即需要原樣輸出的字符。(2)輸出表:輸出表列是需要輸出的數(shù)據(jù),可以是任意形式的表達式。

例如:inta=3,b=4;

printf("a=%d,b=%d",a,b);

注意:格式字符串和各輸出項在數(shù)量和類型上應一一對應。4.格式字符串的一般形式:

%[標志][輸出最小寬度][.精度][長度]格式符

[]中的項為可選項,最簡單形式:%格式符。1)類型格式符:決定對應輸出項說明類型和輸出形式。格式字符對應輸出項輸出結果dint、char帶符號的十進制整數(shù)(正數(shù)不輸出+號)oint、char無符號的八進制整數(shù)(不輸出前綴0)x,Xint、char無符號的十六進制整數(shù)(不輸出前綴Ox)uint、char無符號的十進制整數(shù)f單、雙精度小數(shù)形式的單、雙精度實數(shù)e,E單、雙精度指數(shù)形式的單、雙精度實數(shù)g,G單、雙精度單、雙精度實數(shù)(取%f或%e中較短的寬度)cint、char單個字符s字符串常量字符型數(shù)組字符串說明e、f、g格式符輸出的有效位:單精度6~7位;雙精度15~16位;長雙精度18~19位。只有e、g、x可大寫2)附加符標志意義-結果左對齊,右邊填空格+輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號L或l長整型:%ld,雙精度:%lf±

m輸出最小寬度。如%10f,決定左(-)右(+,可?。Rn如果輸出的是數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符串,則表示輸出字符的個數(shù);如果實際位數(shù)大于所定義的精度數(shù),則截去超過的部分辨析下面輸出語句中各部分的名稱及作用:printf(”a=%4d,%4d”,a,b);printf(“%ld”,b);printf(“%f%10f%10.2f%.2f%-10.2f\n”,f,f,f,f,f);注意:①格式字符與輸出表列中的表達式在數(shù)量和類型上應一致

②圓括號、雙引號、逗號都必須是西文形式【例3-3】有符號十進制數(shù)的輸出形式

/*exp3-3*/ #include"stdio.h" intmain()

{ inta=97; printf("a=%d,%o,%x,%u,%c\n",a,a,a,a,a); return0; }【例3-4】判斷下面程序運行的結果#include"stdio.h"voidmain(){floata=38.45,b,c;b=(int)a;

c=a-b;printf(“%d,%d,%d\n",a,b,c);}注意:由于格式串與輸出項類型不匹配,運行后會出錯誤。運行結果:

38.450001,380.450001【例3-5】字符數(shù)據(jù)的輸出。

/*exp3-4*/ #include"stdio.h" intmain()

{ chara,b; a=120; b=121; printf("%c,%c\n",a,b); printf("%d,%d\n",a,b);

return0; }程序運行結果:【例3-6】設整型變量a、b的值分別是3、4,字符變量c的值是'A'。編程序,按下面的輸出形式設計輸出結果的格式:#include"stdio.h"intmain(){ inta=3,b=4; charc='A'; printf("a=%2db=%2d\n",a,b);

printf("Letter%candASCII:%d\n",c,c); return0;}【例3-7】求下面程序最后一個printf語句的輸出結果。

#include"stdio.h" intmain() { inti,j; i=3; j=4;

printf("%d%d\n",i++,++j); printf("%d,%d\n",i,j); printf("%d,%d\n",-i++,-++j); return0; }程序運行結果:二、格式輸入函數(shù)scanf

1.一般格式:

scanf(“格式說明",地址表列)

如:scanf("%d",&a);

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

(&為取地址運算符)格式說明與printf語句的格式控制基本相同,地址表列由若干個地址組成,可以是變量的地址,也可以是字符串的首地址功能:

按照格式控制字符串所規(guī)定的格式,從鍵盤上輸入數(shù)據(jù),并依次賦給地址表所指各變量。注意:格式字符串和地址表各項在數(shù)量和類型上應一一對應。

當格式控制串之間有間隔符時,輸入必須與間隔符完全相同,沒有時,數(shù)值可用空格、回車鍵、Tab鍵間隔,字符也沒有間隔符。2.格式說明格式說明形式上與printf函數(shù)的基本相同,但格式字符、附加符的含義區(qū)別較大。scanf格式字符的一般形式為%[附加符][輸入寬度][長度]格式字符

3.scanf()函數(shù)常用格式符類型字符對應變量的說明類型接受輸入數(shù)據(jù)dint有符號十進制oint無符號八進制x,Xint無符號十六進制uunsigned、int、int無符號十進制cchar單個字符ffloat實型數(shù):小數(shù)或指數(shù)E、e、g、Gfloat實型數(shù):小數(shù)或指數(shù)附加說明功能m指定輸入數(shù)據(jù)所占寬度L或l用于輸入長整型數(shù)據(jù),加在d、o、x、u之前*讀入的數(shù)據(jù),不賦給對應的輸入項,用于跳過一些數(shù)據(jù)

4.scanf()函數(shù)常用附加符3.使用scanf函數(shù)應注意的幾個問題(1)scanf的格式說明中可以插入普通字符,非格式字符的使用原則是盡量少用。例如,使用逗號、空格等,作為數(shù)據(jù)的間隔,如"%d,%d"。(2)格式符可以沒有間隔。例如,%d%d,輸入數(shù)值數(shù)據(jù)時,任選空格鍵、Tab鍵、回車鍵間隔數(shù)據(jù)即可。(3)使用%c輸入一個字符時,空格字符和“轉義字符”都必須作為有效字符輸入。例如,scanf(”%c%c”,&a,&b);輸入:ab↙則變量a、b得到的值是字符a和空格,空格也作為一個字符輸入,b被忽略。輸入:ab↙則變量a、b得到的是字符a和字符b。注意對變量a的值是字符a的理解,其意義是把字符'a'賦給變量a。(4)scanf函數(shù)輸入時,格式說明符中盡量不要指定寬度。用%f格式輸入實型數(shù)據(jù)時,不必指定寬度;用%c輸入一字符型數(shù)據(jù)時寬度不起作用,用%d輸入一個整型數(shù)據(jù)時,盡量不要指定寬度。例如,scanf(”%3d%3d”,&a,&b);輸入123456↙則a實際獲得123,b實際獲得456。輸入12456↙則a實際獲得12,b實際獲得45,6被忽略。非格式字符的使用原則是盡量少用。(5)如果輸入的數(shù)據(jù)類型與輸出的數(shù)據(jù)類型不一致時,編譯能夠通過,但結果不正確?!纠?-8】從鍵盤上輸入兩個數(shù)正整數(shù)a和b,求出這兩個數(shù)相除的整數(shù)

#include"stdio.h" intmain()

{ inta,b;

printf("\nPleaseinputtwointeagers:\n")

scanf("a=%d,b=%d",&a,&b); printf("a=%d,b=%d,a/b=%d\n",a,b,a/b); }輸入a=5,b=4,程序的運行結果:【例3-9】使用不同的格式符實現(xiàn)八進制、十六進制與十進制與之間的轉換。

#include"stdio.h" intmain()

{

unsigneda,b,c; printf("\nPleaseinputthreeinteagers:\n");

scanf("%d%o%x",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c);

return0; }程序運行結果:【例3-10】常用類型說明符的長度測定

#include"math.h" #include"stdio.h" intmain() { inta; longb; floatf; doubled; charc; printf("\nint:%d\nlong:%d",sizeof(a),sizeof(b));

printf("\nfloat:%d\ndouble:%d",sizeof(f),sizeof(d));

printf("\nchar:%d\n",sizeof(c));

return0;

}程序運行結果:【例3-12】編寫程序,任意輸入一個3位整數(shù),輸出個位、十位和百位數(shù)字。算法分析:(1)變量說明:根據(jù)題意,需要定義四個整型變量,分別設為num、a、b和c,num存放3位數(shù),a、b和c分別存放百、十、個數(shù)字,類型符:int(2)數(shù)據(jù)采集:需要賦初值的變量并確定賦值方式:變量num未知,需用scanf函數(shù)。(3)加工數(shù)據(jù):計算百位、十位和個數(shù)字,依次存放在變量a、b和c中:c=num%10;

b=num/10%10;a=num/100;(4)輸出計算結果:為使輸出結果更加清晰,在輸出結果之前將原始數(shù)據(jù)num輸出,因均是整型數(shù)值數(shù)據(jù),選用printf函數(shù)輸出,格式符均為%d。/*exp3-12*/#include"stdio.h"intmain(){intnum,a,b,c; /*定義變量*/

printf("pleaseinputaintegernumber:");/*提示輸入數(shù)據(jù)*/

scanf("%d",&num) /*輸入數(shù)據(jù)*/

c=num%10;

b=num/10%10;

a=num/100; /*計算*/

/*輸出結果*/

printf("%dHundred,ten,an,",num);

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

return0;}scanf與printf函數(shù)的區(qū)別#include<stdio.h>voidmain(){inta;scanf("%d\n",&a);printf("%d\n",a);}?√

使用scanf函數(shù)時,如果雙引號中加一個\n,則在程序運行時需要多輸入一個數(shù)據(jù)。使用printf函數(shù)時,如果雙引號中加一個\n,則程序運行時在屏幕上輸出一個換行符。#include<stdio.h>

溫馨提示

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

評論

0/150

提交評論