全國計算機技術與軟件專業技術資格(水平)考試-2011全真模擬試卷(一)下午試題_第1頁
全國計算機技術與軟件專業技術資格(水平)考試-2011全真模擬試卷(一)下午試題_第2頁
全國計算機技術與軟件專業技術資格(水平)考試-2011全真模擬試卷(一)下午試題_第3頁
全國計算機技術與軟件專業技術資格(水平)考試-2011全真模擬試卷(一)下午試題_第4頁
全國計算機技術與軟件專業技術資格(水平)考試-2011全真模擬試卷(一)下午試題_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

全國計算機技術與軟件專業技術資格(水平)考試全真模擬試卷(一)下午試題(考試時間14∶00~16∶30,共150分鐘)本試卷共5道試題,滿分75分。●試題一閱讀下列說明和有關的圖表,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】A公司決定為該市車站開發自動售票系統,系統的要求如下:1.乘客能按以下三步操作購票:選定目的地;投入錢幣;獲得一張票。2.當且僅當乘客選定目的地后,系統才接收投錢,每次投入的錢只購買一張票。3.只要投入的錢不少于所需的票價,且票庫中有所要求的票,則應盡快出票。4.如需找錢,則在出票的同時應退還多余的錢。5.如果乘客投入的錢不夠票價,或者票庫中沒有所要求的票時,系統將全額退錢,并允許乘客另選目的地,繼續購票。6.出票前乘客可以按“取消”按鈕取消購票,系統將全額退出該乘客投入的錢,并允許乘客另選目的地,繼續購票。7.出票結束(包括退還多余的錢)后,系統應保存銷售記錄,并等待乘客購票。該系統還要求快速響應和操作同步,所以它應是一個實時系統。為此,A公司在該系統的數據流程圖中附加了過程控制部分,形成轉換圖。在該圖中,控制流(事件流)用虛線表示,數據流用實線表示。圖中的數據流并沒有畫全,需要考生填補。轉換圖如圖1所示。引起狀態遷移的事件以及由該事件引起的動作,在有向邊旁用“事件動作”形式注明。狀態遷移圖如圖2所示。該公司還制作了一個過程啟動表,用以表明狀態遷移圖中的4個動作與轉換圖中的4個過程之間的“啟動”關系,即說明哪個動作將啟動哪個過程。用1表示啟動,用0表示不啟動。啟動的過程將根據獲得的輸入數據產生輸出數據,未啟動的過程則不會產生輸出數據。該表中沒有列出的過程,其執行與否與事件無關。過程啟動表見表1:表1動作程過接收錢出票接收目的地接收錢出票退還錢00100101退錢接收新目的地【問題1】轉換圖中缺少哪三條數據流?請指明每條數據流的名稱、起點和終點。【問題2】在狀態遷移圖中,a,b,c分別表示什么事件?請用轉換圖中給出的事件名解答。【問題3】在過程啟動表中,d,e處應填什么?請分別用4位二進制碼表示●試題二閱讀下列說明、流程圖和算法,將應填入(n)處的字句寫在答題紙的對應欄內。圖3流程圖【說明】下面的流程圖(如圖3所示)用N-S盒圖形式描述了數組A中的元素被劃分的過程。其劃分方法是:以數組中的第一個元素作為基準數,將小于基準數的元素向低下標端移動,而大于基準數的元素向高下標端移動。當劃分結束時,基準數定位于A[i],并且數組中下標小于i的元素的值均小于基準數,下標大于i的元素的值均大于基準數。設數組A的下界為low,上界為high,數組中的元素互不相同。例如,對數組(4,2,8,3,6),以4為基準數的劃分過程如下:【流程圖】【算法說明】將上述劃分的思想進一步用于被劃分出的數組的兩部分,就可以對整個數組實現遞增排序。設函數intp(intA[],intlow,inthigh)實現了上述流程圖的劃分過程并返回基準數在數組A中的下標。遞歸函數voidsort(intA[],intL,intH)的功能是實現數組A中元素的遞增排序。【算法】voidsort(intA[],intL,intH){if(L<H){k=p(A,L,R);//p()返回基準數在數組A中的下標sort((4));//小于基準數的元素排序sort((5));//大于基準數的元素排序}}●試題三閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】甲公司的經營銷售業務目前是手工處理的,隨著業務量的增長,準備采用關系數據庫對銷售信息進行管理。經銷業務的手工處理主要涉及三種表:訂單表、客戶表和產品表(見表2,表3和表4)。表2訂單表訂單表客戶代碼:訂單號:客戶名:訂貨日期:訂貨序號產品代碼產品名稱數量單價小計總金額:表3客戶表客戶表客戶代碼客戶名地址電話表4產品表產品表產品名稱客戶代碼電話為了用計算機管理銷售信息,甲公司提出應達到以下要求:產品的單價發生變化時,應及時修改產品表中的單價數據。客戶購貨計價采用訂貨時的單價。訂貨后,即使單價發生變化,計算用的單價也不變。在設計數據庫時,經銷部的王先生建立了如圖4所示的數據模型。其中,方框表示實體,單向箭頭表示1對多的聯系,雙向箭頭表示多對多的聯系。圖4由于上述模型對建立關系數據庫是不合適的,因此王先生又修改了數據模型,并設計了如下幾個關系(帶下劃線的數據項是關鍵項,最后一個關系中沒有指出關鍵項):Customer(CustomerNo,CustomerName,Address,Phone)Product(ProductNo,ProductName,UnitPrice)Order(OrderNo,CustomerNo,Date)OrderDetail(OrderNo,ProductNo,Quantity)【問題1】請按【說明】中的要求畫出修改后的數據模型。【問題2】(1)【說明】中的幾個關系仍無法實現甲公司的要求,為什么?(2)需要在哪個關系中增加什么數據項才能實現這個要求?【問題3】寫出OrderDetail中的關鍵項。【問題4】以下SQL語句用于查詢沒有訂購產品代碼為“1K10”的產品的所有客戶名。請填補其中的空缺。SELECTCustomerNameFROMCustomer(1)WHERE(2)(SELECT*FROMOrderDetailB,OrderCWHEREB.ProductNo=C.ProductNoANDB.ProductNo=′1K10′ANDC.CustomerNo=A.CustomerNo)●試題四閱讀下列說明和E-R圖,回答問題1~3。【說明】設有關于銀行借貸管理系統的E-R圖(如圖4所示)。圖中矩形表示實體,圓表示屬性,雙圓表示關鍵字屬性,菱形表示實體間的聯系。為了答題的方便,圖中的實體和屬性同時給出了中英文說明,回答問題時只需寫出英文名即可。圖4銀行借貸管理系統E-R圖【問題1】根據E-R圖中給出的詞匯,按照“有關模式名(屬性1,屬性2,…)”的格式,將此E-R圖轉換為關系模式,并指出每個關系模式中的主碼和外碼,其中模式名根據需要取實體名或聯系名。要求其中的關系模式至少屬于第三范式。【問題2】如下的SQL語言用于查詢“在該銀行中一筆貸款貸給多個(至少2個)客戶的所有貸款號和發放貸款的支行名稱”的不完整語句,請在空缺處填入正確的內容。SELECTBorrow.Lno,BnameFROMBorrow,LoanWHERE(1)GROUPBYBorrow.LnoHAVING(2);【問題3】假設這個銀行有若干個節點,每個節點運行一個數據庫系統。假設這些節點之間惟一的交互式用電子方式相互傳送款項,這樣的系統是分布式數據庫系統嗎?為什么?●試題五閱讀下列程序說明和C代碼,將應填入(n)處的字句寫在答卷的對應欄內。【程序5說明】下列文法可用來描述化學分子式的書寫規則(例如,Al2(CO3)3、Cu(OH)2):λ→β\βλβ→δ\δnδ→ξ\ξθλ)其中:λ是一個分子式;δ或是一個元素,或是一個帶括號的(子)分子式,元素或是一個大寫字母(記為ξ),或是一個大寫字母和一個小寫字母(記為ξθ);β或是一個δ,或是在δ之后接上一個整數n,δn表示β有n個δ的元素或(子)分子式。一個完整的分子式由若干個β組成。當然一個正確的分子式除符合上述文法規則外,還應滿足分子式本身的語義要求。下面的程序輸入分子式,按上述文法分析分子式,并計算出該分子式的分子量。例如:元素H的原子量是1,元素O的原子量是16。輸入分子式H2O,程序計算出它的分子量為18(1×2+16)。程序中各元素的名及它的原子量從文件atom.dat中讀入。【程序5】#include<stdio.h>#include<string.h>#defineMAXN300#defineGMLEN30structelem{charname[];/*元素名*/doublev;/*原子量*/}nTbl[MAXN];charcmStr[GMLEN],*pos;intc;FILE*fp;doublefactor();doubleatom()/*處理文法符號δ*/{charw[3];inti;doublenum;while((c=*pos++)==′||c==′\t′);/*略過空白字符*/if(c==′\n′)return0.0;if(c>=′A′&&C<=′Z′){/*將元素名存入W*/w[i=0]=c;c=*pos++;if(c>=′a′&&c<=′z′)w[++i]=c;elsepos--;w[++i]=′\0′;for(i=0;nTbl[i].v>0.0;i++)if(strcmp(w,nTbl[i].name)==0)returnnTbl[i].v;printf("\n元素表中沒有所輸入的元素:\t%s\n",w);return-1.0;}elseif(c==′(′){if((num=(1))<0.0)return-1.0;/*包括可能為空的情況*/if(*pos++!=′)′){printf("分子式中括號不匹配!/n");return-1.0;}returnnum;}printf("分子式中存在非法字符:\t%c\n",c);return-1.0;}doublemAtom()/*處理文法符號β*/{doublenum;intn=1;if((num=(2))<0.0)return-1.0;c=*pos++;if(c>=′0′&&c<=′9′){n=0;while(c>=0&&c<=′9′){n=(3);c=*poss++;}}pos--;returnnum*n;}doublefactor()/*處理文法符號λ*/{doublenum=0.0,d;if((num=mAtom())<0.0)return-1.0;while(*pos>=′A′&&*pos<=′Z′||*pos==′(′){if((d=(4))<0.0)return-1.0;(5);}returnnum;}voidmain(){charfname[]="atom.dat";/*元素名及其原子量文件*/inti;doublenum;if((fp=fopen(fname,"r"))==NULL){/*以讀方式打開正文文件*/printf("Cannotopen%sfile.\n",fname);return/*程序非正常結束*/}i=0;while(i<MAXN&&fscanf(fp,"%s%lf",bTbl[i].name,&nTbl[i].v)==2)i++;fclose(fp);nTbl[i].v=-1.0;while(1){/*輸入分子式和計算分子量循環,直至輸入空行結束*/printf("\n輸入分子式!(空行結束)\n");gets(cmStr);pos=cmStr;if(cmStr[0]==′\0′)break;if((num=fator())>0.0)if(*pos!=′\0′)printf("分子式不完整!\n");elseprintf("分子式的分子量為%f\n",num);}}●試題六閱讀下列程序說明和C++代碼,將應填入(n)處的字句寫在答卷的對應欄內。【說明】①定義私有數據成員code、english分別用于表示考生的編號、英語成績,它們都是int型的數據。②完成成員函數voidStudent::inputinformation()的定義,該函數用于用戶輸入一個考生對象的信息,輸入格式如下:輸入編號:英語成績:計算機成績:③利用已實現的類Student的成員函數,完成函數voidfirstname(Student*A[],intnum)的定義,該函數根據考生信息A[],輸出num個考生中總分最高者的編號及其相應的總分,在此不考慮總分相同的情況。源程序文件test1.cpp清單如下:#include<iostream.h>classStudent{(1)intcomputer;inttotal;public:voidgetinformation();voidcomputesum();intgetcode();intgettotalscore();~Student();};voidStudent::getinformation(){(2)cout<<"英語成績:";cin>>english;cout<<"計算機成績:";cin>>computer;}voidStudent::computesum(){total=english+computer;cout<<"編號"<<code<<"總分:"<<total<<endl;}intStudent::getcode(){returncode;}intStudent::gettotalscore(){returntotal;}voidfirstname(Student*A[],intnum){(3)tempsum=(*A[0]).gettotalscore();for(inti=1;i<num;i++){if(((*A[i]).gettotalscore())>tempsum){tempcode=(*A[i]).getcode();tempsum=(*A[i]).gettotalscore();}}cout<<"總分最高者--"<<tempcode<<":"<<tempsum<<endl;}voidmain(){Student*A[3];inti,n=3;for(i=0;i<n;i++){A[i]=newStudent;A[i]->getinformation();}for(i=0;i<n;i++){A[i]->computesum();}firstname(A,3);}●試題七閱讀下列程序說明和程序段,將應填入(n)處的字句寫在答卷的對應欄內。【說明】下面是一個Applet程序,其功能是有2個按鈕,分別為First和Second,以及一個Label控件。要求點擊First時則能在Label中顯示出Command:First,而點擊Second時則能顯示出Command:Second,要求只能使用重載一次actionPerformed()方法。程序運行結果如圖6所示。importjava.awt.*;importjava.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論