亚洲AV乱码一区二区三区女同,欧洲在线免费高清在线a,中文字幕丝袜四区,老少配老妇熟女中文高清

<s id="38axe"><nobr id="38axe"></nobr></s><abbr id="38axe"><u id="38axe"></u></abbr>

<sup id="38axe"></sup>
    <acronym id="38axe"></acronym>
  • <s id="38axe"><abbr id="38axe"><ins id="38axe"></ins></abbr></s>
    
    
        <s id="38axe"></s>

        2011年下半年程序員考試下午真題

        程序員 責(zé)任編輯:YLM 2017-08-16

        添加老師微信

        備考咨詢

        加我微信

        摘要:以下是由希賽網(wǎng)整理的2011年下半年程序員考試下午真題,希望對(duì)備考程序員考試的考生有所幫助。

        2011年下半年程序員考試下午真題:

        >>>點(diǎn)擊進(jìn)入軟考初級(jí)程序員歷年真題下載

        ● 試題一(共15分)閱讀以下說(shuō)明和流程圖,填補(bǔ)流程圖中的空缺(1)~(5),將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】 下圖所示的流程圖用于檢查數(shù)組A[1:n]中的元素是否為自然數(shù)1~n的一個(gè)排序(含有1~n各數(shù)),若是,則輸出OK,否則輸出所缺的自然數(shù)及其個(gè)數(shù)m。 為檢查A[1:n]中是否含有k,只要判斷P(k)=(A(1)-k)*(A(2)-k)*.....*(A(n)-k)是否等于0即可。

        【流程圖】

        1.png

        ● 試題二(共15分)

        閱讀以下說(shuō)明和C程序代碼,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。 【說(shuō)明】下面是一個(gè)待修改的C程序,其應(yīng)該完成的功能是:對(duì)于輸入的一個(gè)整數(shù)num,計(jì)算機(jī)其位數(shù)k,然后將其各位數(shù)字逆序轉(zhuǎn)換為字符串保存并輸出。若num為負(fù)整數(shù),則輸出字符串應(yīng)有前綴“-”。例如,將該程序修改正確后,運(yùn)行時(shí)若輸入“14251”,則輸出“15241”;若輸入“-6319870”,則輸出“-0789136”。下面給出的C程序代碼中有五處錯(cuò)誤,請(qǐng)指出錯(cuò)誤代碼所在的行號(hào)并給出修改正確后的完整代碼行。
        【C程序代碼】

        2.png

        ● 試題三(共15分)

        閱讀以下說(shuō)明和C代碼,填補(bǔ)C代碼中的空缺(1)~(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。

        【說(shuō)明】

        某市在進(jìn)行市長(zhǎng)選舉,該市共分為M個(gè)選區(qū)(1<M<6,從1開(kāi)始順序編號(hào)),共有N個(gè)候選者參選(1<N<5,從A開(kāi)始順序編號(hào))。經(jīng)投票后,所得選票數(shù)據(jù)如下表所示。

        3.png現(xiàn)已將選票數(shù)據(jù)存入文本文件data.txt,該文件內(nèi)容格式如下:共有M行,每行N+1個(gè)整數(shù),第一個(gè)整數(shù)為選區(qū)編號(hào),隨后為N個(gè)候選者在該選區(qū)所得票數(shù)。

        面的程序先從文件中讀入選票數(shù)據(jù)存入二維數(shù)組data,然后完成下列功能:

        a.計(jì)算并顯示每個(gè)競(jìng)選者獲得的選票數(shù)及占總選票數(shù)的百分比;

        b.如果任一競(jìng)選者獲得的選票數(shù)超過(guò)總票數(shù)的50%,則顯示競(jìng)選者獲勝;

        c.如果沒(méi)有競(jìng)選者獲得總選票數(shù)的50%以上,則顯示兩位得票較高的競(jìng)選者需再進(jìn)行決選。

        在下面的程序代碼中,競(jìng)選者A的編號(hào)為1,競(jìng)選者B的編號(hào)為2,以此類推。

        【C代碼】

        #include<stdio.h>

        #include<stdliB.h>

        #define M 5 /*選區(qū)數(shù)*/

        #define N 4 /*競(jìng)選者人數(shù) */

        int main(int argc, char argv[] )

        {

        FILE *fin;

        int data[M+1] [N+1]; /*data[][0]存放選區(qū)編號(hào),data[M][J]存放J號(hào)競(jìng)選者得票總數(shù)*/

        int maxp1,cdl: /*maxp1、cd2存放得票最多者的票數(shù)和競(jìng)選者編號(hào)*/

        int maxp2,cd2; /*maxp2、cd2存放得票次多者的票數(shù)和競(jìng)選者編號(hào)*/

        int i,j, totalP;/*tatalp存放總票數(shù)*/

        fin=fopen("dat

        (3)A.txt","r");

        Ii(!fin)return -1;

        i=0; j=0;

        While(!feof(fin)){/* 從文件讀入數(shù)據(jù) */

        Fscanf(fin,”%d”,&data[i][j]);

        __(1)__;

        if(j>N) {j=0;i++;}

        }

        fclose(fin);

        totalP =0;maxp1=0;maxp2=0;cd1=0;cd2=0;

        for(j=1;j<N+1;j++)

        {

        data[M][j]=__(2)__; /* 設(shè)置j號(hào)競(jìng)選者的票總數(shù)初始值 */

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

        data[M][j]+=data[i][j];

        if(data[M][j]>MAXP1)

        {

        __(3)__; cd2=cd1;

        MAXP1=data[M][j]; cd1=j;

        }

        else

        if(data[M][j]> MAXP2){ MAXP2=data[M][j];cd2=j;}

        __(4)__;/* 計(jì)算總票數(shù) */

        }

        for(j=1;j<N+1;j++)

        {

        printf("candidate—%c:%d",j+'A'-1,data[M][j]);

        printf("%.2lf\n",(double)data[M][j]/totalP);

        }

        printf("\n");

        if(__(5)__>0.5)/* 判斷得票數(shù)最多者的得票率 */

        printf("winner:candidate-%c\n",cdl+'A'-1);

        else

        printf("result : candidate-%c pk candidate-%c\n",cd1+'A'-1,cd2+'A'-1);

        system("pause");

        return 0;

        }


        ● 試題四(共15分)

        閱讀以下說(shuō)明和c函數(shù),填補(bǔ)c函數(shù)中的空缺(1)—(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】約瑟夫問(wèn)題如下所述:有n個(gè)人(編號(hào)為1~n)圍成一圈,從第一個(gè)人開(kāi)始,按照順時(shí)針?lè)较驈?開(kāi)始計(jì)數(shù)到m(即數(shù)到第m個(gè)人),讓其出圈,然后再?gòu)钠漤槙r(shí)針?lè)较虻南乱粋€(gè)人開(kāi)始,依次計(jì)數(shù)到m并讓其出圈,重復(fù)這個(gè)過(guò)程,直到所有人都出圈,試給出出圈者的順序。

        以n=5,m=3為例,其中圈順序?yàn)?,1,5,2,4,過(guò)程如下圖所示。

        4.png

        下面的函數(shù)Joseph__(4)__在單向循環(huán)鏈表表示的基礎(chǔ)上訴出圈的過(guò)程。

        n為5時(shí)的單向循環(huán)鏈表結(jié)構(gòu)如下圖所示。5.png鏈表的結(jié)合類型定義如下: Typedef struct Node int no; struct Node*next; }node,*LinkList;函數(shù)Joseph(LinkList tail,int n,int m)的處理思路如下:

        (1)用k計(jì)數(shù),每次都從0開(kāi)始,當(dāng)計(jì)數(shù)到m-1時(shí)結(jié)束本次計(jì)數(shù);

        (2)通過(guò)指針p查找出圈者所對(duì)應(yīng)的結(jié)點(diǎn),當(dāng)K的值等于是m-1時(shí),P應(yīng)指向出圈者對(duì)應(yīng)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn);

        (3)通過(guò)刪除結(jié)點(diǎn)表示出圈處理;

        (4)當(dāng)m大于圈中剩余人數(shù)時(shí),為了避免重復(fù)計(jì)數(shù),用模運(yùn)算修改m的值;

        (5)計(jì)數(shù)和刪除操作完成后再恢復(fù)m的原值;

        【C函數(shù)】

        void Joseph(LinkList tail,int n,int m)

        {

        LinkList p,q;

        int k,i,old_m=m;

        p=tail;

        for(i=n;i>1;i--) /*i 表示圈中剩余人數(shù)*/

        {

        m=m%i; /*避免重復(fù)計(jì)數(shù)*/

        if(0==m)m=__(1)__;

        k=0;

        while(k<__(2)__)

        { __(3)__; k++; }

        printf("%d\n",__(4)__);/*輸出出圈者的編號(hào)*/

        q=p->next;

        __(5)__=q->next;/*刪除出圈者對(duì)應(yīng)的結(jié)點(diǎn)*/

        free(q);

        M=old_m;

        }

        printf(“%d\n”,p->No);

        }

        ● 試題五(共15分)

        閱讀以下說(shuō)明、圖和C++代碼,填補(bǔ)C++代碼中的空缺(1)—(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。

        【說(shuō)明】

        已知某公司主要有兩大類耗電資產(chǎn)(Asset):計(jì)算機(jī)(ComputerAsset)和建筑物(BuildingAsset)。為了節(jié)約能源,通過(guò)控制各種電源,將可關(guān)閉的房燈、計(jì)算機(jī)顯示器等在夜間關(guān)閉。

        為了實(shí)現(xiàn)上述需求,設(shè)計(jì)了如下圖所示的類圖,并用下面的C++代碼加以實(shí)現(xiàn)。

        6.png

        【C++代碼】

        #include<typeinfo>

        #include<iostream>

        using namespace std;

        class Asset{ /*通用資產(chǎn),基類*/

        public: virtual ~Asset(){};

        };

        class PowerSwitchable{ /*抽象基類,可在夜間關(guān)閉電源的物體接口*/

        public: virtual void powerDown()=0; /*powerDown()函數(shù)接口*/

        virtual void powerUP()=0;/*powerUp()函數(shù)接口*/

        };

        class computerAsset: public Asset{ /*計(jì)算機(jī)資產(chǎn)*/

        protected: int deskNumber;

        public:

        computerAsset(int desNumber){ this->deskNumber= deskNumber;}

        };

        class computerCPU __(1)__/*計(jì)算機(jī)主機(jī),永不關(guān)閉*/

        public:

        computerCPU(int desNumber): ComputerAsset (desNumber){ }

        };

        class computerMonitor __(2)__{ /*計(jì)算機(jī)顯示器*/

        public:

        computerMonitor(int roomNumber):omputerAsset(roomNumber),PowerSwitchable(){} ~computerMonitor (){}

        void powerDown(){……../*關(guān)電源,代碼省*/}

        void powerUp(){……../*開(kāi)電源,代碼省*/}

        };

        /*BuildingAsset、BuildingLight

        、EmergencyLight和RoomLiggts代碼省*/

        class BuldingManagement{

        private:

        Asset* things[24];int numItems;

        public:

        void goodnight(){/*值班員定時(shí)“關(guān)閉”時(shí)調(diào)用,關(guān)閉可關(guān)閉的電源*/

        for(int i=0;i<numItems;i++){

        __(3)__ ps=dynamic_cast<powerSwitchable*>(things[i]);

        if(ps!=0)

        ps->powerDown();

        }

        }

        /*goodMorning()與goodNight()類似,依次調(diào)用powerUp(),實(shí)現(xiàn)省*/

        void add(Asset*thing){/*為建筑添加資產(chǎn)*/

        yhings[__(4)__]=thing;

        }

        };

        int main(){

        BuildingManagement* bl=__(5)__ BuildingManagement();

        bl->add(new RoomLights(101));//101房間的控制燈

        bl->add(new EmergencyLight(101)); //101房間的應(yīng)急燈

        bl->add(new ComputerCPU(10104));//101房間4號(hào)桌上的計(jì)算機(jī)

        bl->add(new ComputerMonitor(10104)); //101房間4號(hào)桌上的計(jì)算機(jī)顯示器

        bl->goodNight();

        Delete bl;

        }

        ● 試題六(共15分)

        閱讀以下說(shuō)明、圖和Java代碼,填補(bǔ)Java代碼中的空缺(1)—(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。

        【說(shuō)明】

        已知某公司主要有兩大類耗電資產(chǎn)(Asset):計(jì)算機(jī)(ComputerAsset)和建筑物(BuildingAsset)。為了節(jié)約能源,通過(guò)控制各種電源,將可關(guān)閉的房燈、計(jì)算機(jī)顯示器等在夜間關(guān)閉。

        為了實(shí)現(xiàn)上述需求,設(shè)計(jì)了如下圖所示的類圖,并用下面的Java代碼加以實(shí)現(xiàn)。

        7.png

        【Java代碼】

        abstract class Asset{/*通用資產(chǎn),基類*/

        interface PowerSwitchable{ /*可在夜間關(guān)閉的電源的物體實(shí)現(xiàn)該接口*/

        public void void powerDown();

        public void powerUP();

        }

        abstract class BuildingAsset extends Asset{ /*建筑物資產(chǎn)*/

        protected int room;

        public BuildingAsset(int room){ this.room=room; }

        }

        abstract class BuildingLight extends BuildingAsset{ //燈的通用信息:fluorescent / incandescent 等,略

        BuildingLight(int room Number){ super(roomNunaber); }

        }

        class EmergencyLight__(1)__{ //應(yīng)急燈,永不關(guān)閉

        EmergrncyLight(int roomNumber){

        Super(roomNumber);

        }

        }

        class RoomLights __(2)__{

        RoomLights(int roomNurober){ super(roomNumber);}

        Public void powerDown(){ //關(guān)電源,代碼省 }

        Public void powerUp(){//開(kāi)電源,代碼省 }

        }

        /*ComputerAsset、ComputerCPU和ComputerMonitor代碼省*/

        public class BuildingManagement{

        Asset things[]=new Asset[24];

        int numItems=0;

        public void goodnight(){//值班員定時(shí)“關(guān)閉”時(shí)調(diào)用,關(guān)閉可關(guān)閉的電源

        for(int i=0;i<things.length;i++)

        if(things[i] instanceof __(3)__)

        ((powerSwitchable)things[i]).powerDown();

        }

        /*goodMoming()與goodNight()類似,依次調(diào)用powetUp(),其實(shí)現(xiàn)細(xì)節(jié)此處省*/

        public void add(Asset thing){ /*為建筑添加資產(chǎn)*/

        Things[__(4)__]=thing;

        }

        public static void main(String[]args){

        BuildingManagement* bl=__(5)__ BuildingManagement();

        bl.add(new RoomLights(101));//101房間的控制燈

        bl.add(new EmergencyLight(101)); //101房間的應(yīng)急燈

        bl.add(new ComputerCPU(10104));//101房間4號(hào)桌上的計(jì)算機(jī)

        bl.add(new ComputerMonitor(10104)); //101房間4號(hào)桌上的計(jì)算機(jī)顯示器

        bl.goodNight();

        delete bl;

        }

        }

        溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

        軟考備考資料免費(fèi)領(lǐng)取

        去領(lǐng)取

        !
        咨詢?cè)诰€老師!