2010山东计算机科学与技术专升本真题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东省2010年普通高等教育专升本统一考试
计算机科学与技术专业综合一试卷本试卷共8页。

满分100分,考试时间180分钟。

考试结束后,将本试卷交回。

答题前考生务必将自己的姓名、准考证号、座号和所在学校填写在规定的位置。

操作系统(50分)
一、判断题(10分,每题1分)
1.原语和系统调用的主要区别在于两者的实现方法不同。

()
2.进程状态的转换是由操作系统完成的,对用户是透明的。

()
3.打印机是一类典型的块设备。

()
4.优先数是进程调度的重要依据一旦确定不能改变。

()
5.对文件进行读写前,要先打开文件。

()
6.同一文件系统中不允许文件同名,否则会引起混乱。

()
7.参与死锁的进程至少有两个已经占有资源。

()
8.进程间的互斥是一种特殊的同步关系。

()
9.存储保护的目的是限制内存的分配。

()
10.在虚存系统中,只要磁盘空间无限大,作业就能拥有任意大的编址空间。

()
二、填空题(10分,每空1分)
1.用户进程从日态(常态)转换为管态(特态)的唯一途径是_______________________。

2.分区存储管理中的放置策略有:首次适应法、______________、______________。

3.常见的文件的物理结构有:连续结构、_________________、_______________。

4.核态是_______________执行时,机器所处的状态。

5.磁带上的文件只能采用________________存取方式。

6.批处理操作系统中,作业存在的唯一标志是______________。

7.从静态的观点看,操作系统中的进程是由程序段、__________和__________三部分组成。

三、简答题(20分,每题4分)
1.什么是设备独立性,有哪几种类型的设备独立性?
2.生产者——消费者问题的同步算法中,为什么颠倒生产者进程中的两个P操作的次序,可能导致进程死锁?
3.叙述进程和程序的主要区别。

4.何谓抖动。

它对系统有何影响?
5.文件系统的主要任务是什么?
四、综合题(10分)
如下图,有三个并发进程get、copy、put,三个进程共用两个缓冲区S、T(其大小为每次存放一个数据),get将数据放入S,copy将数据从S取出放入T,put从T中取出数据。

在将缓冲区中的上一个数据取走之前不能放入新数据,缓冲区初始时为空。

试用P、V操作实现三个进程之间的同步,并写出程序描述。

微机原理与接口技术(50分)
五、判断题(8分,每题1分)
1.在微机中,运算器、控制器、存储器和一些寄存器集成在一块芯片上,构成微处理器,即MPU(Micro Processor Unit)。

()
2.8086CPU有20条地址线,可寻址1MB存储空间。

()
3.要留AL寄存器的值乘10,结果放在AX寄存器中,可以用指令MUL AL,10。

()
4.在X86汇编中,RET和IRET指令分别用于子程序和中断服务子程序的返回,一般这两个指令可以互相替换。

()
5.中断控制器8259A可以工作于级联方式,9片8259A级联最多可以接受64个外设中断请求信号。

()
6.并行接口和串行接口的主要区别表现在并口与外设间数据传送为并行,串口与外设间数据传送为串行,它们与CPU间数据传送一般都是并行的。

()
7.DMA方式是最好的一种I/O同步方式,因而微机系统中应尽量采用DMA方式实现I/O与CPU的数据传输。

()
8.D/A转换器的精度主要取决于它的位数,位数越多,分辨率越高,A/D转换器的转换精度也一定越高。

()
六、填空题(10分,每空1分)
1.8086CPU由EU(执行部件)和两大部分组成:前者主要负责执行指令,后者负责___________________。

2.假设当前CS=2A00H,DS=3000H,SS=3800H,ES=4000H,IP=0100H,指令SUB AX,ES:[1000H]中源操作数的物理地址为___________;下一条指令的物理地址为_________。

3.8086的中断系统最多可以设置_____________级中断,它们对应的中断向量放在内存0段______________区域。

4.8253是16位可编程计数器,若采用BCD方式计数,最大计数次数为______________,此时计数初值为________________。

5.8251A的编程命令包括3个,除了CPU写入方式选择命令和工作命令,CPU还可以读8251的工作状态字,以获得当前8251A的工作状态。

8251A中发送数据引脚为TxD;接收数据引脚为______________。

6.设被测温度范围为0摄氏度到100摄氏度,若要求能够测量0.1度的温度变化,应选择分辨率为至少______________位的ADC。

七、简答和计算(16分,每题4分)
1.设AL=87,BL=90,执行指令ADD AL,BL后,AL=?,BL=?,标志寄存器FLAGS中6个状态标志的值分别是多少?
2.I/O设备是计算机系统中必不可少的组成部分,为什么任何I/O设备都不能直接与计算机系统总线相连,而要使用I/O接口?
3.假设系统中有一片8259A,它占用的端口地址为20H和21H,系统初始化时设置它的ICW2=08H;有一个外设中断接在8259A的IR6上,该中断的中断程序入口地址为1100:1234。

请写出程序段将这个入口地址写入中断向量表中的对应单元。

4.假设串行异步通信约定信号由1个停止位、1个奇校验和7个数据位组成,请写出发送“B”的帧格式。

若TXC频率为500KHz,波特率系数为16,则每秒传送多少个字符?
八、综合应用题(16分,每题8分)
1.编写一个程序,统计AX寄存器中1的个数,结果放在CL寄存器中。

(假设AX=OFF37H,则CL=13)
2.要求使用8255A作为接口,采集一组开关K0~K9的状态,然后通过一组发光二极管L0~L9显示出来,请画出连线图(假设8255A端口地址为200H~203H)写出对应的程序段,并加上适当注释。

计算机科学与技术专业综合二试卷本试卷共10页。

满分100分,考试时间180分钟。

考试结束后,将本试卷交回。

答题前考生务必将自己的姓名、准考证号、座号和所在学校填写在规定的位置。

数据结构(50分)
一、判断题(每小题1分,共5分)
1.算法的执行时间和所需的存储空间都是问题规模的函数,进行算法分析就是要找出这种函数关系。

()
2完全二叉树只能采用顺序存储方法,不能采用链表存储方法。

()
3.在顺序循环队列的第i个元素之后插入一个元素是顺序循环队列的基本运算。

()
4.若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历的最后一个结点。

()
5.直接插入排序的关键码比较次数与初始排列有关。

()
二、单项选择题(每小题2分,共10分)
1.以下数据结构中哪一个是线性结构( )
A.栈
B.线索二叉树
C.AOV 网
D.二叉排序树
2.若a ,b ,c 三个字符的字符序列执行入栈操作,则其所有可能的输出排列共有()
A.4种
B.5种
C.6种
D.其它
3.一棵树的广义表表示a (b ,c (e ,f (g )),d ),当用左孩子-右兄弟链表表示时,左指针域非空的结点个数为( )
A.1
B.2
C.3
D.4
4.下面关于图的存储的叙述中正确的是( )
A.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关
B.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关
C.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关
D.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关
5.对长度为12的有序表采用顺序存储结构,折半查找技术,在等概率情况下,查找成功时的平均查找长度是( )
A.37/12
B.62/13
C.49/12
D.其它
三、应用题(每小题5分,共20分)
1.已知一棵三叉树的存储结构如下表所示,其中root=0,n=7。

画出该二叉树。

答:
lchild
data
rchild
2.用克鲁斯卡尔算法求下图的最小生成树。

3.下图是一棵二叉排序树,规定当二叉排序树被删除的结点既有左子树,又有右子树时,以其中序前驱替代。

画出删除55后的二叉排序树。

答:
4.已知散列表地址空间为HT[0..8],散列函数为H(key)=key%7,采用线性探测法处理冲突,将数据序列{107,27,28,42,3,85,99,38}依次存入散列表中。

试画出相应的散列表;并计算等概率下搜索成功的平均搜索长度。

答:散列表及查找各关键字要比较的次数如下所示:
关键字
比较次数
搜索成功的平均搜索长度为:ASL=
四、算法设计题(每小题5分,共15分)
1.已知顺序栈s,简述f1函数的功能,当输入80时,输出结果是多少?
f1()
{initstack(s); scanf("%d",&n);
while(n){push(s,n%8);n=n/8;}
while(!Emptystack(s)){pop(s,x);printf("%d",x);}
}
答:
2.写出二叉树前序遍历非递归算法的设计思想;然后写出算法。

答:
3.写出直接插入排序算法。

答:
C语言程序设计(50分)
五、单项选择题(10分,每题1分)
1.在C语言中,合法的字符常量是()
A.‘\084’
B.‘\x43’
C.‘ab’
D.“\0”
2.在C语言中,要求运算数必须是整型的运算符是()
A./
B.++
C.!=
D.%
3.有整型变量x,单精度变量y=5.5,表达式:x=float(y*3+((int)y%4))执行后,x的值为()
A.17
B.17.5
C.18
D.16
4.若从键盘上输入5,则程序的输出结果是()
#include<stdio.h>
void main()
{int x;scanf("%d",&x);
if(x++>5)printf("%d\n",x);
else printf("%d\n",x--);}
A.7
B.6
C.5
D.4
5.以下程序的输出结果是()
#include<stdio.h>
void main()
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);}
A.10 1 9 2
B.9 8 7 6
C.10 9 9 0
D.10 10 9 1
6.不能对二维数组a进行正确初始化的语句是()
A.int a[2][3]={0}
B.int a[2][3]={{1,2},{3,4},{5,6}};
C.int a[][3]={{1,2},{0}};
D.int a[][3]={1,2,3,4,5,6}
7.有程序段如下:运行该程序的结果是()
char a[3],b[]="China";
a=b;
printf("%s",a);
A.编译出错
B.运行结果为China
C.运行结果为Ch
D.运行结果为Chi
8.以下对C语言函数的有关描述中,正确的是()
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
9.有如下程序段:()
int *p,a=10,b=1;
P=&a;
a=*p+b;
执行该程序段后,a的值为
A.编译出错
B.10
C.11
D.12
10.若执行fopen函数时发生错误,则函数的返回值是()
A.地址值
B.1
C.0
D.EOF
六、程序填空。

根据下列各题题意填空,填写在程序中的划线处。

(10分,每空2分)
1.程序用来计算一个英文句子中最长单词的长度(字母个数)max。

假设该英文句子中只含有字母和空格,在空格之间连续的字母串成为单词,句子以“.”为结束。

请填空。

#include<stdio.h>
void main(0
{
static char *p,a[]={"I am happy."};
int max=0,m=0;
p=a;
while(*p!='.')
{
while(((*p<='Z')&&(*p>='A'))||((*p<='z')&&(*p>='a')))
{ ①_______________________
p++; }
if(②____________________)
max=m;
③______________________
p++;
}
printf("max=%d\n",max);
}
2.程序对输入的一个整数,调用函数prime判断其是否为素数。

是素数则输出YES,否则输出NO,请填空。

#include<stdio.h>
int prime(int a)
{
int e,i,yes;
yes=1;e=a/2;
i=2;
while((i<=e)&&yes!=0)
if(④_______________)yes=0;
else i++;
⑤__________________
}
void main()
{
int x;
printf("\nInput an integer x:");
scanf("%d",&x);
if(prime(x))printf("YES\n");
else printf("NO\n");
}
七、分析下列程序,写出运行结果(16分,每题4分)
1.下列程序后,如果从键盘上输入china#<回车>,则输出结果是:_______________________ #include<stdio.h>
void main()
{int v1=0,v2=0;char ch;
while((ch=getchar())!='#')
switch(ch)
{case 'a':
case 'h':
default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
2.下列程序后,则输出结果是:__________________________________
#include<stdio.h>
void sub(int a,int b,int *c)
{ *c=b-a;
}
void main()
{ int x,y,z;
sub(10,5,&x);
sub(7,x,&y);
sub(x,y,&z);
printf("%d,%d,%d\n",x,y,z);
}
3. 下列程序后,则输出结果是:__________________________________
#include<stdio.h>
void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10 };int k=0,i;
float s=0,ave;
for(i=0;i<10;i++)
{ if(a[i]%2=0) continue;
s+=a[i];
k++;
if(k!=0)
{ ave=slk;
printf("ave=%f\n",ave);
}
}
4.下列程序后,则输出结果是:__________________________________
#include<stdio.h>
void fun()
{static int a;
a+=2;
printf("%d",a);
}
void main()
{int cc;
for(cc=1;cc<=4;cc++)
fun();
printf("\n");
}
八、编写程序(14分)
1.实现:从键盘输入任意10个整数,按从小到大的顺序排列成有序数并输出(6分)。

相关文档
最新文档