首頁(yè)考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語(yǔ)
零起點(diǎn)日語(yǔ)
職稱(chēng)英語(yǔ)
口譯筆譯
申碩英語(yǔ)
零起點(diǎn)韓語(yǔ)
商務(wù)英語(yǔ)
日語(yǔ)等級(jí)
GMAT考試
公共英語(yǔ)
職稱(chēng)日語(yǔ)
新概念英語(yǔ)
專(zhuān)四專(zhuān)八
博思考試
零起點(diǎn)英語(yǔ)
托福考試
托業(yè)考試
零起點(diǎn)法語(yǔ)
雅思考試
成人英語(yǔ)三級(jí)
零起點(diǎn)德語(yǔ)
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱(chēng)計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷(xiāo) 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問(wèn)
管理咨詢
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營(yíng)養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書(shū)資格
電子商務(wù)
期貨考試
國(guó)際商務(wù)
心理咨詢
營(yíng) 銷(xiāo) 師
司法考試
國(guó)際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會(huì)計(jì)職稱(chēng)
法律顧問(wèn)
ACCA考試
注冊(cè)會(huì)計(jì)師
資產(chǎn)評(píng)估師
審計(jì)師考試
高級(jí)會(huì)計(jì)師
注冊(cè)稅務(wù)師
國(guó)際內(nèi)審師
理財(cái)規(guī)劃師
美國(guó)注冊(cè)會(huì)計(jì)師
一級(jí)建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級(jí)建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊(cè)測(cè)繪師
質(zhì)量工程師
巖土工程師
造價(jià)員考試
注冊(cè)計(jì)量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評(píng)價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評(píng)價(jià)師
土地登記代理人
繽紛校園 實(shí)用文檔 英語(yǔ)學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專(zhuān)項(xiàng)輔導(dǎo)
軟件水平考試交流互動(dòng)
軟件水平考試交流互動(dòng)
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 模擬試題 > 程序員 > 正文

2013年軟考程序員考前模擬試題及答案解析(7)

  4.conv(b)

  int b;

  { if(b>=2)conv(b/2);

  printf("%d",b%2);

  return;

 。

  main()

  { int d;

  scanf("%d",&d);

  conv(d);

 。

  說(shuō)明:本程序執(zhí)行時(shí)從鍵盤(pán)上輸入:22后跟回車(chē)鍵。

  【解析】主函數(shù)中輸入整數(shù)22存入變量d中,然后調(diào)用函數(shù)。conv()。此時(shí)將把實(shí)參d中的22傳遞給形參b。然后再執(zhí)行函數(shù)體,函數(shù)體中前面一條語(yǔ)句是單分支語(yǔ)句,當(dāng)b>=2時(shí)再用“b/2”調(diào)用自己,顯然這是一個(gè)遞歸調(diào)用的函數(shù)。下面我們來(lái)詳細(xì)分析遞歸調(diào)用的過(guò)程:

  第1次調(diào)用函數(shù)(b=22),滿足條件,引起第2次調(diào)用自己(b/2=11)

  第2次調(diào)用函數(shù)(b=11),滿足條件,引起第3次調(diào)用自己(b/2=5)

  第3次調(diào)用函數(shù)(b=5),滿足條件,引起第4次調(diào)用自己(b/2=2)

  第4次調(diào)用函數(shù)(b=2),滿足條件,引起第2次調(diào)用自己(b/2=1)

  第5次調(diào)用函數(shù)(b=1),不滿足條件,執(zhí)行輸出語(yǔ)句,輸出結(jié)果為 b%2=1%2=1

  執(zhí)行第5次調(diào)用的返回,執(zhí)行第今次調(diào)用時(shí)的輸出語(yǔ)句,輸出結(jié)果為b%2=2%2=0

  執(zhí)行第4次調(diào)用的返回,執(zhí)行第3次調(diào)用時(shí)的輸出語(yǔ)句,輸出結(jié)果為b%2=5%2=1

  執(zhí)行第3次調(diào)用的返回,執(zhí)行第2次調(diào)用時(shí)的輸出語(yǔ)句,輸出結(jié)果為b%2=11%2=1

  執(zhí)行第2次調(diào)用的返回,執(zhí)行第1次調(diào)用時(shí)的輸出語(yǔ)句,輸出結(jié)果為b%2=22%2=0

  執(zhí)行第1次調(diào)用的返回,將返回主函數(shù),結(jié)束程序的運(yùn)行。

  所以程序運(yùn)行的輸出結(jié)果是:10110。

  【參考答案】10110。

  5.void f(p1,p2)

  int *p1,*p2;

  { int i,j;

  *p2=0;

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

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

  *p2+=*(pl+i*3+j);

  return;

 。

  main()

  { int a[3][3]={{1,2},{3,4},{5,6}};

  int s;

  f(a,&s);

  printf("%d",s);

 。

  【解析】本程序是由一個(gè)無(wú)返回值的函數(shù)f()和主函數(shù)組成的。先看主函數(shù),定義了一個(gè)3行3列的二維數(shù)組a,并且給a賦了初值,初值如下:

  a[0][0]=1 a[0][1]=2 a[0][2]=0

  a[1][0]=3 a[1][1]=4 a[1][2]=0

  a[2][0]=5 a[2][1]=6 a[2][2]=0

  接著調(diào)用無(wú)返回值的函數(shù)f(),然后輸出變量s中的值,顯然這個(gè)s中的值是在函數(shù)f()中獲得的。

  接下來(lái)分析函數(shù)f()。該函數(shù)有兩個(gè)形參,第1個(gè)形參是指針變量p1,對(duì)應(yīng)的實(shí)際參數(shù)是數(shù)組a的首地址,即調(diào)用該函數(shù)后,指針變量p1是指向二維數(shù)組a的首地址。第2個(gè)形參也是指針變量p2,對(duì)應(yīng)的實(shí)參是變量s的地址,即函數(shù)調(diào)用后指針變量p2是指向變量s的。再來(lái)分析函數(shù)體。前面定義了兩個(gè)變量i和j,從后面的循環(huán)語(yǔ)句中看出是二重循環(huán)的控制變量。接著,通過(guò)“*p2=0”,給變量s賦值0。二重for循環(huán)的循環(huán)體是“*p2+=*(p1+i*3+j)”,其中的“*p2”是代表變量s的,“*(p1+i*3+j)”是代表數(shù)組元素a[i][j],這個(gè)賦值語(yǔ)句是把a(bǔ)[i][j]加到變量s中(即求數(shù)組元素的和),F(xiàn)在只要分析清楚二重循環(huán)是對(duì)哪些數(shù)組元素進(jìn)行求和的就可以得出變量s的值了。

  下面是對(duì)二重循環(huán)的執(zhí)行記錄:

  i=0 j=0 對(duì)應(yīng)a[0][0],其值為1

  j=1 對(duì)應(yīng)a[0][1],其值為2

  j=2 對(duì)應(yīng)a[0][2],其值為0

  i=1 j=1 對(duì)應(yīng)a[1][1],其值為4

  j=2 對(duì)應(yīng)a[1][2],其值為0

  i=2 j=2 對(duì)應(yīng)a[2][2],其值為0

  所以,s=a[0][0]+a[0][l]+a[0][2]+a[1][1]+a[2][2]+a[2][2]= 1+2+0+4+0+0=7。

  【參考答案】7。

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。