|
杭 州 师 范 大 学 2018 年招收攻读硕士研究生入学考试题
考试科目代码: 861 考试科目名称: 软件专业基础 |
||||||||||||||||||||||||
|
说明:考生答题时一律写在答题纸上,否则漏批责任自负。 |
||||||||||||||||||||||||
|
第一部分、C程序设计
一、单选题(每题1分,共15分)
1. 假设有定义: int k; 下面程序段编译运行的情况是_____。 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. 若定义 char s[2][3]={“ab”, “cd”}, *p=(char *)s; 那么下列表达式语法正确,并且其值与 s[1][1]相等的表达式(并非一定与其等价)是 A.*(p+4) B.*(s+3) C.*(p+3) D.*s+2
4. 对于int x, y; 语句 if (x < 0) y = -1; else if (!x) y = 0; else y = 1; 等价于
5. 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确实现此功能的函数是
6. 对于如下定义: int k,a[10],*p=a; 哪个表达式是不正确的 A.a++ B.p++ C.a[0]=k D.*p++=2
7. 下列描述不正确的是 A.全局变量定义在函数外部 B.静态本地变量分配在全局变量所在的地方 C.静态本地变量定义在函数外部 D.本地变量定义在函数内部
8.有如下定义: int x[]={1,2,3},*p=x,y; 则 y=*p++; 相当于_____ A.y=1, x++ B.y=2, p=x+1 C.y=*p, p++ D.y=2, p=&x[1]
9. 与 while( *s++ = *t++ ); 等价的程序段是
10. 有以下结构体说明和变量定义,指针p、q、r依次指向一个链表中的三个连续结点。 struct node { int data struct node *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. 有以下程序 void WriteStr(char *fn,char *str) { FILE *fp; fp=fopen(fn,"w"); fprintf(fp, "%s", str); fclose(fp); } int main() { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); return 0; } 程序运行后,文件t1.dat中的内容是 A.start B.endrt C.startend D.end
12.语句 while(x%3) a++; 中的表达式 x%3 等价于_______. A.x%3!=0 B.x%3==1 C.x%3==2 D.x%3==0
13.当文件打开出现错误时,fopen返回的是? A.没有返回就导致程序退出了 B.-1 C.1 D.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.int a[1][3]; B.int m[][3]={1,2,3,4,5,6}; C.int x[2][]={1,2,4,6}; D.int x[2][2]={1,2,3,4};
二、问答题(每小题3分,共15分) 1. 语句 if (4/5 > 3/4) a=1; else a=0; 运行后,a的值是?
2. 表达式 !!”2010-01-27” 的值为(以1表示真,0表示假) 3. 假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是(形如ch=...答案不留任何的空格,不带结尾的分号)
4. 下列程序段的输出是_______。 #define DF(a,b) (a+2*b) int s=5; int k= DF(s+1,s-3); printf("%d",k);
5.以下代码段的输出是: int x, y, z, w; void p(int *y, int x) { static int w; *y++; x++; w = x+*--y; printf("%d#%d#%d#%d#",x,*y,z,w); } int main(void) { int x, y, z, w; x=y=z=w=1; do{ static int x; p(&x, y); printf("%d#%d#%d#%d#",x,y,z,w); } while(0); return 0; }
三、请用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}标记的是( )。 A、R∪S B、R-S C、R×S D、R∩S 5、有一个关系:职工(工号,姓名,岗位、工资),规定工资的范围应该在3000-30000元之间,这一规则在SQL中可以用__________子句约束。 A、whereB、check C、primary key D、foreign 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分)
|
考研高分咨询新祥旭罗老师
电话/微信:13701149740
咨询QQ:3219057729


















