




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+復(fù)印練習(xí)詳細(xì)答案解析時(shí)間:2016年4月11日階段測(cè)試11、選B A選項(xiàng):OxFF 是十六進(jìn)制數(shù),其中Ox表示的是十六進(jìn)制的意思,該數(shù)字是c語言常量 B選項(xiàng):1.2e0.5 是科學(xué)記數(shù)法,但是在c語言中要正確要求e的后邊必須是整數(shù),所以B選項(xiàng)錯(cuò)誤,并且e的前邊必須有數(shù)字,像 e7 這種表示方法是錯(cuò)誤的 C選項(xiàng):2L是c語言中的常量,其中L代表的是2屬于long型的數(shù)值 D選項(xiàng):'72' 是字符型常量的一種特殊情況,是根據(jù)其中的ASCII碼來對(duì)應(yīng)的 拓展總結(jié):C語言中的常量總結(jié)常亮:在程序運(yùn)行過程中,值不會(huì)改變的量稱為常量。我們知道變量有什么整形,實(shí)型,字符型那常量有哪些類別
2、,這些常量是什么形式的、長(zhǎng)什么樣的呢?總的來說,常量有一下幾種類別:一.整型常量,也就是整常數(shù)。二.實(shí)型常量。三.字符型常量。四.字符串常量,注意字符串常量和字符型常量是不一樣的。一.整型常量整型常量可以用三種樣子:1.十進(jìn)制整數(shù)。如356,-120,0。2.八進(jìn)制整數(shù)。八進(jìn)制形式的常量都以0開頭,如0123,也就是十進(jìn)制的83;-011,也就是十進(jìn)制的-9。3.十六進(jìn)制整數(shù)。十六進(jìn)制的常量都是以0x開頭,如0x123,就是十進(jìn)制的291。4.等等其他進(jìn)制數(shù)二.實(shí)型常量實(shí)型常量有兩種樣子:1.十進(jìn)制小數(shù)形式。注意:0.0也是實(shí)型常量。2.指數(shù)形式。 比如123000,用科學(xué)計(jì)數(shù)法表示為1.23
3、×10的5次方,用C語言表示就是1.23e5或1.23E5,注意e或E前面必須要有數(shù)字,而且e或E后面的數(shù)字一定要是整數(shù)。三.字符型常量字符型常量都是用''括起來的,其表現(xiàn)形式可以有兩種:1.一般形式。一個(gè)字符用''括起來,注意只能有一個(gè)字符。2.特殊形式。特殊形式都是以開頭,它們?cè)谄聊簧喜粫?huì)直接顯示出來,而是根據(jù)其特定的功能來顯示的,這些特殊字符常量有:n 換行,相當(dāng)于敲一下回車。t 跳到下一個(gè)tab位置,相當(dāng)于按一下鍵盤上的tab鍵。b 退格,相當(dāng)于按一下backspace。r 使光標(biāo)回到本行開頭。f 換頁(yè),光標(biāo)移到到下頁(yè)開頭。 輸出字符,也就是在
4、屏幕上顯示一個(gè)字符。' 輸出'字符,也就是在屏幕上顯示一個(gè)'字符。" 輸出"字符,也就是在屏幕上顯示一個(gè)"字符。ddd 1位到3位八進(jìn)制數(shù)表示的字符。 例如:使用'376',則在屏幕上顯示一個(gè)黑色的方塊。 xhh 1位到2位十六進(jìn)制數(shù)表示的字符。注意x不能丟了。四.字符串常量字符串常量與字符常量不同的地方是,字符串常量是用""把字符串括起來,所以'a'和"a"是不一樣的,而且系統(tǒng)會(huì)在字符串常量的末尾自動(dòng)加一個(gè)字符串結(jié)束標(biāo)志('0')。2、選D A選項(xiàng):V
5、AR 不是c語言中的關(guān)鍵字,A錯(cuò) B選項(xiàng):cher不是c語言中的關(guān)鍵字,注區(qū)別于char,char是字符型,是c語言中的關(guān)鍵字,B錯(cuò) C選項(xiàng):integer是一個(gè)類(類后邊會(huì)講),不是c語言中的關(guān)鍵字,C錯(cuò) D選項(xiàng):是c語言中的關(guān)鍵字,多出現(xiàn)于switch語句中,表示缺省、默認(rèn)的意思 拓展總結(jié): C語言中的關(guān)鍵字總共有32個(gè):auto :聲明自動(dòng)變量 short :聲明短整型變量或函數(shù) int: 聲明整型變量或函數(shù)long :聲明長(zhǎng)整型變量或函數(shù) float:聲明浮點(diǎn)型變量或函數(shù) double :聲明雙精度變量或函數(shù) char :聲明字符型變量或函數(shù) struct:聲明結(jié)構(gòu)體變量或函數(shù) uni
6、on:聲明共用數(shù)據(jù)類型 enum :聲明枚舉類型 typedef:用以給數(shù)據(jù)類型取別名 const :聲明只讀變量 unsigned:聲明無符號(hào)類型變量或函數(shù) signed:聲明有符號(hào)類型變量或函數(shù) extern:聲明變量是在其他文件正聲明 register:聲明寄存器變量 static :聲明靜態(tài)變量 volatile:說明變量在程序執(zhí)行中可被隱含地改變 void :聲明函數(shù)無返回值或無參數(shù),聲明無類型指針 if:條件語句 else :條件語句否定分支(與 if 連用) switch :用于開關(guān)語句 case:開關(guān)語句分支 for:一種循環(huán)語句 do :循環(huán)語句的循環(huán)體 while :循環(huán)語
7、句的循環(huán)條件 goto:無條件跳轉(zhuǎn)語句 continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán) break:跳出當(dāng)前循環(huán) default:開關(guān)語句中的“其他”分支 sizeof:計(jì)算數(shù)據(jù)類型長(zhǎng)度 return :子程序返回語句(可以帶參數(shù),也可不帶參數(shù))循環(huán)條件 3、選A 對(duì)于這道題,首先要明白 *(乘) /(除) 的優(yōu)先級(jí)一樣,并且自左而右結(jié)合 A選項(xiàng):x/y*z 等價(jià)于 (x/y)*z 與題目不符 B選項(xiàng):可以表示 C選項(xiàng):可以表示 D選項(xiàng):x/y/z 等價(jià)于 (x/y)/z 可以表示注意:要求對(duì)各個(gè)運(yùn)算符的優(yōu)先級(jí)以及結(jié)合方向熟悉4、選C 本題表達(dá)式 a+=a-=a*a 是進(jìn)行兩次對(duì)a賦值,表達(dá)式
8、等價(jià)于: a+=(a-=(a*a) 也等價(jià)于以下分句: int a = 3; a-=a*a; (等價(jià)于a = a-(a*a) a += a (等價(jià)于a = a + a) 即先算a-a*a即3-3*3 = (-6),再將最終結(jié)果賦給a,因此此時(shí)a等于-6。 再在a等于-6的基礎(chǔ)上再算a=a+a即最終a=(-6)+(-6) 得-12 因此選C 5、選C 本題要注意的是c語言中規(guī)定運(yùn)算最少的法則,即不做沒有用的運(yùn)算 也就是說對(duì)于 邏輯或 和 邏輯與 運(yùn)算來講,需要看左邊表達(dá)式的真假再來判斷右邊表達(dá)式是否執(zhí)行 對(duì)于邏輯或(|)運(yùn)算來說,當(dāng)|左邊的表達(dá)式為真時(shí),|右邊的表達(dá)式就不再執(zhí)行,否則一定執(zhí)行右邊
9、的表達(dá)式 對(duì)于邏輯與(&&)運(yùn)算來說,當(dāng)&&左邊的表達(dá)式為假時(shí),|右邊的表達(dá)式就不再執(zhí)行,否則一定執(zhí)行右邊的表達(dá)式 本題中 x=y=3; t=+x|+y; 首先系統(tǒng)先執(zhí)行 x=y=3; 語句,接著自左往右執(zhí)行 t=+x|+y; 系統(tǒng)發(fā)現(xiàn) +x 值為 4,是真(非零即真),并且 是邏輯或的判斷運(yùn)算,所以 | 右邊的 +y 就不再執(zhí)行,直接跳過,因此y的值并沒有改變,依然是3 因此選C 6、選B 自增分成兩種:前綴自增和后綴自增 前綴自增: 類似 +n 這種將符號(hào)放在變量名的前邊,這時(shí)候運(yùn)行的是先對(duì)n自加,再執(zhí)行表達(dá)式 例如:int n = 9;if (+n<
10、10); 是先給n加上1,此時(shí)n等于10;再執(zhí)行表達(dá)式做判斷,也就是 n = 10 < 10 不成立 后綴自增: 類似 n+ 這種將符號(hào)放在變量名的后邊,這時(shí)候先運(yùn)行表達(dá)式,整個(gè)表達(dá)式運(yùn)行完之后n再自加1 也就是說在這整個(gè)語句沒有運(yùn)行完之前,n 還是原來的值,并沒有自增加1 例如:(本題就是這種情況)int n = 9;if (n+<10); 是先判斷 n = 9 < 10; 等整個(gè)表達(dá)式執(zhí)行完之后n再自加1,也就是說在if語句下邊只有出現(xiàn)n,那么n的值就是 10 7、選D A選項(xiàng):第一行switch(a+b); 中的分號(hào)錯(cuò)誤,此處不能有分號(hào),A錯(cuò) B選項(xiàng):含有兩個(gè) case
11、 3:錯(cuò),B錯(cuò) C選項(xiàng):switch a 中 a 沒有用括號(hào)括起來,C錯(cuò) D選項(xiàng):正確,default 語句可以放在花括號(hào)中的任何位置8、選A while 循環(huán)語句中的判斷表達(dá)式為真,就執(zhí)行循環(huán)體,否則退出循環(huán) 本題的 while (k=1); 語句中的判斷表達(dá)式 k = 1 是將1賦給k,k的值為1,判斷表達(dá)式永遠(yuǎn)為真,循環(huán)就會(huì)一直執(zhí)行,因此程序會(huì)陷入死循環(huán) 如果將本題的程序中的 k = 1 改成 k = 1,那么程序還是會(huì)陷入死循環(huán),因?yàn)槌绦蛑械难h(huán)體是 k+ ,沒有能夠改變判斷表達(dá)式的條件如果將本題的程序中的 k = 1 改成 k = 1,并且將 k+ 改成 k-,那么程序就會(huì)執(zhí)行一次之
12、后終止9、選B 本題程序的功能是求-1到5的和,結(jié)果是 -1 + 1 + 2 + 3 + 4 + 5 = 14 注意sum 的初始值是 -1 而不是 0 10、選C 分析見以下注釋部分# include <iostream>using namespace std;void main()int x = 3;docout << (x=-2) << endl;while (!(-x); /當(dāng)執(zhí)行到該語句時(shí),x的值先自減等于-3,再判斷while中的表達(dá)式,根據(jù)非零即真, / 是零為假來判斷是否執(zhí)行循環(huán)體,-3不是零,所以(-x)為真,!(-x)為假, / 即判斷表
13、達(dá)式為假循環(huán)終止 /如果將!號(hào)去掉,將陷入死循環(huán)11、2,1 本題屬于簡(jiǎn)單的賦值運(yùn)算題,注意的請(qǐng)看注釋# include <iostream>using namespace std;void main()int a = 1, b = 2;a = a + b; /執(zhí)行完該語句后 a 的值為 3b = a - b; / 該語句中 a 的值為3,b的值為2,執(zhí)行完該語句后b的值為1a = a - b; / 該語句中 = 號(hào)右邊的 a 的值為3,b的值為1,執(zhí)行完該語句后 a 的值為2cout << a << ',' << b <&
14、lt; endl; /該語句中','也可以寫成 "," , 另外輸出a和b時(shí)按照最后a和b的值輸出的12、6.6 # include <iostream>using namespace std;void main()int a = 9, b = 2; /定義兩個(gè)整型變量a和b,并且初始化 float x = , y = 1.1, z; /定義三個(gè)浮點(diǎn)型變量x,y,z,并且將x和y初始化z = a/2 + b*x/y + 1/2; /*1、 整型變量做除法,如果商的實(shí)際值含有小數(shù)點(diǎn),也只能保存商的整數(shù)部分,而將小數(shù)部分去掉a是整型變量,那么a/2的
15、值是4,而不是4.5,同理1/2的值是0;而不是0.52、 b*x/y 等價(jià)于 (b*x)/y 如果運(yùn)算中含有混合運(yùn)算,那么低級(jí)的將自動(dòng)轉(zhuǎn)向高級(jí)的類型,例如b*x/y中b是整型,x和y是浮點(diǎn)型,那么b*x結(jié)果是浮點(diǎn)型, 同理b*x/y的結(jié)果也是浮點(diǎn)型,所以b*x/y的值為(2x)/1.13、 綜合以上,z = a/2 + b*x/y + 1/2 = 4 + (2x)/1.1 + 0 = 16算得 x = 6.6 */cout << z << endl;13、選A 因?yàn)閏3是整型變量,盡管 c3 = 1.0/c2*c1中 1.0/c2*c1 的最終結(jié)果是浮點(diǎn)型的數(shù)值(其數(shù)
16、值為0.5),但是將浮點(diǎn)型數(shù)據(jù)存放在整型變量中,整型變量只能保存該數(shù)值的整數(shù)部分,而將小數(shù)部分去掉。本題是將1.0/c2*c1 的最終結(jié)果0.5保存在整型變量c3中,所以最終c3等于0 因此選A 14、選D 1、逗號(hào)表達(dá)式: C語言中提供一種特殊的運(yùn)算符,逗號(hào)運(yùn)算符,形如本題中(+x,+y) 中間是逗號(hào),而不是分號(hào) 逗號(hào)表達(dá)式的運(yùn)算過程; 從左往右逐個(gè)計(jì)算表達(dá)式,并且逗號(hào)表達(dá)式作為一個(gè)整體,其值為最后一個(gè)表達(dá)式的值 逗號(hào)表達(dá)式的優(yōu)先級(jí): 在所有運(yùn)算符中的優(yōu)先級(jí)別最低 舉例: 1> (3+5, 6+8) 的值為14 2> (a = 3*5, a*4) 的值為60 3> # in
17、clude <iostream.h> int main(void) int x, y, z; x = y = 1; z = x+, y+, +y; cout << x << endl << y << endl << z << endl; return 0; 以上程序輸出的結(jié)果為;2 3 1 2、本題程序中的cout << (+x, y+) << z+2; 其中逗號(hào)表達(dá)式的值與x無關(guān),只與y有關(guān),y+是后自增,因此逗號(hào)表達(dá)式 的值為3,z+2的值為3;因此輸出33 故選D 15、選D 在C
18、語言表達(dá)式中用 | 表示邏輯或 用 && 表示邏輯與 用 ! 表示非 16、選A 解析見注釋# include <iostream.h>int main(void)int x = 1, a = 0, b = 0;switch (x) /第7行 執(zhí)行完這一條語句之后直接跳到第11行執(zhí)行case1語句,并從case1開始一直執(zhí)行到 /return 0; 結(jié)束程序case 0:b+;/該語句不會(huì)被執(zhí)行case 1:a+; / 第11行case 2: a+;b+;cout << "a=" << a << ",
19、 b=" << b << endl;return 0; 最終a+被執(zhí)行兩次,一次在case1中執(zhí)行,另一次在case2中執(zhí)行b+被執(zhí)行1次,在case2中執(zhí)行因此最后的結(jié)果是: a = 2,b = 1故選A 17、選C 解析見注釋# include <iostream> using namespace std;void main()float x = 2.0, y; /定義浮點(diǎn)型變量if (x<0.0) /x = 2.0 不小 0.0 因此不執(zhí)行該if語句的y = 0.0;語句y = 0.0;else if (x<10) /x = 2.
20、0 < 10,成立,執(zhí)行,并且下邊的else語句不再執(zhí)行y = 1.0/x; / 因此 y = 1.0/2.0 y為浮點(diǎn)型變量,y的值為0.5elsey = 1.0;cout << y << endl; 18、選C if else 嵌套有一個(gè)原則,稱作就近原則,就是在沒有使用花括號(hào)的情況下,如果多個(gè)if else出現(xiàn),那么if 和 else 的匹配問題就要遵循就近原則,就是else和離它最近的if相匹配 因此本題的代碼等價(jià)于這樣寫:# include <iostream>using namespace std;void main()int a = 2,
21、 b = -1, c = 2;if (a<b)if (b<0)c = 0;else c+;cout << c << endl;認(rèn)為本題的程序等價(jià)于一下的程序是錯(cuò)誤的:# include <iostream>using namespace std;void main()int a = 2, b = -1, c = 2;if (a<b)if (b<0)c = 0;else c+;cout << c << endl;如果認(rèn)為是這樣,那么就很容易誤選成D而導(dǎo)致錯(cuò)誤19、選C 本題中執(zhí)行第一次循環(huán)之后,i 的值為1,但是
22、循環(huán)體中沒有讓i的值改變的語句,也就是說i的值從執(zhí)行循環(huán)之后就一直是1,i<3也就永遠(yuǎn)成立,改變的值只是sum的值,所以一直循環(huán),即陷入死循環(huán) 故選C 20、選B 見注釋# include <iostream>using namespace std;void main()int x = 23;docout << x- << endl; /x的后自減 while (!x);/當(dāng)x等于0時(shí)判斷表達(dá)式為真,執(zhí)行循環(huán)體,當(dāng)x非零時(shí)判斷表達(dá)死為假, /終止循環(huán),如果去掉!,那么將陷入死循環(huán)21、選B 循環(huán)執(zhí)行流程如下: 1>當(dāng)n = 9,9>6成立,
23、執(zhí)行循環(huán)體, n- n = 8 輸出8 2> n = 8,8>6成立,執(zhí)行循環(huán)體, n- n = 7 輸出7 3> n = 7,7>6成立,執(zhí)行循環(huán)體, n- n = 6 輸出6 4> n = 6,6>6不成立,退出循環(huán), 因此輸出的結(jié)果是:876 故選B 22、第一個(gè)空;i<=9 或 i<10 第二個(gè)空:j%3 或 j%3!=0 注意: 第一個(gè)空不能習(xí)慣性地填 i<100 或 i<=99,因?yàn)閒or循環(huán)體當(dāng)中,有j = i*10 + 6; 將會(huì)超出100的范圍,顯然是錯(cuò)誤的 第二個(gè)空的功能是將不能被3整除的數(shù)直接跳過,直接進(jìn)行下一趟
24、循環(huán),直到循環(huán)終止 23、填 b = i + 1 首先對(duì)于b來說,只進(jìn)行過定義,沒有初始化,因此,所填的空一定是關(guān)于b的初始化,否則下邊c+=b語句就會(huì)出錯(cuò),再結(jié)合輸出流中的奇數(shù)之和時(shí)c減去11,這11恰好是循環(huán)次數(shù),也就是說循環(huán)一次,奇數(shù)的和多1,因此所要填的空一定和i相關(guān),因此推出要填 b = i + 1 24、選C 默認(rèn)情況下,if語句,for語句,while 語句都只能控制一個(gè)循環(huán)語句,若想要控制多個(gè)循環(huán)語句,必須用花括號(hào)將循環(huán)體括起來,形成復(fù)合語句。 本題中第二個(gè)for語句屬于第一個(gè)for的循環(huán)體,if語句有屬于第二個(gè)for語句的真語句, m=1;也屬于if條件語句的真語句,也就是說
25、從第二個(gè)for語句到m=1語句都是第一個(gè)for的循環(huán)體,但是n+不是任何一個(gè)for語句或if條件語句的真語句,即n+是第一個(gè)for語句的下一個(gè)語句,因此不管第一個(gè)for語句、第二個(gè)for語句、if語句怎么樣執(zhí)行,都與n+無關(guān),最終n+語句必然執(zhí)行,因此輸出的n一定是1 故選C 階段測(cè)試21、選B 對(duì)于本題中的func(expl, exp2),(expl, exp2)中,(expl, exp2)和 (expl, exp2)都是逗號(hào)表達(dá)式,逗號(hào)表達(dá)式的 最終值是一個(gè),也就是說(expl, exp2)和 (expl, exp2)的最終結(jié)果是兩個(gè)值,因此實(shí)參是兩個(gè)! 2、選C 要讀懂本題,要了解一下幾
26、個(gè)內(nèi)容: 1)、本函數(shù)執(zhí)行的順序(簡(jiǎn)稱程序流程): 大致地講,本程序先從main函數(shù)入口開始執(zhí)行程序,就是從 void main()進(jìn)入程序,再執(zhí)行int x = 6, y = 7, z = 8, r; 這一句,接下來當(dāng)然是執(zhí)行r = func(x-, y+, x+y), z-);這一句,當(dāng)執(zhí)行完這一句后,程序不再在主函數(shù)中繼續(xù)往下執(zhí)行,而是直接跳到被調(diào)函數(shù)去執(zhí)行,也就是直接跳去int func(int a, int b) 中去執(zhí)行,等執(zhí)行完被調(diào)函數(shù)后,程序再回到主函數(shù)中接著執(zhí)行,也就是說主函數(shù)既是函數(shù)的入口,也是函數(shù)的出口。 2)、自增自減在函數(shù)調(diào)用中作實(shí)參: 自增自減在函數(shù)中作實(shí)參,如果是
27、前自增,那么在執(zhí)行完整句表達(dá)式之前就已經(jīng)將自增的值發(fā)送到相對(duì)應(yīng)的形參了 舉例:# include <iostream>using namespace std;int func(int a, int b)int c;c = a + b;return c;void main(void) int x = 6, y = 7, r;r = func(-x, -y); /執(zhí)行完 -x 之前,已經(jīng)將 (x-1)的值發(fā)送給形參a了,即已經(jīng)將 5 發(fā)送給a了 /同樣,在執(zhí)行完-y之前,已經(jīng)將 (y-1) 的值發(fā)送給形參b了,即已經(jīng)將 6發(fā)送給形參b了cout << r <<
28、endl; 因此,本例子最終輸出的結(jié)果是 11如果是后自增(或者后自減),那么發(fā)送給相對(duì)應(yīng)形參的值是自增或自減之前的值,即原來變量的值,執(zhí)行完整句表達(dá)式之后,變量再進(jìn)行自增或自減 舉例:# include <iostream>using namespace std;int func(int a, int b)int c;c = a + b;return c;void main(void) int x = 6, y = 7, r;r = func(x-, y-);/執(zhí)行完 x- 之前,已經(jīng)將x原來的值發(fā)送給形參a了,/ 即已經(jīng)將 6 發(fā)送給a了,執(zhí)行之后x的只變成5/同樣,在執(zhí)行完y
29、-之前,已經(jīng)將 y 原來的值發(fā)送給形參b了,/即已經(jīng)將 7 發(fā)送給形參b了執(zhí)行完之后y的值變成6cout << r << endl;因此,本例子輸出的結(jié)果是:13 3)、逗號(hào)表達(dá)式的運(yùn)算: 逗號(hào)表達(dá)式的運(yùn)算過程; 從左往右逐個(gè)計(jì)算表達(dá)式,并且逗號(hào)表達(dá)式作為一個(gè)整體,其值為最后一個(gè)表達(dá)式的值 逗號(hào)表達(dá)式的優(yōu)先級(jí): 在所有運(yùn)算符中的優(yōu)先級(jí)別最低 本題的說明: 運(yùn)行到 r = func (x-, y+, x+y), z-) 語句時(shí),程序?qū)?x-, y+, x+y)的執(zhí)行順序是從左往右執(zhí)行,即先執(zhí)行x-,執(zhí)行完之后,x的值由原來的6變成5,一再執(zhí)行y+,執(zhí)行完之后y的值為8,再
30、執(zhí)行x+y,完了整個(gè)逗號(hào)表達(dá)式的值以x+y的值作為最終值,即(x-, y+, x+y) 的最終值為 (5 + 8)得13,并將13發(fā)送給形參a,再將z原來的值8發(fā)送給形參b,再執(zhí)行z-,接下來就是執(zhí)行剩下的語句,直到程序結(jié)束。因此,最終輸出的結(jié)果是:21 故選C 3、選A 解析見注釋以及下邊# include <iostream>using namespace std;double f(int n)int i;double s;s = 1.0;for (i=1; i<=n; i+)s += 1.0/i; /注意 1.0/i 得到的結(jié)果是浮點(diǎn)型數(shù)據(jù) s += 1.0/i等價(jià)于s
31、 = s+ (1.0/i)return s;void main() int i, m = 3;double a = 0.0;for (i=0; i<m; i+) /再本程序中 i<m 等于 i<3, 循環(huán)作3次a += f(i); /調(diào)用f()函數(shù) a += f(i)等價(jià)于a = a + f(i)cout << a; 程序執(zhí)行的流程:從main函數(shù)開始執(zhí)行:i, m = 3a = 0.01>i = 0 i<m 成立 a = a + f(i) 之后函數(shù)跳到被調(diào)函數(shù)去執(zhí)行: i(被調(diào)函數(shù)的), s = 1.0 n = i(主調(diào)函數(shù)的i) = 01) i(被
32、調(diào)函數(shù)的i) = 1 1<=0 不成立 循環(huán)直接退出返回 s,即返回 1.0 函數(shù)又回到main函數(shù)a = 1.0 (這個(gè)值是由被調(diào)函數(shù)返回的) i = 1; 2> i = 1 1<m(m為3) 成立 a = a + f(i) 之后函數(shù)跳到被調(diào)函數(shù)去執(zhí)行: i(被調(diào)函數(shù)的), s = 1.0 n = i(主調(diào)函數(shù)的i) = 11) i(被調(diào)函數(shù)的i) = 1 1<=1 成立 循環(huán)執(zhí)行 s = s + 1.0/i = 1.0 + 1.0/1 = 2.0 i(被調(diào)函數(shù)的i) = 2 2) i = 2 2<=1 不成立 循環(huán)退出 向主調(diào)函數(shù)返回 s 即返回2.0 程序的
33、執(zhí)行回到main函數(shù)中a = 1.0 + 2.0 = 3.0(其中2.0這個(gè)值是由被調(diào)函數(shù)第二次返回的)i = 2. .一直如此執(zhí)行下去,直到程序結(jié)束,最終結(jié)果是 5.5故選A 4、12 看完并理解以下程序注釋,就能推出程序的運(yùn)行結(jié)果# include <iostream>using namespace std;unsigned fun6(unsigned num) /fun6 是該函數(shù)的名,unsigned是說明該函數(shù)是無符號(hào)整型類型unsigned k = 1;do k *= num%10; /k *= num%10 等價(jià)于 k = k*(num%10) %表示取余運(yùn)算num
34、/= 10; / num /= 10 等價(jià)于 num = num / 10 / 表示除法運(yùn)算while (num); / while (num) 的含義是當(dāng)num不為零時(shí),執(zhí)行循環(huán)體,為零時(shí)退出循環(huán)/*do . while 的復(fù)習(xí):do 語句序列;while(判斷表達(dá)式); do . while 循環(huán)的執(zhí)行流程是:先執(zhí)行 語句序列 ,再對(duì) 判斷表達(dá)式 進(jìn)行判斷,判斷表達(dá)式 為真,執(zhí)行語句序列,判斷表達(dá)式為假,退出循環(huán)。*/return k; / 向主調(diào)函數(shù)即main函數(shù)返回k,并結(jié)束本函數(shù)void main() unsigned n = 26; / unsigned 是整型變量中的一種,整型變
35、量有四種: / 基本整型(int) 短整型(short int) 長(zhǎng)整型(long int) 無符號(hào)型(unsigned)cout << fun6(n) << endl; /包含函數(shù)fun6 的調(diào)用最終輸出結(jié)果是:12 故選A 5、選A 由題意知道變量x是整型的變量,pb是只能指向整型的指針變量。指針變量只能存放相應(yīng)變量的地址 指針變量賦值有兩種: 1>連定義帶賦值: 例如:int x; int * p = &i; 2>定義之后再賦值: 例如:int x; int * p; p = &i; A選項(xiàng):正確,是定義之后再賦值 B選項(xiàng):錯(cuò)誤,指針變
36、量只能存放地址,不能和普通變量相互賦值,也不能將某個(gè)數(shù)值賦給指針變量 C選項(xiàng):錯(cuò)誤,定義之后再賦值中的指針變量不能帶有*號(hào) D選項(xiàng):錯(cuò)誤 6、選B 函數(shù)執(zhí)行到sub(10, 5, &a); 時(shí)將 10 發(fā)送給形參x,將5發(fā)送給形參y,將a的地址發(fā)送給指針變量z,之后指針變量z指向變量a單元, void sub(int x, int y, int *z)函數(shù)中 *z 等價(jià)于 變量a,執(zhí)行*z = y - x;等價(jià)于 a = y - x;所以a變量的值為 -5接下來執(zhí)行sub(7, a, &b) 將 7 發(fā)送給形參x,將a的值即 -5 發(fā)送給形參y,將b的地址發(fā)送給指針變量z,之后
37、指針變量z指向變量b單元, void sub(int x, int y, int *z)函數(shù)中 *z 等價(jià)于 變量b,執(zhí)行*z = y - x;等價(jià)于 b = y - x;所以b變量的值為 (-5 - 7)等于 -12再接下來執(zhí)行sub(a, b, &c) 將 a的值即 -5 發(fā)送給形參x,將b的值即 -12 發(fā)送給形參y,將c的地址發(fā)送給指針變量z,之后指針變量z指向變量c單元, void sub(int x, int y, int *z)函數(shù)中 *z 等價(jià)于 變量c,執(zhí)行*z = y - x;等價(jià)于 執(zhí)行 c = y - x;所以b變量的值為 (-12 - (-5)等于 -7 綜上
38、所述,程序運(yùn)行的最終結(jié)果是:-5,-12,-7 故選B 7、選C# include <iostream>using namespace std;void main()int k = 2, m = 4, n = 6, *pk = &k, *pm = &m, *p;/指針變量pk指向k,pm指向m*(p=&n) = *pk * (*pm); /倒數(shù)第二個(gè)*號(hào)是乘號(hào)cout << n << endl; 程序說明: 指針變量pk指向k,pm指向m,因此*pk就是變量k,*pm就是變量m 即 *pm 等價(jià)于 m *pk 等價(jià)于 k 又因?yàn)?p
39、= &n 所以 *(p=&n) 等價(jià)于 變量n 所以 *(p=&n) = *pk * (*pm); 等價(jià)于 n = k*m; 所以 n = 2 * 4 = 8 所以選C 8、選D 因?yàn)?int a = 25; 所以變量a的值為25 又通過執(zhí)行 prtv(&a) 調(diào)用函數(shù),將a的地址發(fā)送給形參x,因此指針變量x指向a 又因?yàn)?cout << +*x; 其中的*x等價(jià)于變量a,所以 cout << +*x; 等價(jià)于 cout << +a; +a屬于前自增,因此輸出 (25 + 1) 即輸出26 故選D 9、選B 首先作一下說明:
40、1> 在計(jì)算機(jī)中,任何一個(gè)存儲(chǔ)單元都是有地址的,普通存儲(chǔ)單元有地址,指針 型存儲(chǔ)單元也有地址 2> int * k; 中的變量k稱作指向指針的指針,簡(jiǎn)單地講,就是變量k是一個(gè) 指針變量,并且這個(gè)變量k是用來存放另一個(gè)指針變量的地址 題目中因?yàn)閍=&b,所以a存放的是b的地址,也就是說a指向b,而指向指針的指針變量k又存放指針變量a的地址,因此k指向b,因此*k等價(jià)于a,*k等價(jià)于*a也就等價(jià)于a因此 cout << *k; 等價(jià)于 cout << a; 因此輸出結(jié)果是:100 故選B 10、選C 主函數(shù)中的 float x = 2.0, y = 3.0, *px = &x, *py = &y; 中 *px = &x, *py = &y 知道指針變量px指向x,py執(zhí)行y; 通過函數(shù)調(diào)用 f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地震安全課件百度
- 儀器儀表在安防領(lǐng)域的應(yīng)用考核試卷
- 搪瓷制品的企業(yè)文化與品牌效應(yīng)考核試卷
- 商務(wù)代理國(guó)際市場(chǎng)營(yíng)銷渠道開發(fā)考核試卷
- 客戶關(guān)系管理在供應(yīng)鏈中的作用考核試卷
- 成人教育學(xué)習(xí)效果評(píng)估考核試卷
- 工業(yè)機(jī)器人法律倫理與社會(huì)責(zé)任考核試卷
- 承包母嬰店合同范本
- 簡(jiǎn)易訂單合同范本
- 水電售后安裝合同范本
- 小學(xué)生韻母in、ing常見漢字與區(qū)分練習(xí)
- 藥房品種類別及數(shù)量清單
- 機(jī)關(guān)檔案管理工作培訓(xùn)PPT課件
- 初中物理人教版八年級(jí)下冊(cè) 第1節(jié)牛頓第一定律 課件
- 網(wǎng)站培訓(xùn)內(nèi)容trswcm65表單選件用戶手冊(cè)
- 連續(xù)平壓熱壓機(jī) 三篇 俞敏等
- 空調(diào)系統(tǒng)維保記錄表格模板
- 打印版-圓與二次函數(shù)綜合題精練(帶答案)
- 各種閥門CAD圖
- 工程結(jié)算書標(biāo)準(zhǔn)
- 氧氣管道吹掃方案(共7頁(yè))
評(píng)論
0/150
提交評(píng)論