计算机软件基础一、填空题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)语句,若键入:l 23456789,则变量b的值为345 。
17.设intx=10,y,z;执行y=z=x;x=y=-Z后,变量x的结果是 1 。
18.若有说明:Int a[][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.在三对角阵的压缩存储中,已知A ij=B k,试建立k与i,j之间的关系为:k=2i+j 。
44.在软件的开发模型中,螺旋模型是一种风险驱动模型,它将瀑布模型和原型模型结合起来。
45.设有100个元素,用折半查找法进行查找时,最大比较次数是7 。
二、选择题1.下列是C语言正确的标识符的是【D 】A.? a B.a=2 C.a.3 D.a_32.下列表达式中,值为1的表达式是【D 】A.3%5 B.3/5.0 C.3/5 D.3<53.设变量a,b,c,d依次为字符型、整型、单精度型、双精度型,则表达式“a+b/c*d”的数据类型为【D 】A.整型B.字符型C.单精度型D.双精度型4.能正确表达“0≤a≤10”的表达式是【A 】A.10>=a&&a>=0 B.(10>=a)ll(a>=0)C.0<=a<=10 D.(!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.下列程序段“int i=j=10;printf(“&d,%d\n”,--I,j--);”的输出结果是【B 】A.11,10 B.9,10 C.11,9 D.10,98.下面有关for循环正确的描述是【D 】A.for循环只能用语句循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for语句的循环体中,可以包含多条语句,但要用花括号括起来9.设有定义“int x[5]={l,2,3);”,则数组x占用的内存字节数是【D 】A.3 B.5 C.6 D.1010.若有定义语句“int m, n=2, *p=&m;”,则能完成m=n功能的语句为【B 】A.m=*p;B.*p=*&n;C.m=&n D.m=&p11.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为【C 】A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构12.单链表的一个存储结点包含【D 】A.数据域或指针域B.指针域或链域C.指针域和链域D.数据域和链域13.循环队列的队满条件为【C 】A.sq.rear+1)%maxsize==(sq.front+1)%maxsizeB.(sq.rear+1)%maxsize==sq.front+lC.(sq.rear+1)%maxsize==sq.frontD.sq.rear==sq.front14.深度为6的二叉树最多有( )个结点【B 】A.64 B.63 C.32 D.3115.用顺序查找法对具有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+4 D.*p+517.算法分析的两个主要方面是【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,l B.1,2,3,4 C.1,4,3,2 D.3,2,4,120.堆(Heap)是【B 】A.完全二叉树B.线性表C.满二叉树D.都不正确21.在表长为n的顺序表中,实施顺序查找,在查找不成功时,与关键字比较的次数为【C 】A.n B.1 C.n+1 D.n-122.下列选项中,合法的C语言保留字是【C 】A.AUTO B.SWIT C.else D.integer23.下列选项中非法的实型常数是【A 】A.3E1.0 B.1.0E3 C..3E-2 D.3E-224.设有定义“float a=5.0,b=2.5;”,则表达式(int)b+a/b的值是【D 】A.3 B.4 C.3.0 D.4.025.设int a=10,b=20,c=30;条件表达式a<b?a=15:c的值是【B 】A.10 B.15 C.20 D.3026.一个C程序是由【B 】A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成27.下列给出的符号串中,可以作为C语言标识符是的【C 】A.printf B.do C.GOTO D.while28.在c语言中,合法的字符常量是【B 】A.//A// B./\x10/C./0a/ D.a29.以下表达式中与表达式“m=n++”功能完全相同的是【A 】A.m=n,n=n+l B.n=n+l,m=n C.m=++n D.m+=n+130.若变量a, i已正确定义,且i已正确赋值,非法的表达式是【C 】A.a= =1 B.++i C.a=a++=5 D.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 】int x=2;do prinff(“%d,”,x一);while(!(--x));A.2,B.1,0,C.2,1,D.2,0,35.选用数组元素下标时,可能造成程序运行出错的下标是【B 】A.0 B.-1 C.正实数D.整型变量36.设有语句“char a[]=“123”,b[]={‘1’,’2’,’3’);”,下列说法正确的是【D 】A.a[3]是不可知的任意字符B.数组a,b的长度相同C.b[3]的值为’\0’D.数组a的长度大于数组b的长度37.执行程序段“int x=8;while(--x>6)sprintf(“*”)后的输出结果是【A 】A.* B.** C.*** D.****38.设有定义语句:int a=l,b=2,c=3,d=4;执行下列程序段后x的值是【A 】if(a<b)if(c<d)x=10;else if(a<c)if(b<d)x=20;else x=30;else x=40;else x=50;A.10 B.20 C.30 D.4039.C语言中【C 】A.不能使用do—while语句构成循环体。