![第4章 最簡單的C程序設計-順序程序設計_第1頁](http://file4.renrendoc.com/view/0edaae04fb1bcb575c07723d94d0809f/0edaae04fb1bcb575c07723d94d0809f1.gif)
![第4章 最簡單的C程序設計-順序程序設計_第2頁](http://file4.renrendoc.com/view/0edaae04fb1bcb575c07723d94d0809f/0edaae04fb1bcb575c07723d94d0809f2.gif)
![第4章 最簡單的C程序設計-順序程序設計_第3頁](http://file4.renrendoc.com/view/0edaae04fb1bcb575c07723d94d0809f/0edaae04fb1bcb575c07723d94d0809f3.gif)
![第4章 最簡單的C程序設計-順序程序設計_第4頁](http://file4.renrendoc.com/view/0edaae04fb1bcb575c07723d94d0809f/0edaae04fb1bcb575c07723d94d0809f4.gif)
![第4章 最簡單的C程序設計-順序程序設計_第5頁](http://file4.renrendoc.com/view/0edaae04fb1bcb575c07723d94d0809f/0edaae04fb1bcb575c07723d94d0809f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計柯式鎮(zhèn)測井研究中心講義與備忘
wksz@89733317(O)139103808702/4/20231第4章順序結(jié)構程序設計2/4/202324.0程序結(jié)構回顧AB順序結(jié)構即按照語句書寫順序執(zhí)行的程序結(jié)構。(1)順序結(jié)構2/4/20233…k=k2k≠k1…kkk=kkk=k1kA1A2BAk圖3-4多分支選擇結(jié)構真(非0)假(0)AB條件圖3-3雙分支選擇結(jié)構(2)選擇結(jié)構示意圖選擇結(jié)構又稱為分支結(jié)構,是指有條件地選擇要執(zhí)行的程序段。2/4/20234假(0)真(非0)A條件真(0)假(0)A條件(3)循環(huán)結(jié)構當條件成立時,反復執(zhí)行程序段A,否則不執(zhí)行。先執(zhí)行程序段A,再判斷條件是否為“真”;若為“真”,再執(zhí)行A,如此反復,直到條件為“假”(0)為止。2/4/202354.1C語句概述C語言編寫的程序由若干條C語句組成。C語句是專門用來向計算系統(tǒng)發(fā)出的操作指令,它用于完成一定的操作任務。每條C語句經(jīng)編譯后產(chǎn)生若干條機器指令。歸納如下:(1)C程序?qū)?shù)據(jù)的處理是通過“語句”的執(zhí)行來實現(xiàn)的。(2)一條語句完成一項操作(或功能)。(3)一個為實現(xiàn)特定目的的程序應包含若干條語句。程序舉例:voidmain(void){floata,b,c;a=1.5;scanf(“%f”,&b);c=a+b;printf(“c=%f\n”,c);}2/4/20236表達式語句(表達式;)簡單語句函數(shù)調(diào)用語句(函數(shù)名(參數(shù)表);)空語句(;)C語言數(shù)據(jù)操作復合語句({一條或多條語句})語句條件語句(if語句,switch語句)結(jié)構化語句while語句循環(huán)語句do_while語句for語句流程控制語句break語句限定轉(zhuǎn)向語句continue語句非結(jié)構化語句return語句非限定轉(zhuǎn)向語句(goto語句)C語句的分類:2/4/202374.1.1簡單語句1.表達式語句由表達式組成的語句稱為表達式語句語句格式:表達式;分號(;)是語句結(jié)束的標志功能:計算表達式或改變變量的值。分類:運算符表達式語句賦值語句2/4/20238運算符表達式語句運算符表達式后跟一個分號組成例:5;i++;語句的功能是,變量i的值增1。a=3,b=a+2,c=a+1;/*由三個賦值語句組成的逗號表達式語句。*/
(1)a+b; /*算術表達式語句,計算a與b之和。*/2/4/20239賦值語句賦值表達式后跟一個分號組成(2)例:x=y+z;/*計算y+z的和并賦值給變量x.。*/
x=2;y=3;2/4/2023102.函數(shù)調(diào)用語句由函數(shù)調(diào)用表達式后跟一個分號組成格式:函數(shù)名(參數(shù)列表);分類:標準庫函數(shù)用戶定義函數(shù)標準庫函數(shù)調(diào)用原則:(1)要在程序中包含相應的頭文件(2)調(diào)用的一般形式:函數(shù)名(參數(shù)列表);2/4/202311標準函數(shù)調(diào)用的目的(1)如數(shù)學函數(shù),為了得到函數(shù)的返回值。這類函數(shù)的調(diào)用一般出現(xiàn)在表達式中,作為表達式語句的一部分。(2)為了完成某項任務,而不是為了得到返回值。調(diào)用這類函數(shù)時,就直接用函數(shù)調(diào)用語句。例:scanf("%f",&x);printf("%f",x);例如:y=a*cos(w*x)+c;2/4/2023124.1.2復合語句一對大括號{}包圍若干條語句組成。格式:{[數(shù)據(jù)說明部分;]執(zhí)行語句部分;}注意:(1)在復合語句中的“內(nèi)部數(shù)據(jù)描述語句”中定義的變量,是局部變量,僅在復合語句中有效。(2)復合語句結(jié)束的“}”之后,不需要分號。(3)復合語句可以出現(xiàn)在任何數(shù)據(jù)操作語句可以出現(xiàn)的地方。2/4/2023134.1.3空語句空語句就是一個分號。格式:;功能:執(zhí)行該語句不做任何操作,一般用于延遲時間。2/4/202314控制語句,完成一定的控制功能。C有9種控制語句:①if()~else~(條件語句)②for()~(循環(huán)語句)③while()~(循環(huán)語句)④do~while()(循環(huán)語句)⑤continue(結(jié)束本次循環(huán)語句)⑥break(中止執(zhí)行switch或循環(huán)語句)⑦switch(多分支選擇語句)⑧goto (轉(zhuǎn)向語句)⑨return(從函數(shù)返回語句)這9種語句中的括號()表示其中是一個條件,~表示內(nèi)嵌的語句。4.1.4流程控制語句2/4/2023154.2賦值運算符、賦值表達式
和賦值語句一、賦值運算符賦值符號“=”就是賦值運算符,其作用是將一個數(shù)據(jù)賦給一個變量。如“a=3”的作用是執(zhí)行一次賦值操作(或稱賦值運算)。把常量3賦給變量a。也可以將一個表達式的值賦給一個變量。
2/4/202316二、類型轉(zhuǎn)換
如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進行類型轉(zhuǎn)換。不同類型的整型數(shù)據(jù)間的賦值:按存儲單元中的存儲形式直接傳送。
1將實型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄實數(shù)的小數(shù)部分。如i為整型變量,執(zhí)行“i=3.56”的結(jié)果是使i的值為3。2/4/202317類型轉(zhuǎn)換(1)2將整型數(shù)據(jù)賦給單、雙精度實型變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中,如將23賦給f1oat變量f,即f=23,先將23轉(zhuǎn)換成23.00000,再存儲在f中。如將23賦給double型變量d,即d=23,則將23補足有效位數(shù)字為23.00000000000000,然后以雙精度浮點數(shù)形式存儲到d中。3將一個double型數(shù)據(jù)賦給float變量時,截取其前面7位有效數(shù)字,存放在float變量的存儲單元(32位)中。將一個float型數(shù)據(jù)賦給double變量時,數(shù)值不變,有效數(shù)字擴展為16位,在內(nèi)存中以64位存儲。2/4/202318類型轉(zhuǎn)換(2)4字符型數(shù)據(jù)賦給整型變量時,由于字符只占一個字節(jié),而整型變量為2個字節(jié),因此將字符數(shù)據(jù)(8位)放到整型變量低8位中。有兩種情況:(1)如果所用系統(tǒng)將字符處理為無符號的量或?qū)nsignedchar型變量賦值,則將字符的8位放到整型變量低8位,高8位補零;(2)如果所用系統(tǒng)(如TurboC)將字符處理為帶符號的量(即signedchar),若字符最高位為0,則整型變量高8位補0;若字符最高位為1,則高8位全補1。這稱為“符號擴展”,這樣做的目的是使數(shù)值保持不變。5將int、short、long型數(shù)據(jù)賦給一個char型變量時,只將其低8位原封不動地送到char型變量(即截斷)。2/4/202319類型轉(zhuǎn)換(3)6將帶符號的整型數(shù)據(jù)(int型)賦給long型變量時,要進行符號擴展,如果int型數(shù)據(jù)為正值(符號位為0),則longint型變量的高16位補0。如果int型變量為負值(符號位為1),則long型變量的高16位補1,將整型數(shù)的16位送到long型低16位中,以保持數(shù)值不改變。反之,若將一個longint型數(shù)據(jù)賦給一個int型變量,只將longint型數(shù)據(jù)中低16位原封不動送到整型變量。7將unsignedint型數(shù)據(jù)賦給longint型變量時,不存在符號擴展問題,只需將高位補0即可。將一個unsigned類型數(shù)據(jù)賦給一個占字節(jié)數(shù)相同的整型變量,將unsigned型變量的內(nèi)容原樣送到非unsigned型變量中,但如果數(shù)據(jù)范圍超過相應整型的范圍,則會出現(xiàn)數(shù)據(jù)錯誤。如:unsignedinta=65535;intb;b=a;將a送到b中,由于b是int型,第1位是符號位,b的值為-1。該部分自學!2/4/202320例有符號數(shù)據(jù)傳送給無符號變量#include<stdio.h>voidmain(){unsigneda;intb=-1;a=b;printf(“%u”,a);}運行結(jié)果為655352/4/202321三、復合賦值運算符在賦值符“=”之前加上其它運算符,可以構成復合賦值運算符。凡是二元(二目)運算符,都可以與賦值符一起組合成復合賦值符。C語言規(guī)定可以使用10種復合賦值運算符:+=,-=,*=,/=,%=(復合算術運算符)<<=,>>=,&=,^=,|=(復合位運算符)。例如:a+=3 等價于a=a+3:相當于使a進行一次自加(3)的操作;x*=y+8等價于x=x*(y+8)x%=3等價于x=x%3C采用這種復合運算符,一是為了簡化程序,使程序精練;二是為了提高編譯效率。2/4/202322四、賦值表達式由賦值運算符將一個變量和一個表達式連接起來的式子稱為“賦值表達式”,其一般形式為〈變量〉〈賦值運算符〉〈表達式〉如“a=5”是一個賦值表達式。對賦值表達式求解的過程是:將賦值運算符右側(cè)的“表達式”的值賦給左側(cè)的變量。賦值表達式的值就是被賦值的變量的值。上述一般形式的賦值表達式中的“表達式”又可以是一個賦值表達式。如:a=(b=5)括弧內(nèi)的“b=5”是一個賦值表達式,它的值等于5,因此“a=(b=5)”相當于“a=5”,a的值等于5,整個賦值表達式的值也等于5。賦值運算符按照“自右而左”的結(jié)合順序。2/4/202323四、賦值表達式(續(xù))賦值表達式也可以包含復合的賦值運算符。如a+=a-=a*a也是一個賦值表達式。如果a的初值為12,此賦值表達式的求解為:①先進行“a-=a*a”的運算,它相當于a=a-a*a=12-144=-132。②再進行“a+=-132”的運算,相當于a=a+(-132)=-132-132=-2642/4/202324五、賦值語句賦值語句:賦值表達式加上一個分號構成賦值語句。C語言的賦值語句具有其它高級語言中賦值語句的一切特點和功能。但也應當注意到它們的不同:(1)C語言中的賦值號“=”是一個運算符,其它語言中的賦值號不是運算符;(2)關于賦值表達式與賦值語句,其它多數(shù)高級語言沒有“賦值表達式”這一概念。賦值表達式可以被包括在其它表達式之中,例如:if((a=b)>0)t=a;(正確)if的條件中不能包含賦值語句:if((a=b;)>0)t=a;(錯誤)2/4/2023254.3數(shù)據(jù)輸入輸出的概念
及在C語言中的實現(xiàn)(1)所謂輸入輸出是以計算機主機為主體而言的:從計算機向外部輸出設備(如顯示器、打印機、磁盤等)輸出數(shù)據(jù)稱為“輸出”;從外部設備(如鍵盤、磁盤、顯示器、掃描儀等)向計算機輸入數(shù)據(jù)稱為“輸入”。(2)C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。在C的標準函數(shù)庫中提供了一些輸入輸出函數(shù),如printf函數(shù)和scanf函數(shù),在使用時,不要認為它們是C語言的“輸入輸出語句”。printf和scanf不是C語言的關鍵字,而是兩個函數(shù);2/4/202326數(shù)據(jù)輸入輸出的概念
及在C語言中的實現(xiàn)(續(xù))(3)C提供的函數(shù)以庫的形式存放在系統(tǒng)中,它們不是C語言文本中的組成部分,因此,各函數(shù)的功能和名字,在不同的計算機系統(tǒng)中可能有所不同。有些通用的函數(shù)(如printf和scanf等),各種計算機系統(tǒng)都提供,成為各種計算機系統(tǒng)的標準函數(shù);(4)在使用標準庫函數(shù)時,要用預編譯命令“#include”將“stdio.h”文件包括到用戶源文件中。即#include<stdio.h>或#include“stdio.h”stdio.h是standardinput&output的縮寫,包含了與標準I/O庫有關的變量定義和宏定義。在需要使用標準I/O庫中的函數(shù)時,應在程序前使用上述預編譯命令。2/4/2023274.4數(shù)據(jù)輸入輸出2/4/202328一、字符數(shù)據(jù)的輸入輸出1putchar函數(shù)(字符輸出函數(shù))putchar函數(shù)的作用是向終端輸出一個字符,例如:putchar(c);輸出字符變量c的值。c可以是字符型變量或整型變量。2/4/202329例輸出單個字符#include<stdio.h>voidmain(){chara,b,c;a=‘B’;b=’O’;c=’Y’;putchar(a);putchar(b);putchar(c);}運行結(jié)果:BOY也可以輸出其它轉(zhuǎn)義字符,如:putchar(‘\101’) (輸出字符‘A’)putchar(‘\’’) (輸出單引號字符’)putchar(‘\015’)(使輸出回車,不換行)參看p48表2/4/2023302
getchar函數(shù)(字符輸入函數(shù))此函數(shù)的作用:從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。getchar函數(shù)沒有參數(shù),其一般形式為getchar()函數(shù)的值就是從輸入設備得到的字符。請注意,getchar()只能接收一個字符。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可以不賦給任何變量,作為表達式的一部分。2/4/202331例:輸入單個字符#include<stdio.h>voidmain(){charc;c=getchar();putchar(c);}#include<stdio.h>voidmain(){putchar(getchar());}getchar函數(shù)得到的字符可以賦給一個字符變量getchar函數(shù)得到的字符作為表達式的一部分2/4/202332二、格式輸入輸出printf函數(shù)——格式輸出函數(shù)printf函數(shù)的作用是向終端(或系統(tǒng)默認的輸出設備)輸出若干個任意類型的數(shù)據(jù)(printf可以輸出多個數(shù)據(jù),且為任意類型)。scanf函數(shù)——格式輸入函數(shù)用來從外部輸入設備向計算機主機輸入數(shù)據(jù)的函數(shù);getchar函數(shù)只能用來輸入一個字符,用scanf函數(shù)可以用來輸入任何類型的多個數(shù)據(jù)。2/4/202333printf函數(shù)——格式輸出函數(shù)printf函數(shù)的作用是向終端(或系統(tǒng)默認的輸出設備)輸出若干個任意類型的數(shù)據(jù)(printf可以輸出多個數(shù)據(jù),且為任意類型)。2/4/202334例:圓半徑radius=1.5,求圓周長和圓面積
#include“stdio.h”voidmain(){floatradius,length,area,pi=3.1415926;
radius=1.5;
length=2*pi*radius; /*求圓周長*/
area=pi*radius*radius; /*求圓面積*/
printf(“radius=%f\n”,radius); /*輸出圓半徑*/
printf(“l(fā)ength=%7.2f,area=%7.2f\n”,length,area);/*輸出圓周長、面積*/
}程序運行結(jié)果如下:radius=1.500000length=9.42,area=7.07 2/4/202335(1)printf函數(shù)的一般形式printf(格式控制,輸出表列)①“格式控制”是用雙引號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括三種信息:(A)格式說明,由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。
格式說明總是由“%”字符開始!(B)普通字符,即需要原樣輸出的字符。(C)轉(zhuǎn)義字符,如'\n'就是轉(zhuǎn)義字符,輸出時產(chǎn)生一個“換行”操作。②“輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達式。
printf(“a=%d,b=%d\n”,a,a+3);由于printf是函數(shù),因此,“格式控制”字符串和“輸出表列”實際上都是函數(shù)的參數(shù)??梢员硎緸閜rintf(參數(shù)1,參數(shù)2,參數(shù)3,….,參數(shù)n)printf函數(shù)的功能是將參數(shù)2~參數(shù)n按參數(shù)1給定的格式輸出。2/4/202336(2)printf函數(shù)的格式字符①d格式符,用來輸出十進制整數(shù)。(A)%d,按整型數(shù)據(jù)的實際長度輸出。(B)%md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。如printf(“%4d,%4d”,a,b)若a=123,d=12345,則輸出結(jié)果為123,12345(C)%ld,輸出長整型數(shù)據(jù)。如longa=135790;printf(“%ld”,a);如果用%d輸出,就會發(fā)生錯誤,對long型數(shù)據(jù)應當用%ld格式輸出。對長整型數(shù)據(jù)也可以指定字段寬度,如將上面printf函數(shù)中的“%ld”可改為“%81d”。一個int型數(shù)據(jù)可以用%d或%ld格式輸出。2/4/202337(2)printf函數(shù)的格式字符(續(xù))②o格式符,以8進制數(shù)形式輸出整數(shù)。由于是將內(nèi)存單元中的各位的值按八進制形式輸出,因此輸出的數(shù)值不帶符號,即將符號位也一起作為八進制數(shù)的一部分輸出。③x格式符,以16進制數(shù)形式輸出整數(shù)。④u格式符,用來輸出unsigned型數(shù)據(jù),即無符號數(shù),以十進制形式輸出。一個有符號整數(shù)(int型)也可以用%u格式輸出;反之,一個unsigned型數(shù)據(jù)也可以用%d格式輸出。按相互賦值的規(guī)則處理。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。2/4/202338例4.3無符號數(shù)據(jù)的輸出#include<stdio.h>voidmain(){unsignedinta=65535;
intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%o,%x,%u\n”,b,b,b,b);}運行結(jié)果為:a=-1,177777,ffff,65535b=-2,177776,fffe,655341111111111111111111111111111111000000000000000101111111111111101加1按位取反2/4/202339(2)printf函數(shù)的格式字符(續(xù))⑤c格式符,用來輸出一個字符。如:charc=’a’;printf(“%c”,c);一個在0~255范圍內(nèi)的整數(shù),可以用字符形式輸出。在輸出前,將該整數(shù)轉(zhuǎn)換成相應的ASCII字符;反之,一個字符數(shù)據(jù)可用整數(shù)輸出。2/4/202340(2)printf函數(shù)的格式字符(續(xù))⑥s格式符,用來輸出一個字符串。(A)%s,例如printf(“%s”,“CHINA”)輸出“CHINA”字符串(不包括雙引號)。(B)%ms,輸出的字符串占m列,若字符串長度大于m,則突破m的限制,將字符串全部輸出。若串長小于m,則左補空格;(C)%-ms,若串長小于m,則在m列范圍內(nèi),字符串向左靠,右補空格。(D)%m.ns,輸出占m列,但只取字符串中左段n個字符。這n個字符輸出在m列的右側(cè),左補空格。(E)%-m.ns,其中m、n含義同上,n個字符輸出在m列范圍的左側(cè),右補空格。如果n>m,則m自動取n值,即保證n個字符正常輸出。2/4/202341(2)printf函數(shù)的格式字符(續(xù))⑦f格式符,用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出:(A)%f,不指定字段寬度,由系統(tǒng)自動指定,使整數(shù)部分全部如數(shù)輸出,并輸出6位小數(shù)。應當注意,并非全部數(shù)字都是有效數(shù)字。
單精度實數(shù)的有效位數(shù)一般為7位,雙精度有效數(shù)字為16位,給出6位小數(shù)。(B)%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補空格。(C)%-m.nf與%m.nf基本相同,輸出的數(shù)值向左端靠,右端補空格。2/4/202342f格式字符舉例#include<stdio.h>voidmain(){floatx,y;doublea,b;x=111111.111;y=222222.222;a=1111111111111.111111111;b=2222222222222.222222222;printf(“x+y=%f\n”,x+y);printf(“a+b=%f\n”,a+b);}運行結(jié)果為:x+y=333333.328125a+b=3333333333333.3330102/4/202343(2)printf函數(shù)的格式字符(續(xù))⑧e格式符,以指數(shù)形式輸出實數(shù):(A)%e,不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分小數(shù)位數(shù),由系統(tǒng)自動指定給出6位小數(shù),指數(shù)部分占5位(如e+002),其中“e”占一位,指數(shù)符號占一位,指數(shù)占3位。數(shù)值按標準化指數(shù)形式輸出(即小數(shù)點前必須有而且只有一位非零數(shù)字)。則用%e格式輸出的實數(shù)占13列寬度?。ú煌到y(tǒng)的規(guī)定略有不同!)(B)%m.ne和%-m.ne,m,n和“-”字符含義與前相同。n指數(shù)據(jù)的小數(shù)部分(又稱尾數(shù))的小數(shù)位數(shù)。2/4/202344f格式與e格式輸出舉例#include<stdio.h>voidmain(){floatfn=123.456;printf(“%f,%10f,%10.2f,%.2f,%-10.2f\n”,fn,fn,fn,fn,fn);printf(“%e,%10e,%10.2e,%.2e,%-10.2e\n”,fn,fn,fn,fn,fn);}輸出結(jié)果:123.456001,123.456001,□□□□123.46,123.46,123.46□□□□
1.234560e+002,1.234560e+002,□1.23e+002,1.23e+002,1.23e+002□□:代表“空格”2/4/202345printf格式字符格式字符說明d以帶符號的十進制形式輸出整數(shù)(正數(shù)不輸出符號)o以8進制無符號形式輸出整數(shù)(不輸出前導符0)x,X以16進制無符號形式輸出整數(shù)(不輸出前導符0x)u以無符號10進制形式輸出整數(shù)c以字符形式輸出,只輸出一個字符s輸出字符串f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)e,E以標準指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位。用e時指數(shù)以“e”表示,用E時指數(shù)以“E”表示。g,G選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0。用G時,若以指數(shù)形式表示,則指數(shù)以大寫表示。2/4/202346關于printf函數(shù)的其它說明(1)務必注意數(shù)據(jù)類型與對應格式說明的匹配,否則將會出現(xiàn)錯誤;(2)除X、E、G外,其它格式字符必須用小寫字母;(3)d、o、x、u、c、s、f、e、g等字符,如果用在“%”后面就作為格式符號;(4)如果想輸出字符“%”,應該在“格式控制”字符串中用連續(xù)倆個%表示,如:printf(“%f%%”,1.0/3)2/4/2023472scanf函數(shù)——格式輸入函數(shù)在程序中給計算機提供數(shù)據(jù),可以用賦值語句,也可以用輸入函數(shù)。可使用scanf()函數(shù),通過鍵盤輸入多個數(shù)據(jù)。(1)一般形式scanf(格式控制,地址表列)“格式控制”的含義同printf()函數(shù)相似;“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。普通字符在輸入有效數(shù)據(jù)時,必須原樣一起輸入。2/4/202348例:用scanf函數(shù)輸入數(shù)據(jù)
#include<stdio.h>voidmain(){inta,b,c,a1,b1,c1;scanf(“%d,%d,%d”,&a,&b,&c);scanf(“%d%d%d”,&a1,&b1,&c1);printf(“%d,%d,%d\n”,a,b,c);printf(“%d,%d,%d\n”,a1,b1,c1);}&a、&b、&c中的“&”是“地址運算符”,&a指a在內(nèi)存中的地址。scanf函數(shù)的作用是:按照a、b、c在內(nèi)存的地址將a、b、c的值存進去。2/4/202349關于scanf(“%d%d%d”,&a,&b,&c);“%d%d%d”表示要按十進制整數(shù)輸入3個數(shù)據(jù);輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以用Enter鍵、Tab鍵;用“%d%d%d”格式輸入數(shù)據(jù)時,不能用逗號作為兩個數(shù)據(jù)間的分隔符。345 合法!45 合法!3,4,5
不合法!2/4/2023502scanf函數(shù)(續(xù))(2)格式說明和printf函數(shù)中的格式說明相似,以%開始,以一個格式字符結(jié)束,中間可以插入附加的字符。①
對unsigned型變量所需要的數(shù)據(jù)可以用%u,%d或%o、%x格式輸入;②可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動按它截取所需數(shù)據(jù);scanf(“%3d%3d”,&a,&b);③輸入數(shù)據(jù)時不能規(guī)定精度:scanf(“%7.2f”,&a);是不合法的。
2/4/202351scanf
格式
字符格式字符說明d用來輸入十進制整數(shù)u用來輸入無符號的十進制整數(shù)o用來輸入八進制整數(shù)x,X用來輸入十六進制整數(shù)c用來輸入單個字符s用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結(jié)束。字符串以串結(jié)束標志‘\0’作為其最后一個字符f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入e,E,g,G與f作用相同,e與f、g可以互相替換(大小寫作用相同)2/4/202352(3)使用scanf函數(shù)應注意的問題①scanf函數(shù)中的“格式控制”后面應當是變量地址,而不應是變量名;scanf(“%d,%d”,a,b);(錯誤!??!)scanf(“%d,%d”,&a,&b);(正確)②如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時務必原樣輸入:若scanf(“%d,%d”,&a,&b);輸入時應為:3,4若scanf(“a=%d:b=%d:c=%d”,&a,&b,&c);輸入時應為:a=3:b=4:c=6③在用“%c”輸入字符時,空格字符和“轉(zhuǎn)義字符”作為有效字符輸入。④在輸入數(shù)據(jù)時,遇以下情況時該數(shù)據(jù)認為結(jié)束:遇空格,或按“回車”或“跳格”(Tab)鍵;遇寬度結(jié)束,如“%3d”,只取3列;
遇非法輸入。2/4/202353提高人機交互性建議:為改善人機交互性,同時簡化輸入操作,在設計輸入操作時,一般先用printf()函數(shù)輸出一個提示信息,再用scanf()函數(shù)進行數(shù)據(jù)輸入。
例如,將scanf("num1=%d",&num1);改為:printf("num1=");scanf("%d",&num1);使用scanf函數(shù)時的建議2/4/2023544.5程序舉例在順序結(jié)構程序中,各語句(或命令)是按照位置的先后次序,順序執(zhí)行的,且每個語句都會被執(zhí)行到。在順序結(jié)構程序中,一般包括以下幾個部分:1
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年全國職業(yè)學校技能大賽(養(yǎng)老照護賽項)備考試題庫大全(附答案)
- 2025年個人果園承包合同簡單版(三篇)
- 2025年五金家電買賣合同范文(2篇)
- 2025年個人樓房出租合同標準版本(三篇)
- 2025年中年人自愿離婚協(xié)議范文(2篇)
- 2025年產(chǎn)品加工項目合作協(xié)議(三篇)
- 2025年個人果園承包合同參考模板(三篇)
- 2025年代理合同協(xié)議范例(三篇)
- 2025年二手叉車轉(zhuǎn)讓協(xié)議(三篇)
- 2025年個人文件保密協(xié)議(三篇)
- 2024秋期國家開放大學本科《納稅籌劃》一平臺在線形考(形考任務一至五)試題及答案
- 2023年西安經(jīng)濟技術開發(fā)區(qū)管委會招聘考試真題
- 靜脈治療護理技術操作標準(2023版)解讀 2
- 2024年全國各地中考試題分類匯編(一):現(xiàn)代文閱讀含答案
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 武強縣華浩數(shù)控設備科技有限公司年產(chǎn)9000把(只)提琴、吉他、薩克斯等樂器及80臺(套)數(shù)控雕刻設備項目環(huán)評報告
- 安全生產(chǎn)法律法規(guī)匯編(2024年4月)
- DB11∕T 882-2023 房屋建筑安全評估技術規(guī)程
- (2024年)剪映入門教程課件
- 華為員工股權激勵方案
- 衛(wèi)生院安全生產(chǎn)知識培訓課件
評論
0/150
提交評論