自考《计算机软件基础》考前试题和答案02243.docx
- 文档编号:3999353
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:24
- 大小:138.70KB
自考《计算机软件基础》考前试题和答案02243.docx
《自考《计算机软件基础》考前试题和答案02243.docx》由会员分享,可在线阅读,更多相关《自考《计算机软件基础》考前试题和答案02243.docx(24页珍藏版)》请在冰豆网上搜索。
自考《计算机软件基础》考前试题和答案02243
2018年10月自考《计算机软件基础》考前试题和答案02243
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
第1题
【正确答案】D
本题分数2分
第2题有如下程序:
main( )
{int x=1,a=0,b=0;
switch(x)
{case 0:
b++;
case 1:
a++;
case 2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是【】
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
【正确答案】A
本题分数2分
第3题树是节点的集合,它的根节点数目是【】
A.有且只有1
B.1或多于1
C.0或1
D.至少2
【正确答案】A
本题分数2分
第4题在一个具有n个顶点的无向图中,要连通全部顶点至少需要【】条边。
A.n
B.n+1
C.n-1
D.n-2
【正确答案】C
本题分数2分
第5题若已定义x和y为float型且x=1,则表达式y=x+3/2的值是【】
A.1
B.2
C.2.0
D.2.5
【正确答案】C
本题分数2分
第6题设单链表中指针p指向节点a,若要删除a之后的节点(若不存在),则需修改指针的操作为【】
A.p->next=p->next->next;
B.p=p->next;
C.p=p->next->next;
D.next=p;
【正确答案】A
本题分数2分
第7题若变量已正确定义并赋值,以下符合C语言语法的表达式是【】
A.a∶=b+1
B.a=b=c+2
C.int 18.5%3
D.a=a+7=c+b
【正确答案】B
本题分数2分
第8题下面程序的运行结果是【】
#include
main( )
{int y=10;
do{y--;} while(--y);
printf("%d\n",y--);
}
A.-1
B.1
C.8
D.0
【正确答案】D
本题分数2分
第9题检查软件产品是否符合需求定义的过程称为【】
A.确认测试
B.集成测试
C.单元测试
D.系统测试
【正确答案】A
本题分数2分
第10题在执行char str[10]="China\0";strlen(str)的结果是【】
A.5
B.6
C.7
D.9
【正确答案】A
本题分数2分
第11题假设双链表节点的类型如下:
typedef struct linknode
{int data; /*数据域*/
struct linknode *left;/*left是指向前驱节点的指针域*/
struct linknode *right;/*right是指向后继节点的指针域*/
}bnode;
有一非空双向链表,把q所指新节点,插入到该双链表p所指节点的前面,以下正确的程序段是【】
A.q->right =p; q->left=p->left;p->left=q; p->left->right=q;
B.p->left=q; q->right=p; p->left->right=q; q->left=p->left;
C.q->left=p->left; q->right=p; p->left->right=q;p->left=q;
D.以上都不对
【正确答案】C
本题分数2分
第12题在一个长度为n的顺序表中删除第i 个元素(0
A.n-i
B.n-i+1
C.n-i-1
D.i
【正确答案】A
本题分数2分
第13题在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是【】
A.可行性分析
B.需求分析
C.详细设计
D.程序编码
【正确答案】B
本题分数2分
第14题对一个满二叉树,m个树叶,n个节点,深度为h ,则【】
【正确答案】D
本题分数2分
第15题若4个元素按A、B、C、D,顺序进队列Q,队头元素是【】
【正确答案】A
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格上填上正确答案。
错填、不填均无分。
第1题在C语言中,换行的转义符是___。
【正确答案】(P6)\n
本题分数2分
你的得分
修改分数
第2题设有一空栈,现有输入序列1,2,3,4,5,经过push,push,pop,push,pop,push,push后,出栈序列是___。
【正确答案】(P147)2,3,5,4,1
本题分数2分
你的得分
修改分数
第3题在带有头节点的单链表L中,若要删除第一个节点,则需执行的三条语句:
___;L->next=p->next;free(p);。
【正确答案】(P135)p=L->next
本题分数2分
你的得分
修改分数
第4题具有24个记录的序列,采用冒泡排序最少的比较次数是___次。
【正确答案】(P203)23
本题分数2分
你的得分
修改分数
第5题若有int a[5],*p=a;则p+2表示第___个元素的地址。
【正确答案】(P100) 3
本题分数2分
你的得分
修改分数
第6题若有说明和语句:
int a=5,y=6;y=a++;则y的值是___。
【正确答案】(P10)5
本题分数2分
你的得分
修改分数
第7题已知一棵二叉树的中序序列为 A+B*C-D/E,后序序列为ABC*+DE/-,其前序序列为___。
【正确答案】(P164)-+A*BC/DE
本题分数2分
你的得分
修改分数
第8题对如图所示的有向图 G ,它的拓扑序列是___。
【正确答案】(P186)a,b,d,c
本题分数2分
你的得分
修改分数
第9题下面程序段的执行结果是x=4,y=___。
int a=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d,y=%d",x,y);
【正确答案】(P11)11
本题分数2分
你的得分
修改分数
第10题设有一个10×10的对称矩阵A,采用下三角压缩存储方式,以行序为主,A[0][0]的存储地址为1000,每个元素占两个地址空间,则A[4][3]的地址是___。
【正确答案】(P155)1026
三、解答题(本大题共4小题,每小题4分,共16分)
第1题
【正确答案】(P185)有向图如下:
本题分数4分
你的得分
修改分数
第2题对于下图:
(1)从顶点1出发,按邻接顶点序号由小到大顺序给出广度优先遍历的顶点序列。
(2)给出用克鲁斯卡尔法构造的最小生成树。
【正确答案】P182、184)
(1)广度优先遍历的顶点序列:
1、2、3、4、5、6。
(2)最小生成树:
本题分数4分
你的得分
修改分数
第3题给出下图所示的无向图的邻接表表示,并写出针对该邻接表,从顶点A出发,进行深度优先遍历
与广度优先遍历时的顶点序列。
【正确答案】(P180~182)
(1)如下所示
(2)深度优先遍历的顶点序列:
ABCDEF
广度优先遍历的顶点序列:
ABDCEF
本题分数4分
你的得分
修改分数
第4题某公司在六个城市有分公司v1、v2、v3、v4、v5、v6;矩阵A中元素A[i,j]是vi到vj的交通票价(A[i,j]=0表示不通车),试为该公司设计一条由v1到各分公司去的最便宜的交通线路。
【正确答案】(P184)
四、程序分析题(本大题共4小题,每小题4分,共16分)
第1题写出下列程序的功能。
#include
main( )
{int u[ ]={1,5,6,8,3,5,2,6,8,9};
int i;
float x;
x=0;
for(i=0;i<10;i++)
x+=u[i];
x=x/10;
printf("%f",x);
}
【正确答案】(P45)本程序功能:
计算一维数组中所有元素的平均值。
本题分数4分
你的得分
修改分数
第2题
【正确答案】(P46)AzyD
本题分数4分
你的得分
修改分数
第3题写出下列程序的运行结果。
main( )
{int x=3,y=6,a=0;
while (x++!
=(y-=1))
{a+=1;
if (y } printf("x=%d,y=%d,a=%d\n",x,y,a); } 【正确答案】(P30)x=5,y=4,a=1 本题分数4分 你的得分 修改分数 第4题写出下列程序的运行结果。 long fun(int n) {long s; if(n==1||n==2)s=2; else s=n-fun(n-1); return s;} main( ) { printf("%d\n",fun(3));} 【正确答案】(P83)1 五、程序设计题(本大题共2小题,每小题9分,共18分) 第1题已知一单链表中的数据元素含有三个字符(即: 字母字符、数字字符和其他字符)。 试编写算法,构造三个循环链表,使每个循环链表中只含同一类的字符,且利用原表中的节点空间作为这三个表的节点空间(头节点可另辟空间)。 【正确答案】(P135) void DISM_lklist(lklist L,lklist D,lklist B,lklist R) { D=malloc(sizeof(int)); D->next=D; /*建D循环链表头节点*/ B=malloc(sizeof(char)); B->next=B; /*建B循环链表头节点*/ p=L;q=p->next; while(q! =null) {if((q->data<='9')&&(q->data>='0')) {p->next=q->next; /*在表L 中摘除q节点*/ q->next=D->next; D->next=q; /*将q节点插入D中*/ q=p->next; /*移动q指针*/ } else if ((q->data<='Z')&&(q->data>='A')||(q->data<='z')&&(q->data>='a')) {p->next=q->next; /*在表L中删除q 节点*/ q->next=B->next; B->next=q; /*将q节点插入B中*/ q=p->next; /*移动q指针*/ } else {p=q;q=p->next;} /*移动q指针*/ } p->next=L;R=L; /*使R为循环表*/ } 本题分数9分 你的得分 修改分数 第2题已知一棵具有n个节点的完全二叉树被顺序存储于一维数组的A[1]~A[n]元素中,试编写一个算法打印出编号为i的节点的双亲节点和孩子节点。 exit (1); } printf("current element: ",A[i]); int j=i/2; //下标为j的节点是下标为i节点的双亲 if(j>0) printf("parent: ",A[j]); else printf("It’s root,no parent! "); if(2*i { printf("left child: %d\\n",A[2*i]); printf("right child: %d\\n",A[2*i+1]); } else if(2*i==n) { printf("left child: ",A[2*i]); printf("no right child! "); } else printf("no children! "); } [解析]编号为i的节点,如果i>n,则此节点不存在。 若i=1,则为根节点,没有双亲节点,否则,双亲节点编号为i/2;若2*i [2*i],右孩子编号为A[2*i+1],若2*i=n,则无右孩子,若2*i>n,则无孩子节点。 "/> 【正确答案】(P163) void Request(int A[ ], int n, int i) { if(i>n) { printf("wrong,node %d does not exist! ",i); exit (1); } printf("current element: ",A[i]); int j=i/2; //下标为j的节点是下标为i节点的双亲 if(j>0) printf("parent: ",A[j]); else printf("It’s root,no parent! "); if(2*i { printf("left child: %d\\n",A[2*i]); printf("right child: %d\\n",A[2*i+1]); } else if(2*i==n) { printf("left child: ",A[2*i]); printf("no right child! "); } else printf("no children! "); } [解析]编号为i的节点,如果i>n,则此节点不存在。 若i=1,则为根节点,没有双亲节点,否则,双亲节点编号为i/2;若2*i [2*i],右孩子编号为A[2*i+1],若2*i=n,则无右孩子,若2*i>n,则无孩子节点。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件基础 自考 计算机软件 基础 考前 试题 答案 02243