自考《计算机软件基础》考前试题和答案02243.docx

上传人:b****4 文档编号:3999353 上传时间:2022-11-27 格式:DOCX 页数:24 大小:138.70KB
下载 相关 举报
自考《计算机软件基础》考前试题和答案02243.docx_第1页
第1页 / 共24页
自考《计算机软件基础》考前试题和答案02243.docx_第2页
第2页 / 共24页
自考《计算机软件基础》考前试题和答案02243.docx_第3页
第3页 / 共24页
自考《计算机软件基础》考前试题和答案02243.docx_第4页
第4页 / 共24页
自考《计算机软件基础》考前试题和答案02243.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

自考《计算机软件基础》考前试题和答案02243.docx

《自考《计算机软件基础》考前试题和答案02243.docx》由会员分享,可在线阅读,更多相关《自考《计算机软件基础》考前试题和答案02243.docx(24页珍藏版)》请在冰豆网上搜索。

自考《计算机软件基础》考前试题和答案02243.docx

自考《计算机软件基础》考前试题和答案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,则无孩子节点。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1