亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        2012軟考程序員第七套考前練習(xí)試題及答案解析

        字號(hào):

        為大家收集整理了《2012軟考程序員第七套考前練習(xí)試題及答案解析》供大家參考,希望對(duì)大家有所幫助!??!
            二、程序分析
            1.main()
            { char str[]="1234567";
            int i;
            for(j=0;i<7;i十=3)
            printf("%s\n",str+i);
            }
            【解析】分析份循環(huán)語(yǔ)句可知,控制變量 i的值只能依次等于0、3、6。再分析輸出語(yǔ)句中的輸出格式,這是字符串格式,要求輸出表達(dá)式是存放字符串的首地址。而輸出表達(dá)式是“str+i”。我們針對(duì)i不同值來(lái)-一分析:i=0,str+0就是str,其中存放的字符串是“1234567”,所以第1行上的輸出就是:1234567。當(dāng) i=3時(shí),str+3,代表了數(shù)組元素str[3]的地址,從這兒開始的字符率串是“4567”,所以第2行輸出的是:4567。同樣道理,i=6時(shí), str+6是元素str[6]的地址,從該地址存放的字符率是"7",所以第3行輸出的是:7。
            【參考答案】 1234567
            4567
            7
            2.struct a{ char name[10];
            int age;
            }aa[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]);
            }
            【解析】本程序并不復(fù)雜,關(guān)鍵在于如何使用指向結(jié)構(gòu)型數(shù)組的指針變量來(lái)引用該數(shù)組元素,以及如何引用結(jié)構(gòu)型成員是數(shù)組的數(shù)組元素。
            首先看結(jié)構(gòu)型a及對(duì)應(yīng)數(shù)組aa的定義和賦予的初值。
            結(jié)構(gòu)型a共有兩個(gè)成員,一個(gè)是字符型數(shù)組name,另一個(gè)是整型age。
            結(jié)構(gòu)型數(shù)組aa有3個(gè)元素,所賦予的初值如下:
            aa[0].name="abc" aa[0].age=20
            aa[1].name="def" aa[1].age=21
            aa[2].name="ghi" aa[2].age=22
            主函數(shù)中的第1個(gè)語(yǔ)句是定義結(jié)構(gòu)型指針變量paa,并且使它指向結(jié)構(gòu)型數(shù)組aa的首地址。注意,此后的*paa就是aa[0],*(paa+i)就是aa[i]。
            現(xiàn)在可以分析輸出語(yǔ)句了。輸出格式是3個(gè)字符格式,按照printf()函數(shù)的規(guī)定,表達(dá)式表中表達(dá)式計(jì)算順序是自右向左進(jìn)行的,下面依次討論這3個(gè)字符格式對(duì)應(yīng)的輸出表達(dá)式。
            第3個(gè)輸出表達(dá)式是“(*(paa十1)).name[2]",其中的“*(paa+1)”代表“aa[1]”,所以該表達(dá)式就是“aa[1].name[2]”,對(duì)應(yīng)的字符是'f'。
            第 2個(gè)輸出表達(dá)式是"(*paa++).name[1]”,其中“*ppa++”的“*”和“++”是同級(jí)運(yùn)算符,結(jié)合性是自右向左的,所以“++”先計(jì)算,由于是后綴,所以要先計(jì)算“*paa”,它代表“aa[0]”,所以該表達(dá)式就是“aa[0].name[1]”,對(duì)應(yīng)的字符是'b'。注意,最后要對(duì)paa進(jìn)行“++”運(yùn)算,使其指向aa[1]。
            第 1個(gè)輸出表達(dá)式是“(*(paa+1)).name[0]”,注意現(xiàn)在的paa以及指向aa[1]了,所以其中的“*(paa+1)”代表“aa[2]”,所以該表達(dá)式就是“aa[2].name[0]”,對(duì)應(yīng)的字符是'g'。
            現(xiàn)在可以得出結(jié)論:程序的輸出是 3個(gè)字符:gbf
            【參考答案】gbf