《[工学]2011年4月-2004年4月自学考试计算机软件基础试题及答案》由会员分享,可在线阅读,更多相关《[工学]2011年4月-2004年4月自学考试计算机软件基础试题及答案(79页珍藏版)》请在金锄头文库上搜索。
1、12345678910111213141528、已知一组关键字49,31,12,68,27,要求对其按升序排序,写出使用直接选择排序的每趟结果。29、某大学图书馆对读者借阅图书制定有关规定如下:(1)本科学生可以借阅 5 本;(2)研究生:硕士研究生可以借阅 7 本,博士研究生可以借阅 10 本;(3)教职工:教授、副教授职称的教师可以借阅 15 本,其他教职工可以借阅 12 本。用判定树表示上述算法。1617五、程序设计题(本大题共 2 小题,每小题 9 分,共 18 分)34、编写 C 语言函数 f(float x),并用主函数调用该函数,输出计算结果。18时当 时当 时当 10xx3co
2、ssin)(2f35、已知下面链表节点类型,设计一个算法 dellinklist,删除以 head 为头指针的单链表(带头节点)中数据域值为 x 的节点。Struct nodeInt data;Struct node *next;19202122232425262008 年 4 月自考计算机软件基础(一)试卷第一部分选择题一、单项选择题(本大题共 l5 小题,每小题 2 分,共 30 分)在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。1下列与 k=n+完全等价的表达式是 ( )27Ak= + n Bk+ = n+lCk=n,n=n+1
3、 Dn=n+1,k=n2已知 int a=5,b=3,*P=&b,*q=&a;下列赋值语句中与 b=a;等价的语句是 ( )A*P=*q; BP=q; C*P=&q; DP=*b;3已知 C 语言函数 fun()的定义形式为void fun(char ch,float x). 则正确调用函数 fun()的语句是 ( )Afun(“a”,30); Bfun(ab,195);Ct=fun(z,36); Dfun(65,32);4已知 char sr20;int i;从键盘向数组 sr 输入一字符串的正确语句是 ( )Agets(sr); Bgets(sr20);Cfor(i=0;if8.下列程序是
4、计算两个矩阵的乘积,其算法的时间复杂度是 ( )Void mulmatrix(int n,int 5,int b 5,int c 5)int i,j,k,x;for(i=0;inext= =head Dhead-next= =NULL10一个栈的进栈数据元素序列为 l、2、3、4、5,则不可能为栈的出栈序列的是 ( )A2、3、4、1、5 B1、5、4、3、2C2、3、1、4、5 D5、4、1、3、211一棵二叉树的先序遍历序列为 ABCD,中序遍历序列为 CBAD,则后序遍历序列是( )A BCDA B BCADC CBDA D ABDC12在具有 n 个顶点、e 条边的无向图的邻接表中,所
5、有边的链表中边节点的总数是 ( )Ae2 BeC2e D2e+n13已知一个有序表为(12,18,24,35,47,50,62,83,90,115,134),用折半查找法查找值为 90 的元素时,查找成功所使用的比较次数是 ( )A1 B2C3 D414当待排序序列中记录的关键字基本有序或记录个数较少时,则最好的排序方法是( )A基数排序 B冒泡排序C直接选择排序 D直接插入排序15.在瀑布模型中,将软件划分为若干个阶段,软件项目的需求分析一般属于 ( )29A维护阶段 B开发阶段C运行阶段 D计划阶段第二部分非选择题二、填空题(本大题共 l0 小题,每小题 2 分,共 20 分)请在每小题的
6、空格中填上正确答案。错填、不填均无分。16数学式“30prior = q-prior;t-next=q:_,q-prior=t;22.设有一个 1010 的对称矩阵 A,采用下三角压缩存储方式,以行序为主,A00的存储地址为 100,每个元素占一个地址空间,则 A32的地址是 。23在有向图中,以顶点 V 为终点的边的数目称为 v 的 。24.将一棵有 100 个节点的完全二叉树从根这一层开始,每一层从左到右依次对节点进行编号,根节点的编号为 1,则编号为 49 的节点的左孩子的编号是 。25. 软件工程包括三个要素,分别为方法、 和过程。三、解答题(本大题共 4 小题,每小题 4 分,共 1
7、6 分)26用盒图(Ns 图)画出结构化程序设计的三种基本结构。27对于图 G 一 1(1)从顶点 1 出发,按邻接顶点序号由小到大顺序给出广度优先遍历的顶点序列。(2)给出用克鲁斯卡尔法构造的最小生成树。3028假设字符 a,b,c,d,e,f 使用频率分别是 007,009,013,021,023,027,构造哈夫曼编码树(权值小的为左子树,权值大的为右子树),并根据哈夫曼编码树写出 a,b,c,d,e,f 的哈夫曼编码。29已知一数值序列为33,61,12,75,8,54,41,请分别写出按升序进行排序时,直接选择排序、直接插入排序第一趟结束后的数值序列。四、程序分析题(本大题共 4 小
8、题,每小题 4 分,共 16 分)30写出下列程序的运行结果。main()int j,a5=10,11,12,13,14,*P=&a1;for(j=1;jdataQ-head;Q-head= ;Retum1;五、程序设计题(本大题共 2 小题,每小题 9 分。共 l8 分)34编写 c 语言程序实现:从键盘上输入 10 个学生某门课的成绩,计算平均成绩,统计并输出所有高于平均分的学生成绩及人数。35设一棵二叉树以二叉链表赤存储,节点结构为:Lchild data Rchild32定义此存储结构的数据类型,用 C 语言编写一个递归函数,计算此二叉树上度为 l 的节点个数2008 年 4 月计算机
9、软件基础(一)试卷参考答案一、lC 2A 3D 4A 5C 6C 7B 8D 9A l0D 11C l2C l3B l4D l5B二、l6y30&yprior-next=t 22108 23入度2498 25工具三、2627(1)广度优先遍历的顶点序列:l 2 5 6 7 3 4 (2 分)(2)最小生成树: (2 分)分)28(1)哈夫曼编码树:(2 分)33(2)哈夫曼编码:a:1110 b:llll c:110 d:00 e:01 f:10 (2 分)29(1)直接选择排序 8,61,12,75,33,54,41(2 分)(2)直接插人排序 33,61,l2,75,8,54,41(2 分
10、)四、3011 11(2 分) 13 12(2 分) 319(2 分)11(2 分)32maxmax)(2 分)x14=maX(2 分)33Q-head= =Q-tail(2 分) (Q-head+1)100(2 分)五、【说明】下述答案仅供参考,若采用其他方法答题,只要正确实现题目要求,仍可获满分。若程序不完整,可酌情给分。34main()int i,n=0;float x10,av=0;for(i=0;iav)n+;printf(“72fn”vi);printf(“dn”,n);【评分参考】定义正确 3 分,输入正确 l 分、平均值计算正确 2 分,输出正确 3 分。35参考答案一:typ
11、edef struct nodeint data;struct nodeLchild*Rchild;NODE;void leaf(NODE*root)34if(root!=NULL)if(root-Lehild!=NULL&root-Rchild=NULL)!(root-Lehild=NULL&root-Rchild I=NULL)n=n+1: leaf(root-Lchild);leaf(root-Rehild);参考答案二:struct nodeint data;struct node*Lchild*Rchild;void leaf(struct node*root)if(root!=NU
12、LL)if(root-LchildI=NULL&root-Rchild=NULL)!(root-Lchild= =NULL&root-Rchild!=NULL)n=n+1:leaf(root-Lchild);leaf(root-Rchild);【评分参考】结构定义正确 2 分,函数定义正确 2 分,条件正确 3 分,递归正确 2 分。2007 年 4 月自学考试计算机软件基础(一)试卷第一部分选择题一、单项选择题(本大题共 40 小题。每小题 l 分。共 40 分)在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。1属于 c 语言基本数据
13、类型的是 ( )A指针 B数组C结构 D实型摄氏温度的正确的赋值表达式是( )353C 语言无符号整型变量(unsigned int)的取值范围是 ( )A-32768 至 32767 B0 至 32767C0 至 65535 D-65536 至 655354C 语言中,已知 int Y;则执行 y=49+sqrt(40)后,y 的值是 ( )A6 B69C7 D895下列十进制数中,能用八位二进制数正确表示的是 ( )A199 B256C300 D4006已知 ch 是字符型变量则下列 C 语言语句中错误的赋值语句是 ( )Ach=0 ; Bch=a+b;Cch=7+9; Dch=5+9;7C 语言中,已知 int al,a2;char c1,c2;( )8下面 C 语言程序段的运行结果是(注:口表示空格)int x=10,y=20,z=30; printf(”x=d,y=d,z=d” ,x,y,z); ( )A10,20,30Bx=10,y=20,z=30Cx=10 y=20 2=30main()( )36A8,5 B19,100C19,101 D20,101( )AA BZCa Dz11下列值为 1 的 C 语言表达式是( )A! 1&0 B10(2+10)C!(99100) D(2+9)b?a:(cd?c:d)的值是( )A0