2018杭州师范大学硕士研究生考研真题861软件专业基础

本站小编 Free考研网/2019-05-28

杭 州 师 范 大 学 2018年招收攻读硕士研究生入学考试题 考试科目代码:861 考试科目名称:软件专业基础
说明:考生答题时一律写在答题纸上,否则漏批责任自负。
第一部分C程序设计 一单选题(每题1分,共15分) 1. 假设有定义: intk; 下面程序段编译运行的情况是_____。 for(k=1;k;k++) printf("%d",k); A.能运行, 正常结束B.以上说法都不对C.编译错误D.能运行, 是死循环 2.循环语句 while(!x&&!y) 中的循环条件表达式等价于 A.!(x!=0||y!=0)B.!(x==0 && y==0)C.!(x==0 || y==0)D.x=0 && y=0 3. 若定义 chars[2][3]={“ab”,“cd”},*p=(char*)s; 那么下列表达式语法正确,并且其值与s[1][1]相等的表达式(并非一定与其等价)是 A.*(p+4)B.*(s+3)C.*(p+3)D.*s+2 4.对于intx,y; 语句 if(x<0) y=-1; elseif(!x) y=0; else y=1; 等价于
A. B. C. D.
if(x!=0) if(x>0) y=1; else y=-1; if(x>=0) y=0; if(x) y=1; else y=-1; y=0; if(x>=0) if(x) y=1; else y=-1; y=0; if(x!=0) if(x>0) y=1; else y=-1;
5. 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确实现此功能的函数是
A. B.
voidfuna(intx,inty) { intt; t=x;x=y;y=t; } voidfuna(int*x,int*y) { intt=*x; *x=*y; *y=t; }
C. D.
voidfuna(int*x,int*y) { int*p; *p=*x;*x=*y;*y=*p; } intfuna(int*x,int*y) { *x=*y;*y=*x; }
6. 对于如下定义: intk,a[10],*p=a; 哪个表达式是不正确的 A.a++B.p++C.a[0]=kD.*p++=2 7. 下列描述不正确的是 A.全局变量定义在函数外部B.静态本地变量分配在全局变量所在的地方 C.静态本地变量定义在函数外部D.本地变量定义在函数内部 8.有如下定义: intx[]={1,2,3},*p=x,y; 则 y=*p++; 相当于_____ A.y=1, x++B.y=2, p=x+1C.y=*p, p++D.y=2, p=&x[1] 9. 与 while(*s++=*t++); 等价的程序段是
A. B. C. D.
do{ *s++=*t++; }while(*t); while(*t) *s++=*t++; do{ *s=*t++; }while(*s++); while(*s) *s++=*t++;
10. 有以下结构体说明和变量定义,指针pqr依次指向一个链表中的三个连续结点。 structnode { intdata structnode*next; }*p,*q,*r; 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是 A.r->next=q;q->next=r->next;p->next=r; B.p->next=r;q->next=r->next;r->next=q; C.q->next=r->next;p->next=r;r->next=q; D.q->next=r->next;r->next=q;p->next=r; 11. 有以下程序 voidWriteStr(char*fn,char*str) { FILE*fp; fp=fopen(fn,"w"); fprintf(fp,"%s",str); fclose(fp); } intmain() { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); return0; } 程序运行后,文件t1.dat中的内容是 A.startB.endrtC.startendD.end 12.语句 while(x%3)a++; 中的表达式 x%3 等价于_______. A.x%3!=0B.x%3==1C.x%3==2D.x%3==0 13.当文件打开出现错误时,fopen返回的是? A.没有返回就导致程序退出了B.-1C.1D.0 14.在一个链表中,要把s所指的一个结点插入到p所指的一个结点后面去,正确的语句是: A.s->next=p;p->next=s;B.s->next=p¬->next;p=s; C.p->next=s;s->next=p;D.s->next=p->next;p->next=s; 15.下列数组定义,不正确的是_______. A.inta[1][3];B.intm[][3]={1,2,3,4,5,6}; C.intx[2][]={1,2,4,6};D.intx[2][2]={1,2,3,4}; 二问答题(每小题3分,共15分) 1. 语句 if(4/5>3/4) a=1; else a=0; 运行后,a的值是? 2. 表达式 !!”**” 的值为(以1表示真,0表示假) 3. 假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是(形如ch=...答案不留任何的空格,不带结尾的分号) 4. 下列程序段的输出是_______。 #defineDF(a,b)(a+2*b) ints=5; intk=DF(s+1,s-3); printf("%d",k); 5.以下代码段的输出是: intx,y,z,w; voidp(int*y,intx) { staticintw; *y++;x++;w=x+*--y; printf("%d#%d#%d#%d#",x,*y,z,w); } intmain(void) { intx,y,z,w; x=y=z=w=1; do{ staticintx; p(&x,y); printf("%d#%d#%d#%d#",x,y,z,w); }while(0); return0; } 三请用C语言写出冒泡排序的程序。(20分) 四请用C语言写出在一个升序的整数数组中折半查找(二分法搜索)的函数。(25分) 第二部分数据库原理 五选择题(共15分,每小题3分) 1若事务T对数据对象A加上S锁(共享锁)而未加X锁(互斥锁),则___________。 A.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X 锁。 B.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X 锁。 C.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。 D.事务T可以读A和修改A,其它事务能对A加S锁和X锁 2有一名为“航班运营”实体,含有航班号日期计划起飞时间,计划到达时间,实际起飞时间实际到达时间情况摘要等属性,该实体主码可能是_________。 A.航班号B.日期C.航班号+日期D.航班号+情况摘要 3在现代数据库管理系统中,记录数据库事务操作信息的文件是_______。 A. 数据文件B. 索引文件C. 辅助数据文件D. 日志文件 4.设关系R和关系S具有相同的元数(目),且对应的属性取自相同的域。集合{t|t∈R∧t∈S}标记的是()。 AR∪S BR-S CR×S DR∩S 5有一个关系:职工(工号,姓名,岗位工资),规定工资的范围应该在3000-30000元之间,这一规则在SQL中可以用__________子句约束。 AwhereBcheck Cprimary key Dforeign key 六填空题(共10分,每空格2分) 1.数据库管理系统中,若一个事务因某种原因执行失败,将执行____________操作,以保证数据库的一致性。 2.设关系模式R(A,B,C,D,E)的函数依赖集为F={AB→C, C→D, D→E},则R的候选码(Candidate Key)可为______________________。 3.SQL查询语言中,如要表达任意多个任意字符,应使用通配符___________。 4.数据库管理系统中,为了保证事务的正确执行,维护数据库的完整性,要求数据库系统维护以下事务特性:________一致性隔离性和持续性。 5.关系模式的三种完整性约束分别是______________,参照完整性约束和用户自定义的完整性约束。 七综合应用题(共50分) 1. 数据库概念设计(16分) 一个研究生管理数据库要求提供下述服务: Ø可随时查询学校中所有系的信息,包括系的名称系办公室地址和值班电话。所有系均由系的名称唯一标识。 Ø可随时查询所有教师的信息,包括其姓名年龄职称所属系以及在该系入职时间。一个系有多名教师,一名教师只能在一个系工作,工作证号具有唯一性。 Ø可随时查询每个系研究生信息,包括学号姓名导师(教师)专业方向。一名教师可以指导多位研究生,一位研究生的导师只能有一个。 (1)根据以上需求,绘制出E-R图。(8分) (2)根据E-R图转换成关系模型,并标明主键和外键。(8分) 2. 规范化题(10分) 假设有一个加油站的系统中有如下关系R(加油员ID,加油员姓名,流水号,金额)。其中,每一次加油操作都有一个流水号,并由相应金额。每个加油员各自编制流水号,不同加油员的流水号有可能相同。 (1)给出上述关系R的函数依赖集,以及候选码。 (2)说明R非BCNF模式的理由,并将上述关系R分解为BCNF模式。 3. SQL应用题(24分,共6小题,每小题4分) 设有一个医院管理系统, 科室(科室号,科室名称,值班电话) 医生(工号,姓名,性别,职称,所属科室号,入职时间,状态) 病人(病人编号,姓名,性别,出生日期,电话) 门诊记录(门诊号,病人编号,工号,日期,主诉,诊断,处理建议) 要求用SQL语言完成如下题目,字段名称和数据表名请直接使用上面的汉字: (1)创建科室表,注意完整性约束。(4分) (2)检索出所有职称为“主任医师”的医生信息。(4分) (3)检索出所有在2017年11月11日看过门诊的病人姓名和出生日期。(4分) (4)检索出各科室门诊量最大的医生的门诊量,要求返回科室号,门诊量。(4分) (5)查询诊断包含“高血压”的病人编号病人姓名和出生日期。(4分) (6)将贾宁医生的状态设置为“退休”。(4分)
考研高分咨询罗老师电话/微信:**咨询QQ:**

相关话题/程序 数据库 信息 语言 医生