




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章順序結(jié)構(gòu)程序設(shè)計(jì)
北京科技大學(xué)計(jì)算機(jī)系C
語言程序設(shè)計(jì)1程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)N-S結(jié)構(gòu)圖流程圖ABAB選擇結(jié)構(gòu)YNABP成立?PTFAB第4章介紹2程序的三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)NYP成立?A當(dāng)P成立時(shí)
A直到型循環(huán)
A當(dāng)P成立時(shí)YNAP成立?當(dāng)型循環(huán)N-S結(jié)構(gòu)圖流程圖第5章介紹本章介紹C語言的語句類型數(shù)據(jù)輸出數(shù)據(jù)輸入順序結(jié)構(gòu)程序設(shè)計(jì)33.1C語言的語句類型主要內(nèi)容:說明性語句表達(dá)式語句控制語句復(fù)合語句43.1.1說明性語句對(duì)程序中使用的變量、數(shù)組、函數(shù)等操作對(duì)象進(jìn)行定義、聲明的描述語句只起說明作用,不產(chǎn)生可執(zhí)行的機(jī)器指令代碼。
例如:inta,b;
floatfunction(int,int);C程序由函數(shù)組成。函數(shù)的格式:函數(shù)名(參數(shù)表){
說明部分;執(zhí)行部分;}數(shù)據(jù)類型說明語句可執(zhí)行語句5表達(dá)式后面加一個(gè)分號(hào),構(gòu)成表達(dá)式語句x=3;y=y+5;x=a-b&&c||d;printf("x=%d,y=%d\n",x,y);sort(a,10);3.1.2表達(dá)式語句賦值語句函數(shù)調(diào)用語句注意:①分號(hào)是語句必不可少的一部分②單獨(dú)的一個(gè)分號(hào)“;”構(gòu)成一個(gè)空語句例如:;(空語句,是最簡(jiǎn)單的C語句)63.1.3控制語句1.選擇分支控制語句
if()…else…
switch(){…} 2.循環(huán)控制語句
for()…
while()…do…while()3.其他控制語句
break、continue、gotoreturn73.1.4復(fù)合語句用一對(duì)花括號(hào)“{}”括起來的若干條語句
花括號(hào)中可以是說明語句、表達(dá)式語句、控制語句,也可以是復(fù)合語句例如:⑴if(a>b){max=a;min=b;}
⑵for(n=1;n<10;n++)
{p=n+p;if(p>=100)
{
printf(“%d\n”,p);break;
}
}
83.1.4復(fù)合語句(續(xù))復(fù)合語句中如果有說明性語句,應(yīng)該寫在可執(zhí)行語句的前面例如:
main()
{inta,b;a=b=100;
{
floatc=10.23;printf("%f\n",c);
}printf("%d%d\n",a,b);
}要特別注意:花括號(hào)的配對(duì)花括號(hào)的位置C語言學(xué)習(xí)的難點(diǎn)之一93.2數(shù)據(jù)輸出主要內(nèi)容:字符輸出函數(shù)格式輸出函數(shù)103.2.1字符輸出函數(shù)(自學(xué))函數(shù)調(diào)用的一般形式
putchar(ch)功能:在標(biāo)準(zhǔn)輸出設(shè)備(即顯示器屏幕)上輸出一個(gè)字符。例如:putchar(‘b’);輸出:bputchar(‘\n’);輸出:回車換行putchar('\101');輸出:Aputchar(st);113.3.2格式輸出函數(shù)函數(shù)調(diào)用的一般形式printf(格式控制,參數(shù)2,…,參數(shù)n)
功能:按格式控制所指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出參數(shù)2、…、參數(shù)n的值。輸出:123100223輸出:c=123+100=223例如有程序段:inta=123,b=100;printf("%d%d%d\n",a,b,a+b);printf("c=%d+%d=%d\n",a,b,a+b);12格式控制用雙引號(hào)括起的字符串,用于指定輸出數(shù)據(jù)的類型、格式、個(gè)數(shù)包括:普通字符和格式說明符照原樣輸出
printf("c=%d+%d=%d\n",a,b,a+b);格式說明符:指定輸出3個(gè)十進(jìn)制整型數(shù),分別為變量a、b、a+b的值13輸出格式說明符整型數(shù)據(jù)
%d以有符號(hào)十進(jìn)制形式輸出整型數(shù)%o以無符號(hào)八進(jìn)制形式輸出整型數(shù)%x以無符號(hào)十六進(jìn)制形式輸出整型數(shù)%u以無符號(hào)十進(jìn)制形式輸出整型數(shù)實(shí)型數(shù)據(jù)
%f以小數(shù)形式輸出實(shí)型數(shù)%e以指數(shù)形式輸出實(shí)型數(shù)%g按數(shù)值寬度最小的形式輸出實(shí)型數(shù)字符型數(shù)據(jù)
%c輸出一個(gè)字符%s輸出字符串其他
%%輸出字符%本身在%和格式符之間可以使用附加說明符14附加格式說明符l輸出長(zhǎng)整型數(shù)(只可與d、o、x、u結(jié)合用)m指定數(shù)據(jù)輸出的寬度(即域?qū)挘?n對(duì)實(shí)型數(shù)據(jù),指定輸出n位小數(shù);對(duì)字符串,指定左端截取n個(gè)字符輸出+使輸出的數(shù)值數(shù)據(jù)無論正負(fù)都帶符號(hào)輸出-使數(shù)據(jù)在輸出域內(nèi)按左對(duì)齊方式輸出整數(shù)位數(shù)+小數(shù)位數(shù)+小數(shù)點(diǎn)自動(dòng)對(duì)n位后小數(shù)四舍五入
例如:%ld——輸出十進(jìn)制長(zhǎng)整型數(shù)
%m.nf——右對(duì)齊,m位域?qū)挘琻位小數(shù)或n個(gè)字符%-m.nf——左對(duì)齊15例3.2整型數(shù)據(jù)的輸出main(){inta=11,b=22;
intm=-1;longn=123456789;printf("%d%d\n",a,b);printf("a=%d,b=%d\n",a,b);printf("m:%d,%o,%x,%u\n",m,m,m,m);printf("n=%d\n",n);printf("n=%ld\n",n);}程序輸出:1122a=11,b=22m:-1,177777,ffff,65535n=-13035n=123456789例jc3_a16例3.3實(shí)型數(shù)據(jù)的輸出(第5周)main(){floatx=1234.56,y=1.23456789;
doublez=1234567.123456789;printf("x=%f,y=%f\n",x,y);printf("z=%f\n",z);printf("z=%e\n",z);printf("z=%18.8f\n",z);printf("x=%10.3f\n",x);printf("x=%-10.3f\n",x);printf("x=%4.3f\n\n",x);}程序輸出:x=1234.560059,y=1.234568z=1234567.123457z=1.23457e+06z=1234567.12345679x=1234.560x=1234.560x=1234.560例jc3_b17例3.4字符型數(shù)據(jù)的輸出main(){intm=97;
charch='B';printf("m:%d%c\n",m,m);printf("ch:%d%c\n",ch,ch);printf("%s\n","student");printf("%10s\n","student");printf("%-10s\n","student");printf("%10.3s\n","student");printf("%.3s\n\n","student");}程序輸出:m:97ach:66Bstudentstudentstudentstustu例jc3_c18注意:printf函數(shù)格式控制中的格式說明符與輸出參數(shù)的個(gè)數(shù)和類型必須一一對(duì)應(yīng)。格式說明符的%和后面的描述符之間不能有空格。除%X、%E、%G外類型描述符必須是小寫字母。長(zhǎng)整型數(shù)應(yīng)該用%ld(或%lo、%lx、%lu)格式輸出,否則會(huì)出現(xiàn)輸出錯(cuò)誤。printf函數(shù)的參數(shù)可以是常量、變量或表達(dá)式。在計(jì)算各參數(shù)值時(shí),TurboC采用從右至左的順序求值。193.3數(shù)據(jù)輸入主要內(nèi)容:字符輸入函數(shù)格式輸入函數(shù)203.3.1字符輸入函數(shù)(自學(xué))函數(shù)調(diào)用的一般形式
getchar()功能:從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)上輸入一個(gè)字符。例如:getchar();c=getchar();printf("%c\n",getchar());213.3.2格式輸入函數(shù)函數(shù)調(diào)用的一般形式scanf(格式控制,地址參數(shù)2…,地址參數(shù)n);功能:按格式控制指定的格式,從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)交互輸入數(shù)據(jù),并依次存放到對(duì)應(yīng)地址參數(shù)指定的變量中(即將輸入值賦給變量)。
例如:scanf("%d%f",&a,&f);scanf("%o,%f",&b,&x);scanf("a=%d,b=%d",&a,&b);22格式控制用雙引號(hào)括起的字符串,用于指定輸入數(shù)據(jù)的類型、格式、個(gè)數(shù)以及輸入的形式
包括:普通字符和格式說明符照原樣輸入
scanf("a=%d,b=%d",&a,&b);格式說明符:指定輸入2個(gè)十進(jìn)制整型數(shù)賦給變量a和b23輸入格式說明符整型數(shù)據(jù)
%d輸入十進(jìn)制整型數(shù)%u輸入無符號(hào)的十進(jìn)制整型數(shù)%o輸入八進(jìn)制整型數(shù)%x輸入十六進(jìn)制整型數(shù)實(shí)型數(shù)據(jù)
%f輸入小數(shù)形式的單精度實(shí)型數(shù)%e輸入指數(shù)形式的單精度實(shí)型數(shù)字符型數(shù)據(jù)
%c輸入單個(gè)字符%s輸入一個(gè)字符串在%和格式符之間可以使用附加說明符24附加格式說明符l與d、o、x、u結(jié)合輸入長(zhǎng)整型數(shù)與f結(jié)合輸入double型數(shù)m指定輸入數(shù)據(jù)的寬度*忽略讀入的數(shù)據(jù)(即不將讀入數(shù)據(jù)賦給相應(yīng)變量)例如:%ld、%lo——輸入十進(jìn)制、八進(jìn)制長(zhǎng)整型數(shù)%lf、%le——輸入雙精度實(shí)型數(shù)%mf——輸入m位數(shù)(域?qū)挘?*d——忽略輸入的一個(gè)整型數(shù)對(duì)float和double型指整數(shù)位數(shù)+小數(shù)點(diǎn)+小數(shù)位數(shù)此變量接收下一個(gè)數(shù)據(jù)25例如:scanf("%d%d%d",&a,&b,&c);
輸入3個(gè)十進(jìn)制整型數(shù),以空白符(空格、tab鍵或回車鍵)分隔
scanf("%d,%o,%f",&a,&b,&x);
輸入3個(gè)數(shù),以“,”分隔scanf("a=%d,b=%d",&a,&b);
輸入的形式是:a=32,b=28(普通字符要照原樣輸入)例jc3_226#include<stdio.h>main(){
inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙程序舉例27#include<stdio.h>main(){
inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=5,a+b=1712345a↙28#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題1:當(dāng)要求程序輸出結(jié)果為
a=12,b=34時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?
12└┚34↙輸入數(shù)據(jù)的格式控制29#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題2:當(dāng)限定用戶輸入數(shù)據(jù)以逗號(hào)為分隔符,即輸入數(shù)據(jù)格式為:12,34↙時(shí),應(yīng)修改程序中的哪條語句?怎樣修改?scanf("%d,%d",&a,&b);
輸入數(shù)據(jù)的格式控制30#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題3:語句scanf("%d%d",&a,&b);修改為scanf("a=%d,b=%d",&a,&b);時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?a=12,b=34↙輸入數(shù)據(jù)的格式控制31#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}
問題4:限定用戶輸入數(shù)據(jù)為以下格式為
1234↙
同時(shí)要求程序輸出結(jié)果為a=12,b=34scanf("%2d%2d",&a,&b);輸入數(shù)據(jù)的格式控制32#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}
問題5:限定用戶輸入數(shù)據(jù)為以下格式為12↙34↙
同時(shí)要求程序輸出結(jié)果為a="12",b="34"scanf("%d%d",&a,&b);printf("a=\"%d\",b=\"%d\"\n",a,b);輸入數(shù)據(jù)的格式控制33#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題6:設(shè)計(jì)程序使得用戶可以以任意字符(回車、空格、制表符、逗號(hào)、其它)作為分隔符進(jìn)行數(shù)據(jù)的輸入scanf("%d%*c%d",&a,&b);
輸入數(shù)據(jù)的格式控制34#include<stdio.h>main(){
intdata1,data2,sum;
charop;
printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2
第1次測(cè)試12+3↙123129=3141C格式符存在的問題及其解決例jc3_335#include<stdio.h>main(){
intdata1,data2,sum;
charop;
printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2
第2次測(cè)試123↙123=15C格式符存在的問題及其解決36#include<stdio.h>main(){
intdata1,data2,sum;
charop;
printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2
第3次測(cè)試12+3↙12+3=15C格式符存在的問題及其解決37#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:希望得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12character
:afloatnumber:3.500000C格式符存在的問題及其解決38#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:結(jié)果好像很奇怪嘛!12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000C格式符存在的問題及其解決39#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%1s",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:程序修改后得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12character
:afloatnumber:3.500000C格式符存在的問題及其解決40#include<stdio.h>main(){
intdata1,data2,sum;
charop;
printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%1s%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}12+3↙12+3↙12↙+↙3↙以任意分割符輸入加法算式,可能嗎?41使用scanf函數(shù)應(yīng)注意:要求在程序運(yùn)行中輸入數(shù)據(jù),輸入的數(shù)據(jù)個(gè)數(shù)和類型必須與格式說明符一一對(duì)應(yīng)。地址參數(shù)形式:&變量名(除數(shù)組或指針變量)。
格式控制中有普通字符時(shí),必須照原樣輸入。格式控制中無普通字符時(shí),輸入的數(shù)值型數(shù)據(jù)和字符串用空白符分隔,字符型數(shù)據(jù)不必分隔。double型數(shù)據(jù)輸入時(shí),必須用%lf或%le格式。實(shí)型數(shù)輸入時(shí)域?qū)挷荒苡胢.n形式的附加說明。為了減少不必要的輸入量,格式控制中盡量不要出現(xiàn)普通字符,也不要使用
‘\n’
、‘\t’
等轉(zhuǎn)義字符。423.4順序結(jié)構(gòu)程序設(shè)計(jì)3.4.1順序結(jié)構(gòu)程序的一般算法描述變量定義變量賦值運(yùn)算處理輸出結(jié)果可用:變量初始化賦值語句輸入函數(shù)調(diào)用語句注意各個(gè)語句的順序433.4.2順序結(jié)構(gòu)程序設(shè)計(jì)舉例【例3.15】數(shù)據(jù)交換。從鍵盤輸入a、b的值,輸出交換以后的值。
思路:在計(jì)算機(jī)中交換變量a和b的值,不能只寫下面兩個(gè)賦值語句a=b;b=a;?正確的交換方法:a123b78c?12378123c=a;a=b;b=c;44程序:main(){inta,b,c;printf("\ninput
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶信息技術(shù)職業(yè)學(xué)院《管理工程數(shù)學(xué)基礎(chǔ)一》2023-2024學(xué)年第二學(xué)期期末試卷
- 洛陽理工學(xué)院《藥理學(xué)醫(yī)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶醫(yī)科大學(xué)《生物化學(xué)(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州工業(yè)職業(yè)技術(shù)學(xué)院《客戶關(guān)系管理B》2023-2024學(xué)年第二學(xué)期期末試卷
- 亳州職業(yè)技術(shù)學(xué)院《風(fēng)險(xiǎn)管理基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東交通職業(yè)學(xué)院《教師教學(xué)語言藝術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川衛(wèi)生康復(fù)職業(yè)學(xué)院《土木工程專業(yè)前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 無錫太湖學(xué)院《工程物探》2023-2024學(xué)年第二學(xué)期期末試卷
- 企業(yè)抵押貸款合同樣本參考
- 項(xiàng)目經(jīng)理勞動(dòng)合同范文
- 山東省淄博市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量檢測(cè)數(shù)學(xué)試題
- 2025屆新高考生物精準(zhǔn)復(fù)習(xí)+提高農(nóng)作物產(chǎn)量
- TD/T 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程(正式版)
- 2024年時(shí)政試題庫(kù)(奪分金卷)
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案1套
- 工程項(xiàng)目移交方案
- 高級(jí)英語-第一冊(cè)-課后習(xí)題答案
- 《帶電作業(yè)用絕緣工具試驗(yàn)導(dǎo)則》
- 2024年時(shí)事政治熱點(diǎn)題庫(kù)200道附完整答案【必刷】
- 2024年山東信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握小堵殬I(yè)技能測(cè)試》參考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論