中文一二三区_九九在线中文字幕无码_国产一二区av_38激情网_欧美一区=区三区_亚洲高清免费观看在线视频

首頁 > 考試輔導 > 計算機考試 > 軟件水平考試 > 軟件試題庫 > 全國計算機技術與軟件專業技術資格(水平)考試 2

全國計算機技術與軟件專業技術資格(水平)考試 2

      試題一(15分,每空3分)
  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。
  【流程圖說明]
  下面的流程圖描述了對8位二進制整數求補的算法。
  該算法的計算過程如下:從二進制數的低位(最右位)開始,依次向高位逐位查看,直到首次遇到“1”時,停止查看。然后,對該“1”位左面的更高位(如果有的話),逐位求反,所得的結果就是對原二進制數求補的結果。
  例如:對二進制整數10101000求補的結果時01011000。
  設8位二進制整數中的各位,從低位到高位,依次存放在整型數組bit的bit[1]~bit[8]中。例如,二進制整數10101000存放在數組bit后,就有bit[1]=0,bit[2]=0,…,bit[7]=0,bit[8]=1。若流程圖中存在空操作,則用nop表示。

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

試題二(15分,每空3分)
  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。
  【函數說明】
  函數sort(int a[],int n)的功能時對數組a中的a[0]~a[n-1]這n個元素進行排序。排序過程如下:第一趟對所有的偶數下標p,比較a和a[p 1],若a>a[p 1],則將兩者交換;第二趟對所有的奇數下標q,比較a[q]和a[q 1],若a[q]>a[q 1],則將兩者交換;第三趟對偶數下標,第四趟對奇數下標,…,依次類推,直至整個數組元素有序排列為止。
  【函數]
  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;
   }
  }
  對包含十個元素的數組a采用上述方法排序時,元素間的比較次數最少為__(4)__次,最多為__(5)__次。

試題三(15分,每空3分)
  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。
  【函數說明]
  函數movetoend(linkedlist la int i)的功能時:將線性表示a的第i個元素移到表尾。若移動成功,則返回0,否則返回-1。線性表a采用帶頭結點的單鏈表表示,la為表a的頭指針,如下圖所示。

  鏈表結點的類型定義為:
  typedef struct node {
   int key;
   struct node *next;
  }*linkedlist
  【函數]
  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個元素結點已經是表尾結點,則無需移動*/
   return 0;
   q=p;
   while(__(3)__)q=q-﹥next; /*查找表尾并使q指向表尾結點*/
   __(4)__=p->next;
   p->next=null;
   __(5)__;
   return 0;
  }

  從下列的2道試題(試題四至試題五)中任選1道解答。如果解答的試題數超過1道,則題號小的1道解答有效。試題四(15分,每空3分)
  閱讀下列說明和流程圖,將應填入__(n)__的字句寫在答題紙的對應欄內。
  【說明]
  某單位舉辦了一場知識競賽,參加競賽的選手為300名,依次從1~300進行編號。競賽時 間為9:00~11:00。8道競賽題目依次從‘a’~‘h’編號,選手可按任意次序答題,每完成一道題目,可立即提交答案。若答題正確(y),則選擇其他題目進行解答,否則,可繼續做該題目或選擇其他題目進行解答,直至競賽結束。
  選手提交答案的情況及判定結果由專人即時錄入,錄入的數據如下表1所示,對競賽情況進行統計和排名的結果如表2所示。

表1:輸入數據

提交時 間選手編號題目編號是否正確09:3714an09:508ay09:519bn09:5214an10:145an10:169bn10:235ay10:238by10:2714ay表2:輸出結果

名次選手編號完成題目數量總用時(分鐘)1821332511033141127

  統計和排名的規則如下:
  1. 若選手x在競賽時提交的題目p解答正確,2. 則解答該題目所用時 間如下計算:
  解答題目p的用時=提交題目p正確的時 間-競賽的開始時 間+罰時
  罰時=提交題目p錯誤解答的次數×20
  例如:表1中14號選手在10:27提交了題目a的正確解答,因此該選手正確解答該題目所用時 間為87分鐘,由于之前的兩次提交錯誤解答,罰時為2×20=40分鐘,所以14號選手解答題目a的用時=87+40=127(分鐘)。
  2.已經提交正確答案的題目再次提交時不再計算。
  3.競賽結束時,選手的總用時為所有解答正確的題目用時累加所得,解答不正確的題目不計時。
  4.排名時,完成題目數量多者排名靠前;若完成的題目數相同,則用時少者排名靠前;若完成的題目數和所用時 間均相等,則名次相同;完成題目數為0的選手不參加排名。
  函數void statistic()的功能是:讀取輸入數據,進行統計、排名并輸出結果。
  #define maxn 300
  typedef struct {
   int no; /*選手編號*/
   int num; /*完成的題目數量*/
   int time; /*完成題目的總用時*/
   int d[8]; /*d用于記錄提交第i個題目錯誤答案的次數*/
   int a[8]; /*a用于記錄第i個題目是否已經提交正確答案*/
  }info;
 【函數】
  void statistic () {
   char ch,pass;
   int i,j,k,h,m,t,time,maxindex;
   info r[maxn 1];
   for(i=1;i<=maxn;i ){ /*數組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: = m ] ”,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),則選擇其他題目進行解答,否則,可繼續做該題目或選擇其他題目進行解答,直至競賽結束。
  選手提交答案的情況及判定結果由專人即時錄入,錄入數據包括提交答案的時 間、選手編號、題目編號(a~h)、是否正確(y/n)。
  對競賽情況進行統計和排名的規則如下:
  1.若選手x在競賽時提交的題目p解答正確,則解答該題目所用時 間如下計算:
  解答題目p的用時=提交題目p正確的時 間-競賽的開始時 間+罰時
  罰時=提交題目p錯誤解答的次數×20
  例如:表1中14號選手在10:27提交了題目a的正確解答,因此該選手正確解答該題目所用時 間為87分鐘,由于他在09:37和09:52兩次提交了題目a的錯誤解答,因此罰時為2×20=40分鐘,所以14號選手解答題目a的用時=87+40=127(分鐘)。
  2.已經提交正確答案的題目再次提交時不再計算。
  3.競賽結束時,選手的總用時為所有解答正確的題目用時累加所得,解答不正確的題目不計時。
  4.排名時,完成題目數量多者排名靠前;若完成的題目數相同,則用時少者排名靠前;若完成的題目數和所用時 間均相等,則名次相同;完成題目數為0的選手不參加排名。
  本應用程序的運行窗口如下圖所示:

  窗口中的兩個文本框為txt_time和txt_player,分別用于錄入提交答案的時 間和選手編號。組合列表框combol提供題目編號(a~h),錄入時從中選擇。檢查框chk_yn用于輸入解答是否正確信息。當單擊“確定”按鈕(cmd_comfirm)時,錄入的提交信息加入列表框list1中,排名情況在列表框list2輸出。單擊“關閉”按鈕時退出應用程序。
  在開發過程中,需要編寫的部分程序代碼如下:
  【程序代碼]
  private type info
   no as integer ’選手編號
   num as integer ’完成題目數量
   time as integer ’完成題目的總用時
   d(8) as integer ’d用于記錄提交第i個題目錯誤答案的次數
   a(8) as boolean ’a用于記錄第i個題目是否已經提交正確答案
  end type
  dim r(301) as info ’r[j]用于統計編號為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的數組元素中
   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  '已經提交正確的題目的解答不再計算
     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道解答。如果解答的試題數超過1道,則題號小的1道解答有效。

試題六(15分,每空3分)
  閱讀以下說明和c 程序,將應填入 __(n)__處的字句寫在答題紙的對應欄內
  【說明】
  以下程序的功能是計算三角形、矩形和正方形的面積并輸出。
  程序由4個類組成:類triangle,rectangle和square分別表示三角形、矩形和正方形;抽象類finure提供了一個純虛擬函數getarea(),作為計算上述三種圖形面積的通用接口。
  【c 程序】
   #include<iostream.h>
   #include<math.h>

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

  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類型的數據庫表中,包括姓名、電話和email三個字段。下面的應用程序實現對“通訊錄”數據庫表中的記錄進行增加、刪除及修改處理,其運行界面如下:

  (1)數據控件(data1)與"通訊錄"數據庫表相連接,用戶可通過"》"和"《"按鈕指定表中的當前記錄。
  (2)文本框txt_name,txt_phone和txt_email 分別與數據庫中的姓名、電話和email字段綁定,用于顯示當前記錄的內容。
  (3)應用程序啟動時,"確定"按鈕(cmd_ok)和"取消"按鈕(cmd_cancel)不可操作,文本框中顯示表中的第一條記錄,這時文本框處于不可操作狀態。
  (4)單擊"增加"按鈕(cmd_add)或"修改"按鈕(cmd_modify)后,方可以編輯記錄內容,同時增加、刪除、修改和退出按鈕變為不可操作狀態。增加和修改操作需通過確定和取消按鈕確認。
  (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    '在數據庫表中添加一個新記錄
   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 abstract class figure{
   public abstract double getarea();
  }
  public class rectangle extends __(1)__ {
   double height;
   double width;
   public rectangle (double height, double width){
    this.height= height;
    this. width = width;
   }
   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));
   }
  }

主站蜘蛛池模板: 手机在线看片国产精品 | 欧洲中文字幕 | 日本丰满人妻久久久久久久 | 蜜桃传媒视频麻豆第一区免费观看 | 大陆国产网址在线观看 | 国产精品99视频 | 婷婷久久精品一区二区 | 国产日产亚洲系列最新美使用方法 | 免费a级午夜绝情美女图片 岛国免费视频资源 | 午夜免费大片 | 911影院在线观看网站 | 精品久草| 国产GAYSEXCHINA男 | 亚洲国产日韩a在线乱码 | 精品久久久久久777米琪桃花 | 国产精品传媒一区二区 | 免费又黄又爽又猛的毛片 | 精选av| 国产色精品久久人妻无码看片 | 亚洲综合激情另类专区 | tube69最新 | 久久丁香五月天综合网 | 天天操狠狠操夜夜操 | 91高跟黑色丝袜呻吟在线观看 | 无码精品一区二区三区潘金莲 | 玩弄邻居少妇高潮潮喷的经历 | 亚洲一级二级视频 | 97综合视频| 毛片网站在线观看 | 亚洲精品国产精品国产自 | www国产成人 | 毛片av在线 | 亚洲精品无码久久久久AV老牛 | 欧美精品激情在线 | 热久久视久久精品2019 | 各种少妇正面着BBW撒尿视频 | zzzwww免费视频 | 被按摩的人妻中文字幕 | 亚洲日产色情偷拍 | 国产无区一区二区三麻豆 | 日本免费一区二区三区四区 |