版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀冶煉中的冶煉過程模擬與優(yōu)化考核試卷
- 船舶運(yùn)營(yíng)與經(jīng)營(yíng)管理考核試卷
- 文化沖突與教育改革-洞察分析
- 腺癌化療藥物耐藥性逆轉(zhuǎn)策略-洞察分析
- 虛假信息傳播法律規(guī)制-洞察分析
- 同余模與量子計(jì)算-洞察分析
- 膝陽關(guān)功能重建研究-洞察分析
- 汽車零部件樣件試制(生產(chǎn))工作管理流程
- 紅旗渠紅色教育心得體會(huì)
- 已完成工程保護(hù)措施
- 《阿爾茨海默病康復(fù)》課件
- 2022-2023學(xué)年福建省泉州市惠安縣三年級(jí)(上)期末數(shù)學(xué)試卷
- 校企聯(lián)合實(shí)驗(yàn)室的運(yùn)營(yíng)與維護(hù)
- 統(tǒng)編版語文2024-2025學(xué)年六年級(jí)上冊(cè)語文期末專題訓(xùn)練:字音字形(有答案)
- 機(jī)器人課件模板下載
- 江蘇省蘇州市2023-2024學(xué)年高二上學(xué)期期末學(xué)業(yè)質(zhì)量陽光指標(biāo)調(diào)研試題 物理 含答案
- 2024年安防監(jiān)控系統(tǒng)技術(shù)標(biāo)準(zhǔn)與規(guī)范
- 軟件正版化概念培訓(xùn)
- 2024-2025學(xué)年人教版道法八年級(jí)上冊(cè) 第一學(xué)期期末測(cè)試卷01
- 工程結(jié)算業(yè)務(wù)咨詢服務(wù)協(xié)議書
- 運(yùn)輸公司安全生產(chǎn)隱患排查制度
評(píng)論
0/150
提交評(píng)論