版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章順序結(jié)構(gòu)程序設(shè)計(jì)§3.1結(jié)構(gòu)化程序設(shè)計(jì)方法一、結(jié)構(gòu)化程序設(shè)計(jì)方法:自頂向下、逐步求精、模塊化二、三種基本結(jié)構(gòu)§3.2C語句概述
語句:C程序的最小單位。執(zhí)行語句實(shí)現(xiàn)一定的功能:賦值、輸入、輸出,構(gòu)成程序的執(zhí)行部分;非執(zhí)行語句起說明作用。C語句可分為四類:簡單語句(包括函數(shù)調(diào)用語句、表達(dá)式語句)、空語句、復(fù)合語句、控制語句。1.簡單語句(1)表達(dá)式語句
一般形式:表達(dá)式;如:y+i;/*無意義*/
i++;/*自增1語句*/
x=3;/*賦值語句*/
(2)函數(shù)調(diào)用語句一般形式:函數(shù)名(實(shí)參表);如:printf(“******\n”);一、c語句分類2.空語句一般格式:;空語句常用于下面兩種情況:(1)循環(huán)語句中空循環(huán)體,起延遲作用。(2)模塊化程序中未實(shí)現(xiàn)的模塊及暫不連入的模塊,為增加函數(shù)預(yù)留位置。3.復(fù)合語句:{一條或多條語句}
使用一對{}將多個(gè)語句括起來構(gòu)成的語句結(jié)構(gòu)。例如,{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);}是一條復(fù)合語句。4.控制語句控制程序的流程,實(shí)現(xiàn)程序的基本結(jié)構(gòu),由特定語句組成。C語言有9種控制語句。分成以下兩類:
1.結(jié)構(gòu)化語句
1)
條件判斷語句:if、switch;
2)
循環(huán)執(zhí)行語句:
do……while、
while……、
for……;
2.非結(jié)構(gòu)化語句:break、goto、continue、return。二、賦值語句格式:賦值表達(dá)式;功能:為變量提供確定的匹配值例如x=6;√x=y=z=0;√x=y+z=5;×
辨析下面各項(xiàng):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)一個(gè)程序至少有一條注釋語句,對整個(gè)程序的功能進(jìn)行說明。(2)對主要變量加注釋,說明其作用。例如:intmain()/*求三角形面積*/{
floata,b,c;/*三角形三邊*/
…
return0;}
輸入輸出以計(jì)算機(jī)為主體。c語言使用“標(biāo)準(zhǔn)輸入輸出函數(shù)”實(shí)現(xiàn)。共6個(gè):輸出一個(gè)字符:putchar接受一個(gè)字符:getchar格式輸出:printf格式輸入:scanf輸出一個(gè)字符串:puts()接受一個(gè)字符串:gets()§3.4數(shù)據(jù)的輸入與輸出標(biāo)準(zhǔn)函數(shù)頭文件數(shù)學(xué):math.h
字符:string.h
輸入輸出:stdio.h
參見p371-377。自定義函數(shù)。
預(yù)編譯命令#include格式:#include<stdio.h>或
#include"stdio.hҤ
3.5字符數(shù)據(jù)輸入與輸出函數(shù)一、字符輸出函數(shù)putchar1.格式:putchar(ch)2.功能:將ch的值以字符(不加定界符‘’)形式輸出到屏幕上。返回值類型:字符型,函數(shù)值:所輸出的字符。說明:ch一般是字符或數(shù)值型常量、變量、表達(dá)式,實(shí)型自動(dòng)截去小數(shù),大于255時(shí)取該數(shù)與256相除的余數(shù),小于0時(shí)取該數(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;}運(yùn)行結(jié)果:A
BA【例3-1】注意:輸出的字符不帶定界符單引號。二、鍵盤輸入函數(shù)getchar1.格式:
getchar()2.功能:使程序運(yùn)行暫停。在執(zhí)行界面當(dāng)前光標(biāo)處等待用戶從鍵盤上輸入字符數(shù)據(jù)回車后,放入緩存,程序繼續(xù)執(zhí)行。返回值類型:字符型,函數(shù)值:從鍵盤上輸入的第一個(gè)字符。用途:從鍵盤上提供字符數(shù)據(jù)。常用形式:
charc;
c=getchar();
注意:1.輸入的字符不加定界符單引號。2.輸入的任何內(nèi)容都做字符【例3-2】輸出一個(gè)字符。#include“stdio.h“voidmain(){charc;printf("inputacharacter\n");c=getchar();putchar(c);return0}說明:1)輸入不加定界符單引號。2)程序最后兩行可用下面任意一行代替:
putchar(getchar());printf(“%c”,getchar());inputacharacterAA定界符雙引號不輸出1.格式:printf(“格式控制”
[,
輸出表列])2.功能:按格式控制指定的格式,將輸出表列各項(xiàng)輸出。
如:將字符串******輸出到屏幕上,并使光標(biāo)回車換行的輸出語句:
printf("******\n");可省。各種類型的變量、表達(dá)式,西文逗號間隔?!?.6格式輸入輸出函數(shù)一、格式輸出3.參數(shù)說明(1)格式控制:用于指定輸出格式,是用雙撇號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括以下兩種信息:①格式說明格式說明由“%”和格式字符組成,如%d、%f等。其作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是以“%”開始。②普通字符普通字符即需要原樣輸出的字符。(2)輸出表:輸出表列是需要輸出的數(shù)據(jù),可以是任意形式的表達(dá)式。
例如:inta=3,b=4;
printf("a=%d,b=%d",a,b);
注意:格式字符串和各輸出項(xiàng)在數(shù)量和類型上應(yīng)一一對應(yīng)。4.格式字符串的一般形式:
%[標(biāo)志][輸出最小寬度][.精度][長度]格式符
[]中的項(xiàng)為可選項(xiàng),最簡單形式:%格式符。1)類型格式符:決定對應(yīng)輸出項(xiàng)說明類型和輸出形式。格式字符對應(yīng)輸出項(xiàng)輸出結(jié)果dint、char帶符號的十進(jìn)制整數(shù)(正數(shù)不輸出+號)oint、char無符號的八進(jìn)制整數(shù)(不輸出前綴0)x,Xint、char無符號的十六進(jìn)制整數(shù)(不輸出前綴Ox)uint、char無符號的十進(jìn)制整數(shù)f單、雙精度小數(shù)形式的單、雙精度實(shí)數(shù)e,E單、雙精度指數(shù)形式的單、雙精度實(shí)數(shù)g,G單、雙精度單、雙精度實(shí)數(shù)(取%f或%e中較短的寬度)cint、char單個(gè)字符s字符串常量字符型數(shù)組字符串說明e、f、g格式符輸出的有效位:單精度6~7位;雙精度15~16位;長雙精度18~19位。只有e、g、x可大寫2)附加符標(biāo)志意義-結(jié)果左對齊,右邊填空格+輸出符號(正號或負(fù)號)空格輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號L或l長整型:%ld,雙精度:%lf±
m輸出最小寬度。如%10f,決定左(-)右(+,可?。Rn如果輸出的是數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符串,則表示輸出字符的個(gè)數(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);注意:①格式字符與輸出表列中的表達(dá)式在數(shù)量和類型上應(yīng)一致
②圓括號、雙引號、逗號都必須是西文形式【例3-3】有符號十進(jìn)制數(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】判斷下面程序運(yùn)行的結(jié)果#include"stdio.h"voidmain(){floata=38.45,b,c;b=(int)a;
c=a-b;printf(“%d,%d,%d\n",a,b,c);}注意:由于格式串與輸出項(xiàng)類型不匹配,運(yùn)行后會(huì)出錯(cuò)誤。運(yùn)行結(jié)果:
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; }程序運(yùn)行結(jié)果:【例3-6】設(shè)整型變量a、b的值分別是3、4,字符變量c的值是'A'。編程序,按下面的輸出形式設(shè)計(jì)輸出結(jié)果的格式:#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】求下面程序最后一個(gè)printf語句的輸出結(jié)果。
#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; }程序運(yùn)行結(jié)果:二、格式輸入函數(shù)scanf
1.一般格式:
scanf(“格式說明",地址表列)
如:scanf("%d",&a);
scanf("%d,%d",&a,&b);
(&為取地址運(yùn)算符)格式說明與printf語句的格式控制基本相同,地址表列由若干個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址功能:
按照格式控制字符串所規(guī)定的格式,從鍵盤上輸入數(shù)據(jù),并依次賦給地址表所指各變量。注意:格式字符串和地址表各項(xiàng)在數(shù)量和類型上應(yīng)一一對應(yīng)。
當(dāng)格式控制串之間有間隔符時(shí),輸入必須與間隔符完全相同,沒有時(shí),數(shù)值可用空格、回車鍵、Tab鍵間隔,字符也沒有間隔符。2.格式說明格式說明形式上與printf函數(shù)的基本相同,但格式字符、附加符的含義區(qū)別較大。scanf格式字符的一般形式為%[附加符][輸入寬度][長度]格式字符
3.scanf()函數(shù)常用格式符類型字符對應(yīng)變量的說明類型接受輸入數(shù)據(jù)dint有符號十進(jìn)制oint無符號八進(jìn)制x,Xint無符號十六進(jìn)制uunsigned、int、int無符號十進(jìn)制cchar單個(gè)字符ffloat實(shí)型數(shù):小數(shù)或指數(shù)E、e、g、Gfloat實(shí)型數(shù):小數(shù)或指數(shù)附加說明功能m指定輸入數(shù)據(jù)所占寬度L或l用于輸入長整型數(shù)據(jù),加在d、o、x、u之前*讀入的數(shù)據(jù),不賦給對應(yīng)的輸入項(xiàng),用于跳過一些數(shù)據(jù)
4.scanf()函數(shù)常用附加符3.使用scanf函數(shù)應(yīng)注意的幾個(gè)問題(1)scanf的格式說明中可以插入普通字符,非格式字符的使用原則是盡量少用。例如,使用逗號、空格等,作為數(shù)據(jù)的間隔,如"%d,%d"。(2)格式符可以沒有間隔。例如,%d%d,輸入數(shù)值數(shù)據(jù)時(shí),任選空格鍵、Tab鍵、回車鍵間隔數(shù)據(jù)即可。(3)使用%c輸入一個(gè)字符時(shí),空格字符和“轉(zhuǎn)義字符”都必須作為有效字符輸入。例如,scanf(”%c%c”,&a,&b);輸入:ab↙則變量a、b得到的值是字符a和空格,空格也作為一個(gè)字符輸入,b被忽略。輸入:ab↙則變量a、b得到的是字符a和字符b。注意對變量a的值是字符a的理解,其意義是把字符'a'賦給變量a。(4)scanf函數(shù)輸入時(shí),格式說明符中盡量不要指定寬度。用%f格式輸入實(shí)型數(shù)據(jù)時(shí),不必指定寬度;用%c輸入一字符型數(shù)據(jù)時(shí)寬度不起作用,用%d輸入一個(gè)整型數(shù)據(jù)時(shí),盡量不要指定寬度。例如,scanf(”%3d%3d”,&a,&b);輸入123456↙則a實(shí)際獲得123,b實(shí)際獲得456。輸入12456↙則a實(shí)際獲得12,b實(shí)際獲得45,6被忽略。非格式字符的使用原則是盡量少用。(5)如果輸入的數(shù)據(jù)類型與輸出的數(shù)據(jù)類型不一致時(shí),編譯能夠通過,但結(jié)果不正確。【例3-8】從鍵盤上輸入兩個(gè)數(shù)正整數(shù)a和b,求出這兩個(gè)數(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,程序的運(yùn)行結(jié)果:【例3-9】使用不同的格式符實(shí)現(xiàn)八進(jìn)制、十六進(jìn)制與十進(jìn)制與之間的轉(zhuǎ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; }程序運(yùn)行結(jié)果:【例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;
}程序運(yùn)行結(jié)果:【例3-12】編寫程序,任意輸入一個(gè)3位整數(shù),輸出個(gè)位、十位和百位數(shù)字。算法分析:(1)變量說明:根據(jù)題意,需要定義四個(gè)整型變量,分別設(shè)為num、a、b和c,num存放3位數(shù),a、b和c分別存放百、十、個(gè)數(shù)字,類型符:int(2)數(shù)據(jù)采集:需要賦初值的變量并確定賦值方式:變量num未知,需用scanf函數(shù)。(3)加工數(shù)據(jù):計(jì)算百位、十位和個(gè)數(shù)字,依次存放在變量a、b和c中:c=num%10;
b=num/10%10;a=num/100;(4)輸出計(jì)算結(jié)果:為使輸出結(jié)果更加清晰,在輸出結(jié)果之前將原始數(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; /*計(jì)算*/
/*輸出結(jié)果*/
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ù)時(shí),如果雙引號中加一個(gè)\n,則在程序運(yùn)行時(shí)需要多輸入一個(gè)數(shù)據(jù)。使用printf函數(shù)時(shí),如果雙引號中加一個(gè)\n,則程序運(yùn)行時(shí)在屏幕上輸出一個(gè)換行符。#include<stdio.h>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文書模板-《衣帽回收委托協(xié)議書》
- 2024年土地征用委托代理協(xié)議范例
- 2024年高效清洗設(shè)備銷售協(xié)議
- 2024工程協(xié)議管理實(shí)務(wù)精要
- 北京2024二手轎車買賣正式協(xié)議
- 2024年三方租賃場地協(xié)議范例
- DB11∕T 1655-2019 危險(xiǎn)化學(xué)品企業(yè)裝置設(shè)施拆除安全管理規(guī)范
- 2024年BF場地出租協(xié)議模板
- 2024年跨國貿(mào)易代表協(xié)議基本格式
- 2024年分公司加盟協(xié)議模板
- 漢字筆畫名稱表(拼音版)
- 校車使用(許可)申請表
- 月度質(zhì)量例會(huì)PPT模板
- 煤礦皮帶智能化集控系統(tǒng)PPT教學(xué)講授課件
- 分?jǐn)?shù)乘除法整理復(fù)習(xí)(課堂PPT)
- 故鄉(xiāng)雨正普五線譜(正譜)
- YD_T 3956-2021 電信網(wǎng)和互聯(lián)網(wǎng)數(shù)據(jù)安全評估規(guī)范_(高清版)
- 2022年物業(yè)管理師《物業(yè)管理實(shí)務(wù)》考試題庫大全-下(多選題、簡答)
- 大班科學(xué)活動(dòng)教案《豆豆家族》含PPT課件
- 壓力管道檢驗(yàn)員在線考試習(xí)題與答案
- 【精品試卷】部編人教版(統(tǒng)編)一年級上冊語文第一單元測試卷含答案
評論
0/150
提交評論