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、算法的基本特征是可行性、确定性、____有穷性___和拥有足够的情报。
11、顺序存储方法是把逻辑上相邻的结点存储在物理位置 相邻 _  的存储单元中。
12、设有int x=ll;,则表达式(x++ *1/3)的值为  3 
评析:白增自减运算符的作用是使变量的值增1或减1,如:
数组和链表
++i,–i  (在使用i之前,先使i的值加(减)1)
i++,i–  (在使用i之后,使i的值加(减)1)
所以表达式(x++*1/3)的值即11/3的值:3
13、若从键盘输入58,则以下程序的输出结果是585858 __
main()
{ int  a;
Scanf(“%d”,&a);
If(a>50)printf(“%d”,a);
If(a>40)printf(“%d”,a);
if(a>30)printf(“%d”,a);
评析:本题首先为a输入一个值58,然后执行三个判断语句,在每一个判断中,如果满足判断条件的话,就输出a,因为三次判断,条件都满足,所以三次输出a。
14、下列程序运行的结果是 x=11,i=11
#include<stdio.h>
main()
{
int x=l,i=l:
for(;x<50;i++)
{if(x>=10)break;
if(x%2!=1)
{x+=3;continue;}
x-=1;
}
printf(”x=%d,i=%d\n”,x,i);
}
评析:本题程序段通过for循环语句实现当x的值为奇数时,x自减1:当x为偶数时自加3的功能。程序共执行了11次循环,当x=11时退出循环。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。