logo资料库

2020浙江杭州师范大学软件专业基础考研真题.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
2020 浙江杭州师范大学软件专业基础考研真题 ) C 程序设计部分(75 分) 一、判断题(每小题 1 分,共 10 分) 1、在 C 语言中,标识符是不区分大小写的。( ) 2、在 C 语言中,int 类型数据可以表示任何整数。( 3、在 C 语言中,while 和 do-while 循环的主要区别是:do-while 循环体可能一次都不执行; 而 while 循环体至少无条件循环一次。( 4、在 C 语言中,可以给指针变量赋一个整数作为地址值。( 5、在 C 语言中,向函数传递参数时,实参和形参不可以重名。( 6、设有宏定义:#define F(N) 2*N,则表达式 F(2+3)的值是 7。( 7、已知:char a[7] = "a0\0a0\0"; 则:sizeof(a)的值为 7,strlen(a)的值为 2。( 8、在 C 语言中,结构类型成员的类型还可以是结构类型。( 9、若文本文件打开方式为"a",而该文件已经存在,则文件中原有数据被清除。( 10、在 C 语言中,用 malloc 函数动态分配的内存是在栈中分配的,而不是在堆中分配的。 ( ) ) ) ) ) ) ) ) )。 )。 B. x != 1 C. x D. x == 1 B. 2、1、3 D. 高级语言 B. 自然语言 C. 机器语言 )是等价的。 二、单项选择题(每小题 1 分,共 20 分) 1、软件与程序的区别是( A. 程序价格便宜、软件价格昂贵 B. 程序是用户自己编写的,而软件是由厂家提供的 C. 程序是用高级语言编写的,而软件是由机器语言编写的 D.软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序只是软件的一部分 2、CPU 能直接识别的是( A. 汇编语言 3、若有表达式:x&&1,和以下表达式( A. x == 0 4、设 x、y、z 均为 int 型变量,则执行以下语句后 x、y、z 的值为( x = 1; y = 0; z = 2; y++ && ++z || ++x; A. 2、1、2 5、若有变量声明:int x = 10, y = 4, f; double m; 则执行表达式:f = m = x / y 后, f、m 的值分别是( A. 2, 2.5 6、若定义 x 为 double 型变量,则能正确输入 x 值的语句是( A.scanf("%lf", &x); C.scanf("%f", &x); 7、“if(表达式)”中的“表达式”( A.只能是算术表达式 B.逻辑表达式、关系表达式和算术表达式都可以 C.只能是逻辑表达式 D.只能是关系表达式 8、switch 语句语法中的 case 分支必须是常量表达式且互不相同,值不能为( A.浮点型 9、以下对枚举类型的声明中,正确的是( A. enum a = {one, two, three}; B.scanf("%5.1f", &x); D.scanf("%f", x); D.字符型 )。 C. 2.5, 2.5 D. 2、2、3 C. 2、0、3 D. 2, 2.0 B.整型 C.枚举型 )。 B. 3, 2.5 )。 )。 )。 )类型。
B. enum a {one = 9, two = -1, three}; C. enum a = {"one", "two", "three"}; D. enum a {"one", "two", "three"}; 10、在 while(!e)中,!e 等价于( A. e == 0 11、假设有变量声明:int k; 下面代码段编译运行的情况是( for(k = 1; k; k++) C. e == 1 D. e != 1 B. e!=0 )。 )。 printf("%d ", k); )。 D. 结 )。 )。 B. int f(i); )是错误的。 B. f(1); C. f(&a); D. f(sizeof(a)); C. int f(int); D. int f(void); B. 终止当前整个循环的执行 C. 结束 switch 语句 B.能运行,正常结束 D.能运行,是死循环 B. double fun(int x; int y) D. double fun(int x, y); )。 A.编译错误 C.以上说法都不对 12、在循环语句的循环体中使用 break 语句的作用是( A. 结束本次循环 束程序的执行 13、以下正确的函数头是( A. double fun(int x, int y) C. double fun(int x, y) 14、以下函数原型,错误的是( A. int f(int i); 15、给定函数原型:void f(double dd); 和变量声明:double a; 下列函数调用( A. f(1.0f); 16、如果 i 是变量,而 p 是指向 i 的指针,则下列表达式( A. *&p char x[] = "abcd"; char y[] = {'a', 'b', 'c', 'd'}; 以下说法正确的是( A. 数组 x 的长度大于数组 y 的长度 C. 数组 x 的长度小于数组 y 的长度 18、结构变量在其生命期里,( A. 所有成员一直驻留在内存中 C. 部分成员驻留在内存中 19、位运算符中,运算符~的功能是( A. 按位取反 20、如果需要打开一个已经存在的非空文件“file”进行修改,正确的文件打开语句为( A. fp = fopen("file", "r"); C. fp = fopen("file", "w+"); )。 B. 只有一个成员驻留在内存中 D. 没有成员驻留在内存中 B. fp = fopen("file", "ab+"); D. fp = fopen("file", "r+"); B. 两个数组的长度相同 D. 数组 x 和数组 y 的值相同 D. *&i 17、若有: B. &i C. &*i )可以代替 i。 B. 按位与 C. 按位或 D. 按位异或 )。 )。 三、填空题(每小题 1 分,共 10 分) 1、计算机硬件系统由________、运算器、存储器、输入设备、输出设备五部分组成。 2、C 语言中,表示语句结束的符号是________。 3、若有:int x = 3, y = 4, z = 5; 表达式 x || y + z && y == z 的值为________。 4、若变量 x 已正确定义并赋值,则表达式-10 < x < 0 的值为________。 5、假设 sizeof(int)的值为 4,对于数组:int a[3][6]; sizeof(a[0])的值为________。 6、在 C 语言中,二维数组在内存中是按________顺序存放。
7、若有 int a[3][2]={10,20,30,40,50,60}, (*p)[2]; p=a; 则*(*(p+2)+1)的值为 ________。 8、在 C 语言中,字符串的结束标志是________。 9、若有: struct wc { int a; int *b; }; int x[] = {11,12}, y[] = {31, 32}; struct wc z[] = {100, x, 300, y}, *p = z; 则表达式++p->a 的值为________。 10、当文件打开出现错误时,fopen 函数的返回值是________。 四、程序阅读题(每小题 3 分,共 15 分) 1、以下程序的输出结果是________。 #include int main(void) { int x, a = 10, b = 20, ok1 = 5, ok2 = 0; if(a < b) if(b != 15) if(!ok1) x = 1; else if(ok2) x = 10; else x = -1; printf("%d\n", x); return 0; } 2、对于以下递归函数 f,调用 f(4),其返回值是________。 int f(int n) { if(n) return f(n-1)+n; else return n; } 3、以下程序的输出结果是________。 #include void add(int *p, int x) { (*p)++; x++; printf("%d%d", (*p), x); } int main(void) {
int a = 3; int b = 0; int *p = &a; add(p, b); printf("%d%d\n", a, b); } 4、以下程序的输出结果是________。 #include int f(int); int any_function(int (*pf)(int)); int main(void) { printf("%d\n", any_function(f)); return 0; } int f(int i) { return i * i + i - 12; } int any_function(int (*pf)(int)) { int n = 0; while(pf(n)) ++n; return n; } 5、以下程序的输出结果是________。 #include int main(void) { FILE *fp; int i, n=0, k=0; fp = fopen("source.txt", "w"); for(i = 0; i < 5; i++) fprintf(fp, "%d", i); fclose(fp); fp = fopen("source.txt", "r"); fscanf(fp, "%d%d", &n, &k); printf("%d,%d", n, k); fclose(fp); return 0; } 五、程序填空题(每空 2 分,共 10 分) 1、下面程序的功能是计算 1000!的末尾有多少个零。请填空使程序完整、正确。 #include int main(void) {
int i, k, m; for(k = 0, i = 5; i <= 1000; i += 5) { m = i; while(________) { k++; m = m / 5; } } return 0; } 2、下面程序的功能是输入一个不包括空格的字符串(少于 80 个字符),判断字符串是否是 回文(即从左往右读和从右往左读一样)。请填空使程序完整、正确。 #include #include <________> int main(void) { int i, len, flag; char str[80]; gets(str); len = strlen(str); flag = 1; for(i = 0; i < len / 2; ++i) { if(str[i] != ________) { ________; break; } } if(________) printf("Yes\n"); else printf("No\n"); return 0; } 六、程序设计题(共 10 分) 编写一个选择排序函数: void selectionSort(int list[], int n); 第 1 个参数 list 是需要升序排序的整数数组,第 2 个参数 n 是数组大小。对数组元素进行 升序排序。 数据库原理部分(75 分) 七、选择题(共 15 分,每小题 1 分) 1. 数据库具有 、最小冗余、较高的数据的独立性和易于扩充等特点。
A)数据结构化 B)程序标准化 C)数据模块化 D)程序结构化 2.数据库系统中,负责数据库物理结构与逻辑结构的定义与修改的人员是 A)数据库管理员` C)应用程序员 D)最终用户 3.三个模式之间存在映射关系,下列映射关系正确的是 A)外模式/内模式 C)模式/模式 D)内模式/外模式 B)外模式/模式 B)专业用户 。 。 。 。 4.要保证数据库的数据独立性,DBMS 通过修改的是 A)三级模式之间的两种映射 B)模式与内模式 C)模式与外模式 D)三层模式 5.下列关于 E-R 模型的说法中,正确的是 A)依赖于计算机硬件和 DBMS B)独立于计算机硬件,依赖于 DBMS C)独立于计算机硬件和 DBMS D)依赖于计算机硬件,独立于 DBMS 6.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的 联系类型是 A)多对多 C)多对一 7.现有如下关系: 患者(患者编号,患者姓名,性别,出生日期,所在单位) 医生(医生编号,医生姓名,所在科室) 医疗(患者编号,医生编号,诊断日期,诊断结果) 则,医疗关系中的外键有 A)患者编号 C)患者编号和医生编号 8.在某个数据库中建立了表 person(No,Name,Sex,Birthday),No 为表的主码,表中已有的记 录如下图所示: 。 B)一对多 D)一对一 B)医生编号 D)没有 。 No 1 4 6 Name Sex Birthday 张丽丽 女 1967/05/07 李方 王安 女 1970/04/14 男 1982/10/27 。 以下四个语句中能够正确执行的插入操作是 A)INSERT INTO person VALUES(6,′王中′,′男′,′1964/03/08′) B)INSERT INTO person (Name,Sex) VALUES(′王中′,′男′) C)INSERT INTO person VALUES(2,′男′,′王中′,′1964/03/08′) D)INSERT INTO person(No,Sex) VALUES(2,′男′) 9.若 R∈1NF,且 R 中只有一个主属性,则 R 必然满足 A)2NF C)4NF B)3NF D)BCNF 。
。 B)2NF D)BCNF 10.在关系数据库中,从关系规范化的意义看,如果关系 R 中的非主属性对码有传递函数依 赖,那么 R 至多是 A)1NF C)3NF 11.如果采用关系数据库来实现应用,在数据库设计的___________阶段将关系模式进行规 范化处理。 A)需求分析 B)概念设计 C)逻辑设计 D)物理设计 12.数据库的转储和恢复属于数据库设计的 A)逻辑设计 B)物理设计 C)数据库实施 D)数据库的维护 13.已知事务 T1 和 T2 的并发操作序列,如下图所示,并发操作引发的问题是 A)丢失修改 C)读”脏”数据 B)不可重复读 D)幽灵问题 。 。 。 14.多个事务执行的次序称为 A)过程 B)流程 C)调度 D)步骤 15.恢复机制的关键问题是建立冗余数据,最常用的技术是 A)数据镜像 B)数据转储 C)登录日志文件 D)B+C 。 八、填空题(共 10 分,每空格 1 分) 1.数据库系统的三级模式结构保证了数据的独立性,它们分别是 (1) 和 (2) 。 2.关系数据模型中的关系是二维表,表中的一行称为关系的一个 (3 ,表中的一列称 为关系的一个 (4) 。 3.在关系数据库中,主键值不能为空,也不允许出现重复,这是 SQL 中的 (5) 完整 性约束规则。 4.写出实现“将查询 SC 表的权限授予用户 U1,并允许该用户将此权限授予其他用户”这 一功能的 Grant 语句: (6) 。 5.设有关系模式 S(A,B,C,D),与关系代数表达式σ3<′4′(S)等价的 SQL 语句是: (7) 6.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的 结果相同,称这种调度策略为 (8) 。 。
7.当发生介质故障时,必须使用 (9) 和 (10) 进行数据库恢复。 九、综合应用题(共 50 分) 1.数据库概念设计(16 分) 某学校有若干系(包含系号、系名、系主任名、电话),每个系有若干学生(包含学号、姓 名、年龄)、若干课程(包含课程号、课程名),每个学生选修若干课程,每门课有若干学生 选修,学生选修课程有成绩记录,某一门课可以为不同的系开设。今要建立该校学生选修课 程的数据库,在以上基础上要求: (1)画出该学校数据库的实体-联系模型 E-R 图。(8 分) (2)把 E-R 图转变成相应的关系模型,并标明主键和外键。(8 分) 2.规范化题(10 分) 假设为考试成绩管理设计了一个关系 R(S#,SN,C#,CN,G,U),其属性的含义依次为 考生号、姓名、课程号、课程名、分数和主考学校名称。规定每个学生学习一门课程只有一 个分数;一个主考学校主管多门课程的考试,且一门课程只能属于一个主考学校管理;每名 考生有唯一的考号,每门课程有唯一的课程号。 (1)写出关系模式 R 基本的函数依赖集及候选键。(4 分) (3)关系模式 R 最高达到第几范式?为什么?(3 分) (4)将 R 规范化为 3NF。(3 分) 3.SQL 应用题(24 分,共 6 小题,每小题 4 分) 现有如下关系: 职工(职工号,姓名,性别,职务,家庭地址,部门编号) 部门(部门编号,部门名称,地址,电话) 保健(保健卡编号,职工号,检查身体日期,健康状况) 要求用 SQL 语言完成如下题目,字段名称和数据表名直接使用上面的汉字: (1)查找所有女科长的姓名、检查身体日期和健康状况。 (2)查找没有参加任何检查的职工姓名。 (3)职工人数最多的部门名称。 (4)查找每个部门的男女职工人数,要求列出部门编号、部门名称、性别及人数。 (5)删除职工关系表中职工号为“3016”的记录。 (6)将职工号为“3061”的职工的健康状况改为“一般”。
分享到:
收藏