68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞?lì)^條 >> C語言之順序結(jié)構(gòu)
新聞資訊
NEWS INFORMATION

C語言之順序結(jié)構(gòu)

關(guān)鍵字:C語言教程 發(fā)布時(shí)間:2019-05-22

該章內(nèi)容:這章我們學(xué)習(xí)三大結(jié)構(gòu)之一:順序結(jié)構(gòu),它是程序從上往下順序執(zhí)行,是程序運(yùn)行最簡(jiǎn)單的方式。printf和scanf函數(shù)使用和特例是必考知識(shí)。本章是考試的重點(diǎn)章節(jié)。

學(xué)習(xí)方法:從簡(jiǎn)單的順序結(jié)構(gòu)題目入手,逐步把難度加大,對(duì)比記憶printf和scanf函數(shù)。

第一節(jié) 表達(dá)式與語句

知識(shí)點(diǎn):語句和表達(dá)式之間的聯(lián)系;分號(hào)的使用;復(fù)合語句

重要程度:★★★

1、表達(dá)式與語句

 “ 表達(dá)式 “ + ” ;“ =  ”語句 ”。例如:

賦值表達(dá)式

賦值語句

算術(shù)表達(dá)式

算術(shù)語句

自加表達(dá)式

自加語句

x=9

X=9;

x+y

x+y;

i++

i++;

從圖中可以很清楚的看見,表達(dá)式和語句的區(qū)別就是一個(gè)有分號(hào),一個(gè)沒有分號(hào)。這個(gè)分號(hào)是考試的重點(diǎn),尤其是在上機(jī)考試的改錯(cuò)題目,最喜歡不寫分號(hào),我們要加一個(gè)分號(hào)!

 

2、空語句與復(fù)合語句

;

1、這個(gè)分號(hào)也是一個(gè)語句,稱為“空語句”!翱照Z句”表示程序執(zhí)行時(shí)不產(chǎn)生任何動(dòng)作。注意:隨意使用空語句會(huì)導(dǎo)致邏輯上出現(xiàn)錯(cuò)誤,需要慎用。

2、所謂復(fù)合語句,就是把好幾個(gè)語句復(fù)合到一起,那么用什么符號(hào)把多個(gè)語句復(fù)合到一起來?我們要記住是用花括號(hào)“{”把多個(gè)語句括起來組成了一個(gè)復(fù)合語句。

復(fù)合語句具體形式:{語句1;語句2;…… 語句n;}

 

3、順序結(jié)構(gòu)

程序中的多個(gè)語句按照語句從上往下出現(xiàn)的先后次序順序逐條執(zhí)行,這種執(zhí)行方式是最基本的執(zhí)行方式,稱為順序結(jié)構(gòu),是三大基本結(jié)構(gòu)之一。

記住一句話:看到順序結(jié)構(gòu)就想到從上往下。

 

 

第二節(jié) 數(shù)據(jù)輸出

考  點(diǎn):pirntf函數(shù)的使用;printf兩個(gè)參數(shù)的使用方法;格式說明符號(hào)對(duì)應(yīng)的意思;

重要程度:★★★★(每年必考)

printf函數(shù)和scanf函數(shù)都是庫函數(shù),printf和scanf都不是關(guān)鍵字,他們只是預(yù)定義標(biāo)識(shí)符。

 

1、printf函數(shù)第一個(gè)參數(shù)講解

例1:printf("x=%d,y=%d",1,2);

第一個(gè)部分是用雙引號(hào)括起來!第二部分是兩個(gè)數(shù)據(jù)“1,2”,數(shù)據(jù)之間是用逗號(hào)隔開的。

第一部分的雙引號(hào)中就有兩種信息:一種是原樣輸出,一種是格式說明。其中原樣輸出的說明信息是“x= ,y= ”,包括第一個(gè)%d之后的逗號(hào)也是原樣輸出。雙引號(hào)中還有兩個(gè)%d,這兩個(gè)%d就是格式轉(zhuǎn)換說明,用于指定第二部分?jǐn)?shù)據(jù)“1,2”的輸出格式為整型。這里第一個(gè)“%d”對(duì)應(yīng)第一個(gè)數(shù)字1,第二個(gè)“%d”對(duì)應(yīng)第二個(gè)數(shù)字2,因此我們可以在屏幕上看到:x=1,y=2。

 

例2:printf(“the result is %d”,123);

這個(gè)程序中運(yùn)行結(jié)果是可以在屏幕上看到:the result is 123。那么原樣輸出的說明信息是“the result is”,第一個(gè)部分的%d是要把輸出數(shù)據(jù)列表的123以整型的格式輸出。

 

例3:printf("x=%d,y%d",1,2);

這個(gè)程序運(yùn)行的結(jié)果是可以在屏幕上看到:x=1,y2。那么我們可以看到比例一中的第一部分,我們少了個(gè)等號(hào)“=”,所以我們?cè)谳敵鰰r(shí)候,原樣輸出的信息就沒有等號(hào)“=”。

   

2、printf函數(shù)第二個(gè)參數(shù)講解

printf函數(shù)第二個(gè)參數(shù)可以是常量數(shù)據(jù),也可以是變量,也可以是表達(dá)式。

例4:printf("x=%d",1);      輸出數(shù)據(jù)列表是常量    屏幕顯示:x=1

   printf("x=%d",x);    輸出數(shù)據(jù)列表是變量        若x為9,屏幕顯示:x=9

printf("x=%d",x+y);   輸出數(shù)據(jù)列表是表達(dá)式      若x+y為12,屏幕顯示:x=12

 

第二個(gè)要記住的:各個(gè)數(shù)據(jù)之間用逗號(hào)分隔開。

 

第三個(gè)要記。狠敵鰯(shù)據(jù)的個(gè)數(shù)與輸出控制中的格式轉(zhuǎn)換說明的個(gè)數(shù)相等,并且在順序上要一一對(duì)應(yīng)且類型匹配。注意一點(diǎn):如果類型不匹配,這時(shí)系統(tǒng)并不報(bào)錯(cuò),但不能得到正確的結(jié)果。

 

例5:printf("%d,%f",9.87,2);

這里是不會(huì)報(bào)錯(cuò)的,但是得不到正確的結(jié)果,因?yàn)椋谝粋(gè)格式說明“%d”表示要把輸出數(shù)據(jù)按整數(shù)形式輸出,而它對(duì)應(yīng)要輸出數(shù)據(jù)卻是實(shí)數(shù)9.87,對(duì)應(yīng)出錯(cuò)了。第二個(gè)格式說明“%f”是要把輸出數(shù)據(jù)按實(shí)數(shù)形式輸出,而第二個(gè)要輸出的數(shù)據(jù)卻是整數(shù)2,顯然不匹配。

 

在輸出控制中,格式說明的個(gè)數(shù)(也就是第一部分%d的個(gè)數(shù))應(yīng)與第二部分輸出項(xiàng)的輸出數(shù)據(jù)個(gè)數(shù)相同。

 

情況一:格式說明的個(gè)數(shù) < 輸出項(xiàng)的個(gè)數(shù)。處理方式:多于的輸出項(xiàng)不予輸出;

情況一的例子:printf("%d,%d",2,3,4);的輸出結(jié)果為2,3。數(shù)據(jù)4不會(huì)被輸出。

情況二:格式說明的個(gè)數(shù) > 輸出項(xiàng)的個(gè)數(shù),處理方式:對(duì)多于的格式說明將輸出不定值。

情況二的例子:printf("%d,%d",2);的輸出結(jié)果為2,772。第二個(gè)數(shù)據(jù)是不定值。

例6:有以下程序(常考題型)

main( )

{     int a=888,b=999;

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

}

程序運(yùn)行后的輸出結(jié)果是

A)錯(cuò)誤信息     B)999        C)888      D)888,999

分析:在printf語句中,格式控制的格式說明只有一個(gè)“%d”,但是而輸出列表項(xiàng)有兩項(xiàng)“888,999”,即a和b。由于只有一個(gè)%d,輸出的結(jié)果只有一個(gè),即printf函數(shù)的第二部分中第一個(gè)出現(xiàn)的變量a的值。則正確的答案是:C。

 

 

3、printf函數(shù)中的格式說明

前面的例子中多次出現(xiàn)了由“%”加上一個(gè)字符的組成的格式轉(zhuǎn)換說明,它是作為printf的輸出控制的。這個(gè)是一定要牢記的,是考試的重點(diǎn)!

表1  格式說明對(duì)應(yīng)的輸出數(shù)據(jù)格式

格式說明

輸出數(shù)據(jù)格式

%d或%i

輸出有符號(hào)的十進(jìn)制整型數(shù)

%f

輸出單精度或雙精度數(shù)且小數(shù)點(diǎn)后有6位小數(shù)數(shù)位

%c

輸出一個(gè)字符

%o

輸出八進(jìn)制無符號(hào)形式整型數(shù)(不帶前導(dǎo)0)

%x或%X

輸出十六進(jìn)制無符號(hào)形式整型數(shù)(不帶前導(dǎo)0x或0X)

%#o

輸出八進(jìn)制無符號(hào)形式整型數(shù)(帶前導(dǎo)0)

%#x或%#X

輸出十六進(jìn)制無符號(hào)形式整型數(shù)(帶前導(dǎo)0x或0X)

%u

輸出無符號(hào)的十進(jìn)制整數(shù)

%e或%E

以[-]m.ddddde±xx或[-]m.ddddde±XX的形式輸出單精度或雙精度數(shù)。d的個(gè)數(shù)由精度決定。系統(tǒng)隱含的精度為6, d的個(gè)數(shù)隱含為5。

 

說明:

1) 對(duì)于長整型數(shù)據(jù)的輸出,一定要在%和d之間加上英文小寫字母l,即格式%ld。

2) 對(duì)于雙精度數(shù)據(jù)的輸出,一定要在%和f或e之間加上英文小寫字母l, 即格式%lf或%le。

3) 用表1所列出的格式說明時(shí),系統(tǒng)自動(dòng)決定輸出數(shù)據(jù)所占的寬度,并采用右對(duì)齊的方式。

 

常考題型:

例7: 若有以下程序段(注意:n所賦的是八進(jìn)制數(shù))

int x=32767,y=032767;

printf("%d,%o\n",x,y);

執(zhí)行后輸出結(jié)果是

A) 32767,032767  B) 32767,32767       C) 32767,77777              D) 32767,077777

分析:整型變量x和y分別存放的是十進(jìn)制整數(shù)32767和八進(jìn)制整數(shù)32767。在printf語句中,把x和y兩個(gè)變量分別按%d(十進(jìn)制有符號(hào)的形式)和%o(八進(jìn)制無符號(hào)形式)形式輸出。那么得到的結(jié)果應(yīng)該是32767,32767,即答案B正確。

 

例8:同例7相似,只是在printf函數(shù)中的%o之間加上#,變?yōu)?#o。

int x=32767,y=032767;

printf("%d,%#o\n",x,y);

那么該例子得到的結(jié)果為:32767,032767, 可以看到%o與%#o之間的區(qū)別。就是一個(gè)不要輸出八進(jìn)制中前導(dǎo)的0,而另外一個(gè)是要輸出前導(dǎo)的0。

 

例9:若有以下程序段

int i=0xabc,j=0xabc;

i-=j;

printf("%X\n",i);

printf("%#X\n",i);

執(zhí)行后輸出結(jié)果是

A) 0X0       B) 0x0         C) 0         D) 0XABC

0                    0         0x0       0xABC              

分析:第一行:整型變量i和j里面存放的都是十六進(jìn)制整數(shù)abc。第二行:執(zhí)行i-=j;語句,i值變?yōu)?。第三行:在printf語句中,把i存放的整數(shù)0以%X(十六進(jìn)制無符號(hào)形式)形式輸出,得到的結(jié)果是0,第四行:把i存放的整數(shù)0以%#X形式輸出,得到的結(jié)果是0x0。所以正確答案是C。

 

例10:若變量a,b已定義為int類型并賦值22和66,要求用printf函數(shù)以a=22,b=66的形式輸出,請(qǐng)寫出完整的輸出語句______。

分析:根據(jù)題目要求,變量a、b要求以int類型輸出,從表1中可知:輸出時(shí)應(yīng)使用格式說明%d來對(duì)應(yīng)整型,同時(shí)輸出的形式為a=21,b=55,那么也就是有一部分的內(nèi)容要原樣輸出。這些內(nèi)容是“a= ,b=”,所以在輸出控制的雙引號(hào)內(nèi),我們寫上代碼“a=%d,b=%d”。最后,整個(gè)需要輸出語句為:printf("a=%d,b=%d",a,b);

 

重要說明:(考得很少)

1) 在%和格式字符之間加入一個(gè)整數(shù)來控制輸出數(shù)據(jù)所占的寬度,如%5d,

情況一:整數(shù)指定的寬度大于實(shí)際輸出數(shù)據(jù)的寬度。處理方式:數(shù)據(jù)的輸出采用右對(duì)齊的方式,左邊自動(dòng)補(bǔ)空格;

情況二:整數(shù)指定的寬度小于實(shí)際輸出數(shù)據(jù)的寬度。處理方式:以輸出數(shù)據(jù)的實(shí)際寬度輸出。

表2舉例說明了未指定寬度和指定寬度時(shí)的對(duì)比結(jié)果。

表2  未指定寬度和指定寬度時(shí)的輸出數(shù)據(jù)對(duì)比結(jié)果(“ ”代表空格)

輸出語句

輸出結(jié)果

printf("%d",625);

625

printf("%2d",625);

625

printf("%5d",625);

  625

printf("%f",1.25);

1.250000

printf("%6f",1.25);

1.250000

printf("%12f",1.25);

    1.250000

說明:在輸出時(shí),小數(shù)點(diǎn)占一位,對(duì)于float和double類型一定要保證小數(shù)后是六位,不足的補(bǔ)0。

2) 在%和格式字符f之間加入“整數(shù)1.整數(shù)2”來控制輸出數(shù)據(jù)的格式時(shí),如%3.2f。

“整數(shù)1”指定整個(gè)輸出數(shù)據(jù)占的總寬度。“整數(shù)2”指定輸出實(shí)數(shù)的小數(shù)部分的個(gè)數(shù)。

情況一:當(dāng)實(shí)際輸出數(shù)據(jù)的小數(shù)個(gè)數(shù) > “整數(shù)2”指定的個(gè)數(shù)時(shí)。處理方式:截去多余的數(shù)據(jù),并對(duì)截去的第一位小數(shù)做四舍五入處理。

情況二:當(dāng)實(shí)際輸出數(shù)據(jù)的小數(shù)個(gè)數(shù) <“整數(shù)2”指定的個(gè)數(shù)時(shí)。處理方式:在小數(shù)的右邊添0 補(bǔ)足。

重要的一句話:碰到“整數(shù)1.整數(shù)2”形式,首先用“整數(shù)2”處理小數(shù)部分,處理完后,在用“整數(shù)1”處理整個(gè)數(shù)據(jù),包括已經(jīng)處理好的小數(shù)部分。

表3  “%整數(shù)1.整數(shù)2f”的輸出格式(“ ”代表空格)

輸出語句

輸出結(jié)果

printf("%3.3f",3.1415);

3.142

printf("%3.5f",3.1415);

3.14150

printf("%9.5 f",3.1415);

  3.14150

printf("%3.0 f",3.1415);

  3

 

3)%o和%#o之間及%x和%#x之間的區(qū)別。有#號(hào)的時(shí)候,八進(jìn)制要輸出前導(dǎo)0,十六進(jìn)制要輸出前導(dǎo)0x,但是有一點(diǎn):輸出前一定要把十進(jìn)制轉(zhuǎn)換成需要輸出的十六進(jìn)制或者八進(jìn)制。(注意:#號(hào)對(duì)其它格式字符通常不起作用)。

表4  輸出的八進(jìn)制數(shù)、十六進(jìn)制數(shù)前分別添加0、0x

輸出語句

輸出結(jié)果

printf("%o",254);

376

printf("%#o",254);

0376

printf("%x",254);

fe

printf("%#x",254);

0xfe

 

其它使用說明:

1) 輸出“%”字符的方法,應(yīng)該在格式控制中用兩個(gè)連續(xù)的“%”,即“%%”來表示,也就是要

在格式控制中出現(xiàn)兩個(gè)連續(xù)的“%”。

 

例11:printf("%%d",255);不會(huì)輸出整數(shù)255。因?yàn)椤?%”的意圖是要輸出一個(gè)“%”,這個(gè)時(shí)候“d”會(huì)當(dāng)作一個(gè)字符按原樣輸出。同時(shí),由于這時(shí)因?yàn)闆]有格式說明,整數(shù)254無法輸出到屏幕上。輸出到屏幕上的結(jié)果為“%d”。

例12:printf("%%%d",255); “%%”意圖輸出一個(gè)“%”,后面的“%d”是格式說明,對(duì)應(yīng)后面的255。那么這個(gè)時(shí)候輸出的結(jié)果是為%255。

 

2) 注意格式說明會(huì)導(dǎo)致結(jié)果不同。

printf(“%d”,65);  把65以整型輸出,得到結(jié)果是65。

printf(“%c”,65);  把65以字符形式輸出,得到結(jié)果是大寫字母A。

 

3) int的輸出的格式說明:%d

  float輸出的格式說明:%f

  char 輸出的格式說明:%c

  字符串輸出的格式說明:%s

  double 輸出的格式說明:%lf

  long  int 輸出的格式說明:%ld

 

 

第三節(jié) 數(shù)據(jù)輸入

考  點(diǎn):scanf函數(shù)的使用;scanf兩個(gè)參數(shù)的使用方法;格式說明符號(hào)對(duì)應(yīng)的意思;

重要程度:★★★★

1、scanf函數(shù)的具體介紹

scanf函數(shù)的功能:使變量獲得數(shù)值。

1)“輸入控制”的含義與printf函數(shù)的“輸出控制”相同,其作用是指定輸入時(shí)的數(shù)據(jù)轉(zhuǎn)換格式。

2)“輸入數(shù)據(jù)列表”的含義:是一個(gè)或者多個(gè)合法的地址表達(dá)式。

 

2、scanf函數(shù)中的格式說明

scanf函數(shù)與printf函數(shù)的格式說明有很大的相同之處:

表5  格式說明對(duì)應(yīng)的輸入數(shù)據(jù)格式

格式說明

輸入數(shù)據(jù)格式

%d

輸入十進(jìn)制整型數(shù)

%i

輸入整型數(shù),輸入時(shí)可帶前導(dǎo)0的八進(jìn)制整數(shù)和帶前導(dǎo)0x的十六進(jìn)制整數(shù)

%c

輸入一個(gè)字符

%o

輸入一個(gè)八進(jìn)制整型數(shù)

%x

輸入一個(gè)十六進(jìn)制整型數(shù)

%u

輸入一個(gè)無符號(hào)的十進(jìn)制整型數(shù)

%f

以帶小數(shù)點(diǎn)的形式或指數(shù)形式輸入單精度或雙精度數(shù)

重要說明:

1)      從鍵盤中輸入的數(shù)據(jù)是多個(gè),不是一個(gè)的時(shí)候。輸入的多個(gè)數(shù)值數(shù)據(jù)之間必須用分隔符(包

括空格符、制表符和回車符)隔開。

例如:

int x, y, z;

scanf("%d%d%d",&x,&y,&z);

現(xiàn)在要對(duì)x, y, z三個(gè)整型變量分別輸入100  200  300

則數(shù)據(jù)的輸入形式可如下幾種:

方法一:100<空格符>200<空格符>300<回車>

方法二:100<空格符><空格符>200<空格符>300<回車>

方法三:100<制表符>200<制表符300<回車>

方法四:100<回車>

200<回車>

300<回車>

這四種方式都是正確的。主要是在各個(gè)數(shù)據(jù)之間用分隔符隔開,分隔符符號(hào)有:包括空格符、制表符和回車符三種。

錯(cuò)誤的輸入: 100,200,300<回車>

 

2)重要的一點(diǎn):scanf函數(shù)中第一個(gè)參數(shù)中,格式說明的類型必須和scanf函數(shù)中第二個(gè)參數(shù)輸入項(xiàng)的類型一一對(duì)應(yīng)匹配。如果類型不匹配,系統(tǒng)是不會(huì)給出出錯(cuò)信息,運(yùn)行的結(jié)果是得不到正確的輸入數(shù)據(jù)。如:

           int a;

           scanf(“%f”,&a);由于我們規(guī)定int格式說明為%d,所以這里%f就錯(cuò)了!

 

3)當(dāng)輸入長整型數(shù)據(jù)(long)時(shí),必須使用%ld格式;輸入double數(shù)據(jù)時(shí),必須使用%lf或%le,否則不能得到正確數(shù)據(jù),例如:

long a; 

scanf(“%lf”,&a);             

long a;

scanf(“%f”,&a) 

格式正確,變量a可以得到正確數(shù)據(jù)。  

格式不對(duì),變量a得不到

正確數(shù)據(jù)。

 

4)與printf函數(shù)相似,在scanf函數(shù)中的格式字符前可以用一個(gè)整數(shù)指定輸入數(shù)據(jù)所占的寬度,但對(duì)實(shí)數(shù)不能指定小數(shù)的位數(shù),例如:

int a;

scanf(“%3d”,&a);   

float a;

scanf(“%5f”,&a);   

把鍵盤連續(xù)敲入的三個(gè)數(shù)據(jù)作為一個(gè)整體數(shù)據(jù)賦值給變量a。

輸入:

12345 <回車>

變量a的結(jié)果為123

這里的處理,變量a是得不

到正確的數(shù)據(jù),實(shí)數(shù)不能指定小數(shù)的位數(shù)。

輸入:

123456.78<回車>

得到錯(cuò)誤的結(jié)果

 

5)注意一點(diǎn):輸入控制中,格式說明的個(gè)數(shù)與輸入項(xiàng)的個(gè)數(shù)應(yīng)該相同。

情況一:格式說明的個(gè)數(shù) < 輸入項(xiàng)的個(gè)數(shù)。處理方式:系統(tǒng)自動(dòng)結(jié)束輸入,多余的數(shù)據(jù)沒有被讀入,但作為下一個(gè)輸入操作的輸入數(shù)據(jù);

情況二:格式說明的個(gè)數(shù) > 輸入項(xiàng)的個(gè)數(shù)。處理方式:系統(tǒng)會(huì)自動(dòng)結(jié)束輸入。例如:

int x, y, z;

 scanf("%d%d",&x,&y,&z);

int x, y, z;

scanf("%d %d %d",&x,&y,);

鍵盤輸入下面數(shù)據(jù):

10<間隔符>20<間隔符>30<回車>

由于在輸入控制中只有兩個(gè)格式說明%d,則只能對(duì)x和y變量分別輸入10和20,而30不能被讀入,只能作為以后其它輸入的輸入數(shù)據(jù)。

鍵盤輸入下面數(shù)據(jù):

10<間隔符>20<間隔符>30<回車>

由于輸入項(xiàng)多于格式說明的個(gè)數(shù),變量x,y獲得正確的數(shù)據(jù)之后,系統(tǒng)會(huì)自動(dòng)結(jié)束輸入。多出的那個(gè)%d不起作用。

 

6)考試的重點(diǎn):跳過輸入數(shù)據(jù)的方法。具體形式為:在格式字符與%之間加入一個(gè)“*”,這樣會(huì)使輸入過程跳過某個(gè)輸入的數(shù)據(jù)。例如如下的程序:

int x, y, z;

scanf("%d%*d%d%d",&x,&y,&z); 

int x, y, z;

scanf("%d%d%*d%d",&x,&y,&z); 

鍵盤輸入下面數(shù)據(jù):

10<間隔符>20<間隔符>30<間隔符>40<回車>

則系統(tǒng)會(huì)把10賦給變量x,跳過數(shù)據(jù)20,把30賦給變量y,把40賦值給變量z。

最后可以得知:x=10,y=30,z=40;數(shù)據(jù)20被跳過

鍵盤輸入下面數(shù)據(jù):

10<間隔符>20<間隔符>30

<間隔符>40<回車>則系統(tǒng)

會(huì)把10賦給變量x,把20

賦給變量y,跳過數(shù)據(jù)30,

把40賦值給變量z。

最后可以得知:x=10,y=20,z=40;

數(shù)據(jù)30被跳過

 

7)考試的重點(diǎn)(必考):若在scanf函數(shù)的第一個(gè)參數(shù)的輸入控制串中含有其他的字符,則在輸入時(shí)要求一一對(duì)應(yīng)的位置原樣輸入這些字符。例如:

 

int x, y, z;

scanf("x=%d,y=%d,z=%d",&x,&y,&z);

int x, y, z;

scanf("%d,%d,%d",&x,&y,&z);

要求按照如下的形式輸入:

x=20,y=30,z=40<回車>

scanf函數(shù)的第一參數(shù):"x=%d,y=% d,z=%d",之間有x=,y=,z=,所以輸入的時(shí)候,這些符號(hào)在鍵盤輸入時(shí)候不可以少。否則得到數(shù)據(jù)不正確。

要求按照如下的形式輸入:

20,30,40<回車>

scanf函數(shù)的第一參數(shù):"%d,%d,%d",之間是有逗號(hào)的,所以輸入的時(shí)候,逗號(hào)不可以缺少。否則得到數(shù)據(jù)不正確。

 

 

重要注意:

1)scanf的輸入分隔符有三種,不包含逗號(hào)。在使用鍵盤輸入數(shù)據(jù)時(shí),不能以逗號(hào)作為分隔符。如果需要以逗號(hào)作分隔符,則應(yīng)該在格式控制字符串中使用逗號(hào),例如

scanf("%d, %d, %d",&x,&y,&z);

scanf("%d%d, %d",&x,&y,&z);

由于在以上三個(gè)%d之間有逗號(hào)隔開,所以正確的輸入為:

10, 20, 30<回車>

由于在以上后兩個(gè)%d之間有逗號(hào)隔開,前兩個(gè)%d之間沒有逗號(hào)所以正確的輸入為:

10<.分隔符>20, 30<回車>

 

2)一般情況下,我們操作scanf函數(shù)的時(shí)候,scanf的格式控制字符串中不要包含其它非格式控制符,否則往往容易讓人混淆,也很難得到正確的數(shù)據(jù)。也就是說,在scanf中一般只使用格式控制符。不要出現(xiàn):scanf(" the data is %d",&a);這樣的寫法,最簡(jiǎn)單、最佳的操作寫法如:scanf(" %d",&a)。

 

3)使用scanf時(shí),如果數(shù)據(jù)輸入未能完成,則程序一直等待鍵盤輸入,此時(shí)用戶應(yīng)該完成數(shù)據(jù)輸入。也就是說,程序從上往下順序結(jié)構(gòu)運(yùn)行,當(dāng)運(yùn)行到scanf函數(shù)的時(shí)候,就會(huì)停止,等待你從鍵盤輸入數(shù)據(jù)給指定的變量,這個(gè)和前面學(xué)的賦值語句有相同的功能。如果在未輸入數(shù)據(jù)的情況下鍵入回車,程序是沒有任何反映,好像死機(jī)了一樣。這時(shí),只要用戶輸入數(shù)據(jù)即可。

 

4)其實(shí)通過scanf函數(shù)給變量賦值和直接使用賦值語句給變量賦值,都能使變量的值發(fā)生改變,但二者具有本質(zhì)區(qū)別。

 

 

 

使用scanf語句給變量輸入數(shù)值

使用賦值符號(hào)“=”語句給變量賦值

實(shí)現(xiàn)語句

scanf(“%d’,&x);

       x=10;

獲值方式

使用鍵盤動(dòng)態(tài)的給指定的某個(gè)變量賦值。

將某一個(gè)固定的值在程序源代碼中用賦值語句寫死,

運(yùn)行結(jié)果

每次編譯運(yùn)行后,變量可從鍵盤賦不同的值,得到不同的運(yùn)行結(jié)果。

每次編譯運(yùn)行后,用戶無法改變?cè)撟兞康闹,每次?zhí)行的結(jié)果均相同。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

鸡西市| 门源| 印江| 类乌齐县| 阜康市| 岳阳县| 保德县| 厦门市| 万州区| 察雅县| 嘉义市| 桃园县| 万年县| 威海市| 江门市| 浏阳市| 新昌县| 哈巴河县| 伊吾县| 莆田市| 汉中市| 原阳县| 海淀区| 常德市| 和平县| 江安县| 湘潭市| 彝良县| 崇礼县| 铜鼓县| 金沙县| 镇原县| 常熟市| 济南市| 涟水县| 庐江县| 昔阳县| 宣化县| 桑日县| 伊春市| 都江堰市|