1、14.常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中_模型适用于需求明确或很少变更的项目,_模型主要用来描述面向对象的软件开发过程。15.在UML提供的图中,_用于描述系统与外部系统及用户之间的交互;_用于按时间顺序描述对象间的交互。【C语言】:16.设有定义语句int(*f)(int);则f是_。17.函数调用语句:func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)中func函数的实参个数是_。18.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000,若要求将a的高4位取反,低4位不变,所要
2、执行运算是_。19.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为_。20.已有定义:double*p;请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元_。21.C程序经过编译、_步骤之后才能形成一个真正可执行的二进制机器指令文件。【JAVA】:16.FileInputStream是字节流;BufferedWriter是字符流;ObjectOutputStream是_。17.保证JAVA语言可移植性的特征是_。18.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明头:_。19.在java中,用
3、package语句说明一个包时,该包的层次结构必须与_相同。20.在java中,能实现多重继承效果的方式是_。21.线程在生命周期中要经历5状态,分别是新建状态、可运行状态、运行状态、_状态和终止状态。二、选择题,共8分,每空1分1.采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为_。2.在C+中,下列函数_不能重载。3.下面程序段的时间复杂度为_。 For(int i=0;im;i+) For(int j=0;jn;j+) aij=i*j;A.O(m2) B.O(n2) C.O(m*n) D.O(m+n)4.如果事务T获得了数据项Q上的排它锁,则T对Q_。A.只能读不能写 B
4、.只能写不能读C.既可读又可写 D.不能读不能写5.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是1321215123,采用LRU算法时,缺页数是_次。A.3 B.4 C.5 D.66.在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资) 部门(部门号、部门名、部门人数、工资总额)在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是_A.职工关系的“职工号” B.职工关系的“部门号”C.部门关系的“职工号” D.部门关系的“部门号”7.某二叉树的前序和后序序列正好相反,则该二叉树一定是_的二叉树。
5、A.空或只有一个节点 B.高度等于其节点数C.任一结点无左孩子 D.任意节点无右孩子8.有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼数,它的带权路径长度为_。A.24 B.71 C.48 D.53三、问答题(共10分)1.接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?(共3分)2.TCP和UDP的区别?(共2分)3.列举面向对象的特征,并介绍主流面向对象语言中数据类型的分类及该类型存储位置之间区别?(共5分)四、程序题,共30分 1. 阅读以下说明和C程序,将应填入_(n)_处的字句写在答题纸对应栏内。(共10分、每空2分) 说明:假设需要将N个任务分配给N个工
6、人同时去完成,每个人都能承担这N个任务,但费用不同。下面的程序用回溯法计算总费用最小的一种工作分配方案,在该方案中,为每个人分配1个不同的任务。 程序中,N个任务从0开始依次编号,N个工人也从0开始依次编号,主要的变量说明如下: Cij:将任务i分配给工人j的费用; taski:值为0表示任务i未分配,值为j表示任务i分配给工人j; workerk:值为0表示工人k未分配任务,值为1表示工人k已分配任务;mincost:最小总费用。 【C 程序】 #include #define N 8 /*N 表示任务数和工人数*/ Int cNN; unsigned int mincost=65535;
7、/*设置的初始值,大于可能的费用*/ int taskN, tempN, workerN; void plan(int k,unsigned int cost) int I; if (_(1)_& costmincost) mincost=cost; for(i=0; iN; i+)tempi=taski; else i+) /*分配任务 k*/ if (workeri=0 &_(2)_) workeri=1; taskk=_(3)_; Plan(_(4)_,cost+cki); _(5)_; taskk=0; /*if*/ /*Plan*/ voin main() int I,j; i+)
8、/*设置每个人任务由不同工人承担时的费用及全局数组的初值*/ workeri=0; taski=0; tempi=0; for(j=0; j= 20050101 AND 入住日期 5 _(4)_4)为加快SQL语句的执行效率,可在相应的表上创建索引。根据问题3中的SQL语句,除主键和外键外,还需在那个表的的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。3. 完成下列的快速排序算法,可以选择C或JAVA部分解答。(10分)【C】: int partitions(int a,int low,int high) void quicksort(int a,int n) int pivotke
9、y=alow; _(5)_; /a0=alow; While(lowhigh) #include while(_(1)_) /#include -high; #include”myfunc.h”/存放于个人函 alow=ahigh; 数库中while(_(2)_) main()+low; intahigh=alow; i,a11=0,11,12,5,6,13,8,9,14,7,10; for(i=0;11;printf(“%3d”,ai),+i);/alow=a0; printf(“n”);alow=pivotkey; quicksort(a,10);return low; printf(“n
10、”);void qsort(int a,int low,int high) int pivottag;if(_(3)_)/递归调用pivottag=_(4)_;qsort(a,low,pivottag-1);qsort(a,pivottag+1,high);【JAVA】:/* *快速排序 */Public static void main(String args) Random random =new Random();Int pDtat=new int10;For(int i=0;pData.length;i+)/随即生产10个随机数Integer a=random.nextInt(100)
11、;pDatai=a;System.out.print(pDatai+”);System.out.print();Int left=0;Int right=pData.length-1;(1) for(int i=0;i+)System.out.println();Public static int Sort(int pData,int left,int right)Int middle,str Temp;Int i=left;Int j=right;Middle= (2) ;doWhile( (3) )I+;While( (4) )j-;if(i=j)str Temp=pDatai;pDatai=pDataj;pDataj=str Temp;i+;For(int k=0;kk+)System.out.print(pDatak+”);while( (5) );/如果两边扫描的下标交错,完成一次排序If(lefti)Sort(pData,i,right);Return pData;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1