2023年遼寧省鐵嶺市全國計算機等級考試數據庫技術真題(含答案)_第1頁
2023年遼寧省鐵嶺市全國計算機等級考試數據庫技術真題(含答案)_第2頁
2023年遼寧省鐵嶺市全國計算機等級考試數據庫技術真題(含答案)_第3頁
2023年遼寧省鐵嶺市全國計算機等級考試數據庫技術真題(含答案)_第4頁
2023年遼寧省鐵嶺市全國計算機等級考試數據庫技術真題(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

2023年遼寧省鐵嶺市全國計算機等級考試

數據庫技術真題(含答案)

學校:班級:姓名:考號:

一、1.選擇題(10題)

i.在數據系統中,當總體邏輯結構改變時,通過改變什么,使局部邏輯

結構不變?從而使建立在局部邏輯結構之上的應用程序也保持不變,稱

之為數據和程序邏輯獨立性。

A.應用程序B.邏輯結構和物理結構之間的映像C.存儲結構D.局部邏

輯結構到總體邏輯結構的映像

2.為了保證CPU執行程序指令時能正確訪問存儲單元,需要將用戶程

序中的邏輯地址轉換為運行時可由機器直接尋址的物理地址,這一過程

稱為O

A.地址分配B.地址計算C.地址映射D.地址查詢

3.在并發控制中引入兩段鎖協議的目的是

A.為了解決并行執行時可能引起的死鎖問題

B.為了解決并行執行時可能引起的活鎖問題

C.為了解決交叉調度的不可串行化問題

D.為了解決不同的調度導致不同的運行結果

4.下列哪項工作屬于數據庫設計的運行與維護階段?o

A.數據庫的重新組織設計B.事務控制C.故障恢復方案設計D.為數據

庫增加新功能

5.有一個網絡數據庫應用系統,其中一臺計算機A存有DBMS軟件、

所有用戶數據和應用程序,其余各節點作為終端通過通信線路向A發

出數據庫應用請求,這種方式屬于

A.集中式數據庫系統B.并行數據庫系統C客戶機/服務器數據庫系統

D.分布式數據庫系統

6.下述不屬于概念模型應具備的性質是

A.有豐富的語義表達能力B.易于交流和理解C.易于變動D.在計算機

中實現的效率高

7.邏輯設計主要是把概念模式轉換成()

A.DBMS能處理的模式B.與DBMS無關的模式C.層次結構模型D.子

模式

8.下面關于網絡信息安全的一些敘述中,不正確的是

A.網絡環境下的信息系統比單機系統復雜,信息安全問題比單機更加難

以得到保障

B.電子郵件是個人之間的通信手段,有私密性,不使用軟盤,一般不會

傳染計算機病毒

C.防火墻是保障單位內部網絡不受外部攻擊的有效措施之一

D.網絡安全的核心是操作系統的安全性,它涉及信息在存儲和處理狀態

下的保護問題

9.以下不屬于實時系統的特征。

A.及時性B.可靠性C.專用系統D.通用系統

10.不同的實體是根據什么來區分的?

A.所代表的對象B.實體名字C.屬性多少D.屬性的不同

二、填空題(10題)

11.Oracle數據庫系統中快速生成報表的工具是Oracle。

12.計算機是一類智能機器,這是因為它除了能完成算術運算外還能完

成某些【】。

13.一般來說,商品化的數據庫管理系統,如Oracle,其產品主要包括

數據庫服務器軟件、軟件和開發工具三類。

14.有關鍵碼值為15,25,40的三個結點。按所有可能的插入順序去構

造二叉排序樹,能構造出_____棵不同的二叉排序樹。

15.散列法存儲中處理碰撞的方法主要有兩類:拉鏈法和。

16.關系模式分解的等價性標準主要有兩個,分別為分解具有和

分解保持函數依賴。

17.在SQL語言中,允許獲得某種權限的用戶把這種權限再轉授給其他

用戶,可以在GRANT語句中指定_____子句。

18.在嵌入式SQL中,為了區分SQL語句和主語言語句,在每一個SQL

語句的前面加前綴O

19.因特網主要由通信線路主機和信息資源四部分組成。

20.SQLServer2000支持客戶機/服務器體系結構,它由[]組件、服務

器端組件和通信組件三部分組成。

三、單選題(10題)

21.下列存儲管理方案中,()允許動態擴充內存容量。

A.固定分區B.可變分區C.頁式D.虛擬頁式

22.ODBC是()

A.客戶機與服務器之間的接口標準B.數據庫查詢語言標準C.數據庫

應用開發工具標準D.數據安全性標準

23.用數組A[O...m-l]存放循環隊列的元素值,若其頭尾指針分別為front

和rear,則循環隊列中當前元素的個數為()

A.(rear-frontm)modm

B.(rear-front1)modm

C.(rear-front-1m)modm

D.(rear-front)modm

24.下面關于關系的性質描述正確的是

A.每列中的分量可以來自不同的域

B.一個關系中可以有相同的元組

C.每一個分量必須是不可分的數據項

D.不同列的分量必須來自相同的域

25.“把查詢sc表和更新sc表的grade列的權限受予用戶userl”的正確

SQL語句是()。

A.GRANTSELECT,UPDATE(grade)ONTABLEscTOuserl

B.GRANTSELECTsc,UPDATEsc,gradeTOuserl

C.GRANTSELECT,UPDATEONTABLEsC.gradeTOuserl

D.GRANTSELECTONTABLEsc,UPDATEONTABLEsc(grade)TO

userl

26.E-R圖是數據庫設計的工具之一,它適用于建立數據的()

A.中繼器B.橋接器C.路由器D.網關

27.關于水平分割說法錯誤的是:()

A.根據行的使用特點進行分割

B.分割之后所有表的結構都相同。

C.而存儲的數據不同。使用并(Union)操作。

D.使用連接(Join)操作

28.SQLServer2008系統數據庫MASTER的主要功能是

A.控制用戶數據庫和SQLServer的整體運行

B.為創建新的用戶數據庫提供模板或原型

C.為臨時表或其他臨時工作區提供存儲區域

D.為調度信息和作業歷史提供存儲區域

29.對具有相同關鍵字的關系模式,如果他們的處理主要是查詢操作,

且常在一起,可將這列關系模式進行什么操作?

A.模式評價B.優化模式C.合并D.分解

30.操作系統在控制和管理進程的過程中,涉及到()這一重要數據結構,

這是進程存在的惟一標志。

A.FCBB.FIFOC.FDTD.PCB

四、C語言程序設計題(10題)

31.將文件in.dat中的200個整數讀至數組XX中。請編制jsValue函

數,要求:求出數組XX中的數值為奇數的個數cntl和數值為偶數的個

數cnt2以及數組XX下標為奇數的元素值的算術平均值pjo

結果cntl,cnt2,pj輸出到out.dat中。注意:部分源程序存在test.c

文件中。請勿改動數據文件in.dat中的任何數據、主函數main、讀函

數read_dat和輸出函數writeDat的內容。

?include<stdio.h>

;IdefineN200

3,intcriticcnt2rxx(N);

4jfloatpj;〃平均值

5?voidwriteDat();

6!voidjsValuet)

8

9

;/?road_^at(intxxlNJ)/效利文件UL3中的200個,依詁至Ikfllu中?/

10voidreaddat(intxx(N))

inti.j;

13FILE*fp;

14fp-fopen<wm.dAt"<"r")

15;ford?0;i<20;i?八

16!(

17ifor(j?0;j<10;

181I

19\fscanf(fp.Fd.”?4xx(i*〃從文件n&i中*取一個整敏〃入敷蛾元依xx]中

20jprintf("%d”,xx(iw10*j

21!)

22iprintf(*\nw);

23|]

24jfclose(fp);

26!voidmainO

27?I

28;road_dat(xx);

2”jsValueO;

30iprintf("VoXncntl-td,cnt2?td/pj?%6.2f\n"#cntl*cnt2rpj);

3i;writeDat();

32;?

}/,將計算飾家call.El?pj?出列outdai中?/

33\voidwriteDat()

34建

35;FILE*fw;

36:fw-fopen("out.datw,"ww);

;〃寫入到

37!fprintf(fw,"%d\n%d\n%6.2f\n*9cntlrcnt2rpj)cm1,cm2.8outdaPp

38;fclose(fw);

39!

32.函數ReadDat實現從文件in.dat中讀取一篇英文文章,存入到字符

串數組XX中;請編制函數encryptChar,按給定的替代關系對數組XX

中的所有字符進行替代,仍存入數組xx對應的位置上,最后調用函數

WriteDat把結果XX輸出到文件out.dat中。

替代關系:f(p)=p*“mod256,mod為取余運算,P是數組XX中某一

個字符的ASCII值,f(p)是計算后的無符號整型值(注意:中間變量定義

成整型變量),如果原字符的ASCII值是偶數或計算后f(p)值小于等于

32,則該字符不變,否則用f(p)替代所對應的字符。

注意:部分源程序存放在test.c文件中,原始數據文件存放的格式是:

每行的寬度均小于80個字符,含標點符號和空格,并也按此替代關系

進行處理。

請勿改動主函數main、讀函數ReadDat和輸出函數WriteDat的內容。

?include<stdio.h>

tinclude<string.h>

3Iinclude<ctype.h>

4unsignedcharxx(501tBO);

intmaxline-0;/*文章的總行數?/

6intReadDat(void);

7voidWriteDat(void);

8voidencryptChar()

9!C

10;

iii)

請勿改動主函效main(),讀函數ReMDatO和輸出的敷WriteD叫)的內容.

1iInclude<stdlo.h>

?include<strlng.h>

3finclude<ctype.h>

4unsignedcharxx[50][80);

5intmaxline-0;/?文章的總行數?/

6intReadDat(void);

7voidWriteDat(void);

8voidencryptChar()

9

10

11

12voidmain()

13<

14if(ReadDat())

15

16printfLift據文件in.dat不能打開!\n\007w);

17return;

18)

19encryptChar();

20WriteDat();

21}

/?從文件m.dm中罐取一?英文文章,存入到字符事收物u中?/

22intReadDat(void)

23(

24FILETp;

25inti-0;

26unsignedcharep;

Hww

27if((fp-fopen(in.datrr"))-NULL)

28return1;

29while(fgets(xx[ilv80,fp)!-NULL)

30(

31p-strchr(xx[i]r*\n*);

32if(p)*p-0;

33i?;

34)

35maxline?1;

36fclose(fp);

37return0;

38)

/?北姑果XX?出現文件OUL&f中?/

39voidWrilcDat(void)

40(

41FILE#fp;

42int1;

43fp-fopen("out.dat**,HwH);

44for(i*0;i<maxline;,ii)

45(

46printfxx[i]);

w

47fprintf(fp,"%s\n,xx(i]);

48)

49fclose(fp);

50

voidmain()

13

14if(ReadDat())

15(

16printf文件in.dat不能打開!\n\0071*);

17return;

18

19encryptCharO;

20WriteDat();

21)

/?從文樸ns中途取一■英文文垂.存入X?樸由敷用XX中?/

22intReadDat(void)

23

24FILE?£p;

25inti?0;

26unsignedchar,p;

www

27if((fp*fopen(in.dat*rr))-NUIX)

28return1;

29while(fgets(xx[1]#80,fp)!-NULL)

30(

31p-strchr(xx(i]9*\n?);

32if(p)*p-0;

33i+>

34}

35maxline■i;

36fclose(fp);

37return0;

38J

八和姑.里xx?出fl文和outdat中?/

39voidWriteDat(void)

40(

41FILEefp;

42inti;

wwM

43fp°fopen(*out.datfw);

44for(i*0;i<maxline;

45(

46printf(?'%s\nR,xx[i]);

47fprintf(fp#*%s\n*rxx[1]);

48)

49fclose(fp);

50

33.已知數據文件in.dat中存有300個四位數,并已調用讀函數rcadDat

把這些數存入數組a中,請編制一函數jsvalue,其功能是:求出千位數

上的數加百位數上的數等于十位數上的數加個位數上的數的個數ent,

再把所有滿足此條件的四位數依次存入數組b中,然后對數組b的四位

數按從大到小的順序進行排序。最后main函數調用寫函數writeDat把

數組b中的數輸出到文件out.dat中。

例如:7153.7*15+3,則該數滿足條竹存入數扭b中.旦個數cnbcmM.

8129.8+1M2+9.則該故不滿足條件忽略.

注意,部分源程序存在teste文件中.

程序中已定義故組:[300].b(300b已定義變lbent

請勿改動數據文件mdal中的仟何數期.I函數main。.期函數readDaH)和寫函故wnteDaM)的內容.

linclude<stdio.h>

inta[300)tbf300)tcnt?0;

3voidreadDat();

4voidwriteDat();

5jsValue()

6

7

8

9mainO

10(

11int1;

12readDat();

13jsValue();

14writeDat();

ww

15printf(cnt?%d\nrent);

16for(i*0;1<ent;—

17printfLb(

18

19voidreadDat()

20

21FILE#fp;

22int1;

0w

23fp-fopen(in.dat*rr*);

24ford-0;i<300;1+?)

25fscant(fp,&a(i])z

26fclose(fp);

27)

28voidwriteDat()

29

30FILE#fp;

31inti;

32fp-fopen("out"w");

w

33fprintf(fp#*'%d\n/ent);

34for(i-0;i<ent;

35fprintf(fp/b(i]);

36fclose(fp);

37

34.編寫一個函數flndStr(char*str,char*substr),該函數統計一個長度為

2的子字符串substr在另一個字符串str中出現的次數,該次數作為函數

值返回。例如,假定輸入的字符串為”asdasasdfgasdaszx67asdmklo”,

子字符串為“as",函數返回值是6。

函數ReadWrite實現從文件indat中讀取兩個字符串,并調用函數findStr,

最后把結果輸出到文件out.dat中。

注意:部分源程序存在test.c文件中。請勿改動主函數main和其他函

數中的任何內容,僅在函數findStr的花括號中

填入你編寫的若干語句。

?include<stdio.h>

tinclude<string.h>

3voidReadWrlte();

4intfindStr(char*3trrchar?substr)

5

6

7

8mainO

9

10charstr(81|,substr[3];

intn;

pr'ntfL輸入原字符中:”);

13gets(str);

14pr—入「字符申:");

15gets(substr);

16puts(str);

17puts(substr);

18n-findStr(str,substr);

,

19prlntf(**n*%d\n"rn);

20ReadWrite();

21I

/?從文件huht中it取兩個字符中,并?用雄依findSwO,■后鉆果■出到文件out&t中?/

22voidReadWrite()

23(

24charstr(81),substr(3],ch;

25intnrlenri?0;

26FILE?rf,*wf;

27rf-fopenLLn.dat","r");

wwHM

28wf-fopen(out.datrw):

29whiled<5)

30i

31fgets(strr80,rf);〃從文件!ndu中建取長度為R的字符中存入到半構小

32fgets(substr,10,rf);〃從文件Edit中濤取長授為9的子字符中存入到字符率“uxtr

33len*strlen(substr)-1;,/尼f字符麼substr的長度凌)的{ft跳繪

34ch-substrtlenI;〃把子字符刪的?存f字相的儂*捺字符ch

,?如臬于字符中的量后一個字構是網等投行符或是文件的或符?副紀子?籽卑的?后一個多籽的值&宣為。?/

35if(ch。'\n'IIch~Oxla)

36subatr[len]?0;

/?用的Ikflndfitrsubstrl返⑼子字符串?ub,s在字符申atr中出現的次數?/

37n-findStr(strrsubstr);

38fprintf(wf,"d\n".n);//無詁年觸Un耳人父女ftout.cUu中

391*4;〃■環登

40I

41fclose(rf);

42fclose(wf);

43

35.已知數據文件in.dat中存有200個四位數,并已調用讀函數readDat

把這些數存入數組a中,請考生編制一函數jsVal,其功能是:若一個四

位數的千位數位置上的值小于等于百位數位置上的值,百位數位置上的

值小于等于十位數位置上的值,以及十位數位置上的值小于等于個位數

位置上的值,并且原四位數是偶數,則統計出滿足此條件的個數ent并

把這些四位數按從小到大的順序存入數組b中,最后調用寫函數

writeDat把結果ent以及數組b中符合條件的四位數輸出到文件Outdat

中。

注意,部分》程序存在SC文件中.

程序中已定義數組|a[200].b[200],已定義支ent

請勿改動數據文件in.dat中的任何數據、主函數main。、讀函數rradDai。和寫的數wriieDaU)的內容.

1;Iinclude<stdio.h>

2?fdefineMAX200〃定義室受■MAX,H值等于20。

3?inta(MAX),b(MAX)#ent-0;〃定義整甲敷蛆a【MAX),b【MAX)和更■cm?并yst的初值為口

4;voidwriteDat();

5IvoidjsVal()

6??<

7;

8!)

9jvoidreadDat()

10\1

11!int1;

12;FILEefp;

13?fp-fopen(1'in.dat","r");

14?ford-0;1<MAX;…)

15;fscanf(fp,"W",(a[i|>;

16!fclose(fp);

17!)

18;voidmainO

19?(

20jint1;

21?readDat();

22jjsValO;〃?用總實現MH要求的功能

23;printf「清足條件的數?Sd\n",cnt>;

24!for(1?0;i<ent;

25;printf(w%d?,

26jprintf("\nH);

27?writeDat();

28;)

29?voidwriteDat()

30j(

31;FILE-fp;

32!int1;

33ifp-fopen(wout.dat,*,*w*>;

34;fprintf(fp/"Sd\n".ent);

35!for(1-0;i<ent;

36jfprintf(fp,7d\n".

37Jfclose(fp);

38?)

36.已知數據文件in.dat中存有300個四位數,并已調用讀函數readDat

把這些數存入數組a中,請編制一函數jsValue,其功能是:求出于位數

上的數加個位數上的數等于百位數上的數加十位數上的數的個數ent,

再把所有滿足此條件的四位數依次存入數組b中,然后對數組b的四位

數按從小到大的順序進行排序。最后main函數調用寫函數writeDat把

數組b中的數輸出到文件out.dat中。

例如:67!2.6+2?7+1.則該故滿足條件存入數蛆b中.且個數cm=cntT.

8)29.8+9!-1+2,則該數不清足條件忽略.

注意:部分源程序存在t?rt.c文件中.

程序中已定義敷SL可300],b(300].已定義變量,ent

請勿改動數嵬文件in.dat中的任何敷據、主南敷maiM)、謨語數readDatO和寫函數wriicDaU)的內容.

Iinclude<stdio.h>

2inta[300],b[300],cnt-0;

3voidwriteDat();

4voidreadDat();

5voidjsValue()

6

7

6

9main()

10

int1;

readDat();

jsValueO;

14writeDat();

w

15printf(cnt-%d\n"rent);

16for(i*0;i<ent;£??)

w

17printf(b(%d]-%d\n*r3b(l));

18

19voidreadDat()

20

21FILE-fp;

22int1;

23fp?fopen("in.dat","r*);

24for(i-0;i<300;

25fscanf(fp,"Qd.R,&a(i])

26;fclose(fp);

27!J

28;voidwriteDat0

2”

30?FILE?fp;

31\int1;

321fp?fopen(°out.datw,wwH);

33jfprintf(fp#7d\n".ent);

34;for(i-0;i<ent;i**)

w

35;fprintf(fp,-%d\nrb[l));

36;fclose(fp);

37.已知數據文件in.dat中存有300個四位數,并已調用讀函數readDat

把這些數存入數組a中,請編制一函數jsvalue,其功能是:求出所有這

些四位數是素數的個數ent,再求出所有滿足此條件的四位數平均值pjzl,

以及所有不滿足此條件的四位數平均值pjz20最后main函數調用寫函

數writeDat把結果ent,pjzl,pjz2輸出到out.dat文件中。

例如;5591該攻滴足條件.參加計,平均你p"1?H個數

9812是B:素數.律數不涓足條件,,加計%▼均值pjz2.

注意,解分源程序存在E.C文件中.

鞭序中已定義敷組:a[3<?|.已定義受?,ent.pjzl.pjz2

請可改動依據攵件in.dat中的任何數據、】浦敦!iuinO.讀變故nudDaH)和,;曲牧wntcDMO的內密.

1;#include<atdio.h>々incMk小句說喇3程序中也含20中的標聲■人■出座南畋Mwh

2-inta(300hcnt-o;〃定文?甲教瓢■[RD)和餞?ent.我■untM初值有0

3?doublepjzl?O.O#pjz2*0.0;〃定義±flkR*i?p,x2升*初GN6.0

4.voidwrlteDat();//?出儒fl說9)9勾

5-voidreadDat();,/?入嫉數設攀明句

6?intisPCinttn)〃嫉R“PCM川網新a>展古力拿題.如果是Ktk則越網否則第何o

7;(

6;inti;

9for(1?2ii<m;

10?if(ni1■*0)

11;return0;

12ireturn1;

135I

14;voidjsValuoO〃喻Ctrv?itw()的定義誦句

15?(

16;

n;?

18;maln()

19;I

20-readDat();〃,用—皿tU?敏.從nutot攵華中&入W0個五付敏存入,■用.中

21!jsValuef);〃?用?段,實域AUI斷雷玄理的冷航

22,writeDat();//UH)writ?Dae()A91.ON.ni\,而z2?出文句中

23;pnntf(*cnt-%d\n淌足條件的平均值pzjl-17.21f\n不滿足條件的平均值pzj2-17.21f\n%

?cntrp)21,pjz2);〃在卿■」*不出■的能粵

24;}

25JvoidreadDat()〃從m<bi女樸中潑入300個內價教存入■用.中

26j(

27jFILE-fp;〃定義文仲冊什殳■0

28■int1;〃建文殳?1

w

29!fp-fopenCin.dat,-r*>;//以只it方式4開文件并目支fWHtfp指向文利Ln.&t

30;for(i-0;i<300;》??)〃循環安?'從。依次■**2”

31\fscant(fpf-%d,",;〃從文件ic.dat,中tft入38個穴口敷O人數電.中

32!fclose(fp);〃英用文科in.d4t

33?I

34■voidwriteDat()〃更計“希泉胃入Hauq女忖

35j(

36;FILE*fp;〃?文件捷打**fp

37Jfp-fopenC^out.dafr-w*);〃取只寫方式打開支伸gt.dat?月RNItlHt加指向文件cmt.dM

38Ifprlntf<fp,w%d\nl7.21An%7.21f\n-,ent,p”l.pjz2);〃盤屏?上?水計道她果

39?fclose(fp);〃矢削文件out.0?

40!)

38.函數readDat是從文件in.dat中讀取20行數據存放到字符串數組

xx中(每行字符串長度均小于80)。請編制函數]sSort,其函數的功能是:

以行為單位對字符串變量的下標為奇數的位置上的字符按其ASCII值

從小到大的順序進行排序,下標為偶數的位置上的字符仍按原來位置存

放,排序后的結果仍按行重新存入字符串數組)XX中,最后調用函數

WrriteDat把結果xx輸出到out.dat文件中。

例如:位置01234567

源字符串hgfedcba

則處理后字符串hafcdebs

注意,部分源程序存在EC文件中.

請勿改動數據文件in.dat中的任何數據、主的敷mainO.I(的數re&dDat()和耳函效writuDat。的內容.

1!?Iinclude<stdio.h>

2I?include<string.h>

3?voidreadDat();

4!voidwriteDat();

5;charxx(20)(801:

6!voidjsSort()

7!(

eJ

9!}

101voidmain()

12!readDat();

13;jsSort();

14jwriteDat();

15i)

;。從文件1中讀取20行數據存放到字符串長電XX中”

16!voidreadDat()

17;(

18■FILE-in;

19jint1-0;

20;char*p;

21;in?/open("in.ddL.,,r");

22jwhile(1<20“fgets(xx[1]t80.in)NULL)

23;(

241p-strchr(xx[i]9?\n*);

25;if(p)*p■0;

26?

27j}

28;fciose(in);

29!)

/?把姑果XXa出到OUt&!文件中?/

30;voidwriteDat()

32.FILE*out;

33;int1;

wwR

34?out■fopen(out.datew");

35;for(1-0;i<20;I**)

36?(

37?printf(w%s\nH,xx(i]);

38;fprintf(out,"%s\nw,xx[1]);

39;)

40jCclose(out);

41J)

39.已知在文件in.dat中存有100個產品銷售記錄,每個產品銷售記錄

由產品代碼dm(字符型4位),產品名稱me(字符型10位),單價dj(整

型),數量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數

量。函數ReadDat讀取這100個銷售記錄并存入結構數組sell中。請編

制函數SortDat,其功能要求:按產品名稱從大到小進行排列,若產品名

稱相同,則按金額從大到小進行排列,最終排列結果仍存入結構數組sell

中。最后mainoi函數調用函數WriteDat把結果輸出到文件out.dat中。

提示:若中間變量為PROtemp,則可以直接使用結構賦值語句進行解

題:產品名稱比較請用函數strcrnp進行解題。例如:sell[i]=temp;

注意:部分源程序存放在test.c文件中。

請勿改動主函數main、讀函數ReadDat和輸出函數WriteDat的內容。

?include<3tdio.h>

2?include<string.h>

3*include<stdllb.h>

A?defineMAX100

5typedefstruct

6

7chardm(5];/?產品代碼?/

8charme(111;/?產品名琳?/

9intdji/,?單價?/

10intdl;/,Mt?/

11longje;/?金??/

12}PRO;

13PROsellIMAX);

14voidReadDatO;

15voidWrlteDat();

16voidSortDat()

17

18

19

20voidmain()

21<

22memset(sell,0,sizeof(sell)>;

23ReadDat();

24SortDatO;

25WriteDat();

26)

27voidReadDatO

28I?

29FILE?fp;

30charstr[80],ch[ll];

31inti;

32fp?£open(Mln.datM*wrw);

33for(i-0;i<100;1??】

34I

35fgets(str,80.fp);

36memepy(sell[i].dm,str,4);

37tnemcpy(sell(l).nc,str?4?10):

38nemcpy(chtstr^X4r4);ch[4]?0;

39sell(i)?dj-atol(ch);

40memcpy(ch?str*18f5);ch[5)-0/

41sell|i].si?atol(ch)i

42soilU).je?(long)sell[1].dj?sell(1].91;

43[I

44?fclose(fpj;

45j)

46!voidWriteDat()

47i1

48FILE*fp;

?;,二inti;

SOfp-fopcn(wout.dat",

SIford-0J1<100;

52I

Sprintf(fp?*is,814dI5dll01d\n**tsell(i).dm?sell(l|.dj,aellfi].slr

sellli).je);

S4

55fclo9tf(fp);

56

40.已知數據文件in.dat中存有200個四位數,并已調用讀函數readDat

把這些數存入數組a中,請考生編制一函數jsVal,其功能是:把千位數

字和個位數字重新組成一個新的含有兩位數字的數(新數的十位數字是

原四位數的千位數字,新數的個位數字是原四位數的個位數字),以及把

百位數字和十位數字組成另一個新的含有兩位數字的數(新數的十位數

字是原四位數的百位數字,新數的個位數字是原四位數的十位數字),如

果兩個新組成的數均是奇數并且至少有一個數能被5整除,同時兩個新

數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存

入數組b中,并要計算滿足上述條件的四位數的個數ent。最后main函

數調用寫函數writeDat把結果ent以及數組b中符合條件的四位數輸出

到Out.dat文件中。

注意,部分源程序存在EC文件中.

程序中已定義數組:a[200],b(200].已定義變ILcm

請勿改動數據文件in.dat中的任何數據、卜南敢main()、讀的數rcadDatO和寫函數writcDat()的內容.

?include<stdio.h>

?defineMAX200

3inta|MAX],b[MAXj,ent-0;

4voidwriteDat();

voidjsVal()

6

7

8

9voidreadDat()〃從ln.dat文件中或取20。個四位依存入數雄a中

10(

int1;

FILE#fp;

wRw

fp■fopen(in.dat"rr);

14for(i?0;i<MAX;

15fscanf(fpr"d",1]>;

16fclose(fp);

17}

18voidmain()

19C

20int1;

21readDat();

22isValO;//謁用jASHWal。?宴現IH■點的功筵

23printf(**滿足條件的14,qd\n",ent);

24for(i-0;1<ent;

25printf("%d**.b[i]);

26printf("Xn**);

27writeDat();

28

29voidwriteDat()〃把計算帖果an以及數IBb中符合條件的四位依■出現M&U文件中

30

31FILE*fp;

32int1;

ww

33fp-fopen("out.datr*w);

34fprintf(fp^7d\n“.ent);

35for(i-0;1<ent;

36fprintf(fp,w%d\n",b(i]);

37fclose(fp);

38

五、設計與應用題(2題)

41.設有高校選課系統,需要對學校的系信息、教師信息、課程信息、

學生信息、學生選課信息進行管理。已知系(DEPT)信息包括系編號

(DeptNO)、系名稱(DeptName);教師(Teacher)信息包括教師

號(TNO)、教師名(Tname);課程(Course)信息包括課程號

(CNO)、課程名(CName)、課程學分(Credit);學生(Student)

信息包括學號(SNO)、學生姓名(Sname)、學生性別(Sex)。選

課系統的管理規則如下:I.一個系可聘用多名教師,一個教師只受

聘于一個系;H.一個系可有多名學生,一個學生只屬于一個系;

III.一名教師可講授多門課程,一門課程可由多名教師講授;W.一

名學生可選修多門課程,一門課程可被多名學生選修;V.學生選修完

課程后,可獲得相應課程的成績。針對以上描述,完成下列設計內

容:(1)構建選修課系統的ER圖。(要求圖中的實體集名用試卷中

給出的英文名,聯系所關聯的實體集名的首字母,字母問用“一”或

連接,大小寫不限)。(6分)(2)根據所構建的ER圖,設計滿足

3NF的關系模式,并標出每個關系模式的主碼和外碼。(要求關系模

式名同實體集名或聯系名,屬性名用試卷中給出的英文名,大小寫不

限)(4分)

42.設某全國性的運輸企業建立了大型OLTP系統,并在該系統之上建立

了數據倉庫。OLTP系統和數據倉庫中有如下數據表:運輸明細表(運輸

單ID,發送站ID,終到站ID,貨物ID,貨物重量,運輸價格,發貨日

期)匯總表1(發送站ID,終到站ID,貨物ID,發貨日期,總重,總

運價)匯總表2(發送站ID,終到地區ID,貨物ID,發貨日期,總重,

總運價)匯總表3(發送站ID,終到站ID,貨物ID,發貨月份,總重,

總運價)匯總表4(發送地區ID,終到地區ID,貨物類別ID,發貨日

期,總重,總運價)該企業管理的貨運站約有100個,貨物約有500種

共10類,各匯總表都建有主碼,且各表有合理的維護策略,在每次維護

后數據能保持一致。設有視圖V,該視圖的訪問頻率很高,其查詢結果

模式為(發送地區ID,終到站ID,發貨月份,總重,總運價),該視圖

現以匯總表1為計算數據源。經監控發現,匯總表1的被訪問頻率過高,

導致系統整體性能下降,而其它匯總表被訪問頻率較低。在不增加匯總

表和索引的情況下,請給出一個改善系統服務性能的優化方案,并簡要

說明理由。(1。分)

六、單選題[1分](2題)

43.查詢處理器和存儲管理器是數據庫管理系統中的核心模塊。下列關于

查詢處理器和存儲管理器的說法,錯誤的是()。

A.查詢處理器中的DML編譯器會對用戶提交的DML語句進行優化,

并將其轉換成能夠執行的底層數據庫操作指令

B.存儲管理器中的查詢執行引擎會根據編譯器產生的指令完成具體數

據庫數據訪問功能

C.存儲管理器中的緩沖區管理器負責將從磁盤讀出的數據塊放入內存

緩沖區,同時也負責對緩沖區中的數據塊進行維護

D.查詢處理器中的DDL編譯器編譯或解釋用戶提交的DDL語句,并將

生成的元數據存儲在數據庫的數據字典中

44.在SQLServer2008中,常常會發生數據庫數據過大的情況,此時則

需要對表進行處理,通常可采用人工分割表的方法優化性能。下列有關

分割表的說法,錯誤的是()o

A.水平分割后,得到的子表結構相同

B.水平分割后,查詢表中所有數據時需要使用JOIN操作

C.垂直分割后,所有表中均需保留原有表的主碼

D.當查詢表中所有數據時,使用分割表方法會增加查詢表達式的復雜度

參考答案

1.D解析:模式描述的是數據的全局邏輯結構,外模式描述的是數據的

局部邏輯結構。當模式改變時,由數據庫管理員對外模式/模式映像做相

應改變,可以使外模式保持不變。應用程序是依據數據的外模式編寫的,

從而應用程序也不必改變。保證了數據與程序的邏輯獨立性,即數據的

邏輯獨立性。

2.C解析:計算機中的數據存儲地址通常分為邏輯地址和物理地址。用

戶程序經過編譯或匯編形咸的目標代碼,通常采用相對地址,其首地址

為零,其余指令中的地址都是相對而言的,這個相對地址就成為邏輯地

址。而物理地址是內存中各存儲單元的編號,即存儲單元的真實地址。

為了保證CPU執行程序指令時能正確訪問存儲單元,需要將用戶程序

中的邏輯地址轉換為運行時可由機器直接尋址的物理地址,這一過程稱

為地址映射或地址重定位。因此本題的答案是C:地址映射.

3.C解析:兩段鎖協議是指所有事務必須分兩個階段對數據項加鎖和解

鎖。所謂兩段鎖的含義是,事務分為兩個階段;第一階段是獲得封鎖,

也稱為擴展階段:第二階段是釋放封鎖,也稱為收縮階段。若并發執行

的所有事務均遵守兩段鎖協議,則對這些事務的任何并發調度策略都是

可串行化的。但需要注意:事務遵守兩段鎖協議是可串行化調度的充分

條件,而不是必要條件。即若并發事務都遵守兩段鎖協議,則對這些事

務的任何并發調度策略都是可串行化的:若對并發事務的一個調度是可

串行化的,不一定所有事務都符合兩段鎖協議。同時還需注意,兩段鎖

協議不要求事務必須一次將所有要使用的數據全部加鎖,因此遵守兩段

鎖協議的事務可能發生死鎖。

4.D

5.A解析:集中式數據庫系統:在這種系統中,整個DBMS的核心,數

據庫和應用程序都放在主機上,用戶通過終端來并發地存取數據,共享

數據資源,這種系統又稱為主從式或主機/終端式系統。

6.D解析:概念模型是按用戶的觀點對數據和信息建模,也稱為信息模

型。概念模型語義表達能力強,不涉及信息在計算機中的表示,如實體

—聯系模型、語義網絡模型等。

7.A

8.B解析:隨著電子郵件的日益普及,越來越多的病毒通過電子郵件傳

播,和傳統的軟盤傳播病毒比起來,通過電子郵件傳播病毒無論是傳播

速度還是傳播范圍都遠非前者所可望其項背。這也是互聯網時代病毒傳

播的最大特點。

9.D解析:實時系統在一個特定的應用中是作為一種控制設備來使用的,

所以它是專用系統。它的一個主要特點是及時響應,即每一個信息接收、

分析處理和發送的過程必須在嚴格的時間限制內完成;另一個主要特點

是高可靠性。

10.D解析:客觀存在并可相互區別的事物稱為實體。實體可以是具體的

人、事、物,也可以是抽象的概念或聯系。在客觀世界中,不同的事物

是由事物所具有的特征加以區分的。在信息世界中,事物的特征被抽象

為實體的屬性,不同的實體,其屬性也不同。因此,在信息世界中,實

體是根據實體屬性的不同加以區分的,實體的名字是賦予實體的稱謂,

屬性的多少不能反映實體的本質特征。

11.Reports

12.信息處理

信息處理

解析:數據處理和信息處理是計算機的重要應用領域,當前的數據也

已有更廣泛的含義,如圖、文、聲等多媒體數據,它們都已成為計算

機的處理對象。

13.聯接產品聯接產品

14.5或五5或五解析:二叉排序樹是將線性表中的結點信息(或結點中

的關鍵碼值和結點地址)組織成二叉樹形式,以達到與二分法檢索相同

的檢索效率,而又具有鏈表那樣的插入、刪除、運算的靈活性。

二叉樹的特點:每個結點的左子樹中所有的結點的關鍵碼值都小于該結

點的關鍵碼值,而右子樹中所有結點的關鍵碼值都大于該結點的關鍵碼

值。

對于插入排序所形成的二叉樹的總數目為:C(2n,n)/(n+l)=C(6,3)/4=5,

其中n為關鍵碼的個數。

15.開放定址法開放定址法

16.無損連接性無損連接性解析:規范化過程中將一個關系模式分解若

干個關系模式,應該保證分解后產生的模式與原來的模式等價。常用的

等價標準有要求分解是具有無損連接性的和要求分解是保持函數依賴

的兩種。

17.WITHGRANTOPTIONWITHGRANTOPTION解析:GRANT語句

的一般格式為:

GRANT〈權限》[,(權限)]...

[ON〈對象類型〉〈對象名〉]

T0<用戶>[<用戶>]...

[WITHGRANTOPTION];

其中若指定了WITHGRANTOPTION子句,則獲得某種權限的用戶還

可以把這種權限再授予其他的用戶。若沒有指定WITHGRANTOPTION

子句,則獲得某種權限的用戶只能使用該權限,但不能傳播該權限。

18.EXECSQLEXECSQL解析:把SQL嵌入主語言使用時必須解決3

個問題:

①區分SQL語句與主語言語句

這是對

溫馨提示

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

評論

0/150

提交評論