1、2015 年 4 月全国自考(计算机软件基础)真题试卷及答案与解析一、单项选择题1 C 语言中,字符串的结束标记是 【 】(A)空格(B)换行(C) 0(D)t2 算式 写成 C 语言算术表达式,错误的是 【 】(A)a*bc*d(B) a*bc d(C) ac*b d(D)a*b(c*d)3 下列程序段执行后,y 的值是 【 】int x=80,y ;y=x50? 60:70;(A)50(B) 60(C) 70(D)804 下列代码段执行后,k 的值是 【 】int i=0,j=1,k=2;if(j=i)k=i+j;(A)0(B) 1(C) 2(D)35 下列数组定义语句中,错误的是 【 】
2、(A)int i2=0,1,2;(B) int i2=0,1,2,3;(C) int i22=0,1,2 ;(D)int i22=0 ,1 ,2,3;6 有下列程序:#includevoid fun(int a,int n)for(int i=0; ivoid main()char a=“abcd“,*p=&a1;printf(“s“,p);其执行后的输出结果是 【 】(A)bcd(B) a(C) b(D)abcd8 对于下列定义:struct circle int x,y,radius;c;下列语句正确的是 【 】(A)c 一x=20;(B) circle 一x=20 ;(C) circle
3、x=20;(D)cx=20;9 下列程序段中算法的时间复杂度是 【 】int fun(int n)int i=0,sum=0;while(i , ,),从 a 点开始对该图进行深度优先搜索,不可能得到的顶点序列是 【 】(A)a,b, d,e ,c(B) a,b,e ,d,C(C) a,b,c ,e ,d(D)a,e,b,e,d15 在软件外部环境或数据环境发生变换时对软件进行的修改称为 【 】(A)改正性维护(B)预防性维护(C)完善性维护(D)适应性维护二、填空题16 结构化程序的三种基本结构是_、选择结构和循环结构。17 C 语言程序中,函数定义不能嵌套,但函数_可以嵌套。18 一个完整
4、的 C 程序中只能有一个_函数,此外它还可以包含零个或多个子函数前者可以调用后者,但后者不能调用前者。19 C 语言函数在利用参数传递数据时,可以采用单向值传递和_传递两种方式。20 下面程序执行后,其输出是_。#includeint fun(int n)static int k=1:k=k*n:return k;void main()int i;i=fun(2);i=fun(10);printf(“d“,i) ;21 大型软件的测试基本上由四个步骤组成,它们是单元测试、集成测试、确认测试和_。22 在一个单链表中,要删除 p 指针所指结点的下一个结点,其操作是:(1)q=p 一next ;(
5、2)p 一next=_;(3)free(q);23 下面是顺序栈 s 出栈操作的代码,top 是栈顶指针,它等于一 1 时表示栈空。请填空完成程序。#define N 100structchar dataN;int top;s;void pop(s,x)if(s top=一 1)栈下溢; elsex=_;stop :24 一棵哈夫曼树中的结点总数是 15,该树中的叶子结点数是_。25 求图的最小生成树是针对边上带权值的_图的,最常见的方法有普里姆法和克鲁斯卡尔法。三、简答题26 简述 C 语言中 break 语句的作用。27 简述“*”在指针变量定义和取内容运算时作用的不同之处。28 简述线性
6、表顺序存储结构和链式存储结构的主要优、缺点。29 写出题 29 图所示二叉树的中序遍历和后序遍历结果序列。四、程序分析题30 下面程序的功能是读取用户输入的字符串,并将它逆序后输出。请在程序中的_处填上正确的内容,完成该程序。#includevoid main() int i=0,j=0;char s100,c;scanf(“s“,s);while(sj) j+:while(i0)sum=sum+*p;c+;p+;sum=sumc;return sum;fun 函数的功能是:_。32 下面是利用折半查找算法在一个按升序排列的数组中查找值为 key 的元素,n为数组的元素数量。请在程序中的_处填
7、上正确的内容,完成该函数。int bin(int x,int key , int n)int low=1, high=n,mid;while(lowxmid)low=mid+1;else_;return 一 1;33 下面是利用冒泡排序法对数组中的元素进行排序。请在程序中的_处填上正确的内容,完成该函数。void sort(int x,int n)int i,j,k,m;for(i=0;i50 的值为非 0,所以 y 的值为 60。 4 【正确答案】 C5 【正确答案】 B6 【正确答案】 D7 【正确答案】 A8 【正确答案】 D【试题解析】 引用结构变量的格式为:结构变量成员,本题中 c
8、为结构变量,语句 cx=20;的含义是将 20 赋值给 c 变量的 x 成员。9 【正确答案】 D10 【正确答案】 B【试题解析】 长度为 n 的顺序表的插入运算的时间复杂度与 n 有关,T(n)=O(n)。11 【正确答案】 C12 【正确答案】 A【试题解析】 数据流图中的基本符号有四种表示数据存储。13 【正确答案】 A【试题解析】 对具有 n 个顶点, e 条边的完全无向图来讲,e= n(n 一 1),可以说完全无向图是边数最多的无向图。14 【正确答案】 C15 【正确答案】 D【试题解析】 适应性维护是为了适应外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入输出
9、方式、数据存储介质)的变化而去修改软件的过程。二、填空题16 【正确答案】 顺序结构17 【正确答案】 调用18 【正确答案】 main(或者主 )19 【正确答案】 地址20 【正确答案】 2021 【正确答案】 系统测试22 【正确答案】 q 一next(或者 p 一next next)23 【正确答案】 sdatas top24 【正确答案】 825 【正确答案】 无向连通三、简答题26 【正确答案】 在 C 语言中,break 语句主要用在 switch 和循环语句内。break 用在 switch 语句中时,其作用是跳出 switch,执行 switch 下面的语句。用在循环语句中时
10、,其功能是跳出本层循环,接着执行循环下面的语句。27 【正确答案】 在定义时,“*” 说明定义的变量是一个指针类型变量,而在取内容运算时,“*”的作用是取指针所指地址中的内容。28 【正确答案】 顺序存储的优点是对存储空间的利用率高,在查找时运算速度快。其缺点是在插入、删除时的运算性能较低。链式存储的优点是插入、删除时的运算速度快,而其缺点是查找运算的性能较低,对存储空间的利用率较低。29 【正确答案】 中序遍历序列:DBHEAFICG后序遍历序列:DHEBIFGCA四、程序分析题30 【正确答案】 ji+31 【正确答案】 计算数组 a 中值大于零的元素的平均值。32 【正确答案】 mid=(10w+high)2high=mid 一 133 【正确答案】 xjxj+1break五、程序设计题34 【正确答案】 #includevoid main()char a200,*p,c ;int i=0:printf(“n 请输出一个字符串:“);gets(a);printf(“n 请输出要统计的字符:“);scanf(“c“,&c);for(p=a;pnext;while(p)i+:p=p 一next;return i;