文章目录
- 一、初试
- 1.院校情况
- 1.复试名单
- 2.报录比
- 3.学硕人数
- 二、复试
- (一) 数据库
- 2016复试题
- 一、选择题 (Multiple Choices)
- 二、简答题
- 2018复试题
- 一、选择题
- (一)数据库:1-10
- (二)C语言:11-15
- 二、简答
- (二) 编译原理
- (三) 机试
- 22020同济大学电子与信息工程学院计算机系夏令营机试题目
- IDE:DEV C++
- 第一题:签到题(10分)
- 第 2 题:递归(20 分)
一、初试
1.院校情况
1.复试名单
(1)2023
2.报录比
2023
2022
电子信息专硕。复试68人,录取50人,复试比1.36:1。
总报名人数 | 录取人数 | 总报录比 |
---|---|---|
773 | 135 | 5.7 |
链接:https://yz.tongji.edu.cn/info/1029/2838.htm
2021
总报名人数 | 录取人数 | 总报录比 |
---|---|---|
660 | 158 | 4.2 |
2020
总报名人数 | 录取人数 | 总报录比 |
---|---|---|
665 | 148 | 4.5 |
2019
总报名人数 | 录取人数 | 总报录比 |
---|---|---|
486 | 42 | 11.6 |
3.学硕人数
19年52+0
20年43+6
21年46+2
22年42+5
23年44+?
二、复试
(一) 数据库
2016复试题
如果没有上下文,multiple choice 就表示“单选题”(只有一个正确答案),如果是“多选题”,那么就要在后面注明一句话:There may be more than one correct answer。
一、选择题 (Multiple Choices)
1.下列选项中可以唯一确定一个元组的属性或属性组的是
答:候选码
1.Which items can determine all atributes in a relation: (哪些项可以决定关系中的所有属性:)
A. Superkey (超码)
B. Foreign key (外键)
C. Candidate key (候选码)
D. Primary key (主码)
2.关系数据语言中,是过程化语言的是:
答:关系代数语言
2.Which is the procedural language?
A. SQL
B. Relational Algebra
C. Tuple Relational Calculus
D. Domain Relational Calculus
3.五大基本关系代数操作:
答:并、差、笛卡尔积、选择、投影,即 ∪ - × σ π
3.Five basic relational algebra operations are _____, others can be derived from these operations.
答案:C
4.模式分解(待学习)
5.下列三个并发控制的事务的调度,属于可串行化调度的是:
答:
6.DBA的职责是:
6.A DBA’s duties are:
A. transaction processing and concurrency control;
B. security and integrity control;
C. performance monitoring, tuning;
D. database reforming, restructuring, restoration and recovery.
答:CD有争议,我倾向于选C
二、简答题
1.两段锁协议 (Two Phase Locking,简称2PL)
①两段锁的含义:
事务分为两个阶段。
第一阶段是获得封锁,也称扩展阶段,事务可以申请获得任何数据项上的任何类型的锁,但不能释放任何锁。
第二阶段是释放封锁,也称收缩阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。
2018复试题
一、选择题
(一)数据库:1-10
1.Drawback(s) of file-processing system:
A.Data redundancy and inconsistency B.Maintain atomicity of updates
C.Data isolation D.High concurrent access
1.文件处理系统的缺点包括:
A. 数据冗余和不一致性 B. 保持更新的原子性
C. 数据隔离 D. 高并发访问
答案:BD (GPT4)
2.Which item(s) can determine all attributes in a relation:
A. Superkey B. Foreign key C. Candidate key
D. Primary key E. Full key F. Search key
2.在关系型数据库中,可以确定一个关系中所有属性的项是:
A. 超码(Super key) B. 外码(Foreign key) C. 候选码(Candidate key)
D. 主码(Primary key) E. 全码(Full key) F. 搜索码(Search key)
分析:
①若关系中某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
②关系模型中以主码作为唯一性标识
答案:CD
3.Which is (are) the non-procedural language(s)?
A. Relational Algebra B.C C. SQL
D. Tuple Relational Calculus E. Domain Relational Calculus
3.哪些是非过程性语言?
A. 关系代数
B. C语言
C. SQL
D. 元组关系演算
E. 域关系演算语言QBE
分析:
①关系代数语言、C语言,是过程化语言
②SQL、元组关系演算、域关系演算,是非过程化语言
答案:CDE
4.Five basic relational algebra operations are ____,others can be derived from these operations.
A.∩,-,π,σ,× B. ∪,-,π,σ,⋈
C.∪,-,π,σ,× D. ∩,÷,π,σ,⋈
4.五个基本的关系代数操作是____,其他操作都可以由这些操作衍生出来。
A. 交(∩),差(-),投影(π),选择(σ),笛卡尔积(×)
B. 并(∪),差(-),投影(π),选择(σ),自然连接(⋈)
C. 并(∪),差(-),投影(π),选择(σ),笛卡尔积(×)
D. 交(∩),除(÷),投影(π),选择(σ),自然连接(⋈)
分析:
五种基本关系代数运算应该是:并、差、笛卡尔积、选择、投影
∪、-、×、σ、π
答案:C
5.A DBA’s duties are:
A. security and integrity control.
B. performance monitoring, analyzing, and tuning;
C. database restoration and recovery;
D. database reforming and restructuring;
E. transaction processing and concurrency control;
5.数据库管理员(DBA)的职责包括:
A. 安全和完整性控制。
B. 性能监控、分析和调优;
C. 数据库恢复和还原;
D. 数据库重构和重组;
E. 事务处理和并发控制;
分析:数据库管理员负责确保数据库系统的高效、安全和稳定运行,这包括上述所有职责。
答案:ABCDE
6.In a relational database, given R<U, F>, U={A,B,C}, F={A→>B, B→>C,C->A}, a decomposition of R is ρ={AB, BC}, and the decomposition is:
A. lossless-join, dependency preserving B. lossless-join, not dependency preserving
C.lossy-join, dependency preserving D. lossy-join, not dependency preserving
6.在一个关系型数据库中,给定 R<U, F>,其中 U={A,B,C},F={A→>B, B→>C,C->A},对 R 的一个分解是 ρ={AB, BC},这个分解是:
A. 无损连接,保持依赖
B. 无损连接,不保持依赖
C. 有损连接,保持依赖
D. 有损连接,不保持依赖
正确答案是 B. 无损连接,不保持依赖。
这是因为,分解 {AB, BC} 是无损的,因为 AB 和 BC 的交集 BC 在其中一个分解的关系中是超键,满足无损连接的条件。但是这个分解不保持依赖,因为原始的函数依赖集 F 中的 C->A 不能被分解后的关系直接表示,因此依赖不被保持。
7.For the following schedules of three transactions in concurrency controlthe serializable schedules are:
A.r1(A)r1(B)w2(B) w1(A)r3(B) w3(B) r2(B) r2(A)
B.r1(A)w2(B) r1(B) w1(A) r3(B) w3(B) r2(B) r2(A)
C.r3(B)w3(B)r2(B)r2(A)r1(A) w2(B) r1(B) w1(A)
D.r3(B)r1(A)w3(B)r2(B)r2(A) w2(B) r1(B) w1(A)
7.在并发控制下,以下三个事务的调度中,可串行化的调度是:
A. r1(A) r1(B) w2(B) w1(A) r3(B) w3(B) r2(B) r2(A)
B. r1(A) w2(B) r1(B) w1(A) r3(B) w3(B) r2(B) r2(A)
C. r3(B) w3(B) r2(B) r2(A) r1(A) w2(B) r1(B) w1(A)
D. r3(B) r1(A) w3(B) r2(B) r2(A) w2(B) r1(B) w1(A)
正确答案是 C. r3(B) w3(B) r2(B) r2(A) r1(A) w2(B) r1(B) w1(A)。
这个调度是可串行化的,因为它可以重排为一个不冲突的串行调度,即所有事务的操作按顺序执行,没有违反事务间的数据依赖性。在这个例子中,事务的执行顺序可以是 T3, T2, T1,这使得调度变得可串行化,而不会导致数据冲突或不一致。
8.When we generate relational schemas from an E-R diagram, the rules for
relationship sets are:
A. for a binary 1: n relationship set, translate it into a relation, and the primarykey of the relationship set is the primary key of the “1” side entity set;
B. for a binary 1: n relationship set, translate it into a relation, and the primarykey of the relationship set is the primary key of the “'n” side entity set;
C. a binary 1: n relationship set can be united with the “1” side entity set, andtranslated into one relation;
D, a binary 1: n relationship set can be united with the “'n” side entity set, andtranslated into one relation
8.当我们从实体-关系(E-R)图生成关系模式时,关系集的规则是:
A. 对于二元1:n关系集,将其转换为一个关系,并且关系集的主键是“1”端实体集的主键;
B. 对于二元1:n关系集,将其转换为一个关系,并且关系集的主键是“n”端实体集的主键;
C. 二元1:n关系集可以与“1”端实体集合并,并转换为一个关系;
D. 二元1:n关系集可以与“n”端实体集合并,并转换为一个关系。
正确答案是 C. 二元1:n关系集可以与“1”端实体集合并,并转换为一个关系。
这是因为在1:n关系中,“1”端的实体在每个关系实例中是唯一的,因此可以将“1”端实体的属性和关系集的属性合并到一个关系中。这样,这个合并的关系就能够表示两个实体集之间的关系,同时保持数据的完整性和一致性
9.If R∈BCNF, then:
A. all key attributes are entirely functional dependent on each candidate key thatdoes not contain them
B. all partial dependencies and transitive dependencies are removed for anyattributes;
C. non-attributes are entirely functional dependent on non-key attributes;
D. all anomalies are removed within any dependency scope.
9.如果一个关系处于BCNF(Boyce-Codd Normal Form,博伊斯-科德范式),那么:
A. 所有关键属性完全函数依赖于不包含它们的每个候选键,
B. 移除了所有的部分依赖和传递依赖对于任何属性;
C. 非关键属性完全函数依赖于非关键属性;
D. 在任何依赖范围内移除了所有异常。
正确答案是 B. 移除了所有的部分依赖和传递依赖对于任何属性。
BCNF是一种更加严格的第三范式(3NF),它要求所有的非平凡的函数依赖都是关键属性对候选键的依赖。这意味着在BCNF中,不仅仅移除了部分依赖(第二范式的目标),还移除了传递依赖(第三范式的目标),从而减少了数据冗余和更新异常。
10.Which protocol(s) ensure(s) freedom from deadlocks:
A. The Two-Phase Locking Protocol;
B. The Timestamp-based Protocol;
C. The Graph-based Protocol;
D. The Tree-Protocol;
10.哪种协议保证了没有死锁:
A. 两阶段锁定协议;
B. 基于时间戳的协议;
C. 基于图的协议;
D. 树协议;
正确答案是 B. 基于时间戳的协议。
基于时间戳的协议通过为每个事务分配一个唯一的时间戳来防止死锁。这种方法依赖于时间戳的顺序来决定事务的执行顺序,从而避免了可能导致死锁的循环等待条件。
(二)C语言:11-15
11.Which of the following logic expressions can express 'at least and atmost that x or y is negtive’.
A.x<0 != y<0
B.(x<0) + (y<0) == 0
C.x* y <= 0 && (x<0||y<0)
D. x*y<= 0 || x<0 && y== 0 || y<0 && x==0
11.以下哪个逻辑表达式可以表示“至少且最多只有x或y是负数”:
A. x<0 != y<0
B. (x<0) + (y<0) == 0
C. x * y <= 0 && (x<0 || y<0)
D. x * y <= 0 || x<0 && y == 0 || y<0 && x == 0
正确答案是 A. x<0 != y<0。
这个表达式表示 x 小于 0 的情况与 y 小于 0 的情况不同,即它们之中只有一个是真(即只有 x 或 y 其中一个是负数,另一个不是),满足“至少且最多”这一条件。
12.Given:int a={2,4,6,8,10},*p=a+2; then the value of the(p+1)[1]*p[-1] is expression
B. 24
A.20
C.32
D.40
12.给定:int a={2,4,6,8,10}, *p=a+2; 那么表达式 (p+1)[1]*p[-1] 的值是
A. 20
B. 24
C. 32
D. 40
正确答案是 C. 32。
首先,理解表达式中的指针操作:*p=a+2 表示指针 p 指向数组 a 的第三个元素(即值为 6)。因此 p+1 将指向数组中的下一个元素(值为 8),p+1[1] 是指向 p+1 后面的第一个元素(即值为 10),而 p[-1] 是指向 p 之前的一个元素(即值为 4)。所以,表达式 (p+1)[1]*p[-1] 等于 10 * 4 = 40。
13.Given: int x=3, y=2,z=1; then the value of z after the execution of theexpression “z+=x>y?++x:y–;” is ____.
A.5 B.4
C.3 D.2
13.给定:int x=3, y=2, z=1; 那么执行表达式 “z+=x>y?++x:y–;” 后 z 的值是____。
A. 5
B. 4
C. 3
D. 2
正确答案是 B. 4。
这个表达式使用了条件运算符(也称为三元运算符)。首先比较 x 是否大于 y,如果是,则执行 ++x(x 自增),否则执行 y–(y 自减)。由于 x(3)大于 y(2),所以执行 ++x,x 变为 4。然后,z += x 的结果是 z = z + x,即 1 + 4 = 5。因此,z 的值变为 5。
14.Given the following definition int w[3][4]={{1,2},{3,4}},*p=&w[1][0];,
the value of the following ______expression is 4:
A .w[1][2]
B. *(p+1)
C. w[2][1]
D. p[1]+1
14.给定以下定义 int w[3][4]={{1,2},{3,4}}, *p=&w[1][0];,以下表达式的值是 4:
A. w[1][2]
B. *(p+1)
C. w[2][1]
D. p[1]+1
正确答案是 B. *(p+1)。
首先,w[3][4] 是一个二维数组,初始化为 {{1,2},{3,4}}。由于只初始化了前两个元素,其余的默认为 0。所以数组实际上是 {{1, 2, 0, 0}, {3, 4, 0, 0}, {0, 0, 0, 0}}。
指针 p 被初始化为 &w[1][0],即指向数组的第二行第一个元素(值为 3)。因此,*(p+1) 指向 p 后的下一个元素,即 w[1][1] 的位置,其值为 4。
15.Given:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
then the output of the following statement is_____.
for (k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
15.给定:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
那么以下语句的输出是_____。
for (k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A. 3 5 7
B. 3 6 9
C. 1 5 9
D. 1 4 7
正确答案是 A. 3 5 7。
这个循环遍历 k 从 0 到 2,打印 a[k][2-k] 的值。所以,当 k=0 时,打印 a[0][2](值为 3);当 k=1 时,打印 a[1][1](值为 5);当 k=2 时,打印 a[2][0](值为 7)。因此,输出是 3 5 7。
二、简答
(二) 编译原理
(三) 机试
22020同济大学电子与信息工程学院计算机系夏令营机试题目
IDE:DEV C++
第一题:签到题(10分)
题目要求:
键盘依次输入 4 个字符串,分别是临时学号、姓名、报考类别和本科学校,按右对齐方式输出,要求其中最长的字符串输出时左边无空格,4 行的冒号对齐,冒号为半角字符,前后各一个空格
输入要求:
1、四个字符串均不含空格,长度不超过 40
2、不考虑输入错误
输出要求:
1、共四行,不要有多余的空行
2、每行最后无多余的空格或其它字符
输入示例1:
输出示例1:
输入示例2:
输出示例2:
我的代码:(运行环境使用DEV C++,该环境中一个汉字size为2,占据2个格。而使用clion则发现,一个汉字size为3,却只占用1.5个格,从而无法实现右对齐)
#include <iostream>
#include <algorithm>
using namespace std;
void Space(int n){ //输出n个空格
for(int i = 0; i < n; ++i){
cout<<" ";
}
return;
}
int main(){
string id,name,grade,school;
while(cin>>id>>name>>grade>>school){
int maxLen = max({id.size(),name.size(),grade.size(),school.size()});
Space(maxLen-id.size());
cout<<id<<" "<<":"<<" "<<"临时学号"<<endl;
Space(maxLen-name.size());
cout<<name<<" "<<":"<<" "<<"姓名"<<endl;
Space(maxLen-grade.size());
cout<<grade<<" "<<":"<<" "<<"报考别"<<endl;
Space(maxLen-school.size());
cout<<school<<" "<<":"<<" "<<"本科院校"<<endl;
}
}
第 2 题:递归(20 分)
题目要求:
1、键盘输入 2-9 间的数字,输出对应的数字三角形
2、采用递归方式完成,整个程序中不允许出现循环(for、while、do-while、if-goto 均不允许)
3、给出预置的 cpp 文件,其中 main 函数不允许改动
输入要求:
1、输入一个 2-9 间的整数
2、不考虑输入错误
输出要求:
1、若输入的数字是 n,则共输出 n 行
2、每个数字之间加一个空格,每行的最后一个 1 后面,既可以有空格,也可以无空格
示例输入输出1:
示例输入输出2:
我的代码:
#include <iostream>
using namespace std;
void Num(int i){ //每行
cout<<i<<" ";
if(i != 1) Num(i-1);
else return;
}
void Line(int n,int i){ //多少行
if(i <= n){
Num(i);
cout<<endl;
i++;
Line(n,i);
}else{
return;
}
}
int main(){
int n;
cin>>n;
Line(n,1);
return 0;
}