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

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

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

        2016年計算機(jī)軟件水平考試程序員練習(xí)試題1

        字號:

        ●試題一
            閱讀下列說明和流程圖,將應(yīng)填入(n)的語句寫在答題紙的對應(yīng)欄內(nèi)。
            


            【流程圖】
            圖1
            下面的流程圖描述了對16位二進(jìn)制整數(shù)求補(bǔ)的算法。計算過程是:從二進(jìn)制數(shù)的低位(最右位)開始,依次向高位逐位查看,直到首次遇到"1"時,停止查看。然后,對該"1"位左面的更高位(如果有的話),逐位求反,所得的結(jié)果就是對原二進(jìn)制數(shù)求補(bǔ)的結(jié)果。
            例如:對二進(jìn)制整數(shù)10111001 10101000求補(bǔ)的結(jié)果是01000110 01011000。
            設(shè)16位二進(jìn)制整數(shù)中的各位,從低位到高位,依次存放在整型數(shù)組BIT的BIT[1]~BIT[16]中。例如,二進(jìn)制整數(shù)10111001 10101000存放在數(shù)組BIT后,就有BIT1[1]=0,BIT[2]=0,……,BIT[15]=0,BIT[16]=1。
            流程圖(如圖1所示)中 (1) 處按"循環(huán)變量名:循環(huán)初值,增量,循環(huán)終值"格式描述。若流程圖中存在空操作,則用NOP表示。
            ●試題二
            閱讀下列程序說明和C程序,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
            【說明】
            程序8用于計算某公司每個職工應(yīng)繳納的個人所得稅額和全體職工繳納的個人所得稅總額,職工的當(dāng)月收入(工資或薪金)通過鍵盤輸入,每次輸入一個職工的工號和工資(或薪金)。由于該公司的工資或薪金是不定時發(fā)放的,所以輸入過程中每個職工的收入會出現(xiàn)多次輸入,整個輸入以工號小于等于0結(jié)束。
            假設(shè)個人所得稅法規(guī)定:個人收入所得,按月計稅,以每月收入總額減除免稅金額800元后的余額作為該月的月應(yīng)納稅所得額。適用稅率如表2所示。
            


            上表表明,個人收入所得稅是按照超額累進(jìn)的稅率來征收的。
            設(shè)一個人的月應(yīng)納稅所得額為K(元),用下面的公式計算其應(yīng)繳納的個人所得稅額S(元);
            若0<K≤500,則S=K×5%;
            若500<K≤2000,則S=500×5%+(K-500)×10%;
            若2000<K≤5000,則S=500×5%+1500×10%+(K-2000)×15%;
            若5000<K≤20 000,則S=500×5%+1500×10%+3000×15%+(K-5000)×20%;
            


            


            例如,某人某月收入總額為4100元,減去800元后,應(yīng)納稅所得額為3300元,其應(yīng)繳納的個人所得稅額為500*5%+1500*10%+1300*15%=370元。
            【程序】
            # include
            # define MaxNum50
            # define BASE 800/*免稅金額基數(shù)*/
            int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001};
            int taxPrate[]={5,10,15,20,25,30,35,40,45};/*稅率表*/
            typedef struct{
            int Id;/*職工的工號*/
            long Salary;/*職工的工資*/
            }Info;
            /*查找工號為Id的職工在數(shù)組employee中的下標(biāo),返回值為0表示沒有*/
            int find (int Id ,Info employee[],int m){
            int j;
            employee[0].Id=Id;
            for(j=m; (1) ;j--);
            return j;
            }
            void main(void)
            {Info employee[MaxNum+1];
            long Wage;
            double sum=0,K,S;
            int i,j,N=0,Code;
            scanf(″%d %ld″,&Code,&Wage);/*讀入職工號、工資或薪金*/
            while(Code>0){
            i=find(Code,empolyee,N);
            if(i>0)employee[i].Salary+=Wage;
            else{ (2) ;
            employee[N].Id=Code;employee[N].Salary=Wage;
            }
            scanf(″%d %ld″,&Code,&Wage);
            }
            for(i=1;i<=N;i++){
            K= (3) ;/*計算月應(yīng)納稅所得額*/
            S=0;/*月應(yīng)納稅額賦初值*/
            if(K>0){
            for(j=1;j<=9;j++)
            if (4) /*月應(yīng)納稅所得額超過第j級*/
            S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;
            else{S=S+ (5) *taxPrate[j-1]/100;break;}
            }
            printf(″職工%d應(yīng)繳納的個人所得稅額:%10.21f\n″,employee[i].Id,S);
            sum+=S;
             }
             printf(″全體職工個人所得稅總額:%10.21f\n″,sum);
            }
            
            
            


            


            

        ●試題三
            閱讀下列程序說明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
            【說明】
            下面的程序功能的功能是以行為單位對字符串按下面的條件進(jìn)行排序。排序條件為:從字符串中間一分為二,右邊部分按字符的ASCⅡ值降序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加排序,字符仍放在原位置上
            例如:位置:0 1 2 3 4 5 6 7
            源字符串:h g f e a b c d
            則處理后字符串:d c b a h g f e
            函數(shù)ReadDat()實現(xiàn)從文件in.dat中讀取數(shù)據(jù)(每行字符串長度均小于80),函數(shù)WriteDat()把結(jié)果dat輸出到文件out.dat中。
            【程序】
            #include
            #include
            #include
            char dat[20][80];
            void jsSort()
            {
            int i,j,k,strl;
            char ch;
            for(i=0;i<20;i++)
            {
            strl=strlen(dat[i]);
            for(j= (1) ;j
            for(k=j+1;k<strl;k++)
            if( (2) )
            {
            ch=dat[i][j];
            dat[i][j]=dat[i][k];
            dat[i][k]=ch;
            }
            for(j=0; (3) j++)/*前后兩部分進(jìn)行交換*/
            {
            ch=dat[i][j];
            dat[i][j]=dat[i][(strl+1)/2+j];
            dat[i][(strl+1)/2+j]=ch;
            }
            }
            }
            void main()
            {
            readDat();
            jsSort();
            writeDat();
            }
            readDat()
            {
            FILE*in;
            int i=0;
            char*p;
             (4) ;
            while(i<20 && fgets(dat[i],80,in)!=NULL)
            {
            p=strchr(dat[i],"\n");
            if(p)*p=0;
            i++;
            }
            fclose(in);
            }
            writeDat()
            {
            FILE*out;
            int i;
            clrscr();
            out=fopen("out.dat","W");
            for(i=0;i<20;i++)
            {
            printf("%s\n",dat[i]);
            printf( (5) );
            }
            fclose(out);
            }
            


            


            


            
            

        ●試題四
            閱讀下列函數(shù)說明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
            【說明4.1】
            假設(shè)兩個隊列共享一個循環(huán)向量空間(如圖1-2所示),其類型Queue2定義如下:
            typedef struct{
            DateType data [MaxSize];
            int front[2],rear[2];
            }Queue2;
            對于i=0或1,front[i]和rear[i]分別為第i個隊列的頭指針和尾指針。函數(shù)EnQueue(Queue2*Q,int i,DateType x)的功能是實現(xiàn)第i個隊列的入隊操作。
            【函數(shù)4.1】
            int EnQueue(Queue2*Q,int i,DateType x)
            {∥若第i個隊列不滿,則元素x入隊列,并返回1;否則,返回0
            if(i<0‖i>1)return 0;
            if(Q->rear[i]==Q->front[ (1) ]
            return 0;
            Q->data[ (2) ]=x;
            Q->rear[i]=[ (3) ];
            return 1;
            }
            【說明4.2】
            函數(shù)BTreeEqual(BinTreeNode*T1,BinTreeNode*T2)的功能是遞歸法判斷兩棵二叉樹是否相等,若相等則返回1,否則返回0。函數(shù)中參數(shù)T1和T2分別為指向這兩棵二叉樹根結(jié)點的指針。當(dāng)兩棵樹的結(jié)構(gòu)完全相同,并且對應(yīng)結(jié)點的值也相同時才被認(rèn)為相等。
            已知二叉樹中的結(jié)點類型BinTreeNode定義為:
            struct BinTreeNode{
            char data;
            BinTreeNode*left,*right;
            };
            其中data為結(jié)點值域,left和right分別為指向左、右子女結(jié)點的指針域,
            【函數(shù)4.2】
            int BTreeEqual(BinTreeNode*T1,BinTreeNode*T2)
            {
            if(T1==NULL && T2==NULL)return 1;∥若兩棵樹均為空,則相等
            else if( (4) )return 0;∥若一棵為空一棵不為空,則不等
            else if( (5) )return 1;∥若根結(jié)點值相等并且左、右子樹
            ∥也相等,則兩棵樹相等,否則不等
            else return 0;
            }
            ●試題五
            閱讀以下應(yīng)用說明及Visual Basic程序代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
            【應(yīng)用說明5.1】
            本應(yīng)用程序的窗體中有一個下拉式列表框(名稱為Combo1)和兩個文本框(名稱分別為Txt1和Txt2)。運(yùn)行時,用戶從Combol的列表中進(jìn)行選擇,程序就會將選中條目的內(nèi)容以及編號(從0開始)分別在文本框Txt1和Txt2中顯示出來。
            【程序代碼5.1】
            Private Sub Combol_Click()
            Txt1.Text=Combol. (1)
            Txt2.Text=Combol. (2)
            End Sub
            (注:可供 (2) 處選擇的選項:List,Index,ListIndex,ListCount,Number)
            【應(yīng)用說明5.2】
            本應(yīng)用程序的運(yùn)行窗口如圖2所示。
            


            當(dāng)用戶在輸入框(名為TxtIn)中輸入數(shù)值數(shù)據(jù),并從下拉式列表框(名為CmbOp)中選擇所需的運(yùn)算后。輸出框(名為TxtOut)中就會顯示運(yùn)算的結(jié)果。用戶單擊"清除"按鈕(名為CmdClear)后,輸入框和輸出框都清空。
            開發(fā)該應(yīng)用的部分程序代碼如下:
            


            【程序代碼5.2】
            Private Sub CmbOp_Click()
            Dim DataIn As Double,DataOut as Double
            DataIn= (3)
            Select Case (4)
            Case ″取整數(shù)部分″
            DataOut=Int(DataIn)
            Case ″求平方根″
            If DataIn<0 Then
            MagBox ″負(fù)數(shù)不能開平方!″
            Else
            DataOut=Sqr(DataIn)
            End If
            Case ″取絕對值″
            DataOut=Abs(DataIn)
             (5)
            TxtOut.Text=str$(DataOut)
            End Sub