计算机软件基础一真题和答案 及重点解析.docx
- 文档编号:9499940
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:30
- 大小:684.24KB
计算机软件基础一真题和答案 及重点解析.docx
《计算机软件基础一真题和答案 及重点解析.docx》由会员分享,可在线阅读,更多相关《计算机软件基础一真题和答案 及重点解析.docx(30页珍藏版)》请在冰豆网上搜索。
计算机软件基础一真题和答案及重点解析
2012年4月一、单项选
1.在绘制程序流程图时,表示“条件判断”的符号是【】
A.B.C.D.
2.下列运算符中优先级别最高的是【】A.
C.!
=D.&&
3.if语句的格式如下
if(表达式)语句
其中的“表达式”【】A.必须是逻辑表达式B.必须是关系表达式
C.可以是逻辑表达式或关泵表达式D.可以是任意合法的表达式
4.C语言中数组名作为函数参数时,其数据传递方式是【】
A.地址传递B.单向值传递C.返回值传递D.全局变量传递
5.下面程序的运行结果是【】
A.344B.345C.575D.577
6.已知:
structdate
{intyear;
intmonth;
intday;
)d,*p=&d;
下列引用结构成员的表达式中,错误的是【】
A.*p->yearB.d.dayC.p->monthD.*p).year
7.在下列时间复杂度中,最大的是【】
A.O(n)B.O(nlog2n)C.O(
)D.O(
)
8.在长度为n的链表的第i个节点后插入一个新节点,需要移动的节点数是【】
A.OB.iC.n-iD.n-i+1
9.下列关于循环队列的叙述中,正确的是【】
A.队头指针固定不变,队尾指针随队列长度变化
B.队尾指针固定不变,队头指针随队列长度变化
C.队头指针可以大于队尾指针,也可以小于队尾指针
D.队头指针只能小于等于队尾指针,两者的差值为队长
10.下列关于哈夫曼树的叙述中,错误的是【】
A.哈夫曼树中没有度为1的节点
B.哈夫曼树是带权路径长度最小的二叉树
c.一组互不相同的权值可唯一确定一棵哈夫曼树
D.哈夫曼树的节点总数等于叶节点数的2倍减l
11.下图中不同的最小生成树的个数是【】
A.2B.3C.4D.5
题11图
12.F列关于折半查找算法的叙述中,正确的是【】
A.可以用于有序的顺序表,也可以用于有序的链表
B.可以用于有序的顺序表,但不能用于有序的链表
c.可以用于无序的顺序表,也可以用于无序的链表
D.可以用于无序的顺序表,但不能用于无序的链表
13.如果说一个排序算法是稳定的,则它的含义是【】
A.待排序记录的关键字均互不相同
B.关键字相同的记录在排序前后的相对位置不变
c.该排序算法既可用于内排序,也可用于外排序
D.该排序算法既可用于顺序存储,也可用于链式存储
14.在绘制数据流图时,表示“加工’’的符号是【】
A.矩形B.圆形C.平行线D.带箭头的弧线
15.对模块内部的处理流程进行具体设计,属于【】
A.需求分析B.总体设计C.详细设计D.编码
二、填空题(本大题共10小题,每小题2分,共20分)
16.已知inta=5,b=8,c;表达式C=a/b*b的值是_________________。
17.语言中强制退出当前循环可使用的语句是____________________。
18.已知chara='A';语句printf("%c¨,a+3);的输出结果是______________。
19.已知charsl[20]="Good",*s2="Luck!
¨;函教strlen(strcat(sl,s2))的值是____________。
20.如下图所示的循环单链表中,指针p指向链表中任一节点。
要判断指针p是否指向头节点,可使用的表达式是_______________________。
21.对以下二叉树进行后序遍历,得到的序列是_________________________。
题21图
22.具有n个顶点的完全无向图,其顶点的度之和是_________________________。
23.直接选择排序的时间复杂度为____________________。
24.在软件工程中,软件=呈序+数据+_________________。
25.如果不考虑程序的内部实现细节,只从功能上对程序进行检测,考察其是否能够达
到预期的要求,这种测试方法称为______________________。
三、解答题(本大题共4小题j每小题4分,共16分)
26-用N-S图描述下列函数的程序流程。
28.已知有向图如下:
请写出该图的全部拓扑排序序列。
29.已知序列(20,15,18,30,25,70,80,65),按给定顺序构造一棵二叉排序树,并给出
成功查找时的平均查找长度。
30.请写出下列程序的输出结果。
31.请写出下列程序的输出结果。
32.下列程序的功能是输出高度为h的三角形。
下图是h等于4时的输出。
33.
五、程序设计题(本大题共2小题,每小题9分,共18分)
34.编写程序:
从键盘输入一个浮点数a(a≥o),利用迭代公式计算x=
。
迭代公
式如下:
要求:
当
的绝对值小于
是迭代结束,输出结果
。
35.35.设二叉树以二叉链表进行存储,节点结构如F:
其中data的数据类型为int,要求:
(1)请给出该二叉树节点类型的C语言描述;
(2)编写一个递归函数count2计算给定二叉树中度为2的节点。
2012年4月答案一、单项选择题(本大题共15小题,每小题2分,共30分)
1.D2.B3.D4.A5.C
6.A7.D8.A9.C10.C
11.A12.B13.B14.B15.C
二、填空题(本大题共10小题,每小题2分,共20分)
16.017.break(或goto)18.D19.9
20.p!
=head(或p—head)21.dbegfca22.n(n-1)23.O(n2)
24.文档25.黑盒测试(或黑盒法,或功能测试)
三、解答题(本大题共4小题,每小题4分,共16分)
【评分参考】正确画出while循环给1分;正确画出if语句给1分;正确画出do-while
循环给1分;其他部分正确给1分?
27.【参考答案1】
(1)栈空的判断条件是:
stop==-1;
(2)voidpop(s,x)
{if(s.top==-1)下溢;
elsex=s.data[s.top--];
}
【参考答案2】
(1)
栈空的判断条件是:
s.top==0;
(2)
voidpop(s,x)
{if(s.top—O)下溢;
else
{s.top一;
x=s.data[s.top];
}
}
28.序列1:
abcdef序列2:
abcedf序列3:
acbdef序列4:
acbedf
29.
平均查找长度=(1+2*2+3*3+2*4)/8=22/8=2.75(1分)
四、程序分析题(本大题共4小题,每小题4分,共16分)
30.结果输出为:
156,89,55,72(每个输出1分)
31.结果输出为:
64,79,15,180(每个输出1分)
32.①&h(1分)
②h(1分)
③h-k(1分)
④2*k-l(1分)
计算机软件基础
(一)重点解析
一、填空题
1.程序设计的关键在于设计出一个好的算法。
2.数据、数据节点和数据项构成了数据组织的三个层次。
其中数据项是具有独立含义的最小标识单位。
3.数据的逻辑结构和物理结构之间的相互运算是通过算法来实现的。
4.所有节点按1对1的邻接关系构成的整体就是线性结构。
5.表长为0的线性表称为空表。
6.直接插入排序最好情况的时间复杂度为O(n)。
7.程序段“i=l;while(i<=n)i=i*2”的时间复杂度为O(log2n)。
8.c语言属于计算机高级语言,既可以用来写系统软件,也可以用来写应用软件。
9.算法是有穷的,而程序可以是无穷的。
10.实型常量在一般微型机中占用4个字节。
11.char型和int型的运算结果为int型。
12.Getchar()和putchar()函数只能输入、输出1个字符。
13.源程序必须翻译成机器指令即机器语言,这一工作由编译系统来完成。
14.字符串的长度为串中字符的个数,但在内存中所占的字节数应比长度多1。
15.执行:
a=3,b=4,a=a+b,b=a+b后,则a和b的值分别为7和11。
16.对于scanf(“%2d%3d%4d”,&a,&b,&c)语句,若键入:
l23456789,则变量b的值为345。
17.设intx=10,y,z;执行y=z=x;x=y=-Z后,变量x的结果是1。
18.若有说明:
Inta[][5]={1,2,3,4,5,6,7,8,9,10),则数组第一维的大小为2。
19.在函数定义中,若没有返回值,其类型定义为空类型。
20.c语言规定不能嵌套定义函数,但可以嵌套调用函数。
21.程序中出现的/*…...*/表示注释,可以出现在程序的任何地方。
22.c语言的数据结构是以数据类型的形式描述出来的。
23.%运算符的运算对象就为整数。
24.getchar()函数只能出现在表达式的位置,接收该函数的值时可以用字符型或整型变量。
25.请将│x│≤a,写成一个逻辑表达式:
x<=a&&x>=-a。
26.在结构化程序的三种基本结构是指顺序结构、选择结构和循环结构。
27.在c语言中,二维数组在内存中的排列顺序是按行存入。
28.一个完整的c程序可由1个主函数或由1个主函数和若干个子函数组成。
29.在c语言中,变量的使用一般遵守“先定义,而使用”的原则。
30.c语言中有两个专门的指针运算符*和&,它们都是单目运算符。
31.在计算机的数据处理中,将字符、声音、光、图形和图像均称为数据。
32.在线性表的顺序存储结构中,其相邻的数据节点在物理位置上也是相邻的。
33.若在数据处理中,需要经常对数据进行插入、删除运算,则宜将该数据设置为链式存储。
34.二叉树的遍历方法有:
先序遍历、后序遍历和中序遍历。
35.单链表表示法的基本思想是用指针表示结点间的逻辑关系。
36.C语言规定,数组元素的下标从0开始,最大值为长度减1。
37.在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式。
38.一个变量的作用域是指该变量在程序中的有效范围,局部变量的作用域就是其所在的函数。
39.C语言中访问地址的方式有两种即直接存取方式和间接存取方式。
40.运行下列语句:
int*p,*q,x[5];p=x;q=p+3;则q指向数值元素x[3]。
41.若某问题的空间复杂度为o
(1),则认为该问题所耗空间与问题的规模无关。
42.在线性表的链式存储结构中,单链表中每个节点是一个结构类型。
43.在三对角阵的压缩存储中,已知Aij=Bk,试建立k与i,j之间的关系为:
k=2i+j。
44.在软件的开发模型中,螺旋模型是一种风险驱动模型,它将瀑布模型和原型模型结合起来。
45.设有100个元素,用折半查找法进行查找时,最大比较次数是7。
二、选择题
1.下列是C语言正确的标识符的是【D】
A.?
aB.a=2C.a.3D.a_3
2.下列表达式中,值为1的表达式是【D】
A.3%5B.3/5.0C.3/5D.3<5
3.设变量a,b,c,d依次为字符型、整型、单精度型、双精度型,则表达式“a+b/c*d”的数据类型为【D】
A.整型B.字符型C.单精度型D.双精度型
4.能正确表达“0≤a≤10”的表达式是【A】
A.10>=a&&a>=0B.(10>=a)ll(a>=0)
C.0<=a<=10D.(!
a<0)&&(!
a>10)
5.在C语言中,main()函数的位置【C】
A.必须作为第一个函数B.必须作为最后一个函数
C.可以任意,但必须要在函数之外D.必须放在它所调用的函数之后
6.对于输入语句“scanf(“%d,%d”,&a,&b)”,下面正确的输入方法是【A】
A.1,2回车B.12回车C.1回车2回车D.1;2回车
7.下列程序段“inti=j=10;printf(“&d,%d\n”,--I,j--);”的输出结果是【B】
A.11,10B.9,10C.11,9D.10,9
8.下面有关for循环正确的描述是【D】
A.for循环只能用语句循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D.for语句的循环体中,可以包含多条语句,但要用花括号括起来
9.设有定义“intx[5]={l,2,3);”,则数组x占用的内存字节数是【D】
A.3B.5C.6D.10
10.若有定义语句“intm,n=2,*p=&m;”,则能完成m=n功能的语句为【B】
A.m=*p;B.*p=*&n;C.m=&nD.m=&p
11.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为【C】
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构
12.单链表的一个存储结点包含【D】
A.数据域或指针域B.指针域或链域
C.指针域和链域D.数据域和链域
13.循环队列的队满条件为【C】
A.sq.rear+1)%maxsize==(sq.front+1)%maxsize
B.(sq.rear+1)%maxsize==sq.front+l
C.(sq.rear+1)%maxsize==sq.front
D.sq.rear==sq.front
14.深度为6的二叉树最多有()个结点【B】
A.64B.63C.32D.31
15.用顺序查找法对具有n个结点的线性表查找的时间复杂性量级为【C】
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
16.设有语句“intx[6]={5,4,3,2,1,0),*p=x;”,则值2的表达式为【A】
A.*(p+4)B.*(p+5)C.*p+4D.*p+5
17.算法分析的两个主要方面是【A】
A.空间复杂度和时间复杂度B.正确性和简明性
C.可读性和文档性D.数据复杂性和程序复杂性
18.带头结点的单链表Head为空的判定条件是【B】
A.Head=NULL;B.Head->next=NULL:
C.Head->next=Head;D.均不正确;
19.一个队列的输入列序为1,2,3,4,则该队列的输出序列是【B】
A.4,3,2,lB.1,2,3,4C.1,4,3,2D.3,2,4,1
20.堆(Heap)是【B】
A.完全二叉树B.线性表C.满二叉树D.都不正确
21.在表长为n的顺序表中,实施顺序查找,在查找不成功时,与关键字比较的次数为【C】
A.nB.1C.n+1D.n-1
22.下列选项中,合法的C语言保留字是【C】
A.AUTOB.SWITC.elseD.integer
23.下列选项中非法的实型常数是【A】
A.3E1.0B.1.0E3C..3E-2D.3E-2
24.设有定义“floata=5.0,b=2.5;”,则表达式(int)b+a/b的值是【D】
A.3B.4C.3.0D.4.0
25.设inta=10,b=20,c=30;条件表达式a
a=15:
c的值是【B】
A.10B.15C.20D.30
26.一个C程序是由【B】
A.一个主程序和若干子程序组成B.一个或多个函数组成
C.若干过程组成D.若干子程序组成
27.下列给出的符号串中,可以作为C语言标识符是的【C】
A.printfB.doC.GOTOD.while
28.在c语言中,合法的字符常量是【B】
A.//A//B./\x10/C./0a/D.a
29.以下表达式中与表达式“m=n++”功能完全相同的是【A】
A.m=n,n=n+lB.n=n+l,m=nC.m=++nD.m+=n+1
30.若变量a,i已正确定义,且i已正确赋值,非法的表达式是【C】
A.a==1B.++iC.a=a++=5D.a=(int)(i)
32.当调用函数时,实参是一个数组名,则向对应形参传送的是【B】
A.数组的长度B.数组的首地址
C.数组中每一个元素的地址D.数组中每个元素的值
33.假定的数据定义语句“floatx;”,能为x输入数据的正确语句是【D】
A.scanf(“%f,’,3.5);B.scanf(“x=%f”);
C.scanf(“%4.2f”,&X);D.scanf(“%f'”,&x);
34.下列程序段的输出结果是【D】
intx=2;
doprinff(“%d,”,x一);
while(!
(--x));
A.2,B.1,0,C.2,1,D.2,0,
35.选用数组元素下标时,可能造成程序运行出错的下标是【B】
A.0B.-1C.正实数D.整型变量
36.设有语句“chara[]=“123”,b[]={‘1’,’2’,’3’);”,下列说法正确的是【D】
A.a[3]是不可知的任意字符B.数组a,b的长度相同
C.b[3]的值为’\0’D.数组a的长度大于数组b的长度
37.执行程序段“intx=8;while(--x>6)sprintf(“*”)后的输出结果是【A】
A.*B.**C.***D.****
38.设有定义语句:
inta=l,b=2,c=3,d=4;执行下列程序段后x的值是【A】
if(a
elseif(a elsex=30; elsex=40; elsex=50; A.10B.20C.30D.40 39.C语言中【C】 A.不能使用do—while语句构成循环体。 B.do-while语句构成的循环必须用break语句才能退出。 C.do-while语句构成的循环,当while语句中的表达式值为零时结束循环。 D.do.while语句构成的循环,当while语句中的表达式值为非零时结束循环。 40.以下数组语句中,正确的是【C】 A.inta[][3];B.intb[3][]={0,l,2,3}; C.intc[10][10]={0};D.intd[3][]={{l,2},{1,3,0),{l}}; 41.设有语句“intx[8]={5,4,3,2,1},*p=x;”,则*(p+3)的值为【C】 A.5B.4C.3D.2 42.计算机内部数据处理的基本单位是【B】 A.数据B.数据元素C.数据项D.数据库 43.在一个具有n个结点的有序顺序表中插入一个新结点并仍然有序的时间复杂度是【B】 A.O (1)B.O(n2)C.O(n)D.O(nlog2n) 44.设C语言数组Data[m+1]作为循环队列SQ的存储空间,front为队头指针,real为队尾指针,则执行出队操作的语句为【D】 A.frint=front+1;,B.front=(front+1)%m: C.rear=(rear+1)%m;D.front=(front+1)%(m+1); 45.树最适合用()来表示【C】 A.有序数据元素B.无序数据元素 C.元素之间具有分支层次关系的数据D.元素之间无联系的数据 46.长度为12的有序表: Apt,Aug,Dec,Feb,Jan,Jul,Jun,Mar,May,Nov,Oct,Sep,按对半查找法对该表进行查找。 在表内各元素等概率情况下查找成功所需要的平均比较次数为【B】 A.35/12B.37/12C.39/12D43/12 三、简答题 1.软件维护工作可分为哪几类维护工作? 答: 软件维护工作可分如下四类维护工作: 1)改正性维护;2)适应性维护;3)完善性维护;4)预防性维护。 2.良好的程序设计风格除了将程序文档化和格式化以外,还需要遵循哪些准则? 答: 良好的程序设计风格除了将程序文档化和格式化以外,还需要遵循以下准则: 1)节俭化;2)模块化;3)简单化;4)结构化 3.用文字简述数据x进栈和退栈操作的基本步骤。 答: 进栈操作的基本步骤为: 1)先判断栈是否已满,若满,则进行上溢处理,否则进行2)。 2)栈项指针上移1个节点。 3)将x加入到top所指位置。 ‘ 退栈操作的基本步骤为: 1)检查栈是否为空,若栈空,则进行下溢处理,否则进行2)。 2)保留被删除元素到变量x中(若不需要保存,则舍去这一步)。 3)栈顶指针下移1个节点。 4.软件测试时,程序中尚未发现的错误的数量往往与在该段程序中己发现的错误的数量成正比。 所以软件测试时,除尽早地、不断地进行软件测试外,还应遵循的其它基本原则是什么? 答: 软件测试时,还应遵循的其它基本原则是: 1)设计测试用例时,要给出测试的预期结果。 2)开发小组和测试小组分开。 3)要设计非法输入的测试用例。 4)在对程序修改之后要进行回归测试。 5.简述哈夫曼树的性质。 答: 由哈夫曼树的生成过程可得如下性质: 1)给定权值的哈夫曼树不唯一,但是WPL,为定值。 2)权值越大的节点离根节点就越近。 3)哈夫曼树中无度为l的节点。 4)哈夫曼树节点总个数刀=2×叶子节点个数一1=2×权值个数.1=2n,.一1。 6.用文字简述将内容为x节点加入顺序队列和出队操作的基本步骤。 答: 将内容为x节点加入顺序队列的基本步骤为: 1)先判断队列是否已满,若满则退出,否则进行2)。 2)队尾指针下移1个节点位置。 3)在队尾指针位置加入x。 出队操作的基本步骤为: 1)先判断队列是否己空,若空则退出,否则进行2)。 2)保留队头元素到x变量中。 3)队头指针下移1个节点位置。 四、程序分析题 1.下列程序运行后的输出结果是m=3 Main() {intk,m=0; for(k=0;k<2;k++) {m++; if(m/2)continue; m++: } printf(//m=%d\n//,m);} 2.下列程序运行后的输出结果是1,6 #inlcude Main() {inta[]={l,2,3,4,5,6},*p; p=a; *(p+3)+=2; printf(//%d,%d\n//,*p,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件基础一真题和答案 及重点解析 计算机软件 基础 一真题 答案 重点 解析