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

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

時間:2016-08-26 17:13:00   來源:無憂考網(wǎng)     [字體: ]

 

●試題一
閱讀下列說明和流程圖,將應(yīng)填入(n)處的語句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
下列流程圖用于從數(shù)組K中找出一切滿足:K(I)+K(J)=M的元素對(K(I),K(J))(1≤I≤J≤N)。假定數(shù)組K中的N個不同的整數(shù)已按從小到大的順序排列,M是給定的常數(shù)。
【流程圖】
此流程圖1中,比較"K(I)+K(J)∶M"最少執(zhí)行次數(shù)約為  (5)  。



 
圖1
 
 
●試題二
閱讀下列函數(shù)說明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
函數(shù)print(BinTreeNode*t;DateType  &x)的功能是在二叉樹中查找值為x的結(jié)點(diǎn),并打印該結(jié)點(diǎn)所有祖先結(jié)點(diǎn)。在此算法中,假設(shè)值為x的結(jié)點(diǎn)不多于一個。此算法采用后序的非遞歸遍歷形式。因?yàn)橥藯r需要區(qū)分右子樹。函數(shù)中使用棧ST保存結(jié)點(diǎn)指針ptr以及標(biāo)志tag,Top是棧頂指針。
【函數(shù)】
void print(BinTreeNode*t;DateType &x){
stack ST;int i,top;top=0;∥置空棧
while(t!=NULL &&t->data!=x‖top!=0)
{while(t!=NULL && t->data!=x)
{
∥尋找值為x的結(jié)點(diǎn)
  (1)  ;
ST[top].ptr=t;
ST[top].tag=0;
  (2)  ;
}
if(t!=Null && t->data==x){∥找到值為x的結(jié)點(diǎn)
for(i=1;  (3)  ;i++)
printf("%d",ST[top].ptr->data);}
else{
while(  (4)  )
top--;
if(top>0)
{
ST[top].tag=1;
    (5)  ;
}
}
}
 
●試題三
閱讀下列函數(shù)說明和C函數(shù),將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
函數(shù)DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:將線性表A中關(guān)鍵碼為key1的結(jié)點(diǎn)開始的len個結(jié)點(diǎn),按原順序移至線性表B中關(guān)鍵碼為key2的結(jié)點(diǎn)之前,若移動成功,則返回0;否則返回-1。線性表的存儲結(jié)構(gòu)為帶頭結(jié)點(diǎn)的單鏈表,La為表A的頭指針,Lb為表B的頭指針。單鏈表結(jié)點(diǎn)的類型定義為
typedef struct node {
int key;
struct node *next;
}*LinkedList;

 

 

【函數(shù)】
int DelA_InsB(LinkedList La,LinkdeList Lb,int key1,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 != key1){/*查找表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個結(jié)點(diǎn)*/
  (2)  ;k++;
}
if(!q)return -1;/*表A中不存在要被刪除的len個結(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個結(jié)點(diǎn)刪除*/
q->next=  (5)  ;
pres->next=p;/*將len個結(jié)點(diǎn)移至表B*/
return 0;
}
 
●試題四
閱讀以下說明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
將一正整數(shù)序列{K1,K2,…,K9}重新排列成一個新的序列,新序列中,比K1小的數(shù)都在K1的前面(左面),比K1大的數(shù)都在K1的后面(右面),最后調(diào)用writeDat()函數(shù)的新序列輸出到文件out.dat中。
在程序中已給出了10個序列,每個序列有9個正整數(shù),并存入數(shù)組a[10][9]中,分別求出這10個新序列。
例:序列  {6,8,9,1,2,5,4,7,3}
經(jīng)重排后成為{3,4,5,2,1,6,8,9,7}
【函數(shù)】
#include<stdio.h>
#include<conio.h>
void jsValue(int a[10][9])
{int i,j,k,n,temp;
int b[9];
for(i=0;i<10;i++)
{temp=a[i][0];
k=8;n=0;
for(j=8;j=0;j--)
{if(temp<a[i][j])  (1)  =a[i][j];
if(temp>a[i][j])  (2)  =a[i][j];
if(temp=a[i][j])  (3)  =temp;
}
for(j=0;j<9;j++)a[i][j]=b[j];
}
}
void main()
{
int a[10][9]={{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},
{8,2,1,9,3,5,4,6,7},{3,5,1,2,9,8,6,7,4},
{4,7,8,9,1,2,5,3,6},{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,6,2,4,7},{2,6,1,9,8,3,5,7,4},
{5,3,7,9,1,8,2,6,4},{7,1,3,2,5,8,9,4,6}
};
int i,j;
  (4)  ;
for(i=0;i<10;i++){
for(j=0;j<9;j++){
printf("%d",a[i][j]);
if(  (5)  )printf(",");
}
printf("\n");
}
getch();
}

 

 

 

 

 

●試題五
閱讀以下應(yīng)用說明、屬性設(shè)置及Visual Basic程序代碼,將應(yīng)填入(n)處在字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
本應(yīng)用程序的運(yùn)行窗口如圖2所示。


 
只要用戶單擊"閃爍"按鈕,文字"歡迎光臨"就會以0.3秒消失、0.3秒顯示反復(fù)進(jìn)行閃爍;單擊"停止"按鈕時,閃爍停止,恢復(fù)圖示的初態(tài)。
在開發(fā)過程中,需要設(shè)置的屬性如表1所示。


 
在開發(fā)過程中,需要編寫的程序代碼如下:
【程序】
Private Sub CmdF_Click()
Timer1.  (3)  =True
Labe1.Visible=False
End Sub
Private Sub Timer1_Timer()
  (4)  =not Label.Visible
End Sub
Private Sub CmdT_Click()
Timer1.Enabled=  (5)  
Labe1.Visible=true
End Sub
 
●試題六
閱讀以下說明和C++程序,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
設(shè)計(jì)一個類模板Sample用于對一個有序數(shù)組采用二分法查找元素下標(biāo)。
【C++程序】
#include<iostream.h>
#define Max 100∥最多元素個數(shù)
template<class T>
class Sample
{
T A[Max]:∥存放有序數(shù)序
int n:∥實(shí)際元素個數(shù)
public
Sample(){}∥默認(rèn)構(gòu)造函數(shù)
Sample(T a[],int i);∥初始化構(gòu)造函數(shù)
int seek(T c);
void disp()
{
for(int i=0;i<n;i++)
cout<<A[i]<<"";
cout<<end1:
}
};
template<class T>
Sample<T>::Sample(T a[],int i)
{
n=i;
for(intj=0;j<i;j++)
  (1)  ;
}
template<class T>
int Sample<T>::seek(T c)
{
int low=0,high=n-1,mid;
while(  (2)  )
{
mid=(low+high)/2;
if(  (3)  )
return mid;
else if(  (4)  )
low=mid+l;
else
  (5)  ;
}
return-1;
}
void main()
{
char a[]="acegkmpwxz";
Sample<char>s(a,1。);
cout<<"元素序列:";s.disp();
cout<<"元素′g′的下標(biāo):"<<s.seek(′g′)<<endl;
}

 

 

●試題七
閱讀以下說明和Java代碼,將解答寫入答題紙的對應(yīng)欄內(nèi)。
【說明】
下面的程序的功能是利用實(shí)現(xiàn)Runnable接口的方法來創(chuàng)建線程,并利用它來執(zhí)行響應(yīng)的一些操作。最后使得m的執(zhí)行結(jié)果:100,如圖3。


 
注意:請勿改動main()主方法和其他已有的語句內(nèi)容,僅在下劃線處填入適當(dāng)?shù)恼Z句。
class ClassName  (1)  Runnable{
int  n;
  (2)  {
try{
Threa
    D.sleep(2000);
n=100;
}catch(  (3)  e){}
}
public static void main(String[]args){
try{
ClassName a=new ClassName();
  (4)  
thread1.  (5)  ();
thread1.join();
int m=A.n;
System.out.println("m="+m);
}catch(  (3)  e){}
}
}
 
●試題八
閱讀以下應(yīng)用說明及Visual Basic部分程序代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
該應(yīng)用程序是用來修改文本框中的字體屬性,其運(yùn)行窗口如圖4所示。


 
窗口由1個標(biāo)簽(Labell)、1個文本框(txtPassage)和4個選擇框(chkFont,chkltalic,chkSize,chkColor)組成。程序運(yùn)行后,用戶在文本框內(nèi)輸入一段文字,然后按需要單擊各選擇框,用以改變文本的字體、字型、顏色及大小。
文本框的Mulitine屬性已經(jīng)設(shè)為True。當(dāng)不選擇"黑體"時,文字應(yīng)是"微軟雅黑"。當(dāng)不選擇"大小16"時,字號為9。當(dāng)不選擇"紫色"時,字色為黑色。當(dāng)不選擇"斜體"時,文字采用正常字型。