c语言练习题6(数组与链表,有答案) 下载本文

1、(1)数据结构中,与所使用的计算机无关的是数据的_C_______。 A)存储结构 B)物理结构 C)逻辑结构 D)物理和存储结构

评析:数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。

2、栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,

则出栈序列可能是____D____。

A) ABCED B)DBCEA C)CDABE D)DCBEA 评析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、c、D,则表明这4个元素中D是最后进栈,B、c处于中间,A最早进栈。所以出栈时一定是先出D,再出c,最后出A。

3、线性表的顺序存储结构和线性表的链式存储结构分别是____B____。 A)顺序存取的存储结构、随机存取的存储结构 B)随机存取的存储结构、顺序存取的存储结构 C)随机存取的存储结构、随机存取的存储结构 D)任意存取的存储结构、任意存取的存储结构

评析:顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)。LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

4、在单链表中,增加头结点的目的是____A__。

A)方便运算的实现 B)使单链表至少有一个结点

C)标识表结点中首结点的位置 D)说明单链表是线性表的链式存储实现

评析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。

5、数据处理的最小单位是___C_____。

A)数据 B)数据元素 C)数据项 D)数据结构

评析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。

6、以下程序段的输出结果是___C___。 int a=1234;

printf(”%2d\n”,a);

A)12 B)34 C)1234 D)提示出错、无结果

评析:本题主要考查对primf函数域宽描述符的理解,在这里我们要特别注意:输出数据的实际精度并不主要决定于格式项中的域宽与精度,也不决定于输入的数据精度,而主要决定于数据在机器内的存储精度。

7、设有定义:int a,*pa=&a;以下scanf语句能正确为变量a读入数据的是____C__。

A)scanf(“%d”,B); B)scanf(”%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa);

评析:scanf函数要求其中的输入项必须是地址形式,比如:普通变量的地址、数组名、指针变量等。对于普通变量,地址形式为:&变量名;当一个普通变量的地址赋予了一个指针变量名,scanf函数的输入项处就可以直接写这个指针变量名。

8、以下程序的输出结果是___B___。 main()

{int a=5,b=4,c=6,d;

printf(”%d\n”,d=a>c?(a>c?a:C):(b)); }

A)5 B)4 C)6 D)不确定

评析:本题最重要的分析d=a>c?(a>c?a:C):(b)),首先运算括号内的式子a>c?a:c,它的值是c的值6,即式子化成d=a>c?6:4。显然a=c,所以将4赋给d。

9、以下程序中,while循环的循环次数是___D___ 。 main() { int i=0: while(i<10) {if(i<1)continue; if(i==5)break; i++: } …… }

A)1 B)10 C)6 D)死循环,不能确定次数 评析:进入循环后,先执行一个条件语句,如果i的值小于l,那么直接进入下一轮循环,因为i的初始值是0,小于l,故直接进入下一轮循环,又因为i的值始终没有改变,所以这个循环成了死循环。

10、算法的基本特征是可行性、确定性、____有穷性___和拥有足够的情报。