版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【2021年】吉林省白山市全国计算机等级
考试数据库技术真题(含答案)
学校:班级:姓名:考号:
一、1.选择题(10题)
1.对于下列三种中断:a.系统调用中断、b.溢出中断、c.调页失误
中断,它们的中断优先级从高到低应是_____o
A.abcB.acbC.bcaD.bac
2.下列关于数据库三级模式结构的说法中,哪一个是不正确的?
A.—个数据库中可以有多个外模式但只有一^t'内模式
B.一个数据库中可以有多个外模式但只有一个模式
C一个数据库中只有一个外模式也只有一个内模式
D.—个数据库中只有一"^t•模式也只有一个内模式
3.启动外围设备前必须组织好通道程序,下列哪一项不是通道程序的控
制部件?
A.CCWB.CSWC.CAWD.PSW
4.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言是
A.DMLB.CC.DDLD.Basic
5.数据库中,数据的物理独立性是指
A.数据库与数据库管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构相互独立
6.在Oracle中如果要快速的生成报表应使用哪种工具?
A.OracleFormsB.OracleReportsC.OracleGraphicsD.BPR
7.文件系统中,文件被按照名字存取是为了
A.方便操作系统对信息的管理B.方便用户的使用C.确定文件的存取
权限D.加强对文件内容的保密
8.在互联网上,用来发送电子邮件的协议是
A.HTTPB.SMTPC.NFSD.POP3
9.操作型数据与分析型数据之间有很大的区别,下列叙述中不正确的是
A.操作型数据较分析型数据一次操作数据量大
B.操作型数据支持日常操作,分析型数据支持管理需求
C.操作型数据与分析型数据具有不同的生命周期
D.操作型数据是细节的,分析型数据是综合或提炼的
10.数据通信中数据传输速率是最重要的性能指标之一,它指单位时间
内传送的二进制位数,常用的单位是
A.b/sB.byte/sC.Mb/sD.Kb/s
二、填空题(10题)
11.Oracle系统不仅具有高性能的RDBMS,而且提供全过程的应用开发
工具。OraQeDesigner2000所承担的功能是____________。
12.在TCP/IP的参考模型中,HTTP协议定义在___层。
13.广义表是线性表的推广,是由零个或多个单元素或所组成的
有限序列。
14.不可逆加密机制包括Hash算法和消息认证码,用于数字签名和
O
15.若一棵二叉树中度为2的结点数为11,则该二叉树的叶结点数为
O
16.RIP协议中表示距离的参数为o
17.将E-R图中的实体和联系转换为关系模型中的关系,这是数据库设
计过程中【】。
18.在关系模式R(D,E,G)中,存在函数依赖关系{E-D,(D,G)
一E},则候选码为」b
19.系统中有N个进程,则进程就绪队列中最多有【】个进程。
20.并行数据库系统的性能有两种主要的度量,分别是吞吐量和o
三、单选题(10题)
21.在数据库的数据模型中有()
A.网状模型、层次模型、关系模型
B.数字型、字母型、日期型
C.数值型、字符型、逻辑型
D.数学模型、概念模型、逻辑模型
22.Aarr和Barr两个数组说明如下:VARAarr:Array[0...7]ofchar;
Barr:Array[-5...2,3...8]ofchar;这两个数组分别能存放的字符的最
大个数是()
A.7和35B.1和5C.8和48D.1和6
23.概念设计的结构是得到一个与()
A.DBMS有关的逻辑结构B.DBMS无关的概念模式C.DBMS和硬件
有关的逻辑结构D.DBMS和硬件无关的数据结构
24.栈和队列是两种重要的线性结构,对它们的描述错误的是()。
A.栈顶是允许操作的一端,栈底是不允许操作的一端
B.表达式求值一般采用栈来实现
C.队列是一种先进先出的线性表,允许对队列两端进行操作
D.队列可以用链式存储结构
25.下列哪一条不属于数据库设计的任务?
A.进行需求分析B.设计数据库管理系统C.设计数据库逻辑结构D.设
计数据库物理结构
26.“把查询sc表和更新sc表的grade列的权限受予用户userl”的正确
SQL语句是()o
A.GRANTSELECT,UPDATE(grade)ONTABLEscTOuserl
B.GRANTSELECTsc,UPDATEsc,gradeTOuserl
C.GRANTSELECT,UPDATEONTABLEsC.gradeTOuserl
D.GRANTSELECTONTABLEsc,UPDATEONTABLEsc(grade)TO
userl
27.用数组存放循环队列的元素值,若其头尾指针分别为front
和rear,则循环队列中当前元素的个数为()
A.(rear-frontm)modm
B.(rear-front1)modm
C.(rear-front-lm)modm
D.(rear-front)modm
28.在SQL语言中,()子句能够实现关系参照性规则。
A.PRIMARYKEY
B.NOTNULL
C.FOREIGNKEY
D.FOREIGNKEY...REFERENCES...
29.在需求分析阶段中,业务流程的分析结果一般用()
A.E-R图表示B.程序流程图表示C.数据流图表示D.数据结构图表示
30.关于反规范化说法不正确的是:
A.完全规范化与部分规范化数据库之间处理性能会有没多大差别
B.反规范化是将规范化关系转换为非规范化的关系的过程。
C.反规范化方法:增加派生冗余列、增加冗余列、重新组表、分割表和
新增汇总表等方法。都会破坏数据完整性。
D.采用反规范化技术从实际出发均衡利弊。
四、C语言程序设计题(10题)
31.程序test.c的功能是:计算100以内满足以下条件的所有整数i的
个数ent以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10
小于100o请考生编写函数countvalue实现程序要求,最后调用函数
wfiteDAT把结果ent和sum输出到文件out.dat中。(数值1不是素数)
注意,部分球程序存放在testx文件中.
请勿改动主话数mmO和输出数据函故wrhcDAT。的内需.
•include<stdio.h>//hchMfe弟旬便■在看库中色畲vv6.0中的标常・A・册痔gob
voidwrlteDATO;〃嫉r“♦口AT。的"期谓句
intent,sun;〃爱叉全局■菱全■um.sg
intisPrinetlntnumber)//lA*1•Prime(number)nuBbecMWJtKtt,luX&KR,tag
l•古时通回sg的值等于0
(
int,•tag-1;〃建支支■i网“Q,舟川•安・ug的初值等于1
7if(number••1)
Breturn0;〃如果nuaZr的型等F1.物曜回IQ
9for(1•2;tag“i<-number/2;1+♦)〃安AU从2开的,句次In1.数值小于等干cu«be”2畀
lift*tag的值“于I•出循环
if(number1X••0)
tag•0;//toKnumberft*i**,tagIhttWT0
returntag;〃/回气■tag的慎
I
voidcountvalue()
15
17
voidmainO
\
ent■sun■0;〃的全同殳■ent.aua0
countvalue();〃儡阳Mi&"计H
print,L清足条件的整数的个故,ent);〃在星■上■出•足条件的■数个数ent
prlntf<・满足条件的整数的加值sum);"&・•上・出•足条。的・我的“2
wrxteDATOout.au中
)
voidwriteDATO
(
FILE*fp;//ftXXftWtfp
Cp-fopen("out.dat",wwwH〃以只郢的方式的打开文件gi.<ht・井Ilfp指向此文f!
fprmtf(fp,"»dXntdXn",ent,sum):〃足事我的个数est.in的倒.g巧入*文Agt.3匕
fclose(fp);〃良闻文和Qut.dst
32.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到无符
号字符串数组XX中;请编制函数ChA,其函数的功能是:以行为单位
把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到
第一个新的值,存入数组单元xx[i][0]中(其中:i是文章中的某行)。第
二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的值,存
入数组单元xx[i]⑴中。以此类推一直处理到最后第二个字符,最后一个
字符的ASCII值加原第一个字符的ASCH值,得到最后一个新的值,存
放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新
存入无符号字符串数组XX中。最后main函数调用函数WriteDat把结
果XX输出到out.dat文件中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符
号和空格,并也按它的ASCII值作以上处理。注意:部分源程序存放在
test.c文件中。
请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat
的内容。
linclude<stdio.h>
2♦include<string.h>
3unsignedcharxx[50](80];
4intmaxline=0;/•文簟的总行数•
5intReadDat(void);
6voidWriteDat(void);
7voidChA(void)
(
9
10
11voidmainO
12
if(ReadDatO)
14(
15printf(1•数据文件in.da匕不能打开!\n\007w);
16return;
17}
18ChAO;
19WriteDat();
20)
/•从文件md«中读取一管英文文景存入到无神4字符串数钢X*中叶
21intReadDat(void)
22(
23FILE・fp;
24inti•0;
25char*p;
26if((fp-fopen(-m.dat)-NULL)
27return1;
28whiIe(fgets(xx(i),80,fp)!*NULL)
29(
30p-strchr(xx[l],"Xn*);
31if(p)・p=0;
32if
33)
34maxline•i;
35fclose(fp);
36return0;
37)
/•纪结果XX•出到0ULS文件中•/
38voidWriteDat(void)
39(
40FILE*fp;
41inti;
42fp■fopen("out.datM,Ww");
43for(1-0;i<maxline;1>♦)
44(
45printf(R%s\nR>xx[i]);
w
46fprlntf(fp,%s\n"rxx[i]);
47)
48fclose(fp);
49
33.已知在in.dat中存有若干个(个数<200)四位数字的正整数,函数
ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,
其功能要求:
1,求出该文件中共有多少个正整数totNum;
2.求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数
totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjzo
最后main函数调用函数WriteDat把所求的结果输出至“文件out.dat
中。
注意:部分源程序存放在test.c文件中。
请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat
和输出函数WriteDat的内容。
*include<stdio.h>
♦defineMAXNUM200
3intxxlMAXNUMJ;
4inttotNum-0;〃文件中共有多少个正整数
5mttotCnt-0;〃符合条件的正整数的个数
6doubletotPjz-0.0;〃罕均值
7intReadDat(void);
8voidWriteDat(void);
9voidCalValue(void)
10
voidmain()
14I
inti;
16for(i-0;i<MAXNUM;if
17xx[1]■0;
18if(ReadDat())
19t
20printf(”数究文件in.dat不能打开!\007\nw);
21return;
22I
23CalValue();
24printf("文件in.dat中共有正整数=td个totNum);
25printfL符合条件的正整数的个数“d个totCnt);
26printf(”平均值7totPjz);
27WriteDat();
28)
/・提取达若F个正整数并存入u中•/
29intReadDat(void)
30(
31FILE*fp;
32int1-0;
33if((fp-fopen(wln.dat*,*r*))-NULL)
34return1;
35while(!feof(fp))
36I
37fscanf(fp#7dJ.4xx{i+*]);
38)
39fclose(fp);
40return0;
41}
〃把计算站累存入文件,ut.dat中•/
42voidWriteDat(void)
43(
44FILE*fp;
45fp-fopen(**out.dat",**wH>;
ww
46fprintf(fp,%d\n%d\ni.21f\n,totNum,totCnt,totPjz);
47fclose(fp);
48
34.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符
串数组XX中,请编制函数ConvertCharA,其函数的功能是:以行为单
位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母
z,则改写成字母a,大写字母和其他字符保持不变。把已处理的字符串
仍按行重新存入字符串数组XX中。最后main函数凋用函数WriteDat
把结果XX输出到文件Out.dat中。
例,原文iAdb.Bcdza
abck.LLhj
结果:Acc.Bdcab
hrdlfTik
原始数据文件存放的格式是,每行的宽度均小于80个字符,含标点符号和空格.
注意।部分源程序存放在test.c文件中.
请匆改动主函数main。、读函数RedDai。和■出喻数WriteDatO的内容.
1.•include<stdio,h>
2;tincludeOtting.h>
3;charxx[50][80];
4jintmaxline,0;/•文量的总h数•/
5jintReadDat(void);
6"voidWriteDat(void);
7;voidConvertCharA(void)
8
9
10
11|voidmain()
12!I
13•if(ReadDat())
14;•
15printf("数据文件in.dat不能打开!\n\007");
16return;
17i)
18ConvertCharA(>;
19jWrltoDat();
20JJ
从文件中it取一■[英文文章存入费I字将率依笆u中〃
21;intReadDat(void)
22!(
23;FILE#fp;
24[inti-0;
25ichar*p;
26Jif((fp-fopen("in.daf,HrR))-NULL)
27return1;
28;while(fgeta(xx(i]#80ffp)!-NULL)
29>(
30p-strchr(xx[i]9W
31if(p)*p-0;
32
33:\
34»maxline-i;
35•fclose(fp);
36•return0;
37iI
!/・1E姑果u・出川文仆out&t中•/
38;voidWriteDat(void)
39!(
40iFILE.fp;
41•int1;
w
42•fp-fopen(*out.datr*w**);
43;ford-0;i<maxline;
44(
ww
45printf(%s\nrxx(i]);
46fprintf(fp,*%s\n*rxx(i]);
471\
48!fclose(fp);
49
35.已知数据文件in.dat中存有300个四位数,并已调用读函数readDat
把这些数存入数组a中,请编制一函数jsvalue,其功能是:求出所有这
些四位数是素数的个数ent,再求出所有满足此条件的四位数平均值pjzl,
以及所有不满足此条件的四位数平均值pjz2o最后main函数调用写函
数writeDat把结果ent,pjzl,pjz2输出到out.dat文件中。
例如:5591该数淌足条件,弁加计算平均!Npj/1・H个数cntym+1.
9812足数.谟数不涓足条付.”加计W▼均值pp2.
注意,解分源口序存在teuc文件中.
程序中已定义数组,»|300),已定义变cm.pjzhpjz2
请可改动故据攵件in.&!中的任何数据、I法数mainO.谴嫉故readDiH)和"函数wnteDatO的内存.
1;#include<Btdio.h>〃mc2e小句说明各程序中也含E0中整标设・(A・出修崎畋3%
2•inta1300),cnt*0;〃定义■平敦都・130。)和金11cnt,火■stM初地力0
3•doublepjzl«0.0^p]z2*0.0;〃定文殳■RH.pjxl升*初缜力0.0
4.voidwrlteDat();//■出说*)9句
5;voidreadDat();〃・入嫉数说攀遍句
6'intisPCintw)〃嫉®t,PCru内新a星古力Kit如裳星,tk则越网1.若则说问。
7;(
6•int1;
9for(1-2ii<m;1♦*)
10iif(mi1■■0)
11•roturnOi
12•return1;
13;1
14;voidjsValuoO〃喳Itj・v・iu。”的定义谪句
15;(
16;
17\1
18•maln()
19;(
20readDatO;〃■用e•皿t(j・敏.Moulai攵件Pit入W0个Fl位敏并人・中
21!jsValueO;〃・用3Wu・C/此实JUH所雷玄曜的功能
22iwriteDatO;//WHJwclteOAt<»EifWtftftcm.nr.\»吩2・出Mouidai文钟中
23:printf(wcnt-%d\n淌足条件的平均值pzjl-l7.21f\n不满足条件的平均值pzj2-%7.21f\n-.
jcntrpjzlrpj22);〃在第4H*乐HU的怙果
24;!
25*voidroadDat()〃从tn&i文件中it入300个内价依存入伯用.中
26•(
27jFILE-fp;〃定义文件挪什殳・£.
28-mt1;/,定文交
29!tp-fopon("in.datw,"r");〃4只it加CflJEt件m&i•片H文帜Rte指向文利m&t
30ifor(i-0;i<300;〃■环殳*A从。依次"♦到2”
31।fscant(fp,*%dr",fca(i]);〃从文件Ln.dat中“A300个内《。依存入依电.中
32!fclose(fp):〃英用女忖in.
33j»
34:voidwriteDatO〃忆计fTIR果耳入邪outdai攵忖
35)(
36;FILE*fp;〃庭义文件
37-fp-fopenLout.dat,'"):〃取R耳方式打开文科gt.dat.月RZ件抽It加0向文件6K.<ut
38Ifprlntf(fp,*tdVnl7.21f\n%7.21f\n",ent,pj21,pjz2);〃密屏■上・东计宜站最
39ifcloae(fp);//XWXftoutdat
40!)
36.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开
始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个
人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现
要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编写
函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文
件out.dat中。
设n=100,s=l,m=10o
①将1到n个人的序号存入一维数组P中;
②若第i个人报数后出圈,则将p国置于数组的倒数第i个位置上,而原
来第i+1个至倒数第i个元素依次向前移动一个位置;
③重复第②步直至圈中只剩下p[l]为止。
注意:部分源程序已经给出。
请勿改动主函数main和输出数据函数writeDAT的内容。
1Iinclude<stdio.h>
♦defineN100
•defineS1
4•defineM10
Sintp[100)9n,s,
voidWriteDat(void);
voidJoseqh(void)
8
9
10
11voidmain()
12(
13m-M;
14n«N;
15s•S;
16Joseqh0;
17WriteDat();
18
,♦把站果p则文件ouutei<!>•/
19voidWriteDat(void)
20(
21int1;
22FILEefp;,
23fp-fopen("out.dat*,Rww);
/•以空■的方式.以10个收界为-皿把依例■出利屏幕和文件out.dat中•/
24for1>»0;1―)
25(
26printf(R%4d",
21fprintf(fp,p(i]);
28if(i110-0)〃如果i・被10■除.射■出一个回东换行符
29(
30printf(w\nw);
31fprintf(fp#"\n*);
32}
331
34fclose(fp);
35
37.已知在文件in.dat中存有100个产品销售记录,每个产品销售记录
由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整
型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价*数
量。函数ReadDat读取这100个销售记录并存入结构数组sell中。请编
制函数SortDat,其功能要求:按产品代码从小到大进行排列,若产品代
码相同,则按金额从小大进行排列,最终排列结果仍存入结构数组sell
中。最后main函数调用函数WriteDat把结果输出到文件out.dat中。
提示:若中间变量为PROtemp,则可以直接使用结构赋值语句进行解
题;产品代码比较请用函数stremp进行解题。例如:sell[i]=temp;
注意:部分源程序存放在test.c文件中。
请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。
1;finclude<stdio.h>
2■•include〈string.h>
3•tinclude<stdlib.h>
4;IdefineMAX100
5;typedefstruct
6!<
7;chardm(S];/•产品代码•/
8char;/•产品名声”
9;intdj;/••饼•/
10intsi;/•ttl•/
11!longje;/•金・•/
12;)PRO;.
13!PROsellIMAX);
14•voidReadDat();
IS;voidWriteDat();
16•voidSortDatO
17
18
19
20voidiMln()
21(
22megsWL。,slzeof(sell));
23ReadDat();
24SortDat():
25WritoDatO;
26j
“域取运100个仍伪记采并存人然符数州tdl中”
27voidReadDat()
28(
29FILE・fpj
30charstr(80]9ch(11);
31intLi
32fp-fopen(*in.datw,"r");
33for(i•0;1<100;I1)
34(
35fgets(atr,80,tp);
36memcpy(sellfl|.dwrstr*4”
箝
n>erocpy<sellfl].mc9str♦4.10);
38memcpy(ch,3tr*14,4);ch(4]-0;
39sell[1j.dj,Atoi(ch);
40memcpy(ch,3tr«»18,5);ch[5]«0:
41sellfl]«sl■atol(ch);
42sellti).je-(long)sell(1).dj•sell[1].31;
43
44£close(fp);
45
/•措德■■出f(文件ouUat中•/
46voidWriteDat(>
47(
48FILE,fp;
49int1;
50fp■fopen(*out.dat",*wH);
51ford•0;1<100;144)
52(
53fprintf(fp,"%s%sMd%5d%101d\n*sellH).dm,
raell(i|.me.seillll.djfsell[11.si.
sell|ij・jo):
54I
55fcloso(fp);
56
38.程序test.c的功能是:计算出自然数SIX和NINE满足条件
SIX+SIX+SIX=NINE+NINE的个数ent,以及满足此条件的所有SIX与
NINE的和SUM。请编写函数countValue实现程序的要求,最后main
函数调用函数writeDAT把结果ent和sum,输出到文件Out.dat中。
其中的S,I,X,N,E各代表一个十进制数字,允许代表的数字相同,
但s和N不能为0。例如:944+944+944=1416+1416注意:部分源程序
存放在test.c文件中。
请勿改动主函数main和输出数据函数writeDAT的内容。
1»<include<stdio.h>
2;intcntrsum;
3»voidwriteDAT();
4;voidcountvalue()
5!I
I
6;
7!)
8Ivoidmam()
9H
10|ent■sum•0;
11;countvalue();
12printf《"满足条件的个数7d\M,ent);
13printf("满足条件所有的SIX与NINE的和Td\n”,sum);
14writeDATO;
15
八把姑果由国WE・出现文件outdat中•/
16voidwriteDAT()
17(
18FILE-fp;
19fp-fopenC,out.daf,www);〃以只写的方式打开文件out.
20fprintf(fp,"Ad\Zd\n",ent,sum);〃把籍果h网wm"出到文件皿修中
21fclose(fp);〃关用文件out.dat
22
39.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat
把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把千位数
字和个位数字重新组成一个新的含有两位数字的数(新数的十位数字是
原四位数的千位数字,新数的个位数字是原四位数的个位数字),以及把
百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数
字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如
果两个新组成的数均是奇数并且至少有一个数能被5整除,同时两个新
数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存
入数组b中,并要计算满足上述条件的四位数的个数ent。最后main函
数调用写函数writeDat把结果ent以及数组b中符合条件的四位数输出
到Out.dat文件中。
注意:部分源程序存在EC文件中.
程序中已定义数组:afJOO),b|200J.巳定义变ent
谓药改动数据文件中的任何数据、I函数main()«读的数readDatO和写函数writeDaU)的内容.
11•include<stdio.h>
2jIdefineMAX200
3jinta|MAX),blMAXl,ent-0;
4;voidwriteDat();
5jvoidjsValO
9ivoidreadDat()〃从文件中送取200个四位数〃入鼓舔△中
10;(
11•int1;
12;FILEefp;
Rw
13•fp•fopen(in.datr**r*);
14iford-0;i<MAX;…)
15;fscant(fp,"d”,Safi]);
16!fclose(fp);
17;)
18-voidmain()
19!1
20;int1;
21;readDat();
22•isValO;〃询用嫉IHwain,塞理・H要求的功候
23;printf(“满足条件的敷-W\n”,cnt>;
24!for(i•0;1<ent;
25;printf(*%dLb[in;
26\printf(H\nw);
27•writeDat();
28;)
29!voidwriteDat0〃把计算站果cm以及效组b中符合条件的四位依■出到皿痴支件中
30;1
31-FILE*fp;
32!inti;
wW
33ifp•fopen(*out.datrw");
34;fprintf(fp,ent);
35Ifor(1-0;i<ent;
ww
36;fprintf(fp,td\ntb(l));
37!fclose(fp);
381)
40.编写一^函数findStr(char*str,char*substr),该函数统计一个长度为
2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数
值返回。例如,假定输入的字符串为”asdasasdfgasdaszx67asdmklo”,
子字符串为“as",函数返回值是6。
函数ReadWrite实现从文件indat中读取两个字符串,并调用函数findStr,
最后把结果输出到文件out.dat中。
注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函
数中的任何内容,仅在函数findStr的花括号中
填入你编写的若干语句。
linclude<3tdio.h>
tinclude<string.h>
voidReadWrltc();
4intfindStr(char*strtchar•substr)
5
6
7
8mainO
9
10charstr(81|,substr(3];
11intn;
12prIntf(••输入用字符申:“);
13gets(str);
14prlntfL输入f字符申:");
15gets(substr);
16puts(str>;
17puts(substr);
18n»findStr(str,substr);
19printf(wn"%d\nw,n);
20ReadWrlteO;
21I
“从支付m.cht中谭取两个字再甲.芹皆用地依findStrf).■61E鲂果■出到文件(x3中•/
22voidReadWrite()
23(
24charstr(81),substr(3],ch;
25intnrlen,i•0;
26FILE*wf;
wH
27rf-fopen(*Ln.dat*rr);
wH
28wf-fopen(out.dat*rw*):
29whiled<5)
30<
31fgetsfstr,80,rf);〃从更包mdm中厘取长度为R的字符中存入并7符小“r
32fgets(substr,10,rf);〃从文件Edit中it取长改为9的子字符中存入到字符串substr
33Ion-strlen(substr)•1;〃尼f字符卡gubstf的长度It)的值M绐
34ch-substrlienJ;〃把f字符郴的•后一个字料的侬M给字符ch
/•如泉于字仲中的最后个字料是回+按行誉或是文件给我符.*ME千?衿申的■后一个笠料的值收宣力。〃
35if(ch。*\n*IIch™Oxla)
36substr[len]・0;
/用函数f!ndStr(«trf版网子字符串.ub。”在字符小atr中选州的次数•/
37n*flndStr(str,substr);
38fprintf(wf,"d\n",n);〃无计H饰裳n写入立文件。ut.dat中
39
40I
41fclose(rf);*
42fclose(wf);
43
五、设计与应用题(2题)
41.在SQLServer2008中,设某数据库中有商品表(商品号,商品名,
进货价格),商品号为主码;销售表(商品号,销售时间,销售数量,销
售价格,本次利润),商品号和销售时间为主码,销售价格为本次销售商
品的单价。现要求每当在销售表中插入前4列数据时(假设一次只插入
一行数据),系统自动计算本次销售产生的利润,并将该利润赋给销售
表的第5歹IJ“本次利润”。请编写实现上述功能的后触发型触发器代码。
(10分)
42.设某全国性的运输企业建立了大型0LTP系统,并在该系统之上建立
了数据仓库。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的被访问频率过高,
导致系统整体性能下降,而其它汇总表被访问频率较低。在不增加汇总
表和索引的情况下,请给出一个改善系统服务性能的优化方案,并简要
说明理由。(10分)
六、单选题[1分](2题)
43.查询处理器和存储管理器是数据库管理系统中的核心模块。下列关于
查询处理器和存储管理器的说法,错误的是()o
A.查询处理器中的DML编译器会对用户提交的DML语句进行优化,
并将其转换成能够执行的底层数据库操作指令
B.存储管理器中的查询执行引擎会根据编译器产生的指令完成具体数
据库数据访问功能
C.存储管理器中的缓冲区管理器负责将从磁盘读出的数据块放入内存
缓冲区,同时也负责对缓冲区中的数据块进行维护
D.查询处理器中的DDL编译器编译或解释用户提交的DDL语句,并将
生成的元数据存储在数据库的数据字典中
44.下列有关基于C/S和基于B/S数据库应用系统体系结构的说法中,
错误的是()o
A.在C/S结构中,应用业务规则主要是在客户端实现的
B.在B/S结构中,应用业务规则主要是在数据库服务器端实现的
C.在C/S结构中,客户端属于“胖客户端”;在B/S结构中,客户端属于
“瘦客户端”
D.在C/S结构中,客户端需要专门开发;在B/S结构中,客户端一般只
需要安装浏览器
参考答案
1.C
2.C解析:本题考查数据库三级模式的基本知识,参见4.1.5节“数据库
系统的结构与数据独立性一个数据库只有一个内模式和一个模式,却
可以有多个外模式,因而正确答案为C。
3.D解析:通道的运算控制部件包括:通道地址字(CAW),记录下一条
通道指令存放的地址;通道命令字(CCW),保存正在执行的通道指令;
通道状态字(CSW),记录通道、控制器、设备的状态。
4.C数据定义语言(DataDefinitionLanguage,DDL)是SQL语言集中负
责数据结构定义与数据库对象定义的语言,由CREATE.ALTER与
DROP三个语法所组成,最早是由Codasyl(ConferenceonDataSystems
Languages)数据模型开始,现在被纳入SQL指令中作为其中一个子集。
5.C解析:数据独立性是指应用程序与数据之间相互独立、互不影响。
数据独立性包括物理独立性和逻辑独立性。物理独立性是指数据的物理
结构发生改变时,数据的逻辑结构不必改变,从而应用程序不必改变;
逻辑独立性是指当数据全局逻辑结构改变时,应用程序不必改变。
6.B解析:在Oracle中,OracleReports用来快速的生成报表;Oracle
Forms用来快速生成基于屏幕的复杂应用的工具;OracleGraphics用来
快速生成图形应用的工具。BPR用于过程建模。掌握Oracle工具产品的
种类,Developer/2000和Designer/2000分别具有什么功能。
7.A
8.B解析:HTTP是超文本传输协议;SMTP是用来发送电子邮件的协
议:POP3是接收电子邮件的协议。
9.A解析:操作型数据与分析型数据之间的区别包括:分析型数据较操
作型数据一次操作数据量大;操作型数据支持日常操作,分析型数据支
持管理需求;操作型数据与分析型数据具有不同的生命周期;操作型数
据是细节的,分析型数据是综合或提炼的。因此本题正确答案为选项A。
10.A解析:网络的传输速率用b/s来表示,其含义是每秒传输多少个二
进制位的信息,b是bit的缩写,s表示秒(second)。
11.数据库建模。【解析】OracleDesigner2000是Oracle提供的CASE工
具,能够帮助用户对复杂系统进行建模、分析和设计。
12.应用应用
]3.子表子表
14.身份认证【解析】不可逆加密机制包括Hash算法和消息认证码,用
于数字签名和身份认证。
15.12
16.跳数【解析】向量一距离(V-D)路由选择算法,也称为Bellman—Ford
算法。其基本思想是路由器周期性地向其相邻路由器广播自己知道的路
由信息,用于通知相邻路由器自己可以到达的网络以及到达该网络的距
离(通常用“跳数”表示),相邻路由器可以根据收到的路由器修改和刷新
自己的路由表。
17.逻辑结构或逻辑逻辑结构或逻辑解析:逻辑结构设计阶段的任
务是把概念模型转换为与选用的DBMS所支持的数据模型相符合的基
本数据结构,即从概念模型导出特定DBMS可处理的数据库逻辑结构(包
括模式和子模式)。
18.(D,G),(E,G)因为E-D,(D,G)一E所以(E,G)可以作为候
选码,(D,G)-E,E-D(D,G)可以作为候选码
19.N-1
20.响应时间响应时间解析:并行系统通过并行地使用多个CPU和磁盘
提高处理速度和I/O速度。对数据库系统的性能有两种主要的度量:吞
吐量和响应时间。
21.A
22.C
23.B
24.C解析:队列是一种先进先出的线性表,它只允许在表的一段进行插
入,而在另一端进行删除,允许插入的一端叫做队尾,允许删除的一端
叫做队头。
25.B解析:数据库设计过程通常分为以下4个阶段:需求分析、概念结
构设计、逻辑结构设计和物理结构设计。
26.A解析SQL语言用GRANT语句向用户授予数据访问权限,GRANT
语句的一般格式为:
GRANT〈权限>[,<权限>]…
[ON<对象类型><对象名>][,<对象名>]...
TO〈用户>[,(用户…
[WITHGRANTOPTION]
所以正确的是选项A)。
27.A
28.D
29.C
30.A
31.\n[审题关键句】100以内(含美0)满足i、i+4、i+10都是素数的整数
的个数以及这些i之和。
\n【解题思路】
\n①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i
的值加1,直到i<90。
\n②在for循环中,每执行一次循环则调用函数isPrime(该函数具体的算
法已经在源程序中给出,直接用即可),对i、i+4、i+10是否同时是素
数进行判断,如果这三个数同时为素数,则计数变量ent值加1,同将
时将变量i的值累加到sum上。
\n【参考答案】
\n
\n
32.\n【审题关键句】以行为单位,新字符串中每个字符的ASCII码值等
于该位置上的原字符ASCII码值加其后面一个字符的ASCII码值,逆
序排序。
\n【解题思路】
\n①定义整型循环变量i、j和字符局部变量yuan。
\n②在第一层for循环中,循环变量i从0开始,依次递增直到其值大于
或等于maxline,在循环体中,首先把第i行的第一个字符)XX[i][0]赋给
变量yuan,在第二层for循环中,循环变量J从。开始,依次递增直到
其值等于该行字符串的长度减1,在循环体中,将字符的ASCII
码值与字符)XX[i][j+l]的ASCII码值相加的和保存到字符)xx[i](j]中。当
退出第二层for循环后,把第i行的最后一个字符与第一个字符变量yuan
的值相加,最后通过strreV函数对i行字符串逆序排序。
\n【参考答案】
\n
\n
33.\n【审题关键句】读取正数,统计个数,右移后为奇数的个数及平均
值。
\n【解题思路】
\n本题类似第44套试题,通过审题可以发现仅有一个不同点,即参与
平均值计算的元素是数组xx[i]右移一位之后为奇数的元素,参考答案的
第9条语句。
\n【参考答案】
\n
\n
34.\n【审题关键句】以行为单位把字符串中的所有小写字母改写成该字
母的下一个字母,大小写不变,其他字符不变。
\n【解题思路】
\n①定义整型循环变量i、i。
\n②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于
maxline,实现对文章每行的处理。第二层for循环中,循环变量j从。
开始,依次递增直到其值等于strlen(xx[i]),在循环体中,利用if条件语
句首先判断)xx[i][j]的值是否在小写字符字符P之间,然后,再判断
在此范围之内的小写字母,如果是z,则该字符转换为a,如果字符不是
z,则将其改写成它的下一个字母。
\n【参考答案】
\n
\n
\n
35.\n【审题关键句】求素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论