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

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

  二、程序分析

  1.main()

  { char str[]="1234567";

  int i;

  for(j=0;i<7;i十=3)

  printf("%s\n",str+i);

  }

  【解析】分析份循環(huán)語句可知,控制變量 i的值只能依次等于0、3、6。再分析輸出語句中的輸出格式,這是字符串格式,要求輸出表達式是存放字符串的首地址。而輸出表達式是“str+i”。我們針對i不同值來-一分析:i=0,str+0就是str,其中存放的字符串是“1234567”,所以第1行上的輸出就是:1234567。當 i=3時,str+3,代表了數組元素str[3]的地址,從這兒開始的字符率串是“4567”,所以第2行輸出的是:4567。同樣道理,i=6時, str+6是元素str[6]的地址,從該地址存放的字符率是"7",所以第3行輸出的是:7。

  【參考答案】 1234567

  4567

  7

  2.struct a{ char name[10];

  int age;

 。齛a[3]={{"abc",20},{"def",21},{"ghi",22}};

  main()

  { struct a *paa=aa;

  printf("%c%c%c",(*(paa+1)).name[0]

  (*paa++).name[1]

  (*(paa+1)).name[2]);

 。

  【解析】本程序并不復雜,關鍵在于如何使用指向結構型數組的指針變量來引用該數組元素,以及如何引用結構型成員是數組的數組元素。

  首先看結構型a及對應數組aa的定義和賦予的初值。

  結構型a共有兩個成員,一個是字符型數組name,另一個是整型age。

  結構型數組aa有3個元素,所賦予的初值如下:

  aa[0].name="abc" aa[0].age=20

  aa[1].name="def" aa[1].age=21

  aa[2].name="ghi" aa[2].age=22

  主函數中的第1個語句是定義結構型指針變量paa,并且使它指向結構型數組aa的首地址。注意,此后的*paa就是aa[0],*(paa+i)就是aa[i]。

  現在可以分析輸出語句了。輸出格式是3個字符格式,按照printf()函數的規(guī)定,表達式表中表達式計算順序是自右向左進行的,下面依次討論這3個字符格式對應的輸出表達式。

  第3個輸出表達式是“(*(paa十1)).name[2]",其中的“*(paa+1)”代表“aa[1]”,所以該表達式就是“aa[1].name[2]”,對應的字符是'f'。

  第 2個輸出表達式是"(*paa++).name[1]”,其中“*ppa++”的“*”和“++”是同級運算符,結合性是自右向左的,所以“++”先計算,由于是后綴,所以要先計算“*paa”,它代表“aa[0]”,所以該表達式就是“aa[0].name[1]”,對應的字符是'b'。注意,最后要對paa進行“++”運算,使其指向aa[1]。

  第 1個輸出表達式是“(*(paa+1)).name[0]”,注意現在的paa以及指向aa[1]了,所以其中的“*(paa+1)”代表“aa[2]”,所以該表達式就是“aa[2].name[0]”,對應的字符是'g'。

  現在可以得出結論:程序的輸出是 3個字符:gbf

  【參考答案】gbf

  3.main()

  { int x1,x2,x3,x4;

  x1=x2=x3=x4=1;

  switch(x1)

  { case 1:switch(x2)

  { case 0:x3++;break;

  case 1:x4--;

 。

  case 2:x3++,x4--;

 。

  printf("%d%d",x3,x4);

 。

  【解析】本題的關鍵是嵌套的多分支語句switch。注意在執(zhí)行switch語句前,變量x1、x2、x3、x4已經賦值,他們的值均為1。執(zhí)行外層switch語句時,用于控制分支選擇的變量x1的值為1,所以要執(zhí)行的是“case 1”的分支。該分支又是一個switch語句,用于控制分支選擇的變量x2的值為1,所以需要執(zhí)行的是“case 1”的分支。該分支執(zhí)行的語句是“x4--”,使得x4的值變?yōu)?。接著退出該分支,即退出內層的switch語句。由于外層的switch語句的“case 1”分支中沒有“break”語句,所以將繼續(xù)執(zhí)行其后的“case 2”分支,即執(zhí)行“x3++,x4--;”,結果x3等于2, x4等于-1。再退出外層switch語句,執(zhí)行輸出語句,此時,變量x3的值為2;變量x4的值為-1。所以輸出結果是2-1。

  【參考答案】2-1。

1 2 3 下一頁
文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。