联发科技笔试题

笔试题一   网址http://wenku.baidu.com/link?url=VPyN_si6yRdIzlTOA4l0zJJ6imuthhEGw17A2W3R33W9J0vvbz6tn38am9vXi3PDxxGrJDs6pSS2WUacyrb9zSAuAZPr-Mq6JYRk8i3eQge


笔试题二 

http://www.wohenniu.com/thread-1778-1-1.html

17号川大笔试,基本都是C的题目。我选的是手机软件部门:
选择题我有印象的:
1.int p = (short)0x8000,问打印p是多少?-32678
2.##的使用(连接):
define call(x,y) x##y
3.char* str = "hello"
   str = "pri"
  prinf("%s",str);有什么问题?直接崩溃,char *s = "hello",hello存在了常量存储区,只能读不能修改

4.大端小端的概念
char c = 'abc'
在大段和小段下,打印c的结果是什么?
简答题:
(1)动态内存分配
(2)extern c的用法
(3)sizeof对指针,数组的用法
(4)求1的个数(x&(x-1))

程序设计:
(1)堆排序
(2)求有环链表第一个入环节点
(3)atol的写法
程序设计题注意把自己的思路展示出来。
一面:
(1)c语言static,const用法
(2)const char *p,char *const p的意义和用法
(3)遇到过哪些警告:答曰:类型不匹配,精度丢失
(4)C语言中的默认全局作用域,为什么会成立?编译器角度来分析?其实与extern c的用法一样。
要求区分编译错误和链接错误。
(5)我没有答对:


  • void foo(int *p){  
  • //dosomething   
  • }  

现在主函数是


  • int main(){  
  •     char c = 1;  
  •     foo(&c);  
  • }  


有啥问题?我说的还是类型不匹配,恩,面试官认为太泛了。
我说类型对于指针式非常重要的,只有编译器知道了指针的类型,才知道一次处理,如自增操作,走几步?(其实,这里,如果我相当此时如果打印指针内容,指针的类型同样要决定函数要读入地址的内容的几个字节,这就是面试官要得答案。如char p,那么只会读取p所指地址的1个字节,但是int p会读取p所指向地址的4分字节)
正解为:foo中调用的时候,希望传入的是1,但是实际上想foo函数传递参数的时候,会把&c后面的3个字节的内容也传入,这是垃圾信息,这样就会出现隐晦的bug。当然,编译器肯定会警告。
测试用例:


  • # include <stdio.h>  
  • void foo(int *p){  
  •     printf("%d",*p);  
  • }  
  • int main(){  
  •     char c = 1;  
  •     foo(&c);  
  •     return 0;  
  • }  

输出结果:-42991615
而且这个还是随时变化的。
第一面收获:
就是最后一个题目了,以前觉得C的基础还不错,还是有没有考虑到的地方。

另外我看见自己的编程大题目得分很低,看来需要把自己的思路展示出来。其实最后2道题目都比较容易解决

转自: http://blog.csdn.net/randyjiawenjie/article/details/6789354

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值