




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章最簡單的C程序設計——順序程序設計
4.1C語句概述
4.1.1C語言語句分類:1、操作運算語句:用于描述計算機要執(zhí)行的操作運算(如算術(shù)運算、賦值、輸出等),由于C語言的操作運算用表達式進行,這類語句又叫表達式語句。2、流程控制語句:控制操作運算的執(zhí)行順序(第5、6章介紹)。(1)形成流程控制結(jié)構(gòu)的語句a、選擇結(jié)構(gòu)控制語句:if語句、switch語句b、循環(huán)結(jié)構(gòu)控制語句:while語句、do…while語句、for語句(2)流程轉(zhuǎn)向語句a、限定轉(zhuǎn)向語句:break語句、continue語句、return語句b、自由轉(zhuǎn)向語句:goto語句4.1.2C語言語句一覽表:
賦值表達式語句簡單表達式語句函數(shù)調(diào)用語句表達式語句空語句逗號表達式(復合表達式)語句單分支結(jié)構(gòu):if語句選擇結(jié)構(gòu)雙分支結(jié)構(gòu):if…else語句基本語句形成流程控制語句elseif嵌套語句控制結(jié)構(gòu)多分支結(jié)構(gòu)switch語句C的語句while語句語循環(huán)結(jié)構(gòu)do…while語句言流程控控制語句for語句語制語句break語句句限定轉(zhuǎn)continue語句流程轉(zhuǎn)向語句return語句向語句自由轉(zhuǎn)向語句:goto語句復合語句(就是用{}把一些語句括起來)4.1.3表達式語句1、賦值語句(1)形成:將賦值表達式加上“;”號就構(gòu)成了賦值語句;(2)由復合賦值運算符或自增、自減運算符組成的表達式也是賦值表達式。例如有如下一些賦值類表達式語句:a=b+c;a+=b;i++;--j;等等。2、函數(shù)調(diào)用語句(由于表達式中可包含函數(shù)調(diào)用,單純函數(shù)調(diào)用是表達式特例)形成:函數(shù)調(diào)用加“;”號,如scanf();printf();等等。
3、空語句:沒有內(nèi)容的語句,只有一個“;”。例如:……;/*空語句*/……
作用:空語句不進行任何操作。是程序員為今后增加語句保留位置做的記號。4、逗號表達式語句:由逗號表達式加“;”組成,如:
i=3,i++,++i,i+5;★其實,在C語言中,所有表達式加“;”都構(gòu)成表達式語句,只是有些表達式語句(如3;或者a+b*c;)沒有什么實際意義而已。4.1.4復合語句(語句塊、分程序)1、構(gòu)成:在函數(shù)的執(zhí)行部分用一對花括號括起若干語句。如:……{a++;b*=a;
printf("a=%d,b=%d\n",a,b);}……注意:“}”之后沒有“;”!2、作用
(1)當作一條語句使用,一般用在只能使用一條語句,卻又必須使用多條語句的地方。例如作為選擇結(jié)構(gòu)的一個分支或作為循環(huán)結(jié)構(gòu)的循環(huán)體。
(2)當作函數(shù)中的一個獨立部分,此時復合語句中除了有可執(zhí)行語句外,在可執(zhí)行語句的前面還可以有說明部分語句(如定義變量等),因此叫做“分程序”。例如:
main(){inta=2;……{intb;b=3;printf(“%d\n”,a+b);分程序}……}注意:復合語句(分程序)中定義的變量只能在分程序中使用。4.2順序結(jié)構(gòu)程序設計
1、順序結(jié)構(gòu)的組成
(1)
表達式語句
(2)
復合語句2、順序結(jié)構(gòu)與選擇、循環(huán)結(jié)構(gòu)的關(guān)系:可相互嵌套。
4.3數(shù)據(jù)輸入和輸出及其在C語言中的實現(xiàn)1、C語言輸入和輸出都是通過系統(tǒng)的庫函數(shù)來完成的。2、C輸入、輸出庫函數(shù):(1)輸入、輸出字符函數(shù):getchar()和putchar()(2)格式化輸入、輸出函數(shù):scanf()和printf()(3)輸入、輸出字符串函數(shù):gets()和puts()注:這些庫函數(shù)均是通過標準的輸入和輸出設備(鍵盤和顯示器)輸入和輸出的。都包含在頭文件stdio.h中,故在源文件開頭需要預編譯命令:#include“stdio.h”或#include<stdio.h>。4.4字符數(shù)據(jù)的輸入輸出函數(shù)4.4.1字符輸出函數(shù)putchar()1、調(diào)用格式:putchar(ch);/*ch是字符變量或字符常量*/2、作用:將字符ch輸出到屏幕上。如:charc1='X';putchar(c1);putchar('Y');輸出XY。4.4.2字符輸入函數(shù)getchar()1、調(diào)用的一般格式:ch=getchar();/*ch是字符變量*/2、作用:通過鍵盤輸入字符,存入緩沖區(qū),給變量賦值。讀入的字符包括各種字符(含空格、Tab和回車等,因此注意輸入時不要隨意輸入空格,并注意回車的處理,否則變量得不到正確的字符)。注意:如果在一個函數(shù)中要調(diào)用putchar()和getchar(),應該在該函數(shù)的前面(或文本開頭)加上“包含命令”:#include<stdio.h>
#include<stdio.h>main(){intc;
printf("Enteracharacter:");c=getchar();
printf("%c--->hex%x\n",c,c);}運行結(jié)果:Enteracharacter:AA--->hex414.5格式輸入與輸出4.5.1格式輸出函數(shù)printf()1、一般調(diào)用格式:printf(格式控制字符串,輸出項1,輸出項2,…)(1)“格式控制字符串”包括:a、格式說明:以%開頭、格式字符(P32表3-2)結(jié)束,控制輸出項的輸出格式。b、普通字符:ASCII碼字符、漢字,原樣輸出。如"a="、"最大值="等。c、轉(zhuǎn)義字符,如\n回車換行、\t控制到下一個制表站等。(2)輸出項:可以是常量、變量、函數(shù)調(diào)用和表達式。2、格式說明(1)完整的格式說明
%―+0#整數(shù)1.整數(shù)2l或h格式字符指定輸出數(shù)據(jù)類型格式終止符長度修正:l:對整型指long
對實型指doubleh:指短整型整數(shù)1:域?qū)?輸出總字符數(shù))適用各種類型整數(shù)2:對實數(shù)為小數(shù)位數(shù)對整數(shù)為數(shù)字個數(shù):
大于實際個數(shù)前面補0
小于實際個數(shù)按實際個數(shù)輸出對字符串為輸出字符的個數(shù)對格式字符o(八進制)數(shù)字前加0
對格式字符x或X(十六進制)數(shù)字前加0x或0X
對數(shù)值輸出,右對齊時左空位補0(缺省補空格)
對數(shù)值輸出,總輸出符號(+號或―號)缺省只輸出―號左對齊輸出,缺省按域?qū)捰覍R輸出格式起始符(2)補充說明a、實數(shù)的精度(有效數(shù)字)由輸出項類型控制(float7位double16位),對float型輸出項用%lf格式不能增加精度;
輸出實數(shù)的小數(shù)位數(shù)由“整數(shù)2”控制,增大“整數(shù)2”不能增加精度。
b、“整數(shù)1”表示域?qū)挘罢麛?shù)2”作用見上圖①兩者均缺省情況下:對整數(shù)和字符串按實際字符數(shù)輸出;
對實數(shù)(float和double):小數(shù)型:整數(shù)部分原樣輸出,默認輸出6位小數(shù),多余小數(shù)四舍五入處理。指數(shù)型:正數(shù)默認輸出1位非0整數(shù)(負數(shù)有負號)、小數(shù)點、6位小數(shù)、5位指數(shù)(e或E、+或―號及3位指數(shù))共13個字符(負數(shù)14個字符)。(vc環(huán)境,tc環(huán)境與上不同)②指定域?qū)挷蛔悖葱柙黾佑驅(qū)?。③指定域?qū)捀挥啵喝笔?―"右對齊:
無"0"控制:前加空格;有"0"控制:數(shù)值型前加0填齊;其它類型前加空格。有"―"控制左對齊,按域?qū)捄竺婕涌崭?。例inta=1234;floatf=123.456;floatb=54.35678432charch=‘a(chǎn)’;
printf(“%d,%f,%e”,a,f,b);printf(“%8d,%2d\n”,a,a);printf(“%8f,%8.1f,%.2f,%.2e,%.8e\n”,f,f,f,f,f);printf(“%3c\n”,ch);例m.n(注:VC++中%m.nen指數(shù)值部分小數(shù)的位數(shù))運行1234,123.456000,5.435684e+001結(jié)果:----1234,1234123.456000,---123.5,123.46,1.23e+002,1.23456000e+002--a例staticchara[]=“Hello,world!”printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);運行結(jié)果:Hello,world!
---Hello,world!-----HelloHelloHel
例inta=1234;floatf=123.456;staticcharc[]=“Hello,world!”;printf(“%8d,%-8d\n”,a,a);printf(“%10.2f,%-10.1f\n”,f,f);printf(“%10.5s,%-10.3s\n”,c,c);運行結(jié)果:----1234,1234----
----123.46,123.5-----
-----Hello,Hel-------例-例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%+08d\n”,a);printf(“%+010.2f\n”,f);例0、+例inta=123;printf(“%o,%#6o,%X,%#6X\n”,a,a,a,a);
例#//00001234//0000123.46//+0001234//+000123.46//173,--0173,7B,--0X7B3、輸出:從右向左計算輸出項后,按格式說明的順序、類型和要求對應輸出。(1)格式說明和輸出項的個數(shù)應相同,如不匹配系統(tǒng)并不報錯,將不能正確輸出。
a、格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項將不輸出;
b、格式說明的個數(shù)多于輸出項的個數(shù),多余的格式說明將輸出隨機的值。(2)在“格式控制字符串”中可用%%輸出一個%。4.5.2格式輸入函數(shù)scanf()1、一般調(diào)用形式:
scanf(格式控制字符串,地址1,地址2,…)(1)“格式控制字符串”包括:a、格式說明:控制輸入項的類型等。b、數(shù)據(jù)分隔符,如“,”、空格等。用了分隔符在輸入時就必須用該字符分隔數(shù)據(jù),否則出錯;可以不用數(shù)據(jù)分隔符,此時在輸入數(shù)值數(shù)據(jù)時必須用空格(Tab鍵或回車)分隔數(shù)據(jù),輸入字符數(shù)據(jù)不能用空格(Tab鍵或回車)!(2)變量“地址”形式為:&變量名(3)scanf函數(shù)的作用:通過鍵盤輸入數(shù)據(jù)到緩沖區(qū),按照各格式說明取得數(shù)據(jù)存放到對應的內(nèi)存地址中。例如有程序段:inta,b;scanf("%d%d",&a,&b);執(zhí)行的結(jié)果是:通過鍵盤輸入2個十進制有符號整數(shù),例如:123-456↙分別送到變量a、b的內(nèi)存地址中去。2、格式控制字符串(1)輸入一個數(shù)據(jù)的較完整的格式說明:
%*整數(shù)l或h格式字符指定輸入數(shù)據(jù)類型(P37表3-3)
格式終止符(一般只能用小寫)
長度修正:l:對整型指long(l必須增加)
對實型指double(l必須增加)h:指短整型(l必須增加)
輸入域?qū)捳f明(注意:無小數(shù)位數(shù))
賦值抑制符,跳過對應本項輸入的數(shù)據(jù)格式說明起始符例intk;floatf;
scanf(“%3d%*4d%f”,&k,&f);
輸入12345678765.43則123k,8765.43f例charc1,c2;scanf(“%3c%2c”,&c1,&c2);
輸入abcde
則‘a(chǎn)’c1,‘d’c2(2)注意事項a、在格式控制字符串中,格式說明的類型與輸入項的類型應一一對應匹配。如果類型不匹配,系統(tǒng)并不報錯,但得不到正確的數(shù)據(jù)。b、在格式控制字符串中,格式說明的個數(shù)應與輸入項的個數(shù)相同。若格式說明的個數(shù)少于輸入項的個數(shù),按格式說明的個數(shù)輸入前面的輸入項,多余的輸入項沒有輸入數(shù)據(jù);若格式說明的個數(shù)多于輸入項的個數(shù),按格式說明的個數(shù)輸入完后結(jié)束輸入,多余的數(shù)據(jù)留給下次輸入用。3、分隔輸入數(shù)據(jù)的方法:
a、按格式字符取得數(shù)據(jù),當遇到類型不符的輸入時,認為一數(shù)據(jù)項結(jié)束。例、main(){inta;charb;floatc;printf("inputabc:");scanf("%d%c%f",&a,&b,&c);printf("\na=%d,b=%c,c=%f",a,b,c);}運行時輸入及結(jié)果為:inputabc:1234r1234.567↙輸出:a=1234,b=r,c=1234.567017b、當格式說明中有域?qū)挄r,按域?qū)挿指舫鰯?shù)據(jù)項。例、main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}運行時輸入:123456.78987654321↙輸出:a=12,b=345.000000,c=6.780000c、用分隔符分隔數(shù)據(jù)①在格式控制字符串中沒有分隔符,輸入時可用空格、Tab鍵、回車鍵分隔數(shù)據(jù)(均為默認分隔符,無須在格式控制字符串中加入);注意:字符型數(shù)據(jù)。
②在格式控制字符串中有分隔符(如逗號等),輸入時要原樣輸入,如果輸錯,將不能得到正確的數(shù)據(jù)。例scanf(“%d,%d”,&a,&b)
輸入3,4
則3a,4b例scanf(“%d%o%x”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
輸入123123123
輸出a=123,b=83,c=291例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
輸入a=12,b=24,c=36
綜合應用實例:例從鍵盤輸入大寫字母,用小寫字母輸出#include"stdio.h"main(){charc1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1+32;printf("%c,%d\n",c2,c2);}輸入:A
輸出:A,65a,97例交換x、y的值main(){intx,y,t;
printf(“Enterx&y:\n”);
scanf(“%d%d”,&x,&y);
printf(“x=%dy=%d\n”,x,y);t=x;x=y;y=t;
printf(“x=%dy=%d\n”,x,y);}變量交換,可不用中間變量,用如下方法:(1)a=a+b;b=a-b;a=a-b;(2)a=a^b;b=a^b;a=a^b;【例3-18】分析下面程序的運行結(jié)果(P45)#include<stdio.h>main(){intx=1,y=5;
printf("x=%%d,y=%d",x,y);}
【例3-19】分析下面程序的運行結(jié)果(P45)#include<stdio.h>main(){inta,b;a=0x41; /*65*/b=++a; /*66*/
printf("%d,%d\n",a--,--b);
printf("%c,%c\n",++a,b++);}
實驗三1、使用函數(shù)getchar()與putchar()編寫將B,e,i,j,i,n,g以單個字符賦給變量后顯示beijing的程序2、使用函數(shù)printf()編制程序顯示下面圖形
abbbccccc3、用下面的scanf函數(shù)輸入數(shù)據(jù),使a=10,b=20,c1=‘A’,c2=‘a(chǎn)’,x=1.5,y=-3.75,z=67.8,請問在鍵盤上如何輸入數(shù)據(jù)?并用printf函數(shù)將各個變量輸出
scanf(“%5d%5d%c%c%f%f%*f%f”,&a,&b,&c1,&c2,&x,&y,&z);習題課1、
scanf(“%c%c%c”,&c1,&c2,&c3);
若輸入abc
則ac1,
c2,bc32、intx;charch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123輸出:x=123,ch=103、已知
intk1,k2,k3,k4,為使k1=10,k3=10且k2=20,k4=20,則對應下列scanf函數(shù)調(diào)用語句的正確輸入方式是()scanf(“%d%d”,&k1,&k2);scanf(“%d,%d”,&k3,&k4);A.1020<CR>B.10_20<CR>1020<CR>10_20<CR>C.10,20<CR>D.10_20<CR>10,20<CR>10,20<CR>4、已知charch;intk;為了使ch=’c’,k=555,正確的scanf函數(shù)調(diào)用語句和相應的數(shù)據(jù)輸入是()A.scanf(“%3c%3d”,&ch,&k);abc_555<CR>B.scanf(“%3c%*d%3d”,&ch,&k);cba_555_123<CR>C.scanf(“ch=%3c%*dk=%3d”,&ch,&k);ch=cba_123_k=555<CR>D.scanf(“%*d%d%c”,&k,&ch);12_555_c<CR>
5、已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是()inta1,a2;charc1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);1020ABB.10-20ABC.10--20--ABD.10-20AB6、根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為()已有定義:floatf1,f2;數(shù)據(jù)的輸入方式:4.523.5scanf(“%f,%f”,&f1,&f2);B.scanf(“%f%f”,&f1,&f2);C.scanf(“%3.2f-%2.1f”,&f1,&f2);D.scanf(“%3.2f%2.1f”,&f1,&f2);7、執(zhí)行以下程序時,若從第一列開始輸入數(shù)據(jù),為使變量a=3,b=7,x=8.5,y=71.82,c1=‘A’,c2=‘a(chǎn)’,正確的數(shù)據(jù)輸入形式是:main(){inta,b;floatx,y;charc1,c2;
scanf(“a=%d-b=%d”,&a,&b);
scanf(“x=%f-y=%f”,&x,&y);scanf(“c1=%c-c2=%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑裝飾施工中的質(zhì)量保證措施考核試卷
- 中藥材種植的農(nóng)業(yè)生態(tài)環(huán)境保護法制建設考核試卷
- 批發(fā)業(yè)務會計與財務管理考核試卷
- 文化空間營造考核試卷
- 體育運動訓練中的運動康復技術(shù)考核試卷
- 體育航空運動飛行器空中交通管制操作考核試卷
- 寵物友好郵輪旅行船上寵物友好娛樂活動策劃分享考核試卷
- 走路的安全課件
- 勞動合同補充合同范本
- 綠化租賃合同范本
- 筋膜刀的臨床應用
- DB32-T 4790-2024建筑施工特種作業(yè)人員安全操作技能考核標準
- 2022年安徽阜陽太和縣人民醫(yī)院本科及以上學歷招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 2024-2030年中國反芻動物飼料行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 護理團體標準解讀-成人氧氣吸入療法護理
- 幼兒園大班《識字卡》課件
- 2024-2030全球與中國寵物醫(yī)院市場現(xiàn)狀及未來發(fā)展趨勢
- 《研學旅行課程設計》課件-2認識研學旅行的參與方
- 安全警示教育的會議記錄內(nèi)容
- 夫妻異地辭職信
- 2024年度-銀行不良清收技巧培訓課件(學員版)
評論
0/150
提交評論