試題一是必答題 |
試題一 閱讀下列說明、流程圖和算法,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi).
[流程圖說明]
下面的流程圖用N—S盒圖形式描述了數(shù)組A中的元素被劃分的過程.其劃分方法是:
以數(shù)組中的第一個元素作為基準數(shù),將小于基準數(shù)的元素向低下標端移動,而大于基準數(shù)的元素向高下標端移動.當劃分結(jié)束時,基準數(shù)定位于A[i],并且數(shù)組中下標小于i的元素的值均小于基準數(shù),下標大子i的元素的值均大于基準數(shù)。設(shè)數(shù)組A的下界為low,上界為high,數(shù)組中的元素互不相同。例如,對數(shù)組(4,2,8,3,6),以4為基準數(shù)的劃分過程如下:
[算法說明]
將上述劃分的思想進一步用于被劃分出的數(shù)組的兩部分,就可以對整個數(shù)組實現(xiàn)遞增排序。設(shè)函數(shù)int p(int A[],int low,int high)實現(xiàn)了上述流程圖的劃分過程并返回基準數(shù)在數(shù)組A中的下標。遞歸函數(shù)void sort(int A[],iht L,int H)的功能是實現(xiàn)數(shù)組A中元素的遞增排序。
[算法]
void sort(int A[],iht l,int H) { if ( L < H ) { k=p(A,L,R); //p()返回基準數(shù)在數(shù)組A中的下標 sort(__ (4)__; //小于基準數(shù)的元素排序 sortl__ (5)__); //大于基準數(shù)的元素排序 } }
從下列的2道試題(試題二至試題三)中任選1道解答。如果解答的試題數(shù)超過1道,則題號小的1道解答有效。 |
試題二
閱讀下列函數(shù)說明和C函數(shù),將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。[函數(shù)2.1說明]
函數(shù)palindrome(chars[])的功能是:判斷字符串s是否為回文字符串,若是,則返回0,否則返回-1。若一個字符串順讀和倒讀都一樣時,稱該字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。
[函數(shù)2.1]
int palindrome(char S[])
{ char *pi,*pj;
pi=S;pj=s+strlen(S)-1:
while ( pi [函數(shù)2.2說明] 函數(shù)f(char *str,char del)的功能是;將非空字符串str分割成若干個子字符串并輸出,del表示分割時的標志字符。 例如若str的值為“33123333435”,del的值為‘3’,調(diào)用此函數(shù)后,將輸出三個子字符串,分別為“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開發(fā)應用有關(guān)的5個問題.對每一個問題,請將解答填入答題紙的對應欄內(nèi)。 (1)在Visual Basic中,工程文件、窗體文件和標準模塊文件的擴展名是什么? 請從下列選項中選擇: prg、prj、exe、vbp、rom、frm、win、fra,std、bas、vbs、Vbm (2)設(shè)某窗體上有一個命令按鈕,其名稱為 CmdSave,運行時該按鈕上顯示有“保存(S)”字樣的信息。為使熱鍵 ALT+S 與該命令按鈕相關(guān)聯(lián),應該對按鈕 CmdSave 的 Caption屬性設(shè)置什么樣的屬性值? (3)設(shè)某窗口內(nèi)有一個圖像框 Image1,以及兩個命令按鈕“放大”和“縮小”。單擊“放大”按鈕就會使該圖像框的長和寬都放大10%;單擊“縮小”按鈕就會使該圖像框的長和寬都縮小10%(該圖像框的左上角不動)。請分別寫出這兩個命令按鈕的單擊事件過程中的程序代碼。 (4)為使某個單選按鈕初始時默認被選中,在開發(fā)時應怎樣做? (5)若有語句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,"提示"),請簡要描述程序運行時彈出的消息框的主要特征。 試題四 閱讀以下說明和C代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。 [說明] 函數(shù) MultibaseOutput(long n,int B)的功能是:將一個無符號十進制整數(shù) n 轉(zhuǎn)換成 B(2≤B≤16)進制數(shù)并輸出。該函數(shù)先將轉(zhuǎn)換過程中得到的各位數(shù)字入棧,轉(zhuǎn)換結(jié)束后再把 B 進制數(shù)從棧中輸出。有關(guān)棧操作的諸函數(shù)功能見相應函數(shù)中的注釋。C代碼中的符號常量及棧的類型定義如下: #define KAXSIZE 32
typedef struct{
int *elem; /* 棧的存儲區(qū) */
int max; /* 棧的容量,即找中最多能存放的元素個數(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進制的數(shù) */
m = Pop(&S);
if (m < 10) printf("Kd",m); /* 小于10,輸出數(shù)字 */
else printf("%c,m + 55); /* 大于或等于10,輸出相應的字符 */
}
printf("\n");
} 試題五 閱讀以下應用說明及Visual Basic程序代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。 [應用說明5.1] 本應用程序的窗體中有一個下拉式列表框(名稱為Combol)和兩個文本框(名稱分別為Txtl和Txt2)。運行時,用戶從Combol的列表中進行選擇,程序就會將選中條目的內(nèi)容以及編號(從0開始)分別在文本框 Txt1 和 Txt2 中顯示出來。 [程序代碼5.1] Private Sub Combol_C1ick()
Txtl.Text = Combol.__(1)__
Txt2.Text = Combol.__(2)__
End Sub 。ㄗⅲ嚎晒(2)處選擇的選項:List,Index,Listlndex,ListCount,Number) [應用說明5.2] 本應用程序的運行窗口如下圖所示: 開發(fā)該應用的部分程序代碼如下: [程序代碼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$("負數(shù)不能開平方!")
Else
DataOut = Sqr(Dataln)
End If
Case "取絕對值"
DataOut = Abs(Dataln)
(TxtOut.Text = str$(DataOut)
__5)__
End Sub
試題六
閱讀下列函數(shù)說明和 C 函數(shù),將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。 [函數(shù)6說明] 函數(shù)DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,將線性表A中關(guān)鍵碼為keyl的結(jié)點開始的len個結(jié)點,按原順序移至線性表B中關(guān)鍵碼為key2的結(jié)點之前,若移動成功,則返回0;否則返回-1。線性表的存儲結(jié)構(gòu)為帶頭結(jié)點的單鏈表,La為表A的頭指針,Lb為表B的頭指針。單鏈表結(jié)點的類型定義為: 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é)點 */
prep = p; p = p->next;
}
if (!p) return -1; /* 表A中不存在鍵值為key1的結(jié)點 */
q = p; k = 1;
while (q && __(1)__){ /* 在表A中找出待刪除的len個結(jié)點 */
__(2)__: k++;
}
if (!q) return -1; /* 表A中不存在要被刪除的len個結(jié)點 */ ·
S = Lb->next;__ (3)__;
while (s && s->key != key2){ /* 查找表B中鍵值為key2的結(jié)點 */
pres = s; s = s->next;
}
if (!s)return -1; /* 表B中不存在鍵值為key2的結(jié)點 */
__(4)__q->next; /* 將表A中的len個結(jié)點刪除 */
q->next:__(5)__
pres->next = p; /* 將len個結(jié)點移至表B */
return 0;
} 試題七
閱讀以下應用說明、屬性設(shè)置及VisualBasic程序代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。 [應用說明7] 本應用程序的運行窗口如下圖所示:
從下列的2道試題(試題四至試題五)中任選1道解答,如果解答的試題數(shù)超過1道,則題號小的1道解咎有效。
從下列的2道試題(試題六至試題七)中任選1道解答。如果解答的試題數(shù)超過1道,則題號小的1道解答有效。
在開發(fā)過程中,需要設(shè)置的屬性如下:
[屬性設(shè)置7]
對象 | 對象名 | 屬性名 | 屬性值 |
窗體 | Frm1 | Caption | 閃爍顯示演示 |
標簽 | Labe1 | Caption | 歡迎光臨 |
命令按鈕 | CmdF | Caption | 閃爍 |
命令按鈕 | CmdT | Caption | 停止 |
定時器 | Timer1 | Enabled | __(1)__ |
Interval | __(2)__ |
在開發(fā)過程中,需要編寫的程序代碼如下;
[程序代碼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ù)超過1道,則題號小的1道解答有效。 |
試題八 閱讀下列程序說明和C程序,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi)。
[程序8說明]
程序8用于計算某公司每個職工應繳納的個人所得稅額和全體職工繳納的個人所得稅總額。職工的當月收入(工資或薪金)通過鍵盤輸入,每次輸入一個職工的工號和工資(或薪金)。由于該公司的工資或薪金是不定時發(fā)放的,所以輸入過程中每個職工的收入會出現(xiàn)多次輸入,整個輸入以工號小于等于0結(jié)束。
假設(shè)個人所得稅法規(guī)定;個人收入所得,按月計稅,以每月收入總額減除免稅金額800元后的余額作為該月的月應納稅所得額,適用稅率如下表所示。
級數(shù) | 月應納稅所得額 | 適用稅率(%) |
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 |
上表表明,個人收入所得稅是按照超額累進的稅率來征收的。
設(shè)一個人的月應納稅所得額為K(元),用下面的公式計算其應繳納的個人所得稅額S(元):
若0 若500 若2000 若5000 例如,某人某月工資總額為4100元,減去800元后,應納稅所得額為3300元,其應繳納的個人所得稅額為500*5%+1500*10%+1300*15%=370元。 [程序8] #include 試題九
閱讀以下應用說明及VisualBasic程序代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內(nèi).
[應用說明9] 本應用程序的運行窗口如下圖所示: 個人工資(或薪金)所得稅是按照超額累進的稅率來征收的,方法是:以每月收入總額減去免稅金額基數(shù)后的余額作為該月的月應納稅所得額,再將應納稅所得額按相應級數(shù)采用相應的稅率進行累進計算.目前的免稅金額基數(shù)為800元,稅率如下表所示: 個人工資(或薪金)所得稅是按照超額累進的稅率來征收的,方法是:以每月收入總額減去免稅金額基數(shù)后的余額作為該月的月應納稅所得額,再將應納稅所得額按相應級數(shù)采用相應的稅率進行累進計算.目前的免稅金額基數(shù)為800元,稅率如下表所示:
不超過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 設(shè)一個人的月應納稅所得額為K(元),用下面的公式計算其應繳納的個人所得稅額S(元): 若0 若500 若2000 若5000 例如,某人某月工資總額為4100元,減去800元后,應納稅所得額為3300元,其應繳納的個人所得稅額為500*5%+1500*10%+1300*15%=370元。 在開發(fā)過程中,需要編寫的程序代碼如下: [程序代碼] 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,及其等價形式
(2)i+=2,及其等價形式
(3)tag>2,或tag==3或tag>=3,及其等價形式
(4)9
(5)45
試題三 (1)p && knext,及其等價形式
(3)q->next
(4)prep->next
(5)q->next=p 試題四 (1)(h-9)*60+m,及其等價形式
(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,及其等價形式
(4)t!=i,及其等價形式,表達式的值為真也正確
(5)R[i],及其等價形式 試題五
(1)Asc("A")+i-1,或64+i,及其等價形式
(2)(h-9)*60+m,及其等價形式
(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
級數(shù)
月應納稅所得額
適用稅率(%)
1
2
3
4
5
6
7
8
9