1、2016 年 4 月全国自考(计算机软件基础)真题试卷及答案与解析一、单项选择题1 下列选项中,不合法的变量名称是 【 】(A)&23(B) 6a(C) ptr 5(D)min2 C 语言中,已知 int i=10,j;,下列语句中错误的是 【 】(A)j=i+;(B) j=+i;(C) j=i+1;(D)j=10+;3 下列程序中 while 循环体执行的循环次数是 【 】#includevoid main()int i=1,i=0 ,k=1;while(i0 j void fun(int i,int j)printf(“0d,dn“,+i,j+) ;void main() int i=5,
2、j=8;fun(i,j);printf(“d,dn“,i,j);其执行后的输出结果是 【 】(A)6,85,8(B) 6,86,9(C) 6,95,8(D)6,9696 执行下列语句后,i 的值等于 【 】int i=10,*p=&i;*P+=2;(A)2(B) 10(C) 12(D)存在语法错误7 对于下列代码片段:struct dateint year,month,day;birthday;下列语句正确的是 【 】(A)dateyear=2016;(B) birthdayyear=2016;(C) dateyear=2016;(D)birthday year=2016:8 下列程序段中算法
3、的时间复杂度是 【 】for(int i=0; ivoid fun(int n)static int k=1;k=k*n;printf(“d,“,k) ;void main()fun(10);fun(10)21 c 语言中专门的指针运算符有两个:&和*,前者是取地址运算符,后者是_运算符。22 在一个单链表中,要在 p 指针所指结点之后插入 s 结点,其操作是 snext=pnext 和_。23 在一棵二叉树中,度为 2 的结点数是 3,度为 1 的结点数是 2,该树中总的结点数是_。24 有向图的邻接矩阵表示中,各行的非零元素个数为该行对应顶点的出度,各列的非零元素个数为该列对应顶点的_度。
4、25 软件测试的目的是尽可能多地找出程序中的潜在错误。在完全不了解程序内部结构和处理过程的情况下,对程序的每项功能进行测试,这种测试方法是_测试。三、简答题26 简述 break 语句和 continue 语句在循环体内的作用。27 指针变量自加 1 后,该变量的值一定增加 1 个字节吗?为什么?28 如果对一个线性表的操作主要是以插入、删除为主,该线性表应采用什么存储结构?请说明理由。29 已知二叉树结点的顺序存储结构如题 29 图所示,请画出该二叉树,并写出其先序和中序遍历序列。四、程序分析题30 下面程序的功能是把一维数组 a 内的元素逆序排列。请在程序中的_处填上正确的内容,完成该程序
5、。#includevoid main()int a5=1,2,3,4,5,k;for(int i=0, j=4;i0 jnext=s23 【正确答案】 924 【正确答案】 入25 【正确答案】 黑盒三、简答题26 【正确答案】 当 break 语句和 continue 语句用在循环体内时, break 语句的作用是结束整个循环,而 continue 语句则只结束本次循环,重新进行下次循环判断。27 【正确答案】 不一定,指针变量自加 1 后,其值的增加量与指针变量的类型有关。28 【正确答案】 该线性表应以链式存储结构存储。因为采用链式存储结构时,在插入、删除时只需修改相应的指针,而不用移动其他结点。29 【正确答案】 先序遍历序列:ABDGECFH 中序遍历序列:DGBEAFHC四、程序分析题30 【正确答案】 i+,j31 【正确答案】 计算数组 a 内 n 个元素的平均值32 【正确答案】 x0=k;i;33 【正确答案】 x0next&jnext;j+;if(!pnext ji 一 1)删除位置不合理return 一 1;q=pnext;删徐并释放结点pnext=q 一next;free(q);return 0,