2017住房和城乡建设部10月高等教育自学考试《计算机软件基础(一)》试题
课程代码:02243
一、单项选择题
1.语句k=(m=5,n=++m);运行之后,变量k、m、n的值依次为
    A.5,5,6    B.5,6,5    C.6,6,5    D.6,6,6
2.下列表达式不能用来判断整型变量x中的值是否为奇数的是
    A.x%2==1    B.!(x%2==0)
    C.!(x%2)    D.x%2
3.下列程序运行后,a的值是
void main( )
{int a,b;
  for(a=1 ,b=1 ;a<=100;a++)
  {  if(b>20)  break;
      if(b%3 ==1) {b+=3;continue; }
      b-=5;
}
    }
A. 7      B. 8        C. 100        D. 101
4.下列为合法的数组定义的是
A. char str[ ] = {48,49,50,51,52,53};  B. int a[5] = 10,1,2,3,4,5};
C. int a[ ] = "string";              D. char str[ ] ='string';
5.若有定义:int*p1,*p2;,则不能用于指针变量p1、P2之间的运算符是
    A.=    B.==    C.+    D.-
6.下列程序运行后输出结果是
void fun (int i)
{  int m =2;
    m=i++;
    prinff( "% d" ,m);
}
void main( )
    int m=7,n =5;
    fun(n);
    pfinff("% d",m);
}
A. 5  5      B. 5  7      C. 6  6          D. 6  7
7.若定义如下结构,则能打印出字母M的语句是
struct person {
        char name[9];
        int age;
  } cl [10] ={"Wujun",20," Liudan",23," Maling",21,"zhangming",22};
  a. printf("%c\n",c1[3].name);    B. printf("%c\n",c1[2].name[0]);
  C. printf("%c\n",c1[2].name[1]);  D. printf("%c\n",c1[3].name[1]);
8.下列的时间复杂度中,执行时间最长的是
  A. O(n)        B. O(2n山东省农村信用社联合社)        C. O(n3)      D. O(lgn )
9.下列程序段的时间复杂度是
for(i=0;i<m;i++)
  for(j=0;j <n;j++)
    a[i] [j] =i,j;
A. O(m2)      B. O(n2)        C. O(m*n)      O. O(m+n)
10.在线性表的下列存储结构中,读取元素花费的时间最少的是
    A.顺序表    B.单链表    C.双链表    D.循环链表
11.设计一个判别表达式中括号是否配对的算法,采用的最佳数据结构是
    A.栈    B.链表    C.队列    D.顺序表
12.将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为
    A.48    B.50  C.98    D.99
13.对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为
    A.n-1    B.n    C.(n-1)2    D.n2
14.无向图中一个顶点的度是指图中
    A.通过该顶点的简单路径数    B.与该顶点相邻接的顶点数
    C.与该顶点连通的顶点数    D.通过该顶点的回路数
15.在软件工程的设计工具中,不属于详细设计阶段的工具是
    A.判定树    B.盒图    C.问题分析图    D.程序流图
二、填空题
16.当a=3,b=2,c=1时,表达式f=a>b>c的值是       
17.专门的指针运算符是      和*。
18.在C语言中,复合语句是由一对      括起来的若干语句组成的。
19.设char s[10]="abcd",t[]="12345",则s和t在内存中分配的字节数分别是     
20.线性结构中元素之间存在一对一关系,树形结构中元素之间存在      关系。
21.在一棵二叉树中,度为0的结点的个数是n0,度为2的结点的个数为n2,则有n0和n2辽宁人事考试网二建的关系为     
22.图的存储结构有邻接矩阵和邻接链表,其中图的      存储结构是唯一的。
23.深度优先遍历类似于二叉树的      遍历。
24.模块独立性由两个准则度量,其中用于衡量不同模块间相互依赖的紧密程度的是——。
25.在软件测试阶段,负责纠正错误的过程称为     
三、简答题
26.已知一个二叉树的先序遍历和中序遍历结果分别为ABDFCEGH和DFBAEHGC,试画出这棵二叉树。
27.试用权集合{10,4,5,8,1,3}构造哈夫曼树,并计算哈夫曼树的带权路径长度(WPL)。
28.已知某带权连通图如题28图,试用克鲁斯卡尔法求该图的最小生成树。
29.有一组关键字值为:(46,79,56,38,40,84)。试用直接插入排序的方法进行排序,写出排序思想及前4趟结果。
四、程序分析题
请将划线部分的程序代码补充完整。
30.以下程序的功能为:求101—200的奇数和。
#include < stdio, h >
void main( )
{  iht x,s;
    s=0;
    for(x=101;x<200;          )
                           
  printf("奇数和为:%d",s);
}
31.以下程序的功能是:输出[100,999]之间所有的水仙花数。所谓的水仙花数就是指该数等于其所有位上的数字的三次幂之和,如153=13+53+33
#include < stdio, h >
void main( )
{  iht n,i,j,k;
    for(n = lO0;n<1000;n++)
    {  k=n/100;
        j=n/1O% 10;
        i=              ;
      if(                    )
            prinff( "%d",n);
计算机考试报名入口  }
    prinff("\n");
}
32.下列程序的功能是:从键盘输入一个年份数据,判断此年份是否为闰年。(注:满足下面两个条件中的一个即为闰年:一、400的倍数,二、4的倍数但不是100的倍数)
#include < stdio, h >
void main ( )
{  int y, i;
    seanf("%d", &y);
    if (y%400==0)
      i=1;
    else if (                    )
      i=1;
    else
                                ;
高校人才招聘网    if(i ==1)
      printf("该年为闰年\n" );
江苏成人高考网    if( i ==0)
      printf("该年为平年n");
}
33.以下程序的功能是:将键盘输入字符串中的'1'~'9'转换成比它小1的数字字符,'0'转换成'9'。如:输人:ab50cd89,输出:ab49cd78
#include < stdio, h >
#include < string, h >
void main( )
{ eharsl[100], s2[100];
    iht i, s_len;
    printf( Please input string: \n");
    gets( si );
    s_len = strlen( s1 );
    for(i=0; i < s_len; i++ )
  {
        if(s1[i] >='1'&&s1[i]<='9')
                              ;
        else if(s1[i] ==0)
                                        ;
        else
            s2[i]=si[i];
    }
      s2[i] ='\o';
  puts (s2);
}
五、程序设计题
34.某学校有m个班(m≤10),每班有n名学生(n≤50)。编写C语言程序,从键盘输入班级数m和学生数n,并输入每个学生1门课的成绩,计算并输出年级最高分及各班学生的平均分。
35.编写统计二叉树中叶子结点数的递归函数。(包括数据结构的定义)