當前位置:文書都 >

教師之家 >試題 >

計算機軟考試題答案

計算機軟考試題答案

試題一

計算機軟考試題答案

閲讀下列程序説明和C程序,將應填入__(n)__處的字句寫在答題紙的對應欄內。

[程序8説明]

程序8用於計算某公司每個職工應繳納的個人所得税額和全體職工繳納的個人所得税總額。職工的當月收入(工資或薪金)通過鍵盤輸入,每次輸入一個職工的工號和工資(或薪金)。由於該公司的工資或薪金是不定時發放的,所以輸入過程中每個職工的收入會出現多次輸入,整個輸入以工號小於等於0結束。

假設個人所得税法規定;個人收入所得,按月計税,以每月收入總額減除免税金額800元后的餘額作為該月的月應納税所得額,適用税率如下表所示。

級數月應納税所得額適用税率(%)
1 2 3 4 5 6 7 8 9 不超過500元的部分  501元~2000元的部分  2001元~5000元的部分  5001元~20000元的部分  20001元~40000元的部分  40001元~60000元的部分  60001元~80000元的部分  80001元~100000元的部分  超過100000元的部分5 10 15 20 25 30 35 40 45

上表表明,個人收入所得税是按照超額累進的税率來徵收的。

設一個人的月應納税所得額為K(元),用下面的公式計算其應繳納的個人所得税額S(元):

若0<k≤500,則s=k×5%;< p="">

若500<k≤2000,則s=500×5%+(k—500)×10%:< p="">

若2000<k≤5000,則s=500×5%+1500×10%+(k-2000)×15%:< p="">

若5000<k≤20000,則s=500×5%+1500×10%+3000×15%+(k-5000)×20%:< p="">

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

[程序8]

#include   #define MaxNum 50  #define BASE 800     /*免税金額基數*/  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;    /*職工的工號*/ .   long Salary;  /*職工的工資*/  }Info;  /* 查找工號為Id的職工在數組employee中的下標,返回值為0表示沒有 */  int find(int ld,Info employee[],int m){   int j;   employee[0]=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);   /*讀入職工號、工資或薪金*/   while(Code>0) {    i=find(Code,employee,N);    if (i>0)employee[i]ry += Wage:    else{ __ (2)__;    employee[N]=Code;employee[N]ry=Wage;    }    scanf("%d%ld",&Code,&Wage):   }   for (i=1;i<=n;i++){ k="" if=""> 0) {     for (j=1;j<=9;j++)      if(__(4)__)        /*月應納税所得額超過第j級*/       S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;      else{ S=S+(__ (5)__)*taxPrate[j-1]/100;break;}    }    printf("職工%d應繳納的個人所得税額:%10.21f",employee[i],S);    sum += S;   }   printf("全體職工個人所得税總額:%10,21f",sum);  }

試題二

閲讀下列函數説明和C函數,將應填入__(n)__處的字句寫在答題紙的對應欄內。

[函數2.1説明]

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

[函數2.1]

int palindrome(char S[])  { char *pi,*pj;   pi=S;pj=s+strlen(S)-1:   while ( pi<pj &&="" __(1)__){=""    pi++;="" pj--;=""   }=""   if(__="" (2)__)return-1;=""   else="" return="" 0;=""  }<="" p="">

[函數2.2説明]

函數f(char *str,char del)的功能是;將非空字符串str分割成若干個子字符串並輸出,del表示分割時的標誌字符。

例如若str的值為“33123333435”,del的值為‘3’,調用此函數後,將輸出三個子字符串,分別為“12”、“4”和“5”。

[函數2.2]

void f(char*str,char del)  { int i,j,len;   len = strlen(str);   i = 0;   while (i<len){    while (__(3)__) i++;    ="" *忽略連續的標誌字符*=""   ="" *尋找從str[i]開始直到標誌字符出現的一個子字符串*=""    j="i" +="" 1;=""   while="" (str[j]="" !="del" &&="" str[j]="" )="" j++;=""   __="" (4)__="";        ="" *給找到的字符序列置字符串結束標誌*=""   printf("="" %s",&str[i]):="" ’="" (5)__;=""   }=""  }<="" p="">

試題三

以下是與Visual Basic開發應用有關的5個問題.對每一個問題,請將解答填入答題紙的對應欄內。

(1)在Visual Basic中,工程文件、窗體文件和標準模塊文件的擴展名是什麼?

請從下列選項中選擇:

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

(2)設某窗體上有一個命令按鈕,其名稱為 CmdSave,運行時該按鈕上顯示有“保存(S)”字樣的信息。為使熱鍵 ALT+S 與該命令按鈕相關聯,應該對按鈕 CmdSave 的 Caption屬性設置什麼樣的屬性值?

(3)設某窗口內有一個圖像框 Image1,以及兩個命令按鈕“放大”和“縮小”。單擊“放大”按鈕就會使該圖像框的長和寬都放大10%;單擊“縮小”按鈕就會使該圖像框的長和寬都縮小10%(該圖像框的左上角不動)。請分別寫出這兩個命令按鈕的.單擊事件過程中的程序代碼。

(4)為使某個單選按鈕初始時默認被選中,在開發時應怎樣做?

(5)若有語句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,"提示"),請簡要描述程序運行時彈出的消息框的主要特徵。

試題四

閲讀以下説明和C代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內。

[説明]

函數 MultibaseOutput(long n,int B)的功能是:將一個無符號十進制整數 n 轉換成 B(2≤B≤16)進制數並輸出。該函數先將轉換過程中得到的各位數字入棧,轉換結束後再把 B 進制數從棧中輸出。有關棧操作的諸函數功能見相應函數中的註釋。C代碼中的符號常量及棧的類型定義如下:

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

試題五

閲讀以下應用説明及Visual Basic程序代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內。

[應用説明5.1]

本應用程序的窗體中有一個下拉式列表框(名稱為Combol)和兩個文本框(名稱分別為Txtl和Txt2)。運行時,用户從Combol的列表中進行選擇,程序就會將選中條目的內容以及編號(從0開始)分別在文本框 Txt1 和 Txt2 中顯示出來。

[程序代碼5.1]

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

(注:可供(2)處選擇的選項:List,Index,Listlndex,ListCount,Number)

[應用説明5.2]

本應用程序的運行窗口如下圖所示:

當用户在輸入框(名為Txtln)中輸入數值數據,並從下拉式列表框(名為CmbOp)中選擇所需的運算後,輸出框(名為TxtOut)中就會顯示運算的結果。用户單擊“清除”按鈕(名為CmdClear)後,輸入框和輸出框都清空。

開發該應用的部分程序代碼如下:

[程序代碼5.2]

Private Sub CmbOp_Click()   Dim DataIn As Double,DataOut as Double   DataIn = __(3)__   Select Case __(4)__    Case "取整數部分"     DataOut = Int(Dataln)    Case "求平方根"     If Dataln < O Then      MsgBox$("負數不能開平方!")     Else      DataOut = Sqr(Dataln)     End If    Case "取絕對值"     DataOut = Abs(Dataln)     ( = str$(DataOut)     __5)__  End Sub

試題六

閲讀下列函數説明和 C 函數,將應填入__(n)__處的字句寫在答題紙的對應欄內。

[函數6説明]

函數DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,將線性表A中關鍵碼為keyl的結點開始的len個結點,按原順序移至線性表B中關鍵碼為key2的結點之前,若移動成功,則返回0;否則返回-1。線性表的存儲結構為帶頭結點的單鏈表,La為表A的頭指針,Lb為表B的頭指針。單鏈表結點的類型定義為:

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

[函數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) p="La-">next; prep = La;   while (p && p->key != keyl){   /* 查找表A中鍵值為key1的結點 */    prep = p; p = p->next;   }   if (!p) return -1;        /* 表A中不存在鍵值為key1的結點 */   q = p; k = 1;   while (q && __(1)__){       /* 在表A中找出待刪除的len個結點 */    __(2)__: k++;   }   if (!q) return -1;        /* 表A中不存在要被刪除的len個結點 */ ·   S = Lb->next;__ (3)__;   while (s && s->key != key2){   /* 查找表B中鍵值為key2的結點 */   pres = s; s = s->next;   }   if (!s)return -1;        /* 表B中不存在鍵值為key2的結點 */   __(4)__q->next;         /* 將表A中的len個結點刪除 */   q->next:__(5)__   pres->next = p;         /* 將len個結點移至表B */   return 0;  }

標籤: 計算機 考試題
  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/jiaoshizhijia/shiti/g989dy.html
專題