2021年河南省鄭州市全國計算機等級考試數據庫技術真題(含答案)_第1頁
2021年河南省鄭州市全國計算機等級考試數據庫技術真題(含答案)_第2頁
2021年河南省鄭州市全國計算機等級考試數據庫技術真題(含答案)_第3頁
2021年河南省鄭州市全國計算機等級考試數據庫技術真題(含答案)_第4頁
2021年河南省鄭州市全國計算機等級考試數據庫技術真題(含答案)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

[2021年】河南省鄭州市全國計算機等級

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

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

一、1.選擇題(10題)

1.下列不屬于死鎖產生的必要條件的是

A.互斥條件B.共享條件C.不可剝奪條件D.部分分配條件

2.雙鏈表的每個結點包括兩個指針域。其中rlink指向結點的后繼,llink

指向結點的前驅,如果要在P所指結點后插入q所指的新結點,操作序

列正確的是()o

A.p.rlinkttllink:=q;.rlink:=q;q^.llink:=p;q1.rlink:=pT.rlink;

B.pT.llinklT.rlink:=q;pt.llink:=q;q^.rlink:=p;q^.llink:=p^.llink;

C.qt.llink:=p;q1.rlink:=pT.rlink;p^.rlinkl.llink:=q;.rlink:=q];

D.qT.rlink:=p;q^.llink:=pT.llink;llink].rlink:=q;p^,llink:=q;

3.實體完整性要求主屬性不能取空值,這一點通常是通過()。

A.定義外部鍵來保證B.定義主鍵來保證C.用戶定義的完整性來保證

D.關系系統(tǒng)自動保證

4.在Oracle中如果要快速的生成報表應使用哪種工具?

A.OracleFormsB.OracleReportsC.OracleGraphicsD.BPR

5.數據庫管理系統(tǒng)FoxBASE和Oracle都是關系型數據庫管理系統(tǒng),但

它們之間存在重要差別。其差別之一是

A.FoxBASE可以使用漢字,而Oracle不可以使用漢字

B.FoxBASE是單用戶數據庫,而Oracle是多用戶數據庫

C.FoxBASE一個數據庫是一個表,而Oracle一個數據庫可以包含多個

D.FoxBASE在微機上運行,而Oracle在大中型機上運行

6.有一個網絡數據庫應用系統(tǒng),其中一臺計算機A存有DBMS軟件、

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

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

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

D.分布式數據庫系統(tǒng)

7.下列敘述中,不正確的是

A.模式是數據庫全體數據的邏輯結構和特征的描述,不涉及到具體的值

B.一個模式可以有很多實例

C.模式是相對變動的,實例一旦確定下來就比較穩(wěn)定

D.模式反映的是數據的結構及其聯系,而實例反映的是數據庫某一時刻

的狀態(tài)

8.下列關于進程的敘述中,正確的是

A.進程由程序、數據和調度信息組成

B.程序是進程的“靈魂”

C.在調度信息中保存有進程的地址信息

D.進程隊列可以分為就緒隊列、等待隊列和運行隊列

9.下列有關E-R模型向關系模型轉換的敘述中,不正確的是()。

A.一個實體類型轉換成一個關系模式

B.一個m:n聯系轉換為一個關系模式

C一個1:1聯系可以轉換為一個獨立的關系模式,也可以與聯系的任意

一端實體所對應的關系模式合并

D.一個l:n聯系可以轉換為一個獨立的關系模式,也可以與聯系的任意

一端實體所對應的關系模式合并

10.下面描述不正確的是

A.數據元素是數據的基本單位

B.數據元素可有一個或多個數據項組成,數據項是有獨立含義的數據最

小單位

C.數據的邏輯結構是數據間關系的描述,它是抽象地反映數據元素間的

存儲關系

D.數據的存儲結構是邏輯結構在計算機存儲器中的實現

二、填空題(10題)

11.在TCP/IP的參考模型中,HTTP協(xié)議定義在___層。

12.Novell公司的NetWare最著名的地方就是它的和打印管

理。

13.數據庫管理系統(tǒng)提供數據庫操縱語言及它的翻譯程序,實現對數據

庫數據的操作,包括刪除、更新和插入。

14.能夠模式化為維屬性和度量屬性的數據統(tǒng)稱為數據。

15.數據庫中知識發(fā)現是識別數據庫中以前不知道的、新穎的、潛在有用

的【】非平凡過程

16.m階B樹的根結點至少有【】棵子樹。

17.在點-點網絡中,分組從通信子網的源節(jié)點到達目的結點的路由是由

決定的。

18.關系代數是一種關系操縱語言,它的操作對象和操作結果均為

19.死鎖的4個必要條件是_口_、_[]_、不剝奪條件和循環(huán)等待

20.在SQL語言中,若要刪除一個表,應使用的語句是____TABLEO

三、單選題(10題)

21.在SQLSever中創(chuàng)建用戶數據庫,實際就是定義數據庫所包含的文件

以及文件的屬性。下列不屬于數據庫文件屬性的是_________O

A.初始大小B.物理文件名C.文件結構D.最大大小

22.在對全局E-R模型進行優(yōu)化時,通常利用規(guī)范化理論中的()概念消

除冗余關系。

A.無損聯接B.函數依賴C.范式D.邏輯蘊涵

23.設散列函數為H(k)=kmod7,現欲將關鍵碼23,14,9,6,30,12,

18依次散列于地址。?6中,用線性探測法解決沖突,則在地址空間0?

6中,得到的散列表是

A.14,6,23,9,18,30,12

B.14,18,23,9,30,12,6

C.14,12,9,23,30,18,6

D.6,23,30,14,18,12,9

24.在定義一個關系結構時,應該說明()

A.字段、數據項及數據項的值B.屬性名、屬性數據類型及位數C.關系

名、關系類型及作用D.記錄名、記錄類型及內容

25.在關系數據庫設計中,設計關系模式是()的任務。

A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段

26.下列關于SQLServer數據庫服務器登錄賬戶的說法中,錯誤的是

A.登錄賬戶的來源可以是Windows用戶,也可以是非Windows用戶

B.所有的Windows用戶都自動是SQLServer的合法賬戶

C.在Windows身份驗證模式下,不允許非Windows身份的用戶登錄到

SQLServer服務器

D.sa是SQLServer提供的一個具有系統(tǒng)管理員權限的默認登錄賬戶

27.設計作業(yè)調度算法時不需要考慮下列()因素。

A.用戶界面友好B.公平性C.均衡使用資源D.吞吐量大

28.下列關于SQLServer數據庫管理系統(tǒng)權限的敘述中,哪一條是不正

確的?

A.SQLServer數據庫管理系統(tǒng)的權限分為服務器權限和數據庫權限兩

B.數據庫管理員執(zhí)行數據庫管理任務。這是屬于數據庫權限

C.數據庫權限又可以分為數據庫對象權限和數據庫語句權限兩種

D.數據庫語句權限授予用戶以允許他們創(chuàng)建數據庫對象

29.概念設計的結構是得到一個與()

A.DBMS有關的邏輯結構B.DBMS無關的概念模式C.DBMS和硬件

有關的邏輯結構D.DBMS和硬件無關的數據結構

30.在數據庫技術中,為提高數據庫的邏輯獨立性和物理獨立性,數據

庫的結構被劃分成用戶級、()和存儲級3個層次。

A.管理員級B.外部級C.概念級D.內部級

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

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

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

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

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

位置上的值,并且原四位數是奇數,則統(tǒng)計出滿足此條件的個數ent并

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

writeDat把結果ent以及數組b中符合條件的數輸出到Out.dat文件中。

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

程序中已定義數組fa|200|.b(200j.已定義受ent

請勿改動數據文件imdat中的任何數據、i函數mam。、讀函數rcadDatO和寫函數writeDatO的內容.

1Iinclude<stdio.h>

2*defineMAX200

3inta【MAX),b[MAX]9ent?0;

4voidwriteD&t();

voidjsVal()

6

r

8

9!voidreadDat()

10;<

11!inti;

12?FILE*fp;

13;fp=fopen("in.dat","L);

14ifor(i?0;i<MAX;

15?fscant<fp,rd”.(i]);

16;fclose(fp);

1-7i}

i

18?voidmain()

19|I

int1;

readDat();

jsVal();

printzf("滿足條件的數NdW.ent);

for(i?0;i<ent;i++)

printf",b[i));

printf(w\n");

wrlteDat();

29!voidwriteDat()

30j(

i

32?inti;

wM

33jfprfopen(out.datr"w0);

34;fprintf(fpF"Qd'n".cnt>;

35:for(1?0;i<ent;

36?fprintf(fp>Wid\nw,b(i]),

37;fclose(fp);

38h

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

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

中依次取出一個四位數,對每一個四位數作如下處理:把個位數字和千

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

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

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

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

新組成數:一個是奇數,另一個為偶數,并且至少有一個數能被17整

除,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數存入

數組b中,并計算滿足上述條件的四位數的個數ent,而后對數組b進

行降序排序。最后main函數調用寫函數writeDat把結果ent以及數組b

中符合條件的四位數輸出到out.dat文件中。

例如:一個四位數為4512,依題意組成的第一個新數為24,第二個新

數為51,其中51能被17整除,這兩個新數的十位數字不為零,則4512

這個四位數滿足題意所規(guī)定條件。

注意1部分源程序存在test.c文件中.

程序中已定義數組:a[200].b[200],已定義變量;ent

請勿改動數據文件in.cUl中的任何數據,主函數讀函數rcadDatQ和號函數wrisDat。的內容.

1!!include<stdio.h>

2iIdefineMAX200

3;intalMAX],b[MAX],ent,0;

A!voidwriteDat():

5ivoidjsVal()

6

7i

8i\

9jvoidreadDat()〃從in.dau文件中灌取200個四位數存入軟力Ia中

10;(

11?inti;

12!FILE*fp;

13ifp-fopen(Hin.datw,**rM);

14?for(i-0;i<MAX;

M

15|fscanf(fp^"%dr[1];

16;fclose(fp);

17!1

181voidmain()

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

串數組XX中,請編制函數StrCharJR,其函數的功能是t以該文章中的

行為單位把字符串中的所有字符的二進制ASCII值右移4位,高位補

0,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的

值仍存入原字符串對應的位置上,之后把已處理的結果仍按行重新存入

數組XX中。最后main函數調用函數WriteOat把結果XX輸出到文件

out.dat中。

例如:

"z”對應的ASCII值為7AH,二進制值為01111010,右移4位后為

00000111,加上原來"2"的ASCII值01111010得至1J10000001結果。

原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符

號和空格,并也按字符處理。

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

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

linclude<stdio.h>

iinclude<string.h>

3charxx(501(801;

4intmaxline=0;/?文豪的總行數,/

5intReadDat(void);

6voidWriteDat(void);

7voidStrCharJR(void)

8

9

10

11voidmain()

12I

13if(ReadDat())

14

15printf數據文件in.dat不能打開!\n\007*1

16return;

17I

18StrCharJRO;

19WriteDat{);

20

八從文件m&u中談取篇英文文章存入J1字符申斂但MI中?/

21intReadDat(void)

22

23FILE*fp;

24inti*0;

25charep;

www

26if((fp-fopen(in.dafrr))—NULL)

27return1;

whlle(fgets(xx(i]r80,fp);?NULL)

(

::p?strchr(xx[i)#

if(p)*p,0;

32?£?+;

33j)

34;maxline?i;

35!fclose(fp);

36ireturn0;

37i)

i/果xx?出到文依ouutai中?/

38JvoidWriteDat(void)

39j(

40-FILE*fp;

41?inti;

www

42;fp?fopen("out.dat#w);

43!for(i■0;i<maxline;i4+)

44;(

R

45jprintf(%s\n"rxx[i]);

46jfprintf(fp,w%s\nM,xxI1));

47j)

48{fclose(fp);

49;)

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

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

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

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

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

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

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

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

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

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

進行處理。

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

2;finclude<string.h>

3!linclude<ctyp?.h>

4;unsignedchsrxx(501180):

5;intntaxline?0;/?文榮的總行數?/

6?intReadDat(void);

請”改動主函數main(),讀函數ReMDatQ和仲出的敷WriteDaiO的內容,

IJIinclude<stdio.h>

2ylinclude<string.h>

3;tinclude<ctype.h>

4!unsignedcharxx[50)(80];

5jintmaxline-0;/?文束的總行數*/

6;intReadDat(void);

7jvoidWriteDat(void);

,

8;voidencryptChar()

9;I

10|

12Ivoidmain()

13i(

14;if(ReadDat())

15!(

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

17;return;

18j)

19;encryptChar();

20!WriteDat();

21\}

;/?從文件皿修中S取一篇英文文章,存入到字符*數機口中?/

22!intReadDat(void)

23i(

24;FILE-fp;

25Iinti-0;

26;unsignedchar*p;

www

27;if((fp-fopen(in.datr"r))-NULL)

28jreturn1;

29-whilelfgets<xx(i],80ffp>!,NULL)

30!(

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

32jif(p>*p-0;

33?I++;

34;1

35!maxline?1;

361fclose(fp);

37;return0;

38!)

i/?把站整XX-出到文件OUL&l中?/

39;voidWrileDat(void)

40*(

41jFILETp;

42jinti;

43;fp-fop@n("out?dat".

44\for(i*0;i<maxline;

45!(

ww

46iprintf(%s\nrxx[i]);

w

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

48f)

49\fclose(fp);

50;}

12voidmain()

13

14if(ReadDat())

15I

16printf("數據文件in.dat不能打開!\n\007");

17return;

18

19encryptChar();

20WriteDat();

21)

/?從文件E&t中it取一?英文文融,存入必學和巾敏娟xx中〃

22intReadDat(void)

23(

24FILEw£p;

25Inti-0;

26unsignedchar*p;

Hww

27if((fp-fopen(in.dat"rr))-N二LL)

28return1;

29while(fget8(xx[1],80rfp)!,NULL)

30(

31p■strchr(xx[i]9,\n*);

32if(p)*p-0;

331+?;

34J

35maxline*1;

36fclose(fp);

37return0;

38I

/JRxx?出宜文竹outdat中,/

39voidWriteDat(void)

40(

41FILE*fp;

42inti;

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

44for(i?0;i<maxline;

45(

46printfC%sKn1*,xx(i]);

47fprintf(fp,Fs\rj",xx[1]);

48

49fclose(fp);

50

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

XX中(每行字符串長度均小于80)。請編制函數jsSort,其函數的功能

是:以行為單位對字符串按下面給定的條件進行排序,排序后的結果仍

按行重新存入字符串數組XX中,最后調用函數writeDat把結果XX輸

出到文件out.dat中。

條件:字符串從中間一分為二,左邊部分按字符的ASCII值升序排序,

右邊部分不變,左邊經排序后再與右邊部分進行交換。如果原字符串長

度為奇數,則最中間的字符不參加處理,字符仍放在原位置上。

例如.位置012345678

源字符申dcbahgfe

432198765

則處理后字符中hgfcabcd

876591234

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

請匆改動數據文件in.dal中的任何1!(據、主函數main()、設函數readDatO和寫函數writeDatO的內容.

1;iinclude<stdio?h>

2:*include<string.h>

3jvoidreadDat();

4jvoidwriteDat();

5*charxx[20][801;

6;voidjsSort()

7i(

j

8I

9;)

10;voidmainO

11;(

12?readDat();

13:jsSortO;

14!writeDatO;

15\)

!,?從文件m.dai中父取20tj數福存放到字符串軟覦xx中?/

16jvoidreadDat()

17?/

18}FILE*in;

19jint1-0;

20*char*p;

www

21;in■fopen(in.datr*r);

22!whiled<20“fgets(xxli)r80,in)!-NULL)

23\(

24-p-strehr(xx[i)t,\n,);

25jif(p)*p-0;

26j

27?)

28;fclose(in);

29;}

i/?尼站果xx?出到文件om&t中?/

30*voidwrxteDat()

31j1

32-FILEeout;

33jint1;

34;out-fopen(*out.dat*,*w**);

37Iprintfxx(l]);

38ifprintf(out,xx(i));

39\)

40;fclose(out);

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

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

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

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

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

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

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

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

題;產品代碼比較請用函數strcmp進行解題。例如:sell[i]=temp;

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

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

Iinclude<stdio.h>

2*tinclude<string.h>

3?tinclude<stdlib.h>

4;ineMAX100

5typedefstruct

7chardm(5);八產豆代碼?/

charme(11];/?產易名算?/

intdj;/?總價?/

10;intsi;/?收??/

11ilongje;/?金??/

12;PRO;

13!PROsell[MAX);

14?voidReadDat();

15;voidWriteDat();

16!voidSortDatO

17;(

18

19

20voidm41n()

menisct(nolU。,slzeof(sell));

ReadDat()f

SortDa匕0;

WriteDat():

/?試取B100個帆2記景先俘人削I種a》HI中?/

voidReadD&t()

28(

29FILE?fpj

30charatr[80]ch[11];

31intij

32fp-fopen(*in.datw>"r");

33for(1?0;i<100;1-M-)

34(

35fgeta(str,80.fp);

36memcpy(sell[£]?也n.str,4”

37memcpy(sell[1].mefstr?4.1

38

meincpy(chrstr+14,4);ch(4)?0;

39sei1(1]?dj,Atol(ch);

40memepy(chfstr*18,5):ch15]?0;

sell[1].si-atoi(ch);

42sell(11?je?(long)sell(i].dj

43

44fclose(fp);

45

八把姑星■出到文"gt&t中。

?dm,aellfil.me,sell(i|.dj,sellli].si

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

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

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

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

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

位數字是原四位數的個位數字,新數的個位數字是原四位數的百位數

字),如果新組成的兩個數ab-cd>=0且ab.cd<=10且兩個數均是奇數,

同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到

小的順序存入數組b中,并要計算滿足上述條件的四位數的個數ent。

最后main函數調用寫函數writeDat把結果ent以及數組b中符合條件

的四位數輸出到文件Out.dat中。

注意:部分源程序存在KC文件中.

程序中已定義數組14200].b(200],已定義變量IOrt

調勿改動數據文件irtd觥中的任何數據、?的數讀函數readDatO和寫函數writeDatO的內容.

1?Iinclude<stdio.h>

2iIdefineMAX200〃定義宏支ItMAX,其值等于2。。

3\inta[MAXkblMAX),ent-0;〃定義全局整型Tt敷煙alMAX),3IMAX?加支量ent,苒初值等于。

4\voidwriteDat();

5\voidjsVal()

6I:I

7j

8J)

9\voidreadDatO〃從tn.dat文件中澹取20。個四收數存入Iftifl?中

10iI

11jinti;

12jFILEefp;

13;fp-fopenCln.dat*,;

14!for(X?0;i<MAX;H

15jfscanf(fpffca[i]).

16?fclose(fp);

175I

18ivoidmain()

19\(

20jint1;

readDatO;

22jsval();〃■用()崎敏實現?目■求的動麓

23prlntf("淌足條件的數7d\ent);

24for(i*0;i<ent;i+4-)

25printf(n%d-,b(i]);

26printf(w\nw);

21writeDatO;

28)

29voidwriteDatO〃化詩K姑果cm以及敬綱b中符合條件的四位數■出到ouLdai文件中

30

31FILE-fp;

32inti;

33fp?fopen(wout.dat",

34fprintf(fpr"%d\n"rent);

35ford?0;1<ent;

M

36fprintf(fpr%d\n"rb[l]>;

37fclose(fp);

38!)

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

XX中(每行字符串長度均小于80)。請編制函數isSort,其函數的功能

是:以行為單位對字符串按下面給定的條件進行排序,排序后的結果仍

按行重新存入字符串數組XX中,最后調用函數writeDat把結果)XX輸

出到文件Out.dat中。

條件:字符串從中間一分為二,左邊部分按字符的ASCII值降序排序,

右邊部分不作處理,排序后,左邊部分與右邊部分按例子所示進行交換。

如果原字符串長度為奇數,則最中間的字符不參加處理,字符仍放在原

位置上。

例皿位置012345678

源字符串abcdhgfe

123498765

則處理后字符串hgfedcba

876594321

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

請勿改動數據文件in.dat中的任何敷據、主函數main()、讀函數readDatQ和寫函數wrixeDaU)的內容.

1:linclude<stdio.h>

2jfinclude<string.h>

3;charxx120](80);

4voidreadDat();

5voidwrlteDat();

6voidjsSort()

7

8

9

10voidmain()

11

12readDat();

13jsSort();

14wrlteDat("

15

/?從文件indii中注取20打數究存放到字符率依蛆xx中?/

16voidreadDat()

17!(

18?FILE-in;

19?inti-0;

20char*p;

nw

21in=fopen(in.dat,"D;

22while(i<20“fgets(xx{i]v80.in)NULL)

23

24p-strchr(xx(ij,?\n,);

25if(p)*p?0;

26

27]

28fclose(in);

29;)

\/,史州Rxx*出到文件outt中?/

30jvoidwriteDat()

31

32FILE*out;

33int1;

34out?fopen(*out.datw/**wM);

35for(i?0;1<20;if)

36(

37printfxx[i));

38fprintf(out,xxri!);

39)

40fclose(out);

41

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

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

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

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

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

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

例如:6712,6^2=7+1.則該數滿足條件存入數蛆b中,且個數cnl=cm7.

8129,8*9!-1*2,則該數不滿足條件忽略.

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

程序中已定義數姐:[300],b{300).已定義變量,art

請勿改動數匏文件m.dat中的任何數據、主函數maiM)、讀語《(readDmO和寫論數wrilcD叫)的內容.

1Iinclude<stdio.h>

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

3voidwriteDat0;

4voidreadDat();

5voidjsValue0

7

9main()

10I

11int1;

12readDat();

13jsValue();

14writeDat();

tw

15printf(?cnt-%d\nrent);

16for(i*0;i<ent;

w

17printf?%d\nri,b[i]);

I、

voidreadDat()

20(

21FILE*fp;

22int1;

23fp-fopen;

24for(i■0;i<300;i++)

w

25fdcanf(fp^%dr",&&[1]);

26;fclose(fp);

271)

28ivoidwriteDat()

29>(

30?FILEefp;

31;int1;

32.fp-fopen(°out.dat**,**ww);

33;fprintf(fp,"d'n”,ent);

34jfor(i-0;i<ent;1??)

w

35!fprintf(fpr-%d\nrb(i));

36ifclose(fp);

37八

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

號字符串數組XX中;請編制函數ChA,其函數的功能是:以行為單位

把字符串中的第一個字符的ASCII值加第二個字符的ASCII值,得到

第一個新的值,存入數組單元xx用⑼中(其中:i是文章中的某行)。第

二個字符的ASCII值加第三個字符的ASCII值,得到第二個新的值,存

入數組單元xx[i]川中。以此類推一直處理到最后第二個字符,最后一個

字符的ASCII值加原第一個字符的ASCII值,得到最后一個新的值,存

放在原字符串對應的位置上,之后把已處理的字符串逆轉后仍按行重新

存入無符號字符串數組XX中。最后main函數調用函數WriteDat把結

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

原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符

號和空格,并也按它的ASCII值作以上處理。注意:部分源程序存放在

test.c文件中。

請勿改動主函數main、讀數據函數ReadDat和輸出數據函數WriteDat

的內容。

1;finclude<stdio.h>

2J?include<string.h>

3;unsignedcharxx[50][80];

4!intmaxline■0;/?文章的西行數?/

5?intReadDat(void);

6'voidWriteDat(void);

7?voidChA(void)

8|(

10;}

11{voidmain()

13if(ReadDatO)

14(

15printf(。數據文件in.dat不籍打開!\n\007");

16return;

17}

18ChA();

19WriteDat();

20]

/?從文件m.dM中康我一編英文丈量存入》無符號字辨申數的XM中?/

21intReadDat(void)

22(

23FILE*fp;

24inti?0;

25char*p;

26it((fp-fopen(win.datw,Hr*))-NULL)

27return1;

28while(fgets(xx(i)<80#fp)9NULL)

29(

30p■strchr(xx(i)t?\n*);

31if(p),p?0;

32

33)

34maxline?i;

35fclose(fp);

36return0;

37)

/?把結果xx*出到ouLdal文件中?/

38voidWriteDat(void)

39(

40FILE*fp;

41inti;

42fp-fopenLout.dat".”");

43for(i?0;i<maxline;1+?)

44(

w

45printf(%s\n"/xx(i));

R

6fprlntf(fp/"%s\n#xx[11);

47)

48fclose(fp);

49

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

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

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

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

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

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

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

課系統(tǒng)的管理規(guī)則如下:I.一個系可聘用多名教師,一個教師只受

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

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

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

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

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

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

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

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

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

限)(4分)

42.已知某教務管理系統(tǒng)的設計人員在需求分析階段收集到下列原始數

據表格:

教師

上級領導教師

教師號教師名職稱工資

9868王文華教授8000null

9983李一斌副教授60009868

9985丁一講師刪9868

0783王潤澤講師刪9868

0899歐陽丹妮講師刪9868

課程

課程號課程名學分教材號教材名出版社名任課教師號

計算機原清華大學出

C2006311計算機原理9868

理版社

計算機原計算機原理與高等教育出

C20063129868

理應用版社

清華大學出

C2004數據結構313數據結構9868

版社

數據庫原清華大學出

C2010314數據庫原理9868

理版社

數據庫原數據庫原理與高等教育出

C20103159868

理技術版社

清華大學出

S3001音樂欣賞216音樂欣賞9983

版社

已知該業(yè)務系統(tǒng)存在如下規(guī)則:

I.每個教師有唯一的教師號,每個教師號對應唯一的一名教師;

II.每門課程有唯一的課程號,每個課程號對應唯一的一門課程;

III.每本教材有唯一的教材號,每個教材號對應唯一的一本教材;

IV.每個教師最多只有一個上級領導,也可以沒有上級領導;

V.一門課程僅由一名教師講授;

VI.一本教材僅用于一門課程。(12分)

⑴請根據原始數據表及業(yè)務規(guī)則,給出該系統(tǒng)的關系模式,保證每個

關系模式滿足3NF,并說明每個關系模式的主碼和外碼。

(2)畫出該系統(tǒng)的ER圖,ER圖中需給出每個實體集的屬性,主碼屬性

用下劃線標識。

六、單選題口分](2題)

43.在SQLServer2008中,設表T(a,b)上建有如下觸發(fā)器:CREATE

TRIGGERtri_updateONTFORUPDATEASIFEXISTSfSELECT術

FROMinsertedWHEREbnotbetween0and100)KULLBACK設表T中

已有數據:(‘a01',90),如果執(zhí)行語句UPDATETSETb=100WHERE

a='a01'則觸發(fā)器臨時工作表及執(zhí)行完該語句后表T中的數據為

()o

A.T表:(‘a01',100)INSERTED表:('a01',90)DELETED表:

('a01',100)

B.T表:(‘a01',90)INSERTED表:('aOl',90)DELETED表:

('aOT,100)

C.T表:(‘aOl',100)INSERTED表:('aOl',1OO)DELETED

表:(‘aOl',90)

D.T表:(‘aOl',90)INSERTED表:('aOl',100)DELETED表:

('aOl',90)

44.設在SQLServer2008中,用戶UI在DB1數據庫中創(chuàng)建了#Temp表。

下列關于#Temp表的說法中,正確的是()。

A.只有在創(chuàng)建#Temp表的連接中才可以查詢#Temp表數據

B.在所有用戶U1發(fā)起的連接中,都可以查詢#Temp表數據

C.在創(chuàng)建#Temp表的連接未斷開時,DB1數據庫的所有用戶都可以查詢

#Temp表數據

D.在創(chuàng)建#Temp表的連接斷開時,DB1數據庫的所有用戶仍可以查詢

#Temp表數據

參考答案

1.B解析:產生死鎖的四個必要條件是:①互斥條件,?②不可剝奪條件;

③部分分配條件;④循環(huán)等待條件。分析四個選項可知只有選項B(共享

條件)不屬于產生死鎖的條件,所以正確答案為B。

2.C解析:如果在鏈表的每個結點中包括兩個指針域,其中rlink指向結

點的后繼,Uink指向結點的前驅,就可以方便地進行向后和向前兩個方

向的查找。這樣的鏈表稱作雙鏈表。在雙鏈表中,如果要在P所指結點

后插入q所指的新結點,只需修改P所指結點的rlink字段和原后繼的

Uink字段,并置q所指結點的llink和rlink值.即:qT.llink:=p;qt.rlink:

=pTriink;p^.riinkf.rlink:=q;pt.rlink:=q

3.B解析:現實世界中實體是可區(qū)分的,他們具有某種惟一的標識,主

碼不能取空值,因為主碼取空值說明存在某個不可標識的實體,而這于

前述思想矛盾的。

4.B解析:在Oracle中,OracleReports用來快速的生成報表;Oracle

Forms用來快速生成基于屏幕的復雜應用的工具;OracleGraphics用來

快速生成圖形應用的工具。BPR用于過程建模。掌握Oracle工具產品的

種類,Developer/2000和Designer/2000分別具有什么功能。

5.C解析:FoxBASE所有的功能Oracle基本上都具備,當然包括A),

B),D)的3個選項所列出的功能。在

溫馨提示

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

評論

0/150

提交評論