2、tj=1;jv=i;j++)S;An2Bn2/2Cn(n+1)Dn(n+l)/26.下面算法的时间复杂度为(B)oint^unsignedintn){if{n=O
3、
4、n=l)return1;Elsereturnn*f(n-l);}A0(1)BCKn)CO(n2)D0(n!)二、填空题1•数据的逻辑结构被除数分为集合结构、线性结构、树型结构和图形结构四种。2.数据的存储结构被分为顺序结构、链接结构、索引结构和散列结构四种。3.在线性结构、树型结构和图形结构中,前驱和后继结点之间分别存在着1对1、1对N和M对N的关系。4.一种抽象数据类型包插数据和操作两个部分。5
5、.当一个形参类型的长度较大时,应最好说明为引用,以节省参数值的传输时间和存储参数的空I'可。6.当需要用一个形参访问对应的实参时,则该形参应说明为引用。7.在函数中对引用形参的修改就是对相应实参的修改,对值(或赋值)形参的修改只局限在该函数的内部,不会反映到对应的实参上。2.当需要进行标准I/O操作时,则应在程序文件中包含iostrcam.h头文件,当需要进行文件I/O操作吋,则应在程序文件中包含fstream.h头文件。3.在包含有stdlib.h头文件的程序文件屮,使用rand()%21能够产生0-20Z间的一个随机数。4.—个记录r理论上占有的存储空间的
6、大小等于所有域的长度之和,实际上占有的存储空间的大小即记录长度为sizeof(r)。5.一个数组a所占有的存储空间的大小即数组长度为sizeof(a),下标为i的元数a[i]的存储地址为a+1,或者为(char*)a+i*sizeof(a[i])。6.函数重载要求参数类型、参数个数或排列顺序有所不同。7.对于双目操作符,其重载函数带有2个参数,其中至少有一个为用户自定义的类型。8.若对象ra和rb中至少有一个属于用户定义的类型,则执行ra==rb时,需要调用等于号(==)重载函数,该函数第一个参数应与ra,的类型相同,第二个参数应与rb的类型相同。9.从一维数
7、组a[n]中顺序查找出一个最大值元素的时间复杂度为O(n),输出一个二维数组b[m][n]中所有元素值的时间复杂度为0(m*n)。10.在下面程序段中,s=s+p语句的执行次数为n,p*=j语句的执行次数为n(n+l)/2,该程序段的时间复杂度为O(n2)ointi=0,s=0;while(++i<=n){intp=l;for(intj=l;j<=i;j++)P*=j;s=s+p;11.—个算法的吋问复杂度为(3n2+2nlog2n+4n-7)/(5n),K数量级表示为0(n)。1&从一个数组a[7]中顺序查找元素时,假定查找第一个元素a[0]的概率为1/3,
8、查找第二个元素a[l]的概率为1/4,查找其余元素的概率均相同,则在查找成功时同元素的平均比较次数为35/12。三、普通题L有下列儿种用二元组表示的数据结构,试画出它们分别对应的图形表示(当出现多个关系时,对每个关系画出相应的结构图),并指出它们分别属于何种结构。(1)A=(K,R)其中K={al,a2,a3...,an}R={}⑵B=(K,R)英中K={a,b,c,d,e,f,g,h}R={r}r={,,,,,,}(3)C=(K,R)其中K={a,b,c,d,f,g,h}R={r}r={<
9、d,b>,,,,,,}⑷D=(K,R)其中K={1,2,3,4,5,6}R={r}尸{(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}(5)E=(K,R)其中K={48,25,64,57,82,36,75,43}R={rl,r2,r3}rl={<48,25>,<25,64>,<64,57>,<57,82>,<82,36>,<36,75>,<75,43>}r2={<4&25>,<48,64>,<64,57>,<64,82>,<25,36>,<82,75>,
10、<36,43>}r3={<25,36>