数据结构作业1

1.给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:D
A.O(N​2​​)
B.O(NlogN)
C.O(N​3​​logN)
D.O(N​3​​)
2.For the following piece of code

for(i=0; i<n; i++)
  for(j=i; j>0; j/=2)
     printf(“%d\n”, j);

the time complexity is:D
A.O(N×i)
B.O(N)
C.O(N​2​​)
D.O(NlogN)
3.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, ____是正确的。A
A.p2=p1
B.p2=**p1
C.p2=&p1
D.p2=*p1
4.一个递归算法必须包括( )。B
A.递归部分
B.终止条件和递归部分
C.迭代部分
D.终止条件和迭代部分
5.若有以下说明,且0<=i<10,则对数组元素的错误引用是()。C

int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a, i;

A.*(a+i)
B.a[p-a+i]
C.p+i
D.*(&a[i])
6.执行下面程序,正确的输出是()。A

int x = 5, y = 7;
void swap ( )
{
      int z ;

      z = x ;  x = y ;  y = z ;
}
int main(void)
{
      int x = 3, y = 8;
      swap ( ) ;
      printf ("%d,%d \n", x , y ) ;

      return 0 ;
}

A.3,8
B.8,3
C.5,7
D.7,5
解析:因为swap()只是交换了全局定义的x和y,对主函数定义的x,y并不影响
swap函数没有带任何参数,所以呢,只能找到全局变量。
swap函数用的是全局的x和y,但是不会发生交换 注意:printf函数在进行输出的时候是就近原则的,所以输出的x和y是main函数里面的,而不是全局的x和y

7.有以下定义:char x[ ]=“abcdefg”; char y[ ]={‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’}; 则正确的叙述为()。C
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
解析:
字符串以’\0’结束,数组x的长度为8,数组y的长度为7

8.单链表又称为线性链表,在单链表上实施插入和删除操作( )。B
A.不需移动结点,不需改变结点指针
B.不需移动结点,只需改变结点指针
C.只需移动结点,不需改变结点指针
D.既需移动结点,又需改变结点指针

9.有一函数x>0,y=1;x=0,y=0;x<0,y=-1,以下程序段中错误的是()。C
A.if(x > 0) y = 1; else if(x == 0) y = 0; else y = -1;
B.y = 0; if(x > 0) y = 1; else if(x < 0) y = -1;
C.y = 0;
if(x >= 0);
if(x > 0) y = 1;
else y = -1;
D.if(x >= 0) if(x > 0) y = 1; else y = 0; else y = -1;

10.链表不具有的特点是()。B
A.插入、删除不需要移动元素。
B.可随机访问任一元素。
C.不必事先估计存储空间。
D.所需空间与线性表长度成正比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值