C語言練習(xí)題和考點(diǎn)分析資料1_第1頁
C語言練習(xí)題和考點(diǎn)分析資料1_第2頁
C語言練習(xí)題和考點(diǎn)分析資料1_第3頁
C語言練習(xí)題和考點(diǎn)分析資料1_第4頁
C語言練習(xí)題和考點(diǎn)分析資料1_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一單項(xiàng)選擇題

1.(A)是構(gòu)成C語言程序的基本單位。

A函數(shù)R過程G子程序D子例程

2C語言程序從C開始執(zhí)行。

冷程序中第一條可執(zhí)行語句6程序中第一個(gè)函數(shù)

0程序中的main函數(shù)D包含文件中的第一個(gè)函數(shù)

3.以下說法中正確的是(C)0

AC語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行

R在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

GC語言程序總是從1min()函數(shù)開始執(zhí)行

DC語言程序中的main。函數(shù)必須放在程序的開始部分

4?下列關(guān)于C語言的說法錯(cuò)誤的是(B)。

@能序的工作過程是編輯、編譯、連接、運(yùn)行

BC語言不區(qū)分大小寫。

0等序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán)

D等序從main函數(shù)開始執(zhí)行

5.下列正確的標(biāo)識(shí)符是(C)。

A—alBaLi]Ca2_jDintt

5飛題為相同類型題

考點(diǎn):標(biāo)識(shí)符的命名規(guī)則

(1)只能由字母、數(shù)字、下劃線構(gòu)成

(0數(shù)字不能作為標(biāo)識(shí)符的開頭

(5關(guān)鍵字不能作為標(biāo)識(shí)符

選項(xiàng)A中的,選項(xiàng)B中“[與”了不滿足(D;選項(xiàng)沖的int為關(guān)鍵字,不滿足(3

6下列C語言用戶標(biāo)識(shí)符中合法的是(B)。

A3axQx0caseI)—e2E)union

選項(xiàng)A中的標(biāo)識(shí)符以數(shù)字開頭不滿足(0;選項(xiàng)C四為為關(guān)鍵字,不滿足(3;選項(xiàng)時(shí)的不滿足

(1);

7.下列四組選項(xiàng)中,正確的C語言標(biāo)識(shí)符是(C)。

合0a-Fb0a123D123

選項(xiàng)A中的"%,選項(xiàng)B中“4不滿足(D;選項(xiàng)沖的標(biāo)識(shí)符以數(shù)字開頭不滿足(4

8下列四組字符串中都可以用作C語言程序中的標(biāo)識(shí)符的是(A)o

Aprint_3ddb8aBcB]\^mone_halfstartYit3pai

Gstr1Q)ppowwhileDPxqIV^>book1ine#His.age

選項(xiàng)B中的y丫,選項(xiàng)D中TJ洋,"-不滿足(D;選項(xiàng)c中的就ile為關(guān)鍵字,不滿足(3

9.C語言中的簡(jiǎn)單數(shù)據(jù)類型包括(D)。

A整型、實(shí)型、邏輯型R整型、實(shí)型、邏輯型、字符型

G整型、字符型、邏輯型D整型、實(shí)型、字符型

1Q在C語言程序中,表達(dá)式5%2的結(jié)果是C。

A256201D3

詳見教材P5乃3.

前求余運(yùn)算符,該運(yùn)算符只能對(duì)整型數(shù)據(jù)進(jìn)行運(yùn)算。且符號(hào)與被模數(shù)相同。5^=1;%3=1;(-5)炒T

(-5)%(H)T

辦求商運(yùn)算符,該運(yùn)算符能夠?qū)φ?、字符、浮點(diǎn)等類型的數(shù)據(jù)進(jìn)行運(yùn)算,,2

11.如果int3=9b=4;則條件表達(dá)式"a<t?a:b的值是A。

Q36400DI

詳見教材P97.

表達(dá)式1?表達(dá)式2表達(dá)式3

先計(jì)算表達(dá)式L

若表達(dá)式1成立,則選擇計(jì)算表達(dá)式2,并表達(dá)式2的值作為整個(gè)大表達(dá)式的值;

若表達(dá)式1不成立,則選擇計(jì)算表達(dá)式3,并將表達(dá)式3的值作為整個(gè)大表達(dá)式的值

此題中的Kb相當(dāng)于表達(dá)式La相當(dāng)于表達(dá)式2,b相當(dāng)于表達(dá)式3.

a為3,b為4a<b表達(dá)式1成立,因此計(jì)算表達(dá)式2,并將表達(dá)式2的值即a中的值,并作為整個(gè)表達(dá)式的值,

因此整個(gè)表達(dá)式的值為3

12.若intx=2,產(chǎn)3,—4則表達(dá)式/3y:z的結(jié)果是(B).

446302D0B1

13.C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是(B)o

4060或1。1D'T或'F

14下面(D)表達(dá)式的值為4

411/3B11.0^

0(float)11/3D(int)(11.Q/3+Q5)

1C6題為同一類型

詳見教材P5r36

(1)相同數(shù)據(jù)類型的元素進(jìn)行數(shù)學(xué)運(yùn)算(+r弋力得到結(jié)果還保持原數(shù)據(jù)類型。

(2不同數(shù)據(jù)類型的元素進(jìn)行數(shù)學(xué)運(yùn)算,先要統(tǒng)一數(shù)據(jù)類型,統(tǒng)一的標(biāo)準(zhǔn)是低精度類型轉(zhuǎn)換為高精度的數(shù)據(jù)類

型。

選項(xiàng)A11與3為兩個(gè)整數(shù),11/3結(jié)果的數(shù)據(jù)類型也應(yīng)為整數(shù),因此將3.666666的小數(shù)部分全部舍掉,僅保留

整數(shù),因此1比3

選項(xiàng)B11.0為實(shí)數(shù),3為整數(shù),因此首先要統(tǒng)一數(shù)據(jù)類型,將整型數(shù)據(jù)3轉(zhuǎn)換為3.Q轉(zhuǎn)換后數(shù)據(jù)類型統(tǒng)一為

實(shí)型數(shù)據(jù),選項(xiàng)B變?yōu)?1.04.0,結(jié)果的數(shù)據(jù)類型也應(yīng)為實(shí)型數(shù)據(jù),因此選項(xiàng)B11.0/3=3666666

選項(xiàng)Q先將整數(shù)11強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換為實(shí)型H.0,因此選項(xiàng)C變?yōu)镮LQ/3,其后計(jì)算過程、結(jié)果與選項(xiàng)B

選項(xiàng)Q首先計(jì)算11.。力,其計(jì)算過程、結(jié)果與選項(xiàng)B同,得到3.666666再計(jì)算3.66666AQX166666最

后將4.166666強(qiáng)制類型轉(zhuǎn)換為整型,即將其小數(shù)部分全部舍掉,結(jié)果為4

15.設(shè)整型變量H則執(zhí)行下列語句后,浮點(diǎn)型變量b的值不為0.5的是(B)

Ab=l.Q/aBb=(float)

Cb=l/(float)aDb=l/0*l.0)

16.若"intn;floatUI3.挈,則執(zhí)行“n=(int)/后,n的值是(合

A1B4C4333333D46

"(int)f"表示將f中的值強(qiáng)制類型轉(zhuǎn)換為整型,即將13.8的小數(shù)部分舍掉,轉(zhuǎn)換為13;然后計(jì)算1%,

結(jié)果為1,再將結(jié)果賦給變量冉因此n的值為1

17.以下對(duì)一維數(shù)組a的正確說明是:1)

@chara(10;BintaQ;

0intk=5,a[k];Dchara[30={(ab';c!;

詳見教材P14/144一維數(shù)組的定義、初始化

類型符數(shù)組名常量表達(dá)式]

類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標(biāo)識(shí)符命名規(guī)則;常量表達(dá)式是指數(shù)組的長(zhǎng)度(數(shù)組中包含元

素的個(gè)數(shù)),其值只能是整數(shù),不可以是變量,而且從1開始計(jì)數(shù)。

選項(xiàng)A常量表達(dá)式只能放在中括號(hào)口中

選項(xiàng)B只有在對(duì)數(shù)組初始化(即賦值)的時(shí)候才可以省略數(shù)組的長(zhǎng)度,B中并未對(duì)a進(jìn)行初始化。

選項(xiàng)C常量表達(dá)式不能為變量。

1&以下能對(duì)一維數(shù)組a進(jìn)行初始化的語句是:(C)

Ainta[5]=(0,1,2,3,4)Binta(5)=}

Cinta|5]={Q1,Dinta{5}={10*1}

詳見教材P145,一維數(shù)組的定義、初始化

選項(xiàng)耳口常量表達(dá)式只能放在中括號(hào)口中

選項(xiàng)A數(shù)組可以看做是若干個(gè)相同數(shù)據(jù)類型元素的有序集合,因此以集合的形式對(duì)其初始化,使用{}對(duì)其初

始化,選項(xiàng)了0.

19.在C語言中對(duì)一維整型數(shù)組的正確定義為Do

Ainta(IQ;Hintn=10,a[nJ;

0int弭a回;D#defineN10

intaN;

2。已知:intaCLO];則對(duì)a數(shù)組元素的正確引用是(D)。

Aa[10]Ra|3.3Ga(5)Da。

詳見教材P144,數(shù)組元素的引用

數(shù)組名5標(biāo)]

引用數(shù)組元素時(shí),口中的下標(biāo)為邏輯地址下標(biāo),只能為整數(shù),可以為變量,且從0開始計(jì)數(shù)

inta口5表示定義了一個(gè)包含10個(gè)整型數(shù)據(jù)的數(shù)組a,數(shù)組元素的邏輯地址下標(biāo)范圍為O,即a⑼表示組

中第1個(gè)元素;affl表示組中第2個(gè)元素;a⑵表示組中第3個(gè)元素;.....;a0表示組中第10個(gè)元素.

選項(xiàng)A超過了數(shù)組a的邏輯地址下標(biāo)范圍;

選項(xiàng)B邏輯地址下標(biāo)只能為整數(shù)

選項(xiàng)C邏輯地址下標(biāo)只能放在口中

21.若有以下數(shù)組說明,則i=lQa與Dm元素?cái)?shù)值是(C)。

inta口刀={1,4,7,10,2,5,8,11,3,6,9,12);

A10B9C6D5

先算a[a5]內(nèi)層的aLi],由于i=10,因此a[[即aU0.

a口①對(duì)應(yīng)下面數(shù)組中的元素為9.因此即為a⑼

a⑼對(duì)應(yīng)下面數(shù)組中的元素為6因此a回即為6

22若有說明:intaQS={{1,2,3},K5},fe1\\-則數(shù)組a的第一維的大小為:(B)

A2B3C4口無確定值

57D369

二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對(duì)二維數(shù)組賦值,因此內(nèi)層有幾個(gè)大括號(hào),數(shù)組就

有幾行

23.對(duì)二維數(shù)組的正確定義是(C)

詳見教材P149H52,二維數(shù)組的定義、初始化

類型符數(shù)組名總量表達(dá)式]常量表達(dá)式]

二維數(shù)組可以看做是矩陣

類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標(biāo)識(shí)符命名規(guī)則;第一個(gè)常量表達(dá)式是指數(shù)組的行數(shù);第二個(gè)

常量表達(dá)式是指數(shù)組的列數(shù);常量表達(dá)式的值只能是整數(shù),不可以是變量,而且從1開始計(jì)數(shù)。

一維數(shù)組初始化時(shí)可以省略數(shù)組長(zhǎng)度

二維數(shù)組初始化時(shí)可以省略行數(shù),但不能省略列數(shù)

選項(xiàng)AB都省略了列數(shù)

選項(xiàng)Q不符合二維數(shù)組定義的一般形式,行、列常量表達(dá)式應(yīng)該放在不同的口中

Ainta口口={1,2,3,45,@;Binta0口={1,2,345,弓;

Cinta□[3]=U,2,3,4,5,;Dinta2刃={1,2,3,45,可;

24.已知inta團(tuán)圖;則對(duì)數(shù)組元素引用正確的是C

Aa⑵⑷Ha1引0a0⑹DaQ(1)

詳見教材P150,數(shù)組元素的引用

數(shù)組名下標(biāo)]下標(biāo)]

引用數(shù)組元素時(shí),口中的下標(biāo)為邏輯地址下標(biāo),只能為整數(shù),可以為變量,且從0開始計(jì)數(shù)

第一個(gè)F標(biāo)]表示行邏輯地址下標(biāo),第二個(gè)F標(biāo)]表示列邏輯地址下標(biāo)。

本題圖示詳見P149圖6.7

因此a的行邏輯地址范圍(Ra的列邏輯地址范圍O;

選項(xiàng)A列邏輯地址下標(biāo)超過范圍

選項(xiàng)5Q的引用形式不正確。

25.C語言中函數(shù)返回值的類型是由A決定的.

四函數(shù)定義時(shí)指定的類型6return語句中的表達(dá)式類型

0調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型D形參的數(shù)據(jù)類型

26.在C語言中,函數(shù)的數(shù)據(jù)類型是指(A)

A函數(shù)返回值的數(shù)據(jù)類型B函數(shù)形參的數(shù)據(jù)類型

C調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型D任意指定的數(shù)據(jù)類型

27.在函數(shù)調(diào)用時(shí),以下說法正確的是(B)

A函數(shù)調(diào)用后必須帶回返回值

B實(shí)際參數(shù)和形式參數(shù)可以同名

C函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量

D主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個(gè)文件里

28在C語言中,表示靜態(tài)存儲(chǔ)類別的關(guān)鍵字是:(C)

4autoBregister0staticDextern

29.未指定存儲(chǔ)類別的變量,其隱含的存儲(chǔ)類別為(A)。

AautoBstaticQexternDregister

30.若有以下說明語句:

structstudent

{intnun)

charname口;

floatscore;

}stu

則下面的敘述不正確的是:(D)

Astruct是結(jié)構(gòu)體類型的關(guān)鍵字

Bstructstudent是用戶定義的結(jié)構(gòu)體類型

Cnun)score都是結(jié)構(gòu)體成員名

Dstu是用戶定義的結(jié)構(gòu)體類型名

31.若有以下說明語句:

structdate

{intyeaq

intmonth;

intday

}brithday;

則下面的敘述不正確的是C.

astruct是聲明結(jié)構(gòu)體類型時(shí)用的關(guān)鍵字

Bstructdate是用戶定義的結(jié)構(gòu)體類型名

Qbrithday是用戶定義的結(jié)構(gòu)體類型名

Dyear,day都是結(jié)構(gòu)體成員名

32以下對(duì)結(jié)構(gòu)變量stul中成員age的非法引用是B

structstudent

{intage;

intnin)

}stul,

p=&stul;

4stul.ageBstudent.age0p-^ageD<*p).age

33.設(shè)有如下定義:

strucksk

{inta;

float七

}data;

int

若要使P指向data中的a域,正確的賦值語句是C

冷p=&a;6戶dataa;Qp=&dataa;D*K)ataa;

34設(shè)有以下說明語句:

typedefstructstu

{inta;

floatb;

}stutype;

則下面敘述中錯(cuò)誤的是(D)。

Astruct是結(jié)構(gòu)類型的關(guān)鍵字

Rstructstu是用戶定義的結(jié)構(gòu)類型

Ga和b都是結(jié)構(gòu)成員名

Dstutype是用戶定義的結(jié)構(gòu)體變量名

35.語句int枇說明了C。

AP是指向一維數(shù)組的指針

BP是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)

0P是指向int型數(shù)據(jù)的指針〃指針的定義教材P223

Dp是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針

36下列不正確的定義是(A)o

Aint*p=&i,i;Binti;

Cinti,*p=&i;Dinti,*g

選項(xiàng)A先定義一個(gè)整型指針變量p,然后將變量i的地址賦給p然而此時(shí)還未定義變量i因此編譯器無法

獲得變量i的地址。ga寸比,選項(xiàng)c先定義變量i,則在內(nèi)存中為i分配空間,因此i在內(nèi)存空間的地址就

可以確定了;然后再定義R此時(shí)可以為P賦i的地址,C正確)

37.若有說明:int啟*河則以下非法的賦值語句是:(D)

為p=q6*產(chǎn)的Qn=^qDp=n

Bq同為整型指針變量,二者里面僅能存放整型變量的地址。

選項(xiàng)Aq中為地址,因此可將此地址賦給P

選項(xiàng)B*P表示P所指向?qū)ο髇的內(nèi)容,即一個(gè)整數(shù);*q表示q所指向?qū)ο蟮膬?nèi)容,由于在定義q時(shí)為其初始化,

將P中n的地址給q,因此p中存放n的地址,*q表示q所指向?qū)ο髇的內(nèi)容.因此*kq相當(dāng)于『

選項(xiàng)C蘆q等價(jià)于n="

選項(xiàng)口p中只能存放地址,不能將n中的整數(shù)值賦給p

38有語句:inta口嘰;則B是對(duì)指針變量P的正確定義和初始化。

Aintp=^a;Bint*p=^0intp=&a;Dint*p=&a;

選項(xiàng)Aa是數(shù)組名,不是指針變量名,因此不可用標(biāo)注數(shù)組名a

選項(xiàng)Ca是數(shù)組名,數(shù)組名就是地址,無需再用地址符號(hào)。而且在定義指針變量p時(shí),應(yīng)在變量名前加*,標(biāo)明

P是指針變量

選項(xiàng)。a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號(hào)。

39.若有說明語句"inta0,*產(chǎn)型”,則對(duì)數(shù)組元素的正確引用是(C)。

Aa[g|Bp團(tuán)C*(pi-2)Dprl-2

首先定義一個(gè)整型數(shù)組a,a的長(zhǎng)度為5,然后定義一個(gè)指針變量R并同時(shí)對(duì)P進(jìn)行初始化,將數(shù)組a的地

址賦給R因此此時(shí)p中存放的數(shù)組a的首地址,即數(shù)組中第…個(gè)元素a⑼的地址。

對(duì)于數(shù)組元素下標(biāo)的引用詳見P144),一般形式數(shù)組名5標(biāo)]其中下標(biāo)為邏輯地址下標(biāo),從。開始計(jì)數(shù),

方括號(hào)中的下標(biāo)可以是變量,可以是表達(dá)式,但結(jié)果一定要是整數(shù)。

選項(xiàng)AP中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo)

選項(xiàng)Ba是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo)

選項(xiàng)Q重點(diǎn)?。。≡斠妏23f^3@計(jì)2表示指向同一數(shù)組中的下兩個(gè)元素的地址,當(dāng)前p指向affi],則

計(jì)2表示a回的地址,因此*四表示a⑵的內(nèi)容

40.有如下程序

inta口5={1,2,3,4,167,&9,,*—

則數(shù)值為9的表達(dá)式是B

AW0*(m0oPb8

重點(diǎn)?。?!詳見P23O34)

首先定義一個(gè)整型數(shù)組a,a的長(zhǎng)度為5,然后定義一個(gè)指針變量P,并同時(shí)對(duì)P進(jìn)行初始化,將數(shù)組a的地

址賦給R因此此時(shí)P中存放的數(shù)組a的首地址,即數(shù)組中第一個(gè)元素a吻的地址。

數(shù)組中9對(duì)應(yīng)的是a⑻,選項(xiàng)BPtB表示數(shù)組中后8個(gè)元素的地址,即a⑻的地址。*—?jiǎng)t表示該地址

內(nèi)所存放的內(nèi)容,即a⑻的值。

選項(xiàng)A呼3表示P所指向?qū)ο蟮膬?nèi)容,此時(shí)好旨向a。帶即a吻的值1.相ET+A10

選項(xiàng)Q*P表示P所指向?qū)ο蟮膬?nèi)容,此時(shí)埒旨向a叨,*P即aKB的值。因此*PM)即*PiR或等價(jià)于

a吻=a⑹+9.

選項(xiàng)P曲表示數(shù)組中后8個(gè)元素的地址,即a囿的地址,而非a圄中的值。

41.在C語言中,以D作為字符串結(jié)束標(biāo)志

為‘7B',Q,0D'7

42下列數(shù)據(jù)中屬于“字符串常量”的是(A)。

AuaBWC'abZD'a

若干個(gè)字符構(gòu)成字符串

在C語言中,用單引號(hào)標(biāo)識(shí)字符;用雙引號(hào)標(biāo)識(shí)字符串

選項(xiàng)BC分別用1和''標(biāo)識(shí)字符串

選項(xiàng)Q標(biāo)識(shí)字符。

43.已知charxQ="he1lo",y口=fh','e','a','b','e'};,則關(guān)于兩個(gè)數(shù)組長(zhǎng)度的正確描述是B.

目相同6x大于yQx小于yD以上答案都不對(duì)

C語言中,字符串后面需要一個(gè)結(jié)束標(biāo)志位'\0\通常系統(tǒng)會(huì)自動(dòng)添加。

對(duì)一維數(shù)組初始化時(shí)可采用字符串的形式(例如本題數(shù)組力,也可采用字符集合的形式(例如本題數(shù)組y)o在

以字符串形式初始化時(shí),數(shù)組x不盡要存儲(chǔ)字符串中的字符,還要存儲(chǔ)字符串后的結(jié)束標(biāo)志位,因此數(shù)組x的長(zhǎng)

度為6在以字符集合形式初始化時(shí),數(shù)組y,僅存儲(chǔ)集合中的元素,因此數(shù)組y長(zhǎng)度為5

一、讀程序

基本輸入輸出及流程控制

1.

#include<stdiah>

main

{inta=Lb=3,

if

printfC'yesXp1);

else

printfC'nd\p');

}

運(yùn)行結(jié)果為:no

詳見教材P89選擇結(jié)構(gòu)

詳見教材P91關(guān)系符號(hào)

詳見附錄Dp378符號(hào)的優(yōu)先級(jí)

=<示判斷符號(hào)兩邊的值是否相等;嚷示將符號(hào)右邊的值賦給左邊的變量

本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第二種

選擇結(jié)構(gòu)三種一般形式中的“語句”皆為復(fù)合語句,復(fù)合語句要用抒括起來,只有當(dāng)復(fù)合語句中只包括一條語

句時(shí)可以省略{},此題即如此,因此兩個(gè)printf操作沒有加{}

若u=a+b成立,則執(zhí)行printf("ye^");

否則(即r均不成立),執(zhí)行printfC'ncNi');

物優(yōu)先級(jí)高于『因此先算a也值為4,表達(dá)式I不成立,因此執(zhí)行printf("ng?);即輸出字符串no

2

#include<stdiah>

mainjj

{inta=12,b=—34,c=56,miiF=Q

min=a;

if

min=4j;

if(nin>o)

min=c;

printf("min=%l",miq);

}

運(yùn)行結(jié)果為:mif74

詳見教材p89選擇結(jié)構(gòu)

本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第一種

一共包含了兩個(gè)選擇結(jié)構(gòu)(兩個(gè)if語句)

定義變量,并賦值此時(shí)后12,c=56miir=0

將a中值拷貝,賦給miq覆蓋了min中的0)此時(shí)min中的值被更新為12,

若mirt>b成立,則執(zhí)行min=t;

若minx成立,則執(zhí)行min=q

輸出min中的值

12大于T4第一個(gè)if語句的表達(dá)式成立,因此執(zhí)行miF執(zhí)行后min中的值被更新為T4

與4小于56第二個(gè)if語句的表達(dá)式不成立,因此不執(zhí)行mif

最后輸出min中的值,為T4

3.

#include<stdiah>

main"

{intx=2,y=—1,z=X

if

if依俞

z=Q

else

z=^z+l;

printf,z);

}

運(yùn)行結(jié)果為:5

遇到選擇結(jié)構(gòu),首先要明確條件表達(dá)式成立時(shí)執(zhí)行哪些操作。本題中,第一個(gè)if語句,其后的復(fù)合語句沒有大

括號(hào){},說明復(fù)合語句中只包含一條語句,進(jìn)而省略了什。內(nèi)層的if...else..是選擇結(jié)構(gòu)的第二種基本形

式,在結(jié)構(gòu)上視為一條語句。因此內(nèi)層的if...else...作為第一個(gè)if語句的復(fù)合語句。

若表達(dá)式兩成立,則繼續(xù)判斷

若E則執(zhí)行網(wǎng)

否則(即yX>,執(zhí)行EL

輸出z

2>-1,表達(dá)式對(duì)不成立,因此不執(zhí)行內(nèi)層的if“else,進(jìn)而z中的值沒有被改變。

輸出z中的值為5

4

#include<stdiah>

mainjj

{floata,b,c,t;

S=?f,

b=7;

c=l;

if

{t?^;^35b=t;}

if(3>q)

{t=a;Kc=t;}

if(tix^

{曰KG=t;}

printfm2f,%5.2f,?^.2f",a,U0);勵(lì)求余運(yùn)算

}

運(yùn)行結(jié)果為:LOQ3.0Q7.00

詳見教材P72數(shù)據(jù)的輸出形式

本題包含了3個(gè)if語句,每個(gè)if語句后的{}都不可省略,因?yàn)槊總€(gè)什中都包含了多條語句

若表達(dá)式a>b成立,則執(zhí)行a斗b^=t;}

若表達(dá)式a>c成立,則執(zhí)行{『Kc=t;}

若表達(dá)式b>c成立,則執(zhí)行{曰b=^c=t;}

輸出a,0c中的值,要求輸出的每個(gè)數(shù)據(jù)寬度為5個(gè)空格,小數(shù)部分保留2位,數(shù)據(jù)右對(duì)齊

3小于7,因此表達(dá)式a>b不成立,因此不執(zhí)行{『曲b=t;}

3大于1,因此表達(dá)式4成立,則執(zhí)行性前dX}。第一句,將a中的3拷貝,粘貼到t中;第二句,將c

中的1拷貝,粘貼到a中,覆蓋掉先前的3;第三句。將t中的3拷貝到c中,覆蓋掉c中先前的1.執(zhí)行完復(fù)

合語句后實(shí)現(xiàn)了a,c元素的值的互換,a為1,c為3,t為3,。

7大于c中的3,因此b&c成立,執(zhí)行則執(zhí)行{印XB;},過程同上,執(zhí)行后b為3,c為7,t為7

此時(shí)輸出a,b,c中的值為1.00,200,7.00

5.

#include<stdio.h>

main()

{floatT.0,(M.Q

if(c>d)c=5.Q

else

if(<?=d)c=6.。

elseG=7.Q

printf("%lf\p,c);

}

運(yùn)行結(jié)果為:7.0

此題為if...else..語句的嵌套,第二if...else..作為第一個(gè)if...else..語句else部分的復(fù)合語句。

若表達(dá)式>d成立,則執(zhí)行c=5.a

否則(表達(dá)式Od不成立)

若表達(dá)式一1成立,則執(zhí)行c=6。

否則,執(zhí)行c=7.&

輸出c中的值

3.0小于40,因此表達(dá)式Od不成立,執(zhí)行第二個(gè)if-else、

3.0不等于4Q因此表達(dá)式I不成立,執(zhí)行70,將7.0賦給c,覆蓋掉c中的3.0,此時(shí)c中的值為7.0

輸出此時(shí)的c中的值

6.

#include<stdiah>

main夕

{int國(guó)

scanf碗;

if(nX0

{if=QprintfC%iisapositiveeveri\pn,n);

elseprintf(1%!isapositiveoddxp",n);}

else

{if(n%2=Q)printf(1%!isanegativeeveriXn11,獻(xiàn)

elseprintf(1%!isanegativeodd\iH,n);}

}

若鍵入一9,則運(yùn)行結(jié)果為:-9isanegativeodd

7.

#include<stdiah>

main$

{intnunrQ

,vrfiile{numH;printfnu^;}

}

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

1

2

3

詳見教材pl15循環(huán)結(jié)構(gòu)

當(dāng)循環(huán)條件nun-2成立的時(shí)候,執(zhí)行循環(huán)體{ntmdprintfnin);}中的語句。

循環(huán)初值mm為a

循環(huán)條件numU2成立

第1次循環(huán):執(zhí)行nuM即將num中的值加1,執(zhí)行后num為1;

執(zhí)行printfng;在屏幕上輸出nun中的值,即輸出1,之后換行

此時(shí)num中的值為L(zhǎng)循環(huán)條件nimM成立

第2此循環(huán):執(zhí)行num世即將num中的值加1,執(zhí)行后num為2;

執(zhí)行printfnun);在屏幕上輸出n皿中的值,即輸出2,之后換行

此時(shí)num中的值為2,循環(huán)條件n―2成立

第3此循環(huán):執(zhí)行num+*即將num中的值加1,執(zhí)行后num為3;

執(zhí)行printfnun);在屏幕上輸出num中的值,即輸出3,之后換行

此時(shí)mm中的值為3,循環(huán)條件nte不成立,結(jié)束循環(huán)。

&

#include<stdiah>

main()

{intsun?=10,n=l;

■while仆③{sum=sumFnH;}

printfC%i%f,n,sun);

}

運(yùn)行結(jié)果為:3,7

當(dāng)循環(huán)條件n<3成立的時(shí)候,執(zhí)行循環(huán)體{SUWSUHEn4+}中的語句。

循環(huán)初值sun為10,n為1;

循環(huán)條件n<3成立

第1次循環(huán):執(zhí)行surrp=sum-n=10-l=^

執(zhí)行卅;即將n中的值加1,執(zhí)行后n為2;

此時(shí)n中的值為2,sum中的值為9,循環(huán)條件n<3成立,繼續(xù)執(zhí)行循環(huán)

第2次循環(huán):執(zhí)行sum=sum-n=^9-2=^

執(zhí)行M卡即將n中的值加1,執(zhí)行后n為3;

輸出此時(shí)n,sun中的值,即為3,%需要注意,在printf(“泡%f,n,sm);中要求輸出的數(shù)據(jù)彼此間用逗號(hào)

間隔,因此結(jié)果的兩個(gè)數(shù)據(jù)間一定要有逗號(hào)

9.

#include<stdiah>

main0

{intnun;c;

scanfC%1",&nurO;

dot=nui%iaprintfC%1",。;}while((pup^=lC!);

printfCNn');

}

從鍵盤輸入23,則運(yùn)行結(jié)果為:32

詳見教材P117循環(huán)結(jié)構(gòu);p60復(fù)合的賦值運(yùn)算符

do{}vhile裳達(dá)式);

先無條件執(zhí)行循環(huán)體,再判斷循環(huán)條件。注意砒ile(表達(dá)式)后有分號(hào)

定義整型變量ngq

為num賦一個(gè)整型值;

執(zhí)行EuiWaprintfC%1"(C);}直到循環(huán)條件(n皿MQX)不成立;

輸出換行

已知為num賦值23

第1次執(zhí)行循環(huán)體

執(zhí)行c?=nun^l0=23%10=3;

執(zhí)行printfC%1",c);輸出3

判斷循環(huán)條件nurp—lO等價(jià)于nun=nm>4Q因此nuiH力6=2,2大于Q因此循環(huán)條件匕皿£1。>0成立,繼

續(xù)執(zhí)行循環(huán)體。執(zhí)行完第1次循環(huán)時(shí),num為2,c為3

第2次執(zhí)行循環(huán)體

執(zhí)行(^=2%10=2;

執(zhí)行printc);再輸出2

判斷循環(huán)條件0等于0,因此循環(huán)條件g皿£1。>0不成立。結(jié)束循環(huán)

10

#include<stdiah>

main"

{ints=Qa=5,店

scanfC%i",&ri);

do{s-h=l;se=ar-2;}vhile@=rj);

printfC%,s,a);

}

若輸入的值L運(yùn)行結(jié)果為:2,1

詳見教材pl17循環(huán)結(jié)構(gòu);p60復(fù)合的賦值運(yùn)算符

執(zhí)行{統(tǒng)1;內(nèi)2}直到循環(huán)條件a!=n不成立;

已知為n賦值1,s為Qa為5

第1次執(zhí)行循環(huán)體

執(zhí)行#4;等價(jià)于s=s+l=0-l-l

執(zhí)行Aa-義否=5-2=6

判斷循環(huán)條件,3不等于1,因此循環(huán)條件a!千成立,繼續(xù)執(zhí)行循環(huán)體。

執(zhí)行完第1次循環(huán)時(shí),s為1,a為3

第2次執(zhí)行循環(huán)體

執(zhí)行等價(jià)于尸計(jì)1=1+1=2

執(zhí)行Aa—£^^—2=1

判斷循環(huán)條件,1等于1,因此循環(huán)條件a!』不成立,結(jié)束循環(huán)。

執(zhí)行完第2次循環(huán)時(shí),s為2,a為1

輸出此時(shí)s,a中的值,結(jié)果為2,1

11.

#include,fstdiahH

main$

fcharG

G=^etchar

veiled=?')懶utchar?;<?=getcharj(;}

}

如果從鍵盤輸入abcddfgh(回車)

運(yùn)行結(jié)果為:abcde

12

#include<stdiah>

main0

{charG

\^ile(fc=getchar$)1=Y)

{if('A<=c8&cV='Z)putchar?;

elseifCa<^c&&c<="z)putchar;}

}

當(dāng)輸入為ab*A%曲。聊,運(yùn)行結(jié)果為:施政DOD

13.

#include<stdiah>

main$

{int為y電

for(?F=1;x+4)

{ifglO

break;

y=y+^

}

printf("%%f,y,力;

}

運(yùn)行結(jié)果為:105

詳見教材P120for語句

詳見教材pl26-128break,continue語句

for(表達(dá)式1;表達(dá)式£表達(dá)式5

①先求解表達(dá)式1

0求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行③.若為假,則結(jié)束循環(huán),轉(zhuǎn)到?

③求解表達(dá)式3

④轉(zhuǎn)回上面②繼續(xù)執(zhí)行

0循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句

break,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)第i+1次循環(huán))

此題表達(dá)式1為A1,表達(dá)式2(循環(huán)條件)為410,表達(dá)式3為汩+

初值x為1,y為Q循環(huán)條件(即表達(dá)式H410成立,進(jìn)入循環(huán)體

第1次循環(huán)

執(zhí)行if語句。。小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行月書;廣0+1=]

轉(zhuǎn)向表達(dá)式3,執(zhí)行m-H=l+1=2循環(huán)條件內(nèi)=10成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

執(zhí)行if語句。1小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行尸書;尸1+2=3

轉(zhuǎn)向表達(dá)式3,執(zhí)行xH—+1=2+1=或循環(huán)條件410成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

執(zhí)行if語句。3小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行尸+<;

轉(zhuǎn)向表達(dá)式3,執(zhí)行對(duì)七川1=升1=4循環(huán)條件一10成立,進(jìn)入第4次循環(huán)

第4次循環(huán)

執(zhí)行if語句。6小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行產(chǎn)曠?芯y=^+4=10

轉(zhuǎn)向表達(dá)式3,執(zhí)行肝hEH=5b循環(huán)條件烈;10成立,進(jìn)入第5次循環(huán)

第5次循環(huán)

執(zhí)行if語句。10等于IQif語句的條件表達(dá)式成立,執(zhí)行break跳出循環(huán)。

從break跳出至for語句的下一條語句。執(zhí)行printf("%%f,y,力;

輸出當(dāng)前的y與x結(jié)果為105

14

#include<stdiQh>

main()

{charch;

ch=getchar();

switchfch)

{case'A:printf("熠,"A);

case'B:printfB);break;

default:printf(a/^\pother);

}}

當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:杷

詳見教材pl03,switch語句

switch(表達(dá)式)

{case常量1:語句1

case常量2:語句2

???

■???

case常量n:語句n

default:語句n+-l

}

其中表達(dá)式,常量L…,常量n都為整型或字符型

case相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開始往下執(zhí)行程序,不再匹配常量,

直至遇到break或switch結(jié)束

本題過程:

首先從鍵盤接收一個(gè)字符'A并將其放在變量ch中。

執(zhí)行switch語句。Switch后面的條件表達(dá)式為ch,因此表達(dá)式的值即為字符'A.用字符'A依次與下

面的case中的常量匹配。

與第1個(gè)case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)

行printf(“零,'A),屏幕上輸出A再往下繼續(xù)執(zhí)行printf(“左",'E),屏幕上輸出R再繼續(xù)執(zhí)行

break,此時(shí)跳出switch語句。

15.

#include<stdiah>

main()

{inta=Lb=Q

scanf;

switch@

{case1:b=l;break;

case2b=^break;

default:b=iq}

printf(1%!",tj);

}

若鍵盤輸入5,運(yùn)行結(jié)果為:10

本題過程:

首先用scanf函數(shù)為變量a賦值為5b

執(zhí)行switch語句。switch后面的條件表達(dá)式為為因此表達(dá)式的值即為5.用5依次與下面case中的常量

匹配。沒有找到匹配的常量,因此兩個(gè)case后的語句都不執(zhí)行。執(zhí)行default后面的語句b=10;將10賦給變量

b)

輸出變量h結(jié)果為io

16

#include<stdiah>

main0_

{chargrad屋C;

switch(gradq)

(

case'A:printfC90-100\p);

case:printfC80-90\p);

case'C:printfC70-80\p);

case'D:printfC60-70\p);break;

case'E:printf);

default:printfCerrort\n);

}

)

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

70-80

60-70

本題過程:

首先從鍵盤接收一個(gè)字符'c并將其放在變量grade中。

執(zhí)行switch語句。switch后面的條件表達(dá)式為grade,因此表達(dá)式的值即為字符'C.用字符'C依次與

下面的case中的常量匹配。

與第3個(gè)case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)

行printf(*'70-8^);,屏幕上輸出7(P8a并換行;再往下繼續(xù)執(zhí)行printf(*'60-70d),屏幕上輸出60-70,

并換行;再繼續(xù)執(zhí)行break,此時(shí)跳出switch語句。

17.

#include<stdiah>

mainjj

{intE

for(y>Q4

if陶行=電

{printf耐,一f;

}

}

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

852

詳見教材P53,自增自減符號(hào)

此題表達(dá)式1被省略,表達(dá)式2(循環(huán)條件)為y>Q表達(dá)式3為二

初值y為9,循環(huán)條件(即表達(dá)式1yX)成立,進(jìn)入循環(huán)體

第1次循環(huán)

執(zhí)行if語句。W=0,if語句的條件表達(dá)式成立,執(zhí)行printf0',一f,即y先自減1變?yōu)?然后在

輸出,因此屏幕上輸出8

轉(zhuǎn)向表達(dá)式3,執(zhí)行——1=8-1=%循環(huán)條件yX)成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

執(zhí)行if語句。於不為Qif語句的條件表達(dá)式不成立,不執(zhí)行printf%1',一f

轉(zhuǎn)向表達(dá)式3,執(zhí)行三三廣1=7-1=4循環(huán)條件y>0成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

執(zhí)行if語句。6用=0,if語句的條件表達(dá)式成立,執(zhí)行printf%!',即y先自減1變?yōu)?,然后在

輸出,因此屏幕上輸出5

轉(zhuǎn)向表達(dá)式3,執(zhí)行—―『Ainfc循環(huán)條件y>0成立,進(jìn)入第4次循環(huán)

第4次循環(huán)

執(zhí)行if語句。靜不為Qif語句的條件表達(dá)式不成立,不執(zhí)行printf陽,一f

轉(zhuǎn)向表達(dá)式3,執(zhí)行l(wèi),H循環(huán)條件y>0成立,進(jìn)入第5次循環(huán)

第5次循環(huán)

執(zhí)行if語句。3%=0,if語句的條件表達(dá)式成立,執(zhí)行printf%!',即y先自減1變?yōu)?,然后在

輸出,因此屏幕上輸出2

轉(zhuǎn)向表達(dá)式3,執(zhí)行1—1=2—1=L循環(huán)條件y>0成立,進(jìn)入第5次循環(huán)

第6次循環(huán)

執(zhí)行if語句。1涵不為0,if語句的條件表達(dá)式不成立,不執(zhí)行printf%',一f

轉(zhuǎn)向表達(dá)式3,執(zhí)行h產(chǎn)1—1=1循環(huán)條件y>0不成立,循環(huán)結(jié)束。

1&

#include<stdiah>

main0

{inti,sutn=0;i=l;

do{sun=sumM;i-H?}淄ile(i<=lQ);

printf,sun);

}

運(yùn)行結(jié)果為:55

19.

#include<stdiah>

#defineN4

main0

{inti;

intxl=Lx2==2;

printfCZ)9;

for(i=l;i<=^i-H)

{printfxl,x2);

if(i%2=Q)

printfC5);

x—2

x2=^c2+xl;

)

}

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

1235

8132134

此題首先為整型變量賦初值xl=l,x2=2

表達(dá)式1為i=L表達(dá)式2(循環(huán)條件)為i*|Ji<4表達(dá)式3為i+b

循環(huán)變量初值i為L(zhǎng)循環(huán)條件(即表達(dá)式4i<M成立,進(jìn)入第1次循環(huán)

第1次循環(huán)

執(zhí)行printf。%%叫xl,X》;因此屏幕上輸出12

執(zhí)行if語句。1%2不為Qif語句的條件表達(dá)式不成立,不執(zhí)行printfCZ?”

執(zhí)行Xlfl+x2=l+2=母此時(shí)xl中的值已變?yōu)?

執(zhí)行x02+xl=2B=5b

轉(zhuǎn)向表達(dá)式3,執(zhí)行i+hi為Z循環(huán)條件iJ成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

執(zhí)行printfxl,x》;因此屏幕上輸出35

執(zhí)行if語句。靂=),if語句的條件表達(dá)式成立,執(zhí)行printfON%換行

執(zhí)行xl=xl+x2=^+M此時(shí)xl中的值已變?yōu)?

執(zhí)行x2==x2+x1=5+8=15,

轉(zhuǎn)向表達(dá)式3,執(zhí)行iUi為3循環(huán)條件i—4成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

執(zhí)行printf。%猶Id",xl,x2);因此屏幕上輸出813

執(zhí)行if語句。翔不為0,if語句的條件表達(dá)式不成立,不執(zhí)行printf

執(zhí)行xlml+x2=8+13=21;此時(shí)xl中的值已變?yōu)?1

執(zhí)行x2=^2+xl=21+13=^4

轉(zhuǎn)向表達(dá)式3,執(zhí)行i+hi為4循環(huán)條件i—4成立,進(jìn)入第4次循環(huán)

第2次循環(huán)

執(zhí)行printf「的晚叫xl,X》;因此屏幕上輸出2134

執(zhí)行if語句。劭0=0,if語句的條件表達(dá)式成立,執(zhí)行printf(l71");換行

執(zhí)行xlfl+x>21由4=55;此時(shí)xl中的值已變?yōu)?5

執(zhí)行x2=x2+x1=34+55=8Sl

轉(zhuǎn)向表達(dá)式3,執(zhí)行iHi為2循環(huán)條件i04不成立,結(jié)束循環(huán)

20

#include<stdiah>

main()

{int多S

for0^0,y=Qx>=10,y<lQ『yH)

printf("只但盧%

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論