161017_考试错题集(二维数组表示,字符串大小(sizeof,strlen),链表删除另一种思路)

4、若有定义:int a[3][4],能表示数组元素a[1][1] B

A *(&a[0]+5)

B *(a[0]+5)

C (*(a+1)[1])

D *(a+5)

解答:a[0]等价于*(a+0)

           a[1][1]等价于 * (*(a+1)+1)  或者  (*(a+1))[1]  或者 *((a[1])+1),所以C少了一个括号

          *(a[0]+5),中a表示指向一维数组的首地址,步长为16,a[0]表示第一个一维数组,*(a[0]+5),表示第一个一维数组移动五个元素 即位 a[1][1]


5、写出下列sizeof后得到的结果(真实面试题

    char *str=”ab\01defg”; sizeof(str) = ?, strlen(str) = ?

    char str[]=”abc/tdefg”; sizeof(str) = ?, strlen(str) = ?

 分别是47109

答:\01表示的是八进制的\01只算一个字符,sizeof(str),str指针4个字节,strlen(str) = 7

  /t\t不一样,45度/t表示的是两个字符,45度\t才代表回车,所以sizeof(str)=10(要算上\0),strlen(str)=9


6只知道一个指针p指向单链表的某一节点,需要删除该节点,请写出实现该过程的伪代码。(该链表没有尾结点,可以使用一个辅助指针q(思维上的学习)真实面试题

p->date  =  p->next->date

q  =  p->next->next  

freep->next);

p->next  =  q

答:正常情况下删除单链表的节点要知道要删除的节点的前一个节点,如果只知道要删除的当前节点,可以改变当前节点的数据使其等于下一个节点,然后删除下一个节点(这种只能是下一个节点不为空,并且节点的数据类型要一致

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值