国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

歷年計(jì)算機(jī)軟考程序員筆試真題及答案

時(shí)間:2016-05-03 16:20:00   來(lái)源:無(wú)憂考網(wǎng)     [字體: ]

試題一是必答題

試題一   閱讀下列說(shuō)明、流程圖和算法,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi).

[流程圖說(shuō)明]

  下面的流程圖用N—S盒圖形式描述了數(shù)組A中的元素被劃分的過(guò)程.其劃分方法是:

  以數(shù)組中的第一個(gè)元素作為基準(zhǔn)數(shù),將小于基準(zhǔn)數(shù)的元素向低下標(biāo)端移動(dòng),而大于基準(zhǔn)數(shù)的元素向高下標(biāo)端移動(dòng).當(dāng)劃分結(jié)束時(shí),基準(zhǔn)數(shù)定位于A[i],并且數(shù)組中下標(biāo)小于i的元素的值均小于基準(zhǔn)數(shù),下標(biāo)大子i的元素的值均大于基準(zhǔn)數(shù)。設(shè)數(shù)組A的下界為low,上界為high,數(shù)組中的元素互不相同。例如,對(duì)數(shù)組(4,2,8,3,6),以4為基準(zhǔn)數(shù)的劃分過(guò)程如下:

[算法說(shuō)明]

  將上述劃分的思想進(jìn)一步用于被劃分出的數(shù)組的兩部分,就可以對(duì)整個(gè)數(shù)組實(shí)現(xiàn)遞增排序。設(shè)函數(shù)int p(int A[],int low,int high)實(shí)現(xiàn)了上述流程圖的劃分過(guò)程并返回基準(zhǔn)數(shù)在數(shù)組A中的下標(biāo)。遞歸函數(shù)void sort(int A[],iht L,int H)的功能是實(shí)現(xiàn)數(shù)組A中元素的遞增排序。

[算法]

 void sort(int A[],iht l,int H) {  if ( L < H ) {   k=p(A,L,R);     //p()返回基準(zhǔn)數(shù)在數(shù)組A中的下標(biāo)   sort(__ (4)__;     //小于基準(zhǔn)數(shù)的元素排序   sortl__ (5)__);    //大于基準(zhǔn)數(shù)的元素排序   }  }

從下列的2道試題(試題二至試題三)中任選1道解答。如果解答的試題數(shù)超過(guò)1道,則題號(hào)小的1道解答有效。

試題二

  閱讀下列函數(shù)說(shuō)明和C函數(shù),將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[函數(shù)2.1說(shuō)明]

  函數(shù)palindrome(chars[])的功能是:判斷字符串s是否為回文字符串,若是,則返回0,否則返回-1。若一個(gè)字符串順讀和倒讀都一樣時(shí),稱該字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。

[函數(shù)2.1]

 int palindrome(char S[])  { char *pi,*pj;   pi=S;pj=s+strlen(S)-1:   while ( pi

[函數(shù)2.2說(shuō)明]

  函數(shù)f(char *str,char del)的功能是;將非空字符串str分割成若干個(gè)子字符串并輸出,del表示分割時(shí)的標(biāo)志字符。

  例如若str的值為“33123333435”,del的值為‘3’,調(diào)用此函數(shù)后,將輸出三個(gè)子字符串,分別為“12”、“4”和“5”。

[函數(shù)2.2]

 void f(char*str,char del)  { int i,j,len;   len = strlen(str);   i = 0;   while (i

試題三   以下是與Visual Basic開(kāi)發(fā)應(yīng)用有關(guān)的5個(gè)問(wèn)題.對(duì)每一個(gè)問(wèn)題,請(qǐng)將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

  (1)在Visual Basic中,工程文件、窗體文件和標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是什么?

  請(qǐng)從下列選項(xiàng)中選擇:

  prg、prj、exe、vbp、rom、frm、win、fra,std、bas、vbs、Vbm

  (2)設(shè)某窗體上有一個(gè)命令按鈕,其名稱為 CmdSave,運(yùn)行時(shí)該按鈕上顯示有“保存(S)”字樣的信息。為使熱鍵 ALT+S 與該命令按鈕相關(guān)聯(lián),應(yīng)該對(duì)按鈕 CmdSave 的 Caption屬性設(shè)置什么樣的屬性值?

  (3)設(shè)某窗口內(nèi)有一個(gè)圖像框 Image1,以及兩個(gè)命令按鈕“放大”和“縮小”。單擊“放大”按鈕就會(huì)使該圖像框的長(zhǎng)和寬都放大10%;單擊“縮小”按鈕就會(huì)使該圖像框的長(zhǎng)和寬都縮小10%(該圖像框的左上角不動(dòng))。請(qǐng)分別寫(xiě)出這兩個(gè)命令按鈕的單擊事件過(guò)程中的程序代碼。

  (4)為使某個(gè)單選按鈕初始時(shí)默認(rèn)被選中,在開(kāi)發(fā)時(shí)應(yīng)怎樣做?

  (5)若有語(yǔ)句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,"提示"),請(qǐng)簡(jiǎn)要描述程序運(yùn)行時(shí)彈出的消息框的主要特征。

從下列的2道試題(試題四至試題五)中任選1道解答,如果解答的試題數(shù)超過(guò)1道,則題號(hào)小的1道解咎有效。

試題四

  閱讀以下說(shuō)明和C代碼,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[說(shuō)明]

  函數(shù) MultibaseOutput(long n,int B)的功能是:將一個(gè)無(wú)符號(hào)十進(jìn)制整數(shù) n 轉(zhuǎn)換成 B(2≤B≤16)進(jìn)制數(shù)并輸出。該函數(shù)先將轉(zhuǎn)換過(guò)程中得到的各位數(shù)字入棧,轉(zhuǎn)換結(jié)束后再把 B 進(jìn)制數(shù)從棧中輸出。有關(guān)棧操作的諸函數(shù)功能見(jiàn)相應(yīng)函數(shù)中的注釋。C代碼中的符號(hào)常量及棧的類(lèi)型定義如下:

 #define KAXSIZE 32  typedef struct{   int *elem;  /* 棧的存儲(chǔ)區(qū) */   int max;   /* 棧的容量,即找中最多能存放的元素個(gè)數(shù) */   int top;   /* 棧頂指針 */  }Stack; [C代碼]  int lnitStack(Stack *S,int n)  /* 創(chuàng)建容量為n的空棧 */  { S->elem = (int *)matloc(n * sizeof(int));   if (S->elem == NULL) return -1;   S->max = n;__(1)__= 0;return 0;  }  int Push(Stack*S,int item)   /* 將整數(shù)item壓入棧頂 */  { if(S->top == S->max){ printf("Stack is full!\n");return -1;}   __(2)__;item;return 0;  }  int StackEmpty(Stack S){ return(!S.top) ? 1;0;) /* 判斷棧是否為空 */  int Pop(Stack*S)        /* 棧頂元素出棧 */  { if (!S->top){ printf("Pop an empty stack!\n");return -1;)   return __(3)__;  }  void MultibaseOutput(long n,int B)  { int m;Stack S;   if (init Stack(&S,MAXSIZE)) { printf("Failure!\n");return;}   do {    if (Push(&s,__(4)__)) { printf("Failure!\n");return;}    n = __(5)__:   } while (n != 0);   while (!StackEmpty(S)) {     /* 輸出B進(jìn)制的數(shù) */    m = Pop(&S);    if (m < 10) printf("Kd",m);  /* 小于10,輸出數(shù)字 */    else printf("%c,m + 55);    /* 大于或等于10,輸出相應(yīng)的字符 */   }   printf("\n");  }

試題五

  閱讀以下應(yīng)用說(shuō)明及Visual Basic程序代碼,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[應(yīng)用說(shuō)明5.1]

  本應(yīng)用程序的窗體中有一個(gè)下拉式列表框(名稱為Combol)和兩個(gè)文本框(名稱分別為T(mén)xtl和Txt2)。運(yùn)行時(shí),用戶從Combol的列表中進(jìn)行選擇,程序就會(huì)將選中條目的內(nèi)容以及編號(hào)(從0開(kāi)始)分別在文本框 Txt1 和 Txt2 中顯示出來(lái)。

[程序代碼5.1]

 Private Sub Combol_C1ick()   Txtl.Text = Combol.__(1)__   Txt2.Text = Combol.__(2)__  End Sub

 。ㄗⅲ嚎晒(2)處選擇的選項(xiàng):List,Index,Listlndex,ListCount,Number)

[應(yīng)用說(shuō)明5.2]

  本應(yīng)用程序的運(yùn)行窗口如下圖所示:

 當(dāng)用戶在輸入框(名為T(mén)xtln)中輸入數(shù)值數(shù)據(jù),并從下拉式列表框(名為CmbOp)中選擇所需的運(yùn)算后,輸出框(名為T(mén)xtOut)中就會(huì)顯示運(yùn)算的結(jié)果。用戶單擊“清除”按鈕(名為CmdClear)后,輸入框和輸出框都清空。

開(kāi)發(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(Dataln)    Case "求平方根"     If Dataln < O Then      MsgBox$("負(fù)數(shù)不能開(kāi)平方!")     Else      DataOut = Sqr(Dataln)     End If    Case "取絕對(duì)值"     DataOut = Abs(Dataln)     (TxtOut.Text = str$(DataOut)     __5)__  End Sub

  從下列的2道試題(試題六至試題七)中任選1道解答。如果解答的試題數(shù)超過(guò)1道,則題號(hào)小的1道解答有效。

試題六   閱讀下列函數(shù)說(shuō)明和 C 函數(shù),將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[函數(shù)6說(shuō)明]

  函數(shù)DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,將線性表A中關(guān)鍵碼為keyl的結(jié)點(diǎn)開(kāi)始的len個(gè)結(jié)點(diǎn),按原順序移至線性表B中關(guān)鍵碼為key2的結(jié)點(diǎn)之前,若移動(dòng)成功,則返回0;否則返回-1。線性表的存儲(chǔ)結(jié)構(gòu)為帶頭結(jié)點(diǎn)的單鏈表,La為表A的頭指針,Lb為表B的頭指針。單鏈表結(jié)點(diǎn)的類(lèi)型定義為:

 typedef struct node{   int key;   struct node*next;  }*Linkedhist;

[函數(shù)6]

 int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)  { LinkedList p,q,S,prep,pres;   int k;   if (!La->next || !Lb->next || len<=0) return-1;   p = La->next; prep = La;   while (p && p->key != keyl){   /* 查找表A中鍵值為key1的結(jié)點(diǎn) */    prep = p; p = p->next;   }   if (!p) return -1;        /* 表A中不存在鍵值為key1的結(jié)點(diǎn) */   q = p; k = 1;   while (q && __(1)__){       /* 在表A中找出待刪除的len個(gè)結(jié)點(diǎn) */    __(2)__: k++;   }   if (!q) return -1;        /* 表A中不存在要被刪除的len個(gè)結(jié)點(diǎn) */ ·   S = Lb->next;__ (3)__;   while (s && s->key != key2){   /* 查找表B中鍵值為key2的結(jié)點(diǎn) */   pres = s; s = s->next;   }   if (!s)return -1;        /* 表B中不存在鍵值為key2的結(jié)點(diǎn) */   __(4)__q->next;         /* 將表A中的len個(gè)結(jié)點(diǎn)刪除 */   q->next:__(5)__   pres->next = p;         /* 將len個(gè)結(jié)點(diǎn)移至表B */   return 0;  }

試題七   閱讀以下應(yīng)用說(shuō)明、屬性設(shè)置及VisualBasic程序代碼,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[應(yīng)用說(shuō)明7]

  本應(yīng)用程序的運(yùn)行窗口如下圖所示:

  只要用戶單擊“閃爍”按鈕,文字“歡迎光臨”就會(huì)以0.3秒消失、0.3秒顯示反復(fù)進(jìn)行閃爍;單擊“停止”按鈕時(shí),閃爍停止,恢復(fù)圖示的初態(tài)。

  在開(kāi)發(fā)過(guò)程中,需要設(shè)置的屬性如下:

[屬性設(shè)置7]

對(duì)象 對(duì)象名 屬性名 屬性值
窗體 Frm1 Caption 閃爍顯示演示
標(biāo)簽 Labe1 Caption 歡迎光臨
命令按鈕 CmdF Caption 閃爍
命令按鈕 CmdT Caption 停止
定時(shí)器 Timer1 Enabled __(1)__
    Interval __(2)__

  在開(kāi)發(fā)過(guò)程中,需要編寫(xiě)的程序代碼如下;

[程序代碼7]

 Private Sub CmdF Click()   Timerl.__(3)__ = True   Label.Visible = False  End Sub  Private Sub Timerl_ Timer()   __(4)__ = not Label.Visible  End Sub  Private Sub CmdT Click()   Timerl.Enabled = __(5)__   Label.Visible = true  End Sub

從下列的2道試題(試題八至試題九)中任選1道解答,如果解答的試題數(shù)超過(guò)1道,則題號(hào)小的1道解答有效。

試題八   閱讀下列程序說(shuō)明和C程序,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

[程序8說(shuō)明]

  程序8用于計(jì)算某公司每個(gè)職工應(yīng)繳納的個(gè)人所得稅額和全體職工繳納的個(gè)人所得稅總額。職工的當(dāng)月收入(工資或薪金)通過(guò)鍵盤(pán)輸入,每次輸入一個(gè)職工的工號(hào)和工資(或薪金)。由于該公司的工資或薪金是不定時(shí)發(fā)放的,所以輸入過(guò)程中每個(gè)職工的收入會(huì)出現(xiàn)多次輸入,整個(gè)輸入以工號(hào)小于等于0結(jié)束。

  假設(shè)個(gè)人所得稅法規(guī)定;個(gè)人收入所得,按月計(jì)稅,以每月收入總額減除免稅金額800元后的余額作為該月的月應(yīng)納稅所得額,適用稅率如下表所示。

級(jí)數(shù) 月應(yīng)納稅所得額 適用稅率(%)
1 2 3 4 5 6 7 8 9

 不超過(guò)500元的部分  501元~2000元的部分  2001元~5000元的部分  5001元~20000元的部分  20001元~40000元的部分  40001元~60000元的部分  60001元~80000元的部分  80001元~100000元的部分  超過(guò)100000元的部分

5 10 15 20 25 30 35 40 45

  上表表明,個(gè)人收入所得稅是按照超額累進(jìn)的稅率來(lái)征收的。

  設(shè)一個(gè)人的月應(yīng)納稅所得額為K(元),用下面的公式計(jì)算其應(yīng)繳納的個(gè)人所得稅額S(元):

  若0

  若500

  若2000

  若5000

  例如,某人某月工資總額為4100元,減去800元后,應(yīng)納稅所得額為3300元,其應(yīng)繳納的個(gè)人所得稅額為500*5%+1500*10%+1300*15%=370元。

[程序8]

 #include   #define MaxNum 50  #define BASE 800     /*免稅金額基數(shù)*/  int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,100000¨:  int taxPrate[]={5,10,15,20,25,30,35,40,45): /*稅率表*/  typedef struct{   int ld;    /*職工的工號(hào)*/ .   long Salary;  /*職工的工資*/  }Info;  /* 查找工號(hào)為Id的職工在數(shù)組employee中的下標(biāo),返回值為0表示沒(méi)有 */  int find(int ld,Info employee[],int m){   int j;   employee[0].Id=Id;   for(j=m;__(1)__;j--);    return j;  }  void main(void)  { Info employeeCHaxNum+1];   long Wage;   double sum s 0,K,S:   int i,j,N=0,Code;   scanf("M%ld",&Code,&Wage);   /*讀入職工號(hào)、工資或薪金*/   while(Code>0) {    i=find(Code,employee,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)__;         /*計(jì)算月應(yīng)納稅所得額*/    S=0;             /*月應(yīng)納稅額賦初值*/    if (K > 0) {     for (j=1;j<=9;j++)      if(__(4)__)        /*月應(yīng)納稅所得額超過(guò)第j級(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)繳納的個(gè)人所得稅額:%10.21f\n",employee[i].Id,S);    sum += S;   }   printf("全體職工個(gè)人所得稅總額:%10,21f\n",sum);  }

試題九   閱讀以下應(yīng)用說(shuō)明及VisualBasic程序代碼,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi). [應(yīng)用說(shuō)明9]

  本應(yīng)用程序的運(yùn)行窗口如下圖所示:

  窗口中的三個(gè)文本框和兩個(gè)按鈕名稱分別為T(mén)xt_salary、Txt_base、ht_tax、Cmd compute和Cmd_quit.運(yùn)行時(shí),文本框Txt_base中存放的是免稅金額基數(shù)(應(yīng)扣除的基本費(fèi)用)。當(dāng)用戶在文本框ht_salary中輸入月收入(工資或薪金)并單擊“計(jì)算”按鈕Crud_compute后,Txt_tax框中就顯示計(jì)算所得的應(yīng)納稅額。文本框Txt_base和Txt_tax在運(yùn)行時(shí)不接受用戶輸入,Txt_base的內(nèi)容以灰色顯示。

  個(gè)人工資(或薪金)所得稅是按照超額累進(jìn)的稅率來(lái)征收的,方法是:以每月收入總額減去免稅金額基數(shù)后的余額作為該月的月應(yīng)納稅所得額,再將應(yīng)納稅所得額按相應(yīng)級(jí)數(shù)采用相應(yīng)的稅率進(jìn)行累進(jìn)計(jì)算.目前的免稅金額基數(shù)為800元,稅率如下表所示:

  個(gè)人工資(或薪金)所得稅是按照超額累進(jìn)的稅率來(lái)征收的,方法是:以每月收入總額減去免稅金額基數(shù)后的余額作為該月的月應(yīng)納稅所得額,再將應(yīng)納稅所得額按相應(yīng)級(jí)數(shù)采用相應(yīng)的稅率進(jìn)行累進(jìn)計(jì)算.目前的免稅金額基數(shù)為800元,稅率如下表所示:

級(jí)數(shù) 月應(yīng)納稅所得額 適用稅率(%)
1 2 3 4 5 6 7 8 9

  不超過(guò)500元的部分   501元~2000元的部分   2001元~5000元的部分   5001元~20000元的部分   20001元~40000元的部分   40001元~60000元的部分   60001元~80000元的部分   80001元~100000元的部分   超過(guò)100000元的部分

5 10 15 20 25 30 35 40 45

  設(shè)一個(gè)人的月應(yīng)納稅所得額為K(元),用下面的公式計(jì)算其應(yīng)繳納的個(gè)人所得稅額S(元):

  若0

  若500

  若2000

  若5000

  例如,某人某月工資總額為4100元,減去800元后,應(yīng)納稅所得額為3300元,其應(yīng)繳納的個(gè)人所得稅額為500*5%+1500*10%+1300*15%=370元。

  在開(kāi)發(fā)過(guò)程中,需要編寫(xiě)的程序代碼如下:

[程序代碼]

 Option Base 0  Private Sub Cmd compute-C1ick()   Dim paylevel,taxPrate   paylevel=Array(0,500,2000,5000,20000,40000,60000,80000,100000,1000001)   taxPrate=Array(5,10,15,20,25,30,35,40,45)   K=__(1)__   S = 0   If (K>0) Then    For j=1 To 9     If __(2)__ Then      S=S+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100     Else      S=S+(__(3)__)*taxPrate(j-1)/100      Exit For     End lf    Next j   End lf   __(4)__=Str$(S)  End Sub

 Private Sub Cmd_quit_C1ick()  End  End Sub

 Private Sub Form_Load()   Txt_tax.Text = " "   Txt_salary.Text = " "   Txt_base.Text = 800   Txt_tax.Locked = True   Txt_base.Enabled =__(5)__  End Sub

答案

試題一

(1)i:1,1,8 (2)1→sw (3) 0→BIT[i] (4)NOP,或空操作 (5)1→BIT[i]

試題二

(1)j%2,及其等價(jià)形式 (2)i+=2,及其等價(jià)形式 (3)tag>2,或tag==3或tag>=3,及其等價(jià)形式 (4)9 (5)45 試題三

(1)p && knext,及其等價(jià)形式 (3)q->next (4)prep->next (5)q->next=p

試題四

(1)(h-9)*60+m,及其等價(jià)形式 (2)time + R[k].d[ch-'a']*20 其中ch-'a'可以表示為ch-97,R[k]可以表示為R[R[k].no] (3)R[t].num == R[j].num && R[t].time > R[j].time,及其等價(jià)形式 (4)t!=i,及其等價(jià)形式,表達(dá)式的值為真也正確 (5)R[i],及其等價(jià)形式

試題五 (1)Asc("A")+i-1,或64+i,及其等價(jià)形式 (2)(h-9)*60+m,及其等價(jià)形式 (3)Combol.Text (4)Value (5)Time+R(k).d(m)*20 其中m可表示為Asc(ch)-Asc("A")或Asc(ch)-65,k可表示為R(R(k).no) 試題六

(1)public Figure (2)height*width (3)public Rectangle (4)this->height=this->width=width (5)public Figure 若填public Rectangle只給1分

試題七

(1)False (2)True (3)SetFocus (4)Delete (5)Update

試題八 (Java)

(1)Figure (2)height*width (3)Rectangle (4)super(width,width) (5)Figure