《程序設(shè)計》復(fù)習(xí)資料_第1頁
《程序設(shè)計》復(fù)習(xí)資料_第2頁
《程序設(shè)計》復(fù)習(xí)資料_第3頁
《程序設(shè)計》復(fù)習(xí)資料_第4頁
《程序設(shè)計》復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩241頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第一章概述

【要點歸納】

1、C語言的特點

⑴C語言短小精悍,基本組成精煉、簡潔。

32個標(biāo)準(zhǔn)關(guān)鍵字,45個標(biāo)準(zhǔn)運算符及9種控制語句。

⑵C語言運算符豐富,表達(dá)能力強。

⑶C語言數(shù)據(jù)結(jié)構(gòu)豐富,結(jié)構(gòu)化好。

⑷C語言提供了某些與匯編語言相似的功能,有利于編寫系統(tǒng)軟件。

⑸C語言程序可移植性好。

2、C語言標(biāo)識符

C語言中,允許用作標(biāo)識符的字符有:

?26個英文字母(包括大小寫)

?數(shù)字0—9

?下劃線。

C語言的標(biāo)識符是滿足如下條件的字符序列:

?只能由英文字母、數(shù)字和下劃線組成。

?長度為1-32.

?必須以英文字母或下劃線開頭。

C語言的標(biāo)識符可以分為以下三類:

?關(guān)鍵字。C語言中規(guī)定了一批標(biāo)識符,它們在程序中都代表著固定的含義,不能另

作他用。

?預(yù)定義標(biāo)識符。這些標(biāo)識符在c語言中也都有特定的含義,因此為了避免誤解,建

議用戶不要把這些預(yù)定義標(biāo)識符另作它用。

?用戶標(biāo)識符。

3、C語言風(fēng)格

(DC語言嚴(yán)格區(qū)分英文字母大小寫。

(2)C語言用“;”作為語句分隔符。

⑶C語言中“{}”用于標(biāo)識一組語句,構(gòu)成復(fù)合語句。

⑷C程序書寫格式自由,?行內(nèi)可以寫幾個語句,一個語句也可以寫在幾行上。

⑸注釋用來向用戶提示或解釋程序的意義。(注釋部分允許出現(xiàn)在程序的任何位置。編

譯時,會忽略所有的注釋符,即不對他們作任何處理。)

4、C程序構(gòu)成

⑴一個C源程序由函數(shù)構(gòu)成(函數(shù)是C程序的基本結(jié)構(gòu)單位),其中至少包括一個主函

數(shù)。

(2)main函數(shù)可以放在任意位置,C程序總是從main函數(shù)開始執(zhí)行,在main函數(shù)中結(jié)

束。

⑶C程序中可以包含常量、變量、運算符和標(biāo)識符。

5、C程序的結(jié)構(gòu)

C語言是一種結(jié)構(gòu)化的程序設(shè)計語言,它提供了3種基本結(jié)構(gòu):

⑴順序結(jié)構(gòu);

⑵選擇結(jié)構(gòu);

⑶循環(huán)結(jié)構(gòu)。

6、結(jié)構(gòu)化程序設(shè)計

模塊化程序設(shè)計的思想是:按照自頂向下的原則,把問題逐層分解。即先從總體出發(fā),

把問題分成若干個大塊,每一大塊代表一個大任務(wù);在此基礎(chǔ)上,再對每個大塊細(xì)化,把大

任務(wù)變成若干個小任務(wù),直到每個小任務(wù)都能用基本結(jié)構(gòu)表示為止。在劃分模塊的過程中,

應(yīng)保證模塊的單入口、單出口、完整性和獨立性。

從組織結(jié)構(gòu)上看,一個C程序可以由若干個源程序文件組成,一個源文件可以由若干

個函數(shù)及全局變量聲明部分組成,一個函數(shù)由數(shù)據(jù)定義部分和執(zhí)行語句組成。

7、C程序設(shè)計步驟

數(shù)

調(diào)

據(jù)

結(jié)

數(shù)

構(gòu)

學(xué)

結(jié)

8、C程序的開發(fā)過程

編輯(生成?c文件)一編譯(生成?obj文件)連接(生成?exe文件)執(zhí)行

C編譯系統(tǒng)

C源程序目標(biāo)程序可執(zhí)行一

編輯c文件編譯?正1文件連接?exe文件執(zhí)

--------'行

其它

目標(biāo)文件

附:c語言中的關(guān)鍵字

autobreakcasecharconstcontinuedefault

dodoubleelseenumexternfloatfor

gotoifintlongregisterreturnshort

signedsizeofstaticstructswitchtypedefunion

unsignedvoidvolatilewhile

【本節(jié)例題選編】

1、選擇題

【例1.1]一個C語言程序是由______

A.一個主程序和若干子程序組成B.若干函數(shù)組成

C.若干過程組成D.若干子程序組成

【例1.2】C語言規(guī)定,在一個源程序中,main函數(shù)的位置_____

A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面

C.可以任意D.必須在最后

【例1.3]一個C程序的執(zhí)行是從

A.本程序的main函數(shù)開始,到main函數(shù)結(jié)束

B.本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

C.本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

D.本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束

【例1.4]以下是C程序的基本結(jié)構(gòu)單位

A.文件B.語句

C.函數(shù)D.表達(dá)式

【例1.5]以下不是C語言的特點。

A.運算符豐富B.數(shù)據(jù)結(jié)構(gòu)豐富

C.可以直接訪問物理地址D.C函數(shù)包含的語句數(shù)目沒有限制

【例1.6】下列關(guān)于C語言標(biāo)識符的敘述中正確的是o

A.標(biāo)識符中可以出現(xiàn)下劃線和中劃線(減號)

B.標(biāo)識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.標(biāo)識符中可以出現(xiàn)下劃線,但不可以放在標(biāo)識符的開頭

D.標(biāo)識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在標(biāo)識符的開頭

【例1.7】以下幾組選項中,均為不合法標(biāo)識符的是

A.A,P_0,doB.float,laO,_A

C.b-a,goto,intD._123,temp,INT

【例1.8]以下敘述不正確的是。

A.一個C源程序可由一個或多個函數(shù)組成

B.一個C源程序必須包含一個main函數(shù)

C.C程序的基本組成單位是函數(shù)

D.在C程序中,注釋說明只能位于一條語句的后面

【例1.9】以下敘述正確的是。

A.在C程序中,main函數(shù)必須位于程序的最前面

B.C程序的每行中只能寫一條語句

C.C語言本身沒有輸入輸出語句

D.在對一個C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤

2、填空題

【例1.10]一個C源程序中至少應(yīng)包括一個。

【例1.11】C程序編譯后生成程序,連接后生成程序。

【例1.121C語言規(guī)定,標(biāo)識符只能由、、—三種字符組成,而且,第一個字

符必須是或。

【例1.13】程序的3種基本控制結(jié)構(gòu)是結(jié)構(gòu)、結(jié)構(gòu)和結(jié)構(gòu)。

第二章數(shù)據(jù)類型及其運算

【要點歸納】

1、基本數(shù)據(jù)類型

C語言的數(shù)據(jù)類型有基本數(shù)據(jù)類型和非基本數(shù)據(jù)類型之分。

'整型

,基本類型<字符型r

浮點型[單精度型

1枚舉類型雙精度

'數(shù)組類型

數(shù)據(jù)類型《

構(gòu)造類型“結(jié)構(gòu)體類型

、共用體類型

指針類型

1空類型

2、變量

所謂變量就是在程序執(zhí)行過程中,其值可以改變的量。變量有兩個要素:

?變量名。

?變量值。

C語言是一種強類型語言,它要求在使用數(shù)據(jù)之前對數(shù)據(jù)的類型進(jìn)行說明。也就是說,

在C語言中,所有變量必須先定義后使用。在定義的同時也可以進(jìn)行賦初值操作,即初始

化。

定義變量的格式如下:

[存儲類型]數(shù)據(jù)類型變量1,變量2,…;

3、常量

常量又稱作常數(shù),是指在程序運行過程中其值不能被改變的量。在C語言中,常量有

不同的類型,如整型常量、實型常量和字符串常量等。

⑴整型常量

?十進(jìn)制

其形式是:d

?八進(jìn)制

其形式是:Od

?十六進(jìn)制

其形式是:Oxd

整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制方式存放的,最高位為符號位,并以補碼表示。

將一個十進(jìn)制整數(shù)轉(zhuǎn)化為補碼表示的方法如下:

?對于正數(shù),其補碼表示與原碼相同。

?對于負(fù)數(shù),其補碼表示為它的反碼加1;負(fù)數(shù)的反碼為其絕對值的所有位(含符號

位)取反得到。

對于用補碼表示的數(shù)據(jù),還原為原碼的方法如下:

?對于正數(shù)(補碼表示的符號位為0),原碼與補碼相同。

?對于負(fù)數(shù),原碼一定為負(fù)數(shù),其絕對值為除符號位以外所有位取反后加1。

⑵實型常量

實型常量又稱浮點型常量,是一個用十進(jìn)制表示的符號實數(shù)。實型常量表示形式有以下

兩種:

?小數(shù)表示方式

?指數(shù)表示方式

注:e之前必須有數(shù)字,e后面的指數(shù)必須為整數(shù)。

⑶字符常量

字符常量又分為字符型常量、字符串常量、轉(zhuǎn)義字符和符號常量四種類型。

?字符型常量

字符型常量是指用一對單引號括起來的一個字符。

?字符串常量

字符串常量是指用一對雙引號括起來的一串字符。

?轉(zhuǎn)義字符

轉(zhuǎn)義字符是C語言中一種特殊形式的字符。

例:\ddd三位八進(jìn)制

\xhh二位十六進(jìn)制

?符號常量

C語言允許將程序中的常量定義為一個標(biāo)識符,稱為符號常量。

例:#definePI3.1415926

4、運算符

⑴算術(shù)運算符

+、一、*、/、%

⑵自增和自減運算符

++、——

注:自增和自減運算符只適用于單個變量,而不能用于其他表達(dá)式。

⑶賦值運算符

⑷復(fù)合的賦值運算符

+=、—=、*=、/=、%=

⑸關(guān)系運算符

<><=>>>>=、=、!=

⑹邏輯運算符

!、&&、||

⑺逗號運算符

表達(dá)式1,表達(dá)式2

⑻條件運算符

c?el:e2

⑼長度運算符

sizeof。

⑩位邏輯運算符

?、&、|、A

5、類型轉(zhuǎn)換

⑴數(shù)據(jù)的混合運算和類型自動轉(zhuǎn)換

C語言允許不同類型的數(shù)據(jù)混合運算,但此時要遵循一定的規(guī)則,將運算符兩邊的操作

數(shù)轉(zhuǎn)換成共同的類型,具體轉(zhuǎn)換原則是將運算符兩邊的數(shù)據(jù)轉(zhuǎn)換成為它們之中數(shù)據(jù)最長的數(shù)

據(jù)類型,以保證運算的精度不會低。

double"—float

lohg

unsigned

int?<——char,short

⑵強制類型轉(zhuǎn)換

(類型名稱)表達(dá)式

6、C語言語句

一個C程序應(yīng)包括數(shù)據(jù)描述(由數(shù)據(jù)聲明部分來實現(xiàn))和數(shù)據(jù)操作(由執(zhí)行語句來實

現(xiàn))。C語句分為以下五類:

?控制語句(9種)

?函數(shù)調(diào)用語句

?表達(dá)式語句

?空語句

?復(fù)合語句

7、數(shù)據(jù)輸出

在C語言中可以使用printf()、putchart()、puts()等函數(shù)進(jìn)行數(shù)據(jù)輸出。

注:在print")語句中,是從右向左計算輸出表達(dá)式的值。

8、數(shù)據(jù)輸入

在C語言中可以使用scanf(卜getchart(卜gets()等函數(shù)進(jìn)行數(shù)據(jù)輸入。

注:

(Dscanf()函數(shù)中沒有精度控制。

⑵gets(str);與scanf("%s",str);的差別是:使用gets()函數(shù)輸入的字符串可

以含有空格,而scanf("%s",str);不能輸入含空格字符的字符串。

【本節(jié)例題選編】

1、選擇題

【例2.1]若x、i、j和k都是int型變量,則計算下面表達(dá)式后,x的值為

x=(i=4j=16,k=32)

A.4B.16C.32D.52

【例2.2】若有代數(shù)式上

則不正確的C語言表達(dá)式是

A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3

【例2.3]一知各變量的類型說明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

則以下不符合C語法的表達(dá)式是

A.x%(-3)B.w+=?2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

【例2.4】以下選項中不屬于C語言的類型的是o

A.signedshortintB.unsignedlongint

C.unsignedintD.longshort

【例2.5】下列定義中合法的是o

A.shor_a=l-.le-l;B.doubleb=l+5e2.5;

C.longdo=0xfdaL;D.float2_end=l-e-3;

【例2.61?8在內(nèi)存中的存儲形式是。

A.1111111111111000B.1000000000001000

C.0000000000001000D.1111111111110111

【例2.7]數(shù)值029是一個o

A.八進(jìn)制數(shù)B.十六進(jìn)制數(shù)

C.十進(jìn)制數(shù)D.非法數(shù)

【例2.8】在C語言中,要求運算數(shù)必須是整型的運算符是

A./B.++C.!=D.%

【例2.9】以下符合C語言語法的賦值表達(dá)式是o

A.d=9+e+f=d+9B.d=9+e,f=d+9

C.d=9+e,e++,d+9D.d=9+e++=d+7

【例2.10】C語言中,關(guān)于自增自減運算符使用正確的是o

A.10++B.(x+y)—C.d+~H~d+++d++D.++(a-b)

【例2.11】設(shè)有intx=ll;則表達(dá)式(x++*l/3)的值是o

A.3B.4C.11D.12

【例2.12]已知:inti=6,j;則語句j=(++i)+(i++)后的j值是。

A.4B.14C.13D.15

【例2.13]設(shè)x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=++x||-H-y后,y的值為

A.不定值B.4C.3D.1

【例2.14】當(dāng)c的值不為0時,以下能將c的值賦給變量a,b的是o

A.c=b=aB.(a=c)||(b=c)

C.(a=c)&&(b=c)D.a=c=b

【例2.15】已有定義:intx=3,y=4,z=5,則表達(dá)式!(x+y)+z-l&&y+z/2的值是。

A.6B.0C.2D.1

【例2.16】下列運算符中,哪個運算符的優(yōu)先級最高o

A.<=B.+C.IID.>=

【例2.17]在C語言中,int、char和short三種類型數(shù)據(jù)所占用的內(nèi)存是。

A.均為2個字節(jié)B.由用戶自己定義

C.由所用機器的機器字長決定的D.是任意的

【例2.18]若有說明語句:charc='\72’;則變量c

A.包含1個字符B.包含2個字符

C.包含3個字符D.說明不合法,c的值不確定

【例2.19]若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是_

A.2.500000B.2.750000C.3.500000D.0.000000

【例2.20]設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為__

A.floatB.charC.intD.double

【例2.21】以下程序的執(zhí)行結(jié)果是。

#include<stdio.h>

main()

{

inti=2;

printf("%d,%d\n”,++i,-i);

}

A.1,1B.2,1C.1,2D.2,2

【例2.22】當(dāng)接受用戶輸入的含空格的字符串時,應(yīng)使用的函數(shù)是。

A.scanf()B.gets()C.getchar()D.getc()

【例2.23】下列敘述中正確的是

A.C語言中既有邏輯類型也有集合類型

B.C語言中沒有邏輯類型但有集合類型

C.C語言中有邏輯類型但沒有集合類型

D.C語言中既沒有邏輯類型也沒有集合類型

【例2.24】以下錯誤的敘述是o

A.在C程序中,逗號運算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的

值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸

入實型數(shù)值

【例2.25]長整型long數(shù)據(jù)在內(nèi)存中的存儲形式是

A.ASCII碼B.原碼C.反碼D.補碼

【例2.26】字符型常量在內(nèi)存中存放的是

A.ASCII碼B.BCD碼C.內(nèi)部碼D.十進(jìn)制碼

【例2.27】字符串常量“\\\22a,0\n”的長度是

A.8B.7C.6D.5

【例2.28】設(shè)intx=l,y=l;表達(dá)式(!x||y-)的值是

A.0B.1C.2D.-1

【例2.29]已知:intx;則使用逗號表達(dá)式(x=4*5,x*5),x+25的結(jié)果是,變量x的值

為。

A.20B.100C.45D.表達(dá)式不合法

【例2.30]邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型。

A.只能是0或1B.只能是0或非0正數(shù)

C.可以是整型或字符型數(shù)據(jù)D.可以是任何類型的數(shù)據(jù)

【例2.31】以下程序的執(zhí)行結(jié)果是。

#include<stdio.h>

main()

{

printf("%f\n”,2.5+1*7%2/4);

)

A.2.500000B.2.750000C.3.375000D.3.000000

【例2.32】若給定條件表達(dá)式(M)?(a++):(a--),則其中表達(dá)式(M)

A.和(M==0)等價B.和(M==l)等價

C.和(M!=0)等價D.和(M!=1)等價

【例2.33】有以下程序:

#include<stdio.h>

main()

(

unsignedchara,b,c;

a=0x3;

b=a|0x8;

c=b?l;

printf("%d%d\n”,b,c);

)

程序運行后的輸出結(jié)果是。

A.-1112B.-6-13

C.1224D.1122

2、填空題

【例2.34]若有以下定義,則計算表達(dá)式y(tǒng)+=y=m*=y后的y值是。

intm=5,y=2;

【例2.35]已知intx=6;則執(zhí)行x+=x-=x*x語句后,x的值是。

【例2.36]若w=l,x=2,y=3,z=4,則條件表達(dá)式w>x?w:y〈z?y:z的結(jié)果是。

【例2.37]在語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則int型數(shù)據(jù)的取值范圍為一。

【例2.38】要將一個16位二進(jìn)制的整型變量的高8位清零,只保其留低8位,可用的方法

是O

【例2.39]若x和n均是int型變量,且x和n的初值均為5,則計算表達(dá)式后x的值為,

n的值為。

x+=n++

【例2.40]已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式

ch='a'+'8'-'3'的值為。

【例2.41]假設(shè)m是一個三位數(shù),從左到右用a,b,c表示各位的數(shù)字,則從左到右各個數(shù)字

是bac的三位數(shù)的表達(dá)式是。

【例2.42]設(shè)y為int型變量,描述“y是奇數(shù)”的表達(dá)式是。

【例2.43]在scanf()函數(shù)中格式符x用于輸入。

【例2.44]若有定義:inta=2,b=3;floatx=3.5,y=2.5;則下面表達(dá)式的值為

(float)(a+b)/2+(int)x%(int)y

【例2.45]若有定義:intb=7;floata=2.5,c=4.7;則下面表達(dá)式的值為

a+(int)(b/3*(int)(a+c)/2)%4

【例2.46】若有以下程序:執(zhí)行后的輸出結(jié)果是。

#include<stdio.h>

main()

intk=2,i=2,m;

m=(k+=i*=k);

printf(tt%d,%d\n,,,m,i);

【例2.471有以下程序,輸入123456789,其輸出結(jié)果是

#include<stdio.h>

main()

inta,b;

floatf;

scanfT%2d%*2d%2d%f\&a,&b,&f);

printff%d,%d,%f\n”,a,b,f);

【例2.48】以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

{

inta,b,c;

a=b=l;

c=a++-l;

printf^%d,%d,,\a,c);

C+=-a-H-4-(4-+b||-H-c);

printf(u%d,%d\n,,,a,c);

【例2.49】以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

inti=10;

printfCt%d,%d,%d,,,i-,i-,i-);

【例2.50】以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

inta=-32768,b;

b=a-l;

printff,a=%d,b=%d”,a,b);

)

【例2.51]以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

(

intx=042,y=067,z;

z=(x?2)&(y?3);

printf(tt%d\n,,,z);

}

【例2.52】以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

{

intn=023;

}

【例2.53】以下程序的執(zhí)行結(jié)果是o

#include<stdio.h>

main()

(

intx=10,y=9;

inta,b,c;

a=(—x=y-H-)?-x:-H-y;

b=x++;

c=y;

printfC4%d,%d,%d\n,,,a,b,c);

第三章選擇語句和循環(huán)語句

【要點歸納】

1、if語句

If語句有一種使用形式

⑴單分支if語句。

if(條件)語句;

⑵雙分支if語句。

if(條件)語句1;

else語句2:

⑶多分支if語句。

if(〈條件1〉)語句1;

elseif(〈條件2〉)語句2;

elseif(〈條件n〉)語句n;

else語句n+1;

2、switch(開關(guān))語句

switch語句用于方便地從多個語句中選擇,個或多個語句執(zhí)行。

switch(〈表達(dá)式〉)

{

case常量表達(dá)式1:語句1;

case常量表達(dá)式2:語句2;

case常量表達(dá)式n:語句n;

default:語句n+1;

}

注:表達(dá)式的值一定是整型值,若為其他類型,最后都要轉(zhuǎn)換為整型數(shù)。

3、while循環(huán)語句

while(條件)語句;

注:先判斷條件,后執(zhí)行語句;

4、do—while循環(huán)語句

do

語句;

while(條件);

注:先執(zhí)行一次循環(huán)體,再判斷條件。

While和do-while語句的差別是,后者至少執(zhí)行“語句”一次,而前者有時一次也不執(zhí)

行語句。

5、fbr循環(huán)語句

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語句;

注:省略各個表達(dá)式時,應(yīng)能夠知道其意義。

⑴“表達(dá)式1”可以省略,此時應(yīng)在該語句之前給循環(huán)變量賦初值。其后的分號不能省

略。

⑵“表達(dá)式2”可以省略,即無判定條件,循環(huán)無終止進(jìn)行下去。需要在循環(huán)體中用break

等語句退出循環(huán)。

⑶“表達(dá)式3”可以省略,這樣需要在循環(huán)體“語句”中讓循環(huán)變量變化,以保證循環(huán)

能正常結(jié)束。

(4)“表達(dá)式1”和“表達(dá)式3”可以同時省略,這樣為⑴和⑶兩種情況同時出現(xiàn),需要

使用相關(guān)語句保證循環(huán)結(jié)束。

⑸三個表達(dá)式都可省略,這樣為⑵和⑷兩種情況同時出現(xiàn),需要使用相關(guān)語句保證循環(huán)

結(jié)束。

6、break語句

break語句的使用格式很簡單,由關(guān)鍵字break和分號構(gòu)成,其功能如下:

?在switch語句中,break用來使程序流程跳出switch語句,繼續(xù)執(zhí)行switch后的語

句;

?在循環(huán)語句中,break用來從最近的循環(huán)體內(nèi)跳出來。

7、continue語句

continue語句只能用于循環(huán)語句中,作用為結(jié)束本次循環(huán),即跳過循環(huán)體中尚末執(zhí)行的

語句,接著進(jìn)行是否執(zhí)行下一次循環(huán)的判定。

【本節(jié)例題選編】

1、選擇題

【例3.1】以下語句錯誤的是

A.ifi[x>y);B.if(x=y)&&(x!=O)x+=y;

C.ifi(x!=y)scanf("%d",&x);eslescanf("%d",&y);D.if(x<y){x++;y++;}

【例3.2】C語言的if語句中,用作判斷的條件表達(dá)式為

A.任意表達(dá)式B.邏輯表達(dá)式C.關(guān)系表達(dá)式D.算術(shù)表達(dá)式

【例3.3】為了避免在嵌套的條件語句i&else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與一

配對。

A.縮排位置相同的ifB.同一行上的if

C.其之后最近的ifD.其之前最近的if

【例3.4】以下程序的輸出結(jié)果是

#include<stdio.h>

main()

(

inti=lj=l,k=2;

if((j++||k++)&&i++)printfT%d,%d,%d\n”,iJ,k);

)

A.1,1,2B.2,2,1

C.2,2,2D.2,2,3

【例3.5]已知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是。

iRx>y)

z=x;x=y;y=z;

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

【例3.6】以下程序的運行結(jié)果是o

main()

{

intm=5;

if(m++>5)printf(4t%d\n,,,m);

elseprintR"%d\n”,m??);

)

A.4B.5C.6D.7

【例3.7】以下程序的輸出結(jié)果是o

main()

(

inta=100,x=10,y=20,ok1=5,ok2=0;

if(x<y)

if(y!=10)

if(!okl)

a=l;

else

if(ok2)a=10;

a=-l;

printf,%d\n”,a);

}

A.1B.0C.-1D.值不確定

【例3.8]若a,b均是整型變量,正確的switch語句是

A.switch(a)B.switch(a)

case1.0:printf("i\rT);caseb:printf("i\n”);

case2:printf("you\n");case1:printff'you'n");

))

C.switch(a+b)D.switch(a+b)

{{

case1:printf("i\iT);casel:printf("i\n?);

case2*a:printf("you'n'');case2:printff'you'rT);

)

【例3.9】對for(表達(dá)式1;;表達(dá)式3),可理解為

A.for(表達(dá)式1;0;表達(dá)式3)B.for(表達(dá)式1;表達(dá)式3;表達(dá)式3)

C.for(表達(dá)式1;1;表達(dá)式3)D.for(表達(dá)式1;表達(dá)式1;表達(dá)式3)

【例3.10】執(zhí)行以下程序段后,變量a,b,c的值分別是

intx=10,y=9;

inta,b,c;

a=(-x==y++)?—x:++y;

b=x++;

c=y;

A.a=9,b=9,c=9B.a=8,b=8,c=10

C.a=9,b=10,c=9D.a=l,b=ll,c=10

【例3.11】有以下程序段:

intn=0,p;

do{

scnafC'%cT,&p);n++;

}while(p!=12345&&n<3);

此處do-while循環(huán)的結(jié)束條件是。

A.p的值不等于12345并且n的值小于3

B.的值等于12345并且n的值大于等于3

C.p的值不等于12345或者n的值小于3

D.p的值等于12345或者n的值大于等于3

【例3.12】下面程序中循環(huán)體的執(zhí)行次數(shù)是o

a=10;

b=0;

do{b+=2;a?=2+b;}while(a>=0);

A.1B.2C.3D.4

【例3.13】以下程序段o

x=-l;

do

{x=x*x;}

while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行二次

C.循環(huán)執(zhí)行一次D.有語法錯誤

【例3.14】以下程序的執(zhí)行結(jié)果是

#include<stdio.h>

main()

(

inta=0,i;

for(i=l;i<5;i++)

{switch(i)

(

case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;

}

}

printf(t4%d\n,,,a);

}

A.31B.13C.10D.20

【例3.15】下面程序的運行結(jié)果是

#include<stdio.h>

main()

{

inty=10;

do{y—;}while(—y);

printff%d\n”,y-);

)

A.-1B.1C.8D.0

【例3.16]下面程序的功能是輸出以下金字塔圖案的是:

*

***

*****

*******

#include<stdio.h>

main()

(

inti,j;

fbr(i=1;i<=4;i++)

|

for(j=l;j<=4-i;j++)prints");

for(j=l;j<=;j++)printfC*");

printf(“\n”);

在下劃線處應(yīng)填入的是

A.iB.2*i-lC.2,D.i+2

【例3.17】下面程序段。

for(t=l;t<=100;t++)

(

scanf("%d”,&x);

if(x<0)

continue;

printfT%3d”,t);

)

A.當(dāng)xvO時整個循環(huán)結(jié)束B.x>=0時什么也不做

C.printf函數(shù)永遠(yuǎn)也不執(zhí)行D.最多允許輸;H100個非負(fù)整數(shù)

【例3.18]若w,x,y,z,m均為int型變量,則執(zhí)行以下語句后的m值是o

w=l;x=2;y=3;z=4;

m=(w<x)?w:x;

m=(m<y)?m:y;

m=(x<z)?m:z;

A.1B.2C.3D.4

【例3.19】請讀以下程序:

main()

{

inta=5,b=O,c=O;

if(a=b+c)

printfT***\n");

else

printf("$$$\n*);

以上程序O

A.有語法錯誤不能通過編譯B.可以通過編譯但不能通過連接

C.輸出***D.輸出$$$

【例3.20】下面程序段不是死循環(huán)的是.

A.inti=100;

while(1)

(

i=i%100+l;

if(i>100)break;

}

B.for(;;);

C.intk=0;

do{++k;}while(k<=0)

D.ints=36;

While(s);-s;

【例3.21】有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零

件,若分成7個零件一組,則多3個,若分成9個零件--組,則多5個零件,下面程序是求

這堆零件總數(shù),請選擇填空。

#include<stdio.h>

main()

(

inti;

for(i=100;i<200;i++)

if((i-2)%4=0)

if(!((i-3)%7))

iR_____)

printfT%d'i);

}

A.i%9=5B.i%9!=5

C.(i-5)%9!=0D.i%9==5

【例3.22】下面程序的運行結(jié)果是。

#include<stdio.h>

main()

{

inti;

fbr(i=l;i<=5;i-H-)

(

if(i%2)

print/*");

else

continue;

printfC'#");

}

printf("$\n");

}

A.*#*#*#$B.#*#*#*$

C.*#*#$D.#*#*$

【例3.23】下面程序的運行結(jié)果是。

#include<stdio.h>

main()

(

inti,j,x=O;

fbr(i=0;i<2;i++)

(

x++;

for(j=0;j<=3;j++)

(

if(j%2)

continue;

X-H-;

X++;

)

printfi(t4x=%d\n,,,x);

)

A.x=4B.x=8C.x=6D.x=12

2、填空題

【例3.24】C語言中,break語句只能用于語句和語句中。

【例3.25】當(dāng)a=3,b=2,c=l時,表達(dá)式f=a>b>c的值是。

【例3.26]若a=6,b=4,c=2,則表達(dá)式!(a?b)+c?l&&b+c/2的值是。

【例3.27】下列程序計算2?100的偶數(shù)的累加和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{

inti,sum=0;

fbr()sum+=i;

printf("sum=%d\n”,sum);

}

【例3.28】以下程序的輸出結(jié)果是

#include<stdio.h>

main()

(

intx=15;

while(x>10&&x<50)

(

x++;

if(x/3){x++;break;}

elsecontinue;

)

printfC%d'n”,x);

}

【例3.29】下面程序段是找出整數(shù)的所有因子,請?zhí)羁铡?/p>

scanf("%d",&x);

i=l;

fbr(;;)

(

if(x%i==0)printff'%3d”,i);

i++;

)

【例3.30】下面程序段是從鍵盤輸入的字符中統(tǒng)計數(shù)字字符的個數(shù),用換行符結(jié)束循環(huán)。請

填空。

intn=0,c;

c=getchar();

while()

(

if()n++;

c=getchar();

}

【例3.31]等差數(shù)列的第一項a=2,公差d=3,下面程序的功能是在前n項和中,輸出能被

4整除的所有的和。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{

inta,d,sum;

a=2;

d=3;

sum=O;

do{

sum+=a;

a+=d;

ifl)

printR"%d\n",sum);

}while(sum<200);

)

【例3.32】請讀程序:

#include<stdio.h>

main()

(

intx=l,y=O,a=O,b=O;

switch(x)

{

case1:

switch(y)

{

case0:a++;break;

case1:b++;break;

}

case2:

a++;b-H-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論