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

軟考軟件設(shè)計(jì)師課后練習(xí)題:第五章習(xí)題及解答

    5.1  單項(xiàng)選擇題
    1.設(shè)有定義“int a=3, b,*p=&a;”,則下列語句中使 b不為3的語句是(   )
    ① b=* &a;     ② b=* p;    
    ③ b=a;     ④ b=*a;
      【解】定義有 int a=3, b,*p=&a;對b賦值的表達(dá)式有*&a、*p、a 、*a。引用變量。的值有兩種方法,一是直接引用a,二是通過a的指針間接引用a。對于后者,又有多種表達(dá)方法,通過指向a的指針p,間接引用a的內(nèi)容,如*p;蛲ㄟ^求地址運(yùn)算符由變量a得到其指針&a,再由這指針表達(dá)式間接引用 a的內(nèi)容,如* &a。所以表達(dá)式*&a、*p和a都能引用變量a的值,而使b的值為3。而表達(dá)式。a是錯(cuò)誤的,因?yàn)閍不是指針變量,不能對它施行取內(nèi)容運(yùn)算符。。所以解答是④。

         2 .設(shè)指針x指向的整型變量值為萬,則"printf("%d\n",++ *x);"的輸出是(  )
           ① 23          ② 24           ③ 25           ④ 26
      【解】若指針變量x指向某個(gè)變量,例如指向變量v,并且變量v的值是25,則表達(dá)式++ *x的值是26。這是因?yàn)楸磉_(dá)式的計(jì)算順序可加圓括號表達(dá)成(++(*x)),首先是*x,是對X所指變量V的引用,所以++ *X就是++V。++V是先讓變量V增1,并以增至后的V的值為表達(dá)式++V的結(jié)果,所以其值是 26。所以解答是④。

       3.若有說明:“ int i,j= 7,*p=&i;”,則與“ i=j(luò);”等價(jià)的語句是(  )
    ①i=*p;          ②*P=* &j;
    ③i==&j;           ④i=* *p;
    【解】指針變量 p指向變量i時(shí),表達(dá)式i=*p等價(jià)于 i=i;表達(dá)式*p=*&j等價(jià)于i=j(luò);而表達(dá)式i=&j企圖將整型變量的指針賦給整型變量,這是錯(cuò)誤的;表達(dá)式i=* *p也是一種錯(cuò)誤的表達(dá)式。p是指針,*p是p所指變量j,* *p是企圖將整型變量j當(dāng)作指針,并想通過j間接引用某個(gè)變量。所以解答是②。

        4.若有說明語句“int a[10],*p=a;”,對數(shù)組元素的正確引用是(  )
    ①a[p]             ②P[a]             
    ③*(P+2)              ④P+2
     【解】在 C語言中,約定數(shù)組名單獨(dú)出現(xiàn)在表達(dá)式中時(shí),它表示數(shù)組首元素的指針。有int a[10] ,則a可以作為&a[0]使用。另有整型指針變量p,代碼p=a實(shí)現(xiàn)p指向數(shù)組a的首元素。則表達(dá)式*(p+2)是引用數(shù)組元素a[2]。表達(dá)式a[p]和p[a]都是不正確的,下標(biāo)必須是整型表達(dá)式,不可以是指針表達(dá)式。表達(dá)式p+2是指針表達(dá)式,它的值是&p[2]。所以只有表達(dá)式*(p+2)引用數(shù)組a的元素a[2]。所以解答是③。

          5.下面各語句中,能正確進(jìn)行賦字符串操作的語句是(  )
         ①char s[5] ={"ABCDE"};            ②char s[5] ={’A’,’B’,’C’,’D’,’E’};
      ③ char *s;s="ABCDE";           ④ char *s;scanf("%", s);
    【解】字符串最終存儲于字符數(shù)組中,存儲字符串的字符數(shù)組可以是程序主動引入的(定義或動態(tài)分配),也可以是字符串常量,由系統(tǒng)分配。其中字符數(shù)組用字符串初始化就是字符串存儲于由程序引入的字符數(shù)組的例子。給字符指針賦字符串則是系統(tǒng)自動分配字符率存儲空間的例子。給字符指針賦字符串并不是將一個(gè)長長的字符串存于字符指針變量中,而是將字符串常量存儲于常量區(qū),并將存儲這個(gè)字符串的首字節(jié)地址賦給指針變量,讓指針變量指向字符率常量的首字符。對于以字符串作為字符數(shù)組初值的情況,要求字符數(shù)組足夠的大,能存得下字符串常量。這里有一個(gè)特別的規(guī)定,若數(shù)組的大小少于存儲字符串有效字符的字節(jié)個(gè)數(shù),系統(tǒng)將報(bào)告錯(cuò)誤;當(dāng)字符數(shù)組的大小只能存儲字符串的有效字符,而不能存儲字符率結(jié)束標(biāo)記符時(shí),則存儲于字符數(shù)組中的內(nèi)容是字符序列,因沒有存儲字符率結(jié)束標(biāo)記符,存儲的內(nèi)容就不是字符串。如代碼char a[5]="ABCDE"。另外,給字符數(shù)組元素逐一賦字符初值,并在字符初值中沒有字符串結(jié)束標(biāo)記符,則存于字符數(shù)組中的內(nèi)容也不是字符率。如代碼 char s[5]={’A’,’B’,’C’,’D’,’E’}。特別要注意當(dāng)字符指針還未指向某個(gè)字符數(shù)組的元素時(shí),不可以通過字符指針輸入字符串。如代碼char *s;scanf("%s",s)。若寫成char *str;scanf("%s",&str)更是錯(cuò)誤的了。由于C語言規(guī)定數(shù)組不能相互賦值,所以只能將字符串常量賦給某字符指針。如代碼char *s;s="ABCDE"是正確的。實(shí)際上,字符率"ABCDE" 被存儲于常量區(qū)中,向指針變量賦的是字符指針,讓s指向其中的字符’A’。所以解答是③。

         6.若有以下定義,則不能表示a數(shù)組元素的表達(dá)式是()
         int a[10]={1,2,3,4,5,6,7,8,9,1o},*p=a;
                   ①*p           ② a[10]             ③*a              ④ a[p-a] 
       【解】上述代碼定義了有10個(gè)元素的整型數(shù)組。,和定義指針變量p,并讓p指向數(shù)組元素a[0]。所以代碼*p是引用 a[0]。由于數(shù)組a只有10個(gè)元素,最后一個(gè)元素是a[9],表達(dá)式a[10]是錯(cuò)誤的。數(shù)組名a可以作為a的首元素的指針,表達(dá)式*a就是a[0] ,是對數(shù)組a的首元素a[0]的引用。指針p的值是a,表達(dá)式p-a。的值是0,所以a[p-a]就是a[0]。所以解答是②。

          7.若有以下定義,則值為3的表達(dá)式是()
   int a[]= {1,2,3,4,5,6,7,8,9,10},*p=a;
    ①p+=2,*(p++)           ③p+=2,* ++p
    ③p+=3,*p++           ④ p+=2,++ *p
      【解】數(shù)組a有10個(gè)元素,分別有值1至10,指針變量p指向a[0] ①逗號表達(dá)式 p+=2,*(P++),先是P+=2使P指向a[2],接著是*(P++),以當(dāng)時(shí)P所指變量a[2]取內(nèi)容3為表達(dá)式的值,同時(shí)使p指向a[3]。②返號表達(dá)式p+=2,* ++p,先是p+=2使p指向a[2],以后是* ++p,又使 p增1,讓它指向a[3],并取指針p所指變量a[3]的內(nèi)容4作為表達(dá)
式的值。③逗號表達(dá)式 p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表達(dá)式的值是 a[3]為 4,而使p指向a[4]。④逗號表達(dá)式p+=2,++ *p,先是p+=2,使p指向a[2],以后是++ *p,因當(dāng)時(shí)的*p就是 a[2],++a[2]使a[2]增1,變成4,并以4為表達(dá)式的值。所以只有p+=2,*(p++)的值是3。所以解答是①。

更多軟考資料請?jiān)L問:考試吧軟件水平考試欄目

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