1、全国自考(计算机软件基础)模拟试卷 8 及答案与解析一、单项选择题1 与所使用的计算机无关的是数据的【 】结构。(A)存储(B)物理(C)逻辑(D)物理和逻辑2 数据的逻辑结构又分为 【 】(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构3 在以下叙述中,不正确的是 【 】(A)数据的逻辑结构是数据元素之间的逻辑关系,是依赖于计算机语言的(B)存储结构不仅涉及数据元素的机内表示,还包括数据之间关联方式的表示(C)顺序存储方式使用的是一段连续的存储区(D)算法的时间复杂度与算法中语句的频度有关4 某算法的时间复杂度为 O(n2),表明该算法的
2、【 】(A)问题规模是 n2(B)执行时间等于 n2(C)执行时间与 n2 成正比(D)问题规模与 n2 成正比5 下列程序的功能是计算两个矩阵的乘积,其算法的时间复杂度是 【 】void mul_matrix(int n, int a 5,int b 5 ,int c 5) int i,j,k,x;for(i=0;inext=s 一next;s 一next=p;(B) s 一next=p;q 一next=s 一next(C) p 一next=s 一next;s 一next=q ;(D)s 一next=q;p 一next=s 一next ;8 在一个具有 n 个节点的有序单链表中插入一个新节点
3、并使其仍然有序的时间复杂度为 【 】(A)O(1)(B) O(n)(C) O(n2)(D)O(log 3n)9 在一个单链表中,已知 q 所指节点是 p 所指节点的前趋节点,若在 q 和 p 之间插入 s 所指向的节点,则执行的操作是 【 】(A)snext=pnext;pnext=s;(B) qnext=s;snext=p ;(C) pnext=s;snext=q ;(D)pnext=s next;snext=p;10 设在一个单链表中指针 p 指向节点 a,若要删除 a 之后的一个节点(若存在),则需执行的修改指针的操作为 【 】(A)p 一next=p 一next 一next(B) p=
4、p 一next(C) p=p 一next 一next(D)next=p11 带头节点的单链表 heald 为空的判定条件是 【 】(A)head=NULL(B) headnext=NULL(C) headnext=head(D)head!=NULL12 按照 1、2、3、4、5 的次序依次入栈时,出栈序列不可能是 【 】(A)1、2、3、4、5(B) 2、3、4、5、1(C) 5、4、3、2、1(D)5、4、1、2、313 在一个链队列中,假设 f 和 r 分别为队头和队尾指针,则插入指针 s 所指节点的运算是 【 】(A)fnext=s;f=s;(B) rnext=s;r=s ;(C) sn
5、ext=r;r=s ;(D)s 一next=f;f=s;14 假定一个顺序队列的队头和队尾指针分别用 front 和 rear 表示,则判断队列为空的条件是 【 】(A)front+1=rear(B) rear+1=front(C) front=0(D)front=rear15 假定利用数组 aN顺序存储一个栈,用 top 表示栈顶指针,top= 一 1 表示栈空,并已知栈未满,当元素 x 进栈时所执行的操作为 【 】(A)a-top=x(B) atop-=x(C) a+top=x(D)atop+=x二、填空题16 在 C 语言中,表示换行的转义字符是_。17 执行 for(j=k=0;jne
6、xt=pnext ;free(p);。22 对于一棵具有 n 个节点的树,该树中所有节点的度数之和为_。23 拓扑排序是针对_图的。24 _是按某种顺序将数据元素的无序序列调整成有序序列的过程。25 黑盒测试法包括等价划分、_以及错误推测法等。三、程序分析题26 以下程序是用来统计从键盘输入的一个正整数的各位数字中零的个数,并求各位数字中的最大者。例如:1080 的各位数字中零的个数是 2,各位数字中的最大者是 8。请将程序补充完整。#includemain()unsigned long num,max,t;int count;count=max=0;scanf(“old“,num);dot=
7、_;if(t=0)+count;elseif(maxmain()int i,j;for(i=0;imain()int i=1,j=1 ;for(;j10)break;if(j2!=0)j+=3;continue;j 一=1 ;printf(“d,dn“,i,j);29 以下程序的输出结果是_。#include main()int arr10,i,k=0 ;for(i=0;inext 指向第一个数据节点,如果 head 一next 的值为空,则单链表为空。12 【正确答案】 D【试题解析】 栈是按“先进后出”的原则组织数据的,所以选项 D 中若 5 先出栈,出栈的顺序只能是 5、4、3、2、1,
8、1 是不可能在 2、3 的前面出栈的。13 【正确答案】 B【试题解析】 链队列的插入操作在队尾进行,若队列未满,只需要在链队列尾部增加新节点,并让队尾指针指向新节点即可。14 【正确答案】 D15 【正确答案】 C【试题解析】 若栈未满,则进栈的步骤是:(1)栈顶指针上移 1 个节点。(2)将数据加入到 top 所指位置。二、填空题16 【正确答案】 n17 【正确答案】 4518 【正确答案】 str1419 【正确答案】 非线性结构20 【正确答案】 3n 一 221 【正确答案】 p=L 一 next22 【正确答案】 n123 【正确答案】 有向无环24 【正确答案】 排序25 【正
9、确答案】 边界值分析三、程序分析题26 【正确答案】 num1027 【正确答案】 j3!=028 【正确答案】 10,1229 【正确答案】 12四、程序设计题30 【正确答案】 #includemain()int num;int sum;scanf(“d“,&num);sum=num 100+num1010+num10;printf(“您输入的数据是:d,它各位上数字之和是:dn“,hum,sum);31 【正确答案】 void Copy(BTNode*b,BTNode*&t)if(b=NULL)t=NULL;elset=(BTNode*)malloc(sizeof(BTNode);tdata=b 一 data;Copy(b 一lchild,t 一lchild);Copy(b 一rchild ,t 一rehild) ;
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1