浙江大学最近6年软件学院研究生试题答案.docx
《浙江大学最近6年软件学院研究生试题答案.docx》由会员分享,可在线阅读,更多相关《浙江大学最近6年软件学院研究生试题答案.docx(16页珍藏版)》请在冰豆网上搜索。
![浙江大学最近6年软件学院研究生试题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/6/50a7ce38-1730-45b4-9d46-0b57e6e7bc9e/50a7ce38-1730-45b4-9d46-0b57e6e7bc9e1.gif)
浙江大学最近6年软件学院研究生试题答案
1999年-2004年
浙江大学计算机学院(计算机应用技术专业)研究生入学考试
部分试题答案
2005
组成
汇编那题
add$t3,$t5,$t7
slt$t1,$t3,$t5
add$t2,$t4,$t6
add$t2,$t2,$t1
最后一题
0:
MemRead
ALUSrcA=0
IorD=0
IRWrite
ALUSrcB=0
ALUOP=00
PCWrite
PCSource=00
1:
ALUSrcA=00
ALUSrcB=11
ALUOp=00
2:
ALUSrcA=1
ALUSrcB=10
ALUOp=00
3:
MemtoReg=0
Regwrite=1
RegDst=0
2004
操作系统部分
一
1.D定时器属于资源,所以最好由系统分配
2.A课本上是这样讲的
最佳页面置换算法是理论上的,实际无法实现的;内核所在的地址一般是保
护起来的,用户不能访问;内存保护通常由硬件和软件共同完成
3.A
4.D全程变量尽程序内可见,进程间不可见
5.A课本上这样讲的
6.A把(0,0)带进去检验一下
7.B
8.A
B可寻址是块设备的特征,A错.
共享设备是并发,并非能同时访问,C错
共享设备不会死锁,D错.
10.CDMA的定义
11.C持有,等待,环,非抢占
12.A
t0---20---45---50----70---80----90----100--110--120---140----170-----
-185
a|wait|cpu-|wait|IO1-------|cpu--------|--IO2----|cpu--|IO1---|finis
h
b|cpu-|---IO1---|-cpu-|----IO2---|wait-|cpu-|wait|IO2--|cpu-------
--|finish
二
1),对应的物理地址为:
0AC5H4805D,1AC5H2757D
2),共耗费的时间为(1.5+1.5)+1.5=4.5微秒
三
(1)互斥占有并等待非抢占循环等待
(2)所有哲学家同时拿起左手边的筷子
程序设计部分
一
1.B
0x是十六进制的意思
2.C0为f,其余为t
3.B不是很确定。
*(a+i)[j]=*((a+i)[j])?
?
4.Dc中给字符串赋值要用strcpy();c#,java中是这样写的;c++中忘了
5.A同scanf("...",&a),x[i]不是地址
6.if(i=n/10)convert(a+1,i);
*a=i%10+'0'
二
1.789注意c是static
2.不知道我这里没有c的编译器。
感觉题有问题,i没有初始化,我记得c中没有
初始化的变量是随机值,而java中i会是0。
如果i初始等于0,结果是第i个单词的第i个字母经处理后输出,即DCLJE
三
floatcalc(intn)
{
floata=1,b=2,s=0;
inti=0;
for(i=0;i{
s+=a/b;
b=a+b;
a=b-a;
}
returns;
}
数据结构部分
1.
2.
3.用完全二叉树的定义做
4.后缀码
5.usr
/
mark---Alex---bak
///
hw.c--hw.c--aa.txt
即左孩子,右兄弟的树。
组成:
1,
1)-128128128
2,0000000001001100
00000000010018,9
00000001001011000,1,2,...15
3,1)3232646
32被乘数0乘数
===================================================================
2003年
计算机专业基础:
试题一:
1~5,DBACB6~10,DABBA11~12,CC
试题二:
1),产生了死锁
2),可以在每个单行道交叉口出设立交通灯(即互斥信号量mutex1=1,mutex2=0)
试题三:
1),为了提高系统效率,交换区可以以连续方式分配,并且系统维护数据结构(交换区首地址,交换区长度),这里以块为单位。
访问其中的页面内容时候,首先指定该二元组,当内存有足够空间时读入内存。
2),交换区不宜采用LRU替换算法,这样会覆盖掉其他进程的页面。
当交换区空间不足时,要么进程等待,要么由OS分配更大的磁盘空间。
3),在内存中开辟缓冲区
试题四:
1),30
2),26
3),2^18
4),对应页表单元地址=1000+128×4=1492
试题七:
1~3,CDB
4,4ava2
5,(-1)*x*x/i
试题八:
1,1),76543212),交换a,b
2,1),AHelloWorld2),去掉串s中的空白符和转义字符’\t’和’\n’,并向左对齐。
试题九:
程序清单如下:
1),
#include
Intsearch(int*v,intn,intv)
/*在v[n]中二分搜索v,成功返回相应下标,不成功返回-1*/
{
Intlow,high,mid;
Low=0,high=n-1;
While(low<=high){
Mid=(low+high)/2;
If(v[mid]Elseif(v[mid]>v)high=mid-1;
Elsereturnmid;/*搜索成功返回相应下表标*/
}
Return-1;/*搜索不成功返回-1*/
}
2),
Intsearch(int*,int,int);
Main()
/*该程序从input.txt文件中分别读入2个有100个整数的序列,并利用二分搜索2个序列中共同出现的整数输出到文件output.txt中*/
{
Int*a,*b;/*分别用来存放100个整数序列*/将
FILE*ifp,*ofp;
Inti;
A=(int*)malloc(100*sizeof(int));
B=(int*)malloc(100*sizeof(int));
Ifp=fopen(“input.txt”,”r”);
Ofp=fopen(“output.txt”,”w”);
Fread(a,sizeof(int),100,ifp);
Fread(b,sizeof(int),100,ifp);
For(i=0;i<100;i++){
If(search(b,100,a[i])!
=-1)
Fprintf(of,p,”%d”;a[i]);/*共同出现的整数则写入输出文件中*/
}
Fclose(ifp);
Fclose(ofp);
}
2002年
计算机科学基础
一,
1~5,ACCCD
6,n
7,5,7,7
8,c<’a’||c>’z’?
1:
0;
二,
S[i]-‘a’+10f(s)
三,
1),输出为:
2),输出为:
1+1+12+2+2
1+1+22+2+4
2+3+3
四,程序清单如下:
1),
Doublemyexp(doublex)
/*该函数利用e^x的级数展开式求其近似值,精确到10^(-4)*/
{
Doubleresult,temp;
Doublea;
Intb,i;/*级数中的每项由temp=a/b来表示*/
Result=1.0,a=x,b=1,i=1;
Temp=a/b;
While(temp>=1.0E-4){
Result+=temp;
A*=x;
B*=(++i);
Temp=a/b;
}
Returnresult;
}
2),
Main()
/*该程序将FIBONACCI数列的前n项Fi及e^Fi,写入文件out.txt中*/
{
Int*a,n,I;
FILE*fp;
Scanf(“%d”,&n);
A=(int*)malloc(sizeof(int)*n);
A[0]=a[1]=1;
For(i=2;iA[i]=a[i-1]+a[i-2];
}/*构造FIBONACCI数列的前n项*/
Fp=fopen(“out.txt”,”w”);
For(i=0;iFprintf(fp,”%d,%f\n”,a[i],myexp(a[i]));
}/*分别将偶对(Fi,e^Fi)写入输出文件中*/
Fclose(fp);
}
计算机专业课(甲)
OS部分
试题一:
1~4,FHCB
试题二:
1~4,DACC
试题三:
1),(100×1ms)/(1s+100×1ms)=9.09%
试题四:
1),即缺页中断的处理流程
2),
3),
试题五:
1),引入缓冲是为了缓解计算机设备数据传输速度上的差异,如内存与低速外围设备之间。
2),?
2001年
计算机专业课(甲)
试题1:
平均访问时间=A+B/n+C/m
试题三:
?
试题四:
1),?
2),FATDOS,UFSUNIX,NFSSolaris2,NTFSWindowsNT,Ext2sfLinux
3),如Mac和Windows系列那样,由OS自动搜索执行程序,并支持“双击“操作。
试题五:
/*所用的数据结构*/
Semaphores1=0,s2=0;
Intdif=0;/*dif为buff1和buff2的数据个数差,m<=abs(dif)<=n*/
Semaphoremutex=1;
/*test函数的实现:
用来测试dif是否符合要求*/
Voidtest()
{
If((dif>=0&&dif<=m)||(dif<=-n))signal(s1);
Elseif((dif>=-m&&dif<=0)||(dif>=n))signal(s2);
Else{
Signal(s1);
Signal(s2);
)
}
/*进程P1的实现*/
P1()
{
While
(1){
Wait(mutex);
Test();
Signal(mutex);
Wait(s1);
/*操作:
putdataintobuff1*/
Wait(mutex);
Dif++;
Signal(mutex);
}
}
/*进程P2的实现*/
P2()
{
While
(1){
Wait(mutex);
Test();
Signal(mutex);
Wait(s2);
/*操作:
putdataintobuff2*/
Wait(mutex);
Dif--;
Signal(mutex);
}
}
试题六:
计算机科学基础
一:
1~2,AB
3,3ello
4,2
5,printf((i+1)%5==0?
”%d\n”:
“%d”,a[i]);
6,i<10&&a[i]>=0
二:
1,x-x^2+x^3-….
2,
1),TSC
2),将head为头指针的单链表中的结点数据域不是大写字母(’A’~’Z’)的结点删除,并释放结点的空间。
三:
程序清单如下
1),
#include
Intatoi(char*s)
/*函数返回可能包含符号的数字序列s相应的整数*/
{
Charc;
Intresult,sign;
Result=0,sign=0;
While(c=*s++)
Switch(c){
Case‘-‘:
sign=1;break;
Default:
result=result*10+(c-48);break;
}
Returnsign==?
(0-result):
result;
}
2),
Intatoi(char*);
Main()
{
FILE*ifp,*ofp;
Char*str:
Ifp=fopen(“test.txt”,”r”);
Ofp=fopen(“test.dat”,”rb”);
While(fscanf(ifp,”%s”,str)!
=EOF)/*从输入文件中依次读入数字序列str*/
Fprintf(opf,”%d“,atoi(str));/*str转换为相应的整数后,写入输出文件中*/
Fclose(ifp);
Fclose(ofp);
}
2000年
计算机科学基础
一:
1~5,AACCB
6,B
7,(-1)*x/i
8,6
二:
1,21
2,功能:
用插值法求f(x)=x^2-1在区间[0,3]上的近似解,若无解则返回0。
近似值:
1.000010
三:
#include
Main(intargc,char*argv[])
{
Char*p,*q;/*p指向当前字符,q依次指向下个待测试的字符*/
FILE*ifp,*ofp;
Intcount;
If(--argc<=2)/*测试命令行参数是否正确*/
Printf(“Usage:
countfromfiletofile.\n”);
Else{
Ifp=fopen(argv[1],”r”);
Ofp=fopen(argv[2],”w”);
}
Fscanf(ifp,”%c”,p);
Count=1;
While(fscanf(ifp,”%c”,q)!
=EOF){
If(*q==*p)count++;
Else{
Fprintf(ofp,”%d-%c,”,count,*p);/*输出当前字符的二元组*/
*p=*q;
Count=1;/*开始下个字符的计数*/
}
}
Fprintf(ofp,”%d-%c”,count,*p);/*输出最后一个字符的二元组*/
Fclose(ifp);
Fclose(ofp);
}
计算机专业课(甲)
OS部分
试题一:
所谓挂起也称为静止状态,处于某种目的进程可以进入挂起状态,从而在被激活之前暂不接收调度。
进程可以自己请求挂起,或者其父进程将它挂起,或者由OS内核将其挂起,在合适的时候,挂起进程可以被激活。
如果进程当前是活动就绪态,则执行suspend原语后变为挂起就绪态;如果进程当前是活动阻塞态,则执行suspend原语后变为挂起阻塞态。
可通过active原语将其激活。
试题二:
该算法不正确,违背了互斥条件。
试题三:
Wait(semaphores)
{
Waitb(mutex);
S=s-1;
If(s<0){
Signalb(mutex);/*
(1)*/
Waitb(dalay);
}
Else/*删掉else*/
Signalb(mutex);
}
Signal(semaphores)
{
Waitb(mutex);
S=s+1;
If(s<=0)
signalb(delay);/*
(2)*/
else/*添加else*/
Signalb(mutex);
}
1),wait的错误,考虑下面的情况:
当执行wait(s)到
(1)时,中断发生,由于mutex=1,此后singal(s)可以不断的执行,从而造成wait(s)饥饿。
2),singal的错误,考虑下面的情况:
当执行singal(s)到
(2)时,中断发生,mutex=0,虽然某次wait(s)可以执行完waitb(delay);但此后的任何wait(s)都将在waitb(mutex)处阻塞,无限等待。
试题四:
6层
试题五:
FIFOpage3;LRUpage1;NRUpage1
试题六:
?
1999年
计算机科学基础
一:
1,i||j
2,13
3,char(*A)()
4,?
5,*s++=*t++
6,char*sj++i0:
1
二:
1),3,2,32,1,5
2),
1310852118743
7531148281310
三:
#inlcude
#include
Intmain(intargc,char*argv[])
{
Char*s,*t;/*s指向模式串,t为从文件中读入的待比较串*/
FILE*fp;
Intcount;
If(argc!
=3){/*测试命令行参数是否符合要求*/
Printf(“Usage:
grepwordfilename”);
Return-1;
}Else{
S=argv[1];
Fp=fopen(arvgv[2],”r”);
}
While(fscanf(fp,”%s”,t)!
=EOF)/*依次从输入文件中读入串t,并比较计数*/
if(strcmp(s,t)==0)count++;
fclose(fp);
returncount;
}
计算机专业课(甲)
OS部分
试题1~试题3:
DDBB
试题四:
略
试题五:
可以,由安全算法和Banker算法可知资源分配以后的系统仍然时安全的。
试题六:
1),逻辑地址(虚页号5bits,页内偏移11bits)
2),32项,每项14bits
3),32项,每项13bits