全国高等教育自学考试计算机软件基础标准预测试卷四.doc
《全国高等教育自学考试计算机软件基础标准预测试卷四.doc》由会员分享,可在线阅读,更多相关《全国高等教育自学考试计算机软件基础标准预测试卷四.doc(14页珍藏版)》请在冰豆网上搜索。
教育城自考俱乐部:
全国高等教育自学考试
计算机软件基础标准预测试卷(四)
第一部分选择题
一、单项选择题(本大题共l5小题。
每小题2分。
共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。
请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在C语言中,合法的长整型常数是()
A.0LB.4962710
C.04312765D.0xa34b7fe
则程序运行后的结果是()
A.O03B.012
C.103D.112
3.下列程序的输出结果是()
)
printf("x=%d,y=%d,a=o%d\n”,x,y,a);
)
A.x=4,y=4,a=18.x=5,y=5,a=1
C.x=5,y=4,a=3D.x=5,y=4,a=l
4.执行下列程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;k=s[1]*10;()
A.不定值B.33
C.30D.10
5.下列说明不正确的是()
A.chara[10]="china”;B.chara[lO],*p=a;p="china"
C.char*a;a=”china”;D.chara[lO],*p;p=a="china"
6.有如下程序:
inta[10]={1,2,3,4,5,6,7,8,9,10);
int*p=&a[3],b;b=p[5];
则b的值是()
A.5B.6
C.9D.8
7.下列程序执行后的输出结果是
voidfunc(int*a,intb[])
{b[0]=*a+6;)
main()
{inta,b[5];
a=0:
b[0]=3:
func(&a,b);
printf("%d\n”,b[0]);
)()
A.6B.7
C.8D.9
8.设有如下定义:
struck,sk
{mta;
floatb;
}data;
Int*p;
若要使P指向data中的a域,则正确的赋值语句是()
A.p=&a:
B.p=data·a;
C.p=&data.a;D.*p=data·a;
9.判断一个栈ST(最多元素为mO)为栈满的条件是()
A.ST→top!
=OB.ST→top==O
C.ST→top!
=mOD.ST→top==m0
10.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加()
A.2B1
C.0D.-l
11.如下图所示的4棵二叉树中,其中不是完全二叉树的是()
12.在有向图中每个顶点的度等于该顶点的()
A.入度B.出度
C.入度与出度之和D.入度与出度之差
13.有一个有序表为{1,2,3,9,12,32,41,62,75,77,82,95,lOO},当二分查找值82的节点时,次比较后查找成功。
()
A.1B.2
C.4D.8
14.对5个不同的数据元素进行直接选择排序,最多需要进行——次比较。
()
A.8B.10
C.15D.25
15.大型软件系统的测试基本上由四个步骤组成,包括()
A.单元测试、集成测试、确认测试、结构测试
B.单元测试、集成测试、确认测试、系统测试
c.单元测试、集成测试、存储测试、系统测试
D.单元测试、模块测试、确认测试、系统测试
第二部分非选择题
二、填空题(本大题共l0小题。
每小题2分。
共20分)请在每小题的空格中填上正确答案。
错填、不填均无分。
16.一维数组初始化inta[5]={1,2};则a[O]=______,a[4]=______。
17.设inti=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是______。
18.strlen(”TurboC”)的值为______;strcmp(”ABC”,”abe”)______0。
19.C语言中访问地址的方式有两种:
______和______。
20.算法分析的目的是______,算法分析的两个主要方面是______。
21.在循环双链表中,每个节点有两个指针域,一个指向______,另一个指向______.
22.下列程序段是一个已建立好的单链表(表头指针为head)计算节点个数的函数,请填空。
intlength(node*head);
{intn=0;
node*P;
p=head;,
while(p!
=NULL){______
(1);
n++;)
______
(2);
)
23.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为______。
24.判定一个队列QU(最多元素为mO)为空的条件是______。
25.具有n个节点的完全二叉树的深度为______。
三、解答题(本大题共4小题,每小题4分。
共16分)
26.什么是软件危机?
软件危机产生的原因是什么?
27.二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,求M按行存储时元素M[3][5]的起始地址与M按列存储时哪个元素的起始地址相同?
28.分别画出此树的存储结构(双亲表示法、孩子链表表示法)。
29.画出下图的最小生成树。
四、程序分析题(本大题共4小题,每小题4分,共16分)
30.写出下列程序的输出结果。
31.写出下列程序的输出结果。
32.写出下列程序的输出结果。
33.写出下列程序的输出结果。
五、程序设计题(本大题共2小题,每小题9分,共18分)
34.输入20个实数存入一维数组,输出其中的最大值、最小值和平均值。
要求用指向数组的指针变量来处理数组元素。
35.有两个带有头节点的单向循环链表hl和h2,编写一个算法,将h2链表接到hl链表之后,连接后的链表仍然是循环链表。
计算机软件基础标准预测试卷(四)参考答案
一、单项选择题
1.A【解析】在一个整常量后面加一个字母1或L,则认为是longint型常量。
2.C【解析】a++是先使用a值再将a的值加1,b--是先使用b的值再将b的值减1,所以题中的逻辑运算表达式的值应当为真,即为1,而经过运算后,a和b的值已经分别变成0和3了。
3.D【解析】注意的是x++中X值的引用时,这里应当是先引用,后自加,具体执行过程如下:
第一次while循环:
条件为真,执行a=a+1=1;此时,X的值已为4,判断y条件为假,此时X的值已为5,退出while循环,执行printf。
4.A【解析】s数组定义后,s[1]并未赋值,因此k的值并不能确定为何值。
5.D【解析】D选项中a是数组名不能直接赋值。
6.C【解析】p指针指向aE3]的地址,p[5]就是a[8]的位置。
7.A【解析】
voidfunc(int*a,intb[])
{b[0]=*a+6;)/*b[O]的值为0+6的和*/
main()
8.C【解析】p是int型的指针,因此只能指向int型变量;正确引用a域的方法是data.a,将data.a的地址赋予指针P的方法为p=&data.a。
9.D【解析】top指向能存放最多元素的最高位置即表示栈满。
10.A【解析】具有n个节点的二叉树链式存储共有2n个链,其中只有n-1个用来存放该节点的左右孩子,其余的n+1个指针域为空;n+1-(n-1)=2。
11.C【解析】完全二叉树的节点在内存中存储是按由上至下、由左至右排列的。
12.C
13.C【解析】查找的次序依次是:
41、77、95、82。
14.B【解析】直接选择排序算法的关键字的比较次数为n*(n-1)/2。
15.B
二、填空题
16.10
17.1
【解析】本题表达式中优先级顺序从高到低为括号、+、&、|、&&。
18.7<
【解析】”TucboC”字符串的长度是7,'A'的ASCII码为65而'a'的为97故strcmp()函数的结果小于0。
19.直接存取方式间接存取方式
20.分析算法的效率以求改进空间复杂性和时间复杂性
21.前驱节点后继节点
【解析】循环双链表中每个节点的定义如下:
prior
data
next
22.
(1)p=p→next
(2)return(n)
【解析】
(1)当P不为空时,通过p=p→next;语句p指向下一个节点。
(2)n是记录节点个数的累加器,需要return返回。
23.(r—f+n)modn
24.QU→front==QU→rear
25.
三、解答题
26.软件危机是指软件开发和维护过程中遇到的一系列严重问题,主要包括两个方面:
(1)如何高效地开发软件以满足日益增长的应用需求。
(2)如何维护数量不断膨胀的已有软件。
软件危机产生的原因有两点:
(1)与软件自身的特点有关。
(2)与软件开发和维护的方法不正确有关。
27.M[3][4]
【解析】若考虑按行存储M[3][5]相对与M[0][0]的位置3*6+(5+1)为24,按列存储则为j*5+(i+1)的结果也为24(i为行下标,j为列下标),因此与M[3][4]的起始地址相同。
28.双亲表示法:
序号
节点
双亲
O
A
-1
1
B
O
2
C
O
3
D
1
4
E
1
5
F
1
6
G
2
孩子链表表示法:
29.
四、程序分析题
30.17
【解析】当x=15时,while条件为真,执行x++;,这时X的值为16,if条件为真.执行x++;后跳出循环体,此时x的值为l7。
31.5
【解析】
32.O
【解析】在函数fun()中,while((*n)--)是先引用