亚洲精品成人18久久久久_日韩欧美色_江苏极品身材白嫩少妇自拍_曰本人做爰大片免费观看一老师_久草视频网_最近中文字幕MV高清在线视频

首頁 > 考試輔導 > 計算機考試 > 軟件水平考試 > 軟件試題庫 > 2004年下半年程序員下午試題及答案

2004年下半年程序員下午試題及答案

試題一(15分,每空3分)

  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。

  【流程圖說明]

  下面的流程圖描述了對8位二進制整數(shù)求補的算法。

  該算法的計算過程如下:從二進制數(shù)的低位(最右位)開始,依次向高位逐位查看,直到首次遇到“1”時,停止查看。然后,對該“1”位左面的更高位(如果有的話),逐位求反,所得的結果就是對原二進制數(shù)求補的結果。

  例如:對二進制整數(shù)10101000求補的結果時01011000。

  設8位二進制整數(shù)中的各位,從低位到高位,依次存放在整型數(shù)組bit的bit[1]~bit[8]中。例如,二進制整數(shù)10101000存放在數(shù)組bit后,就有bit[1]=0,bit[2]=0,…,bit[7]=0,bit[8]=1。若流程圖中存在空操作,則用nop表示。

  流程圖中__(1)__處按“循環(huán)變量名:循環(huán)初值,增量,循環(huán)終值”格式描述。

試題二(15分,每空3分)

  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。

  【函數(shù)說明】

  函數(shù)sort(int a[],int n)的功能時對數(shù)組a中的a[0]~a[n-1]這n個元素進行排序。排序過程如下:第一趟對所有的偶數(shù)下標p,比較a和a[p+1],若a>a[p+1],則將兩者交換;第二趟對所有的奇數(shù)下標q,比較a[q]和a[q+1],若a[q]>a[q+1],則將兩者交換;第三趟對偶數(shù)下標,第四趟對奇數(shù)下標,…,依次類推,直至整個數(shù)組元素有序排列為止。

  【函數(shù)]

  void sort (int a[],int n)
  {
    int i ,j,t,tag=1;
   for(j=0;j<n;j++=      {
    for (i=__(1)__;i<n-1;__(2)__=     {
         if (a>a[i+1])     {t=a;a=a[i+1];a[i+1]=t;tag=0;}
    }
    tag++
    if (__(3)__) break;
   }
  }
  對包含十個元素的數(shù)組a采用上述方法排序時,元素間的比較次數(shù)最少為__(4)__次,最多為__(5)__次。

試題三(15分,每空3分)

   閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。

   【函數(shù)說明]   函數(shù)movetoend(linkedlist la int i)的功能時:將線性表示a的第i個元素移到

表尾。若移動成功,則返回0,否則返回-1。線性表a采用帶頭結點的單鏈表表示,la為表a的頭指針,如下圖所示。

 

  鏈表結點的類型定義為:

  typedef struct node {    
   int key;
   struct node *next;
  }*linkedlist
  【函數(shù)]
  int movetoend(linkedlist la,int i)
  {
   linkedlist p ,q,prep;
   int k=1;
   p=la->next;prep=la;
   while(__(1)__){      /*查找第i個元素并使指針p指向該結點*/
    prep=p; p=->next;k++
   }
   if (!p||k>i)return -1;
   if (__(2)__)        /*第i個元素結點已經(jīng)是表尾結點,則無需移動*/
   return 0;
   q=p;
   while(__(3)__)q=q-﹥next; /*查找表尾并使q指向表尾結點*/
   __(4)__=p->next;
   p->next=null;
   __(5)__;
   return 0;
  }

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

試題四(15分,每空3分)

  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。

  【說明]

  某單位舉辦了一場知識競賽,參加競賽的選手為300名,依次從1~300進行編號。競賽時間為9:00~11:00。8道競賽題目依次從‘a’~‘h’編號,選手可按任意次序答題,每完成一道題目,可立即提交答案。若答題正確(y),則選擇其他題目進行解答,否則,可繼續(xù)做該題目或選擇其他題目進行解答,直至競賽結束。

  選手提交答案的情況及判定結果由專人即時錄入,錄入的數(shù)據(jù)如下表1所示,對競賽情況進行統(tǒng)計和排名的結果如表2所示。

表1:輸入數(shù)據(jù)

提交時間

選手編號

題目編號

是否正確

09:37

14

a

n

09:50

8

a

y

09:51

9

b

n

09:52

14

a

n

10:14

5

a

n

10:16

9

b

n

10:23

5

a

y

10:23

8

b

y

10:27

14

a

y

表2:輸出結果

名次

選手編號

完成題目數(shù)量

總用時(分鐘)

1

8

2

133

2

5

1

103

3

14

1

127

  統(tǒng)計和排名的規(guī)則如下:

  1. 若選手x在競賽時提交的題目p解答正確,2. 則解答該題目所用時間如下計算:

  解答題目p的用時=提交題目p正確的時間-競賽的開始時間+罰時

  罰時=提交題目p錯誤解答的次數(shù)×20

  例如:表1中14號選手在10:27提交了題目a的正確解答,因此該選手正確解答該題目所用時間為87分鐘,由于之前的兩次提交錯誤解答,罰時為2×20=40分鐘,所以14號選手解答題目a的用時=87+40=127(分鐘)。

  2.已經(jīng)提交正確答案的題目再次提交時不再計算。 

  3.競賽結束時,選手的總用時為所有解答正確的題目用時累加所得,解答不正確的題目不計時。 

  4.排名時,完成題目數(shù)量多者排名靠前;若完成的題目數(shù)相同,則用時少者排名靠前;若完成的題目數(shù)和所用時間均相等,則名次相同;完成題目數(shù)為0的選手不參加排名。 

  函數(shù)void statistic()的功能是:讀取輸入數(shù)據(jù),進行統(tǒng)計、排名并輸出結果。

  #define maxn 300
  typedef struct {
   int no;          /*選手編號*/
   int num;        /*完成的題目數(shù)量*/
   int time;        /*完成題目的總用時*/
   int d[8];        /*d用于記錄提交第i個題目錯誤答案的次數(shù)*/
   int a[8];        /*a用于記錄第i個題目是否已經(jīng)提交正確答案*/
  }info;
 【函數(shù)】
  void statistic () {
   char ch,pass;
   int i,j,k,h,m,t,time,maxindex;
   info r[maxn+1];
   for(i=1;i<=maxn;i++){         /*數(shù)組r的元素置初值0*/
    r no=0; r num=0; r time=0;
    for(j=0;j<8;j++){r.d[j]=0;r.a[j]=0;}
   }/*for*/
   maxindex=0;
   while(1) {
    /*錄入一名選手提交答案的信息(小時:分鐘,選手編號,題目號,是否正確)*/
    scanf(”%d:%d,%d,%c”,&h,&m,&k,&ch,&pass);
    if (h= =0) break;
    r[k] no=k;
    time=__(1)__;
    if (isupper(ch))     ch=’a’+ch-‘a’;
    if (pass !=’y’&& pass !=’y’) { r[k] d[ch-‘a’]++;continue;}
    if (r[k] a[ch-‘a’]= =1) continue;
    r[k] a[ch-‘a’]=1;
    r[k] num++;
    r[k] time+=__(2)__;
    if (k>maxindex)  maxindex=k;
   }     /*while*/
   for (i=1;i<maxindex;i++) {  /*選擇排序*/
    for(t=i,j=i+1;j<=maxindex;j++)
    if (r[t] num<r[j] num || __(3)__ t=j;)
    if(__(4)__) { r[0]=r[t];r[t]=r;r=r[0];}
   }  /*for*/
   k=1;r[0]=r[1];
   for(i=1;i<=maxindex;i++)                 /*輸出排名情況*/
   if(r[i].num>0){ 
    if (r num!=r[0] num || r time!=r[0] time) k++;
    r[0]=__(5)__;
    printf(“%d: %3d %4d %5d ”,k,r no,r num r time);
   } /*if*/
  } /*statistic*/

 

試題五(15分,每空3分)

  閱讀下列說明及visual basic程序代碼,將應填入__(n)__的字句寫在答題紙的對應欄內。

  【應用說明]

  某單位舉辦了一場知識競賽,參加競賽的選手為300名,依次從1~300進行編號。競賽時間為9:00~ 11:00。8道競賽題目依次從‘a’~‘h’編號,選手可按任意次序答題,每完成一道題目,可立即提交答案。若答題正確(y),則選擇其他題目進行解答,否則,可繼續(xù)做該題目或選擇其他題目進行解答,直至競賽結束。

  選手提交答案的情況及判定結果由專人即時錄入,錄入數(shù)據(jù)包括提交答案的時間、選手編號、題目編號(a~h)、是否正確(y/n)。

  對競賽情況進行統(tǒng)計和排名的規(guī)則如下:

  1.若選手x在競賽時提交的題目p解答正確,則解答該題目所用時間如下計算:

  解答題目p的用時=提交題目p正確的時間-競賽的開始時間+罰時

  罰時=提交題目p錯誤解答的次數(shù)×20

  例如:表1中14號選手在10:27提交了題目a的正確解答,因此該選手正確解答該題目所用時間為87分鐘,由于他在09:37和09:52兩次提交了題目a的錯誤解答,因此罰時為2×20=40分鐘,所以14號選手解答題目a的用時=87+40=127(分鐘)。

  2.已經(jīng)提交正確答案的題目再次提交時不再計算。

  3.競賽結束時,選手的總用時為所有解答正確的題目用時累加所得,解答不正確的題目不計時。

  4.排名時,完成題目數(shù)量多者排名靠前;若完成的題目數(shù)相同,則用時少者排名靠前;若完成的題目數(shù)和所用時間均相等,則名次相同;完成題目數(shù)為0的選手不參加排名。

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


  窗口中的兩個文本框為txt_time和txt_player,分別用于錄入提交答案的時間和選手編號。組合列表框combol提供題目編號(a~h),錄入時從中選擇。檢查框chk_yn用于輸入解答是否正確信息。當單擊“確定”按鈕(cmd_comfirm)時,錄入的提交信息加入列表框list1中,排名情況在列表框list2輸出。單擊“關閉”按鈕時退出應用程序。

  在開發(fā)過程中,需要編寫的部分程序代碼如下:

  【程序代碼]

  private type info
   no as integer   ’選手編號
   num as integer ’完成題目數(shù)量
   time as integer ’完成題目的總用時
   d(8) as integer  ’d用于記錄提交第i個題目錯誤答案的次數(shù)
   a(8) as boolean ’a用于記錄第i個題目是否已經(jīng)提交正確答案
  end type
  dim r(301) as info  ’r[j]用于統(tǒng)計編號為j的選手提交答案的情況
  dim maxindex as integer ’maxindex記錄提交答案的選手中編號最大者

  private sub from_load ()
   for  i=1 to 8
    combo1.additem chr(__(1)__)
   next
   combol.text = combol.list(0):  txt_time .text=””:  txt_player.text=””
   for i=1 to 300
    r(i).num=0:  r(i).time=0: r(i).no=i
    for  j=1 to 8
     r(i).d(j)=0: r(i).a(j)=false
   next j,i
  end sub

  private sub cmd_confirm_click()
   dim h, m,k, time as integer,ch ,pass,s1 as string
   k= instr(txt _time .text,”:”):if k<2 then goto error1
   h=val(left(txt_time.text,k-1)):m=val(mid(txt_time.text,k+1))
   if h>11 or h=11 and m>0 or m>=60 then goto error1
   time =__(2)__  ’計算答題時間,以分鐘為單位
   if  txt_plater.text<1 or txt_player .text>300 then goto error1
   ch=  __(3)__ 
   pass=iif(chk_yn.__(4)__ =0,”n”,”y”)
   s1=txt_time.text+space(4)+txt_player.text
   s1=s1+space(10-len(txt_player.text))+ch+space(8)+pass
   list1.additem s1
   k= val(txt_player.text)      'k為選手編號
   r(k).no=k    '編號為k的選手的提交信息記錄在下標為k的數(shù)組元素中
   if k >maxindex then maxindex=k
   m = asc(ch)-asc(“a”)
   if pass <>”y” then         '編號為k的選手提交第m個題目的解答不正確
    r(k).d(m)=r(k).d(m)+1
   else if r(k).a(m)<>true then  '已經(jīng)提交正確的題目的解答不再計算
     r(k).a(m)=true:r(k).num=r(k).num+1
     r(k).time=r(k).time +  __(5)__  
     call statistic       '調用過程statistic進行實時排名和輸出
   end if
   exit sub
   error1:msgbox”錄入信息有錯誤!”,vbokonly
  end sub

從下列的3道試題(試題六至試題八)中任選1道解答。如果解答的試題數(shù)超過1道,則題號小的1道解答有效。

試題六(15分,每空3分)

  閱讀以下說明和c++程序,將應填入 __(n)__處的字句寫在答題紙的對應欄內

  【說明】

  以下程序的功能是計算三角形、矩形和正方形的面積并輸出。

  程序由4個類組成:類triangle,rectangle和square分別表示三角形、矩形和正方形;抽象類finure提供了一個純虛擬函數(shù)getarea(),作為計算上述三種圖形面積的通用接口。

  【c++程序】
   #include<iostream.h>
   #include<math.h>

  class figure{
   public:
   virtual double getarea()=0;  //純虛擬函數(shù)
  };

  class rectangle:__(1)__ {
   protected:
   double height;
   double width;
   public:
   rectangle(){};
   rectangle(double height,double width){
    this->height=height;
    this->width=width;
   }
   double getarea(){
    return  __(2)__ ;
   }
  };

  class square:__(3)__ {
   public:
   square(double width){
    __(4)__ ;
   }
  };

  class triangle:__(5)__ {
   double la;
   double lb;
   double lc;
   public:
   triangle(double la ,double lb,double lc){
    this ->la=la;  this->lb;  this->lc;
   }
   double getarea(){
    double s=(la +lb+lc)/2.0;
    return sqrt(s*(s-la)(s-lb) *(s-lc));
   }
  };

  viod main(){
   figure* figures[3]={
    new triangle(2,3,3),new rectangle(5,8),new square(5)};
    for (int i=0;i<3;i++){
     cout<<”figures[“<<i<<”]area= “<<(figures)->getarea()<<endl;
    }
   }
   }

第七題(15分,每空3分)

  閱讀以下應用說明及vb部分的程序代碼,將應填入__(n)__處的字句寫在答題紙的對應欄內

  【應用說明]

  設一個簡單的“通訊錄”存儲在一個access類型的數(shù)據(jù)庫表中,包括姓名、電話和email三個字段。下面的應用程序實現(xiàn)對“通訊錄”數(shù)據(jù)庫表中的記錄進行增加、刪除及修改處理,其運行界面如下:

  (1)數(shù)據(jù)控件(data1)與"通訊錄"數(shù)據(jù)庫表相連接,用戶可通過"》"和"《"按鈕指定表中的當前記錄。

  (2)文本框txt_name,txt_phone和txt_email 分別與數(shù)據(jù)庫中的姓名、電話和email字段綁定,用于顯示當前記錄的內容。

  (3)應用程序啟動時,"確定"按鈕(cmd_ok)和"取消"按鈕(cmd_cancel)不可操作,文本框中顯示表中的第一條記錄,這時文本框處于不可操作狀態(tài)。

  (4)單擊"增加"按鈕(cmd_add)或"修改"按鈕(cmd_modify)后,方可以編輯記錄內容,同時增加、刪除、修改和退出按鈕變?yōu)椴豢刹僮鳡顟B(tài)。增加和修改操作需通過確定和取消按鈕確認。

  (5)單擊刪除按鈕(cmd_del)后,彈出對話框,再單擊確定按鈕,當前記錄被刪除。

  【程序代碼】

  private sub enableop(isenabled as boolean)
   txt_name.enabled=isenabled :txt _phone.enabled=isenabled
   txt_email.enabled=isenabled
   cmd_ok.enabled= isenabled: cmd_cancel.enabled= isenabled
   cmd_add.enabled= not isenabled: cmd_del.enabled= not isenabled
   cmd_end.enabled= not isenabled: cmd_modify.enabled= not isenabled
  end sub

  private sub form_load()
   call enableop(false)
   detal.refresh
   if data1.recordset.recordcount=0 then
    cmd_del.enabled= false: cmd_modify.enabled= __(1)__
   end if
  end sub

  private sub cmd_add_click()   '單擊“增加”按鈕的代碼
   call enableop( __(2)__ )
   data1.recordset.addnew    '在數(shù)據(jù)庫表中添加一個新記錄
   txt_name.__(3)__
  end sub

  private sub cmd_del_click()  '單擊“刪除”按鈕的代碼
   on error goto error3
   ans=msgbox(“確定刪除嗎?”,vbyesno+vbinformation,” 操作提示!”)
   if (ans=vbyes) then
    data1.recordset.__(4)__
    data1.recordset.movenext
    if data1.recordset.eof then data1.refresh
   end if
   exit sub
   error3:
   msgbox err.description,vbokonly,”錯誤提示!”
  end sub

  private sub cmd_ok_click()    '單擊確定按鈕的代碼
   on error goto error1
   data1.recordset.__(5)__
   call enableop(false)
   exit sub
   error1:
   msgbox err.description,vbokonly,”錯誤提示!”
   data1,updatecontrols
  call enableop(false)
  end sub
  '修改和取消按鈕的程序代碼略

試題八(15分,每空3分)

  閱讀以下說明和java程序,將應填入__(n)__處的字句寫在答題紙的對應欄內

  【說明】

  以下程序的功能時三角形、矩形和正方形的面積輸出。

  程序由5個類組成:areatest是主類,類triangle,rectangle和square分別表示三角形、矩形和正方形,抽象類figure提供了一個計算面積的抽象方法。

  【程序】

  public class areatest{
   public static viod main(string args[]){
    figure[]figures={
     new triangle(2,3,3),new rectangle(5,8),new square(5)
    };
    for (int i= 0;i< figures.length;i++){
     system.out.println(figures+”area=”+ figures.getarea());
    }
   }
  }

     public string tostring(){
    return”rectangle: height=”+ height +”, width=”+ width +”:”;
   }
   public double getarea(){
    return  __(2)__  
   }
  }
  public class square exends  __(3)__  
  {
   public square(double width) {
    __(4)__ ;
   }

   public string tostring(){
    return” square:width=”+width”:”;
   }
  }

  public class rectangle  entend  __(5)__  
  {
   double la;
   double lb;
   double lc;
   public triangle(double la ,double lb,double lc){
    =la;  this.lb=lb;  this.lc=lc;
   }
   public string tostring(){
    return” triangle:sides=”+la+”, ”+lb+”, ”+lc+”:”;
   }
   public double get area(){
    double s=(la+lb+lc)/2.0;
    return math.sqrt(s*(s-la) *(s-lb) *(s-lc));
   }
  }

答案

 

試題一      

(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 && k<i,及其等價形式
(2)!p->next,及其等價形式
(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)
  
試題六 (c++)

(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

主站蜘蛛池模板: 欧美丰满熟妇VAIDEOS | 免费无码一区二区三区蜜桃大 | 1区2区3区高清视频 超碰九色 | 亚洲日韩蜜桃av在线观看 | 无码人妻丰满熟妇片毛片 | 中文字幕第35页 | 2021在线精品自偷自拍无码 | 秋霞久久| 搡bbbb搡bbb搡视频一级 | 久久久久人妻一区精品性色AV | 欧美成人看片黄a免费看 | 国产三级久久久精品麻豆三级 | 黄色片哪里可以看 | 国产尤物在线观看yw | 在线精品视频免费观看 | 亚洲欧美精品AAAAAA片 | 亚洲色无码中文字幕在线 | 久久久国产亚洲精品 | 亚洲综合无码精品一区二区三区 | 久久一区二区三区国产精品 | 久久艹精品视频 | 亚洲国产成人A精品不卡在线 | 欧美一区二区三区精品 | 久久在线观看视频 | 国产伦精品 | 强奷乱码中文字幕熟女导航 | 亚洲hairy多毛pics大全 | 欧美wwwcom | 91成年人视频在线观看 | 成人片黄网站A片免费 | 精品少妇一区二区三区视频免付费 | 亚洲精品乱码久久久久久9色 | 一本久道中文字幕精品亚洲嫩 | 国产91av在线| 9999国产 | 四虎在线精品 | 19禁无遮挡啪啪无码网站 | 亚洲色无码A片一区二区情欲 | 国产成人无码A在线观看不卡 | 日韩精品视频在线观看网站 | oae裸神系列88av |