c语言程序设计公司笔试题,C C语言程序设计笔试面试题

《C C语言程序设计笔试面试题》由会员分享,可在线阅读,更多相关《C C语言程序设计笔试面试题(6页珍藏版)》请在人人文库网上搜索。

1、4.技巧题试题2:写一个函数返回1+2+3+n的值(假定结果不会超过长整型变量的范围) 解答:int Sum( int n )return ( (Ion g)1 + n) * n / 2;答:5. 请简述以下两个for循环的优缺点(5分)for (i=0; iif (con diti on)DoSomethi ng();elseDoOtherthi ng();优点:程序简洁if (con diti on)for (i=0; iDoSomethi ng();elsefor (i=0; iDoOtherthi ng();优点:循环的效率高缺点:程序不简洁缺点:多执行了 N-1次逻辑判断,并且打 断。

2、了循环“流水线”作业,使得编译器不 能对循环进行优化处理,降低了效率。5分,共20 分)void GetMemory(char *p)char *GetMemory(void)p = (char *)malloc(100);char p = hello world;return p;void Test(void)void Test(void)char *str = NULL;GetMemory(str);char *str = NULL;strc py (str, hello world);str = GetMemory();prin tf(str);prin tf(str);请问运行Test。

3、函数会有什么样的结果请问运行Test函数会有什么样的结果答:程序崩溃。答:可能是乱码。因为因为GetMemory返回的是指向栈内存”的指 针,该指针的地址不是 NULL,但其原现的内Test函数中的str 一直都是 NULL。容已经被清除,新内容不可知。strcpy(str,hello world);将使程序崩溃。GetMemory并不能传递动态内存,void GetMemory2(char *p, int num)rvoid Test(void)*p = (char *)malloc( nu m);char *str = (char *) malloc(100);strc py(str,vo。

4、id Test(void)free(str);if(str != NULL)char *str = NULL;GetMemory(&str, 100);strc py(str,strcpy(str, hello);prin tf(str);prin tf(str);请问运行Test函数会有什么样的结果请问运行Test函数会有什么样的结果答:答:篡改动态内存区的内容,后果难以预料,(非常危险。(因为 free(str);之后,str成为野指针,if(str != NULL)语句不起作用。1 )能够输出hello2 )内存泄漏“hello ”);“world ” );函数的原型是 char *st。

5、rcpy(char *strDest, const 是目的字符串,strSrc是源字符串。1)不调用C+/Cstrc pystrDest!=NULL)&( strSrc !=NULL);绍vector 。strcpy 函数(10 分)strcpy char *strSrc); 其中 strDest 的字符串库函数,请编写函数 一下STL,详细说明STL如何实现An swer:STL (标准模版库,Sta ndard Tem pl ate Library.它由容器算法迭代器组成。STL有以下的一些优点:可以方便容易地实现搜索数据或对数据排序等一系列的算法;调试程序时更加安全和方便;STL是跨平台。

6、的)。即使是人们用 STL在UNIX平台下写的代码你也可以很容易地理解(因为,动态的增加数组空间。vector实质上就是一个动态数组,会根据数据的增加2.如果用VC开发程序,常见这么几个错误,C2001,c2005,c2011,这些错误的原因是什么。An swer:在学习VC+勺过程中,遇到的 LNK2001错误的错误消息主要为: unr esolved exter nal symbol“ symbol (不确定的外部 符号”)。变量或标签,将产生此错误如果连接程序不能在所有的库和目标文件内找到所引用的函数、消息。一般来说,发生错误的原因有两个: 一是所引用的函数、 变量不存在、 其次可能使用。

7、了不同版本的连接库。编程中经常能遇到 LNK2005错误一一重复定义错误,其实 难解决的错误.拼写不正确或者使用错误;LNK2005错误并不是一个很3. 继承和委派有什么分别,在决定使用继承或者委派的时候需要考虑什么。 在00D,00呻,组合优于继承.当然多态的基础是继承,没有继承多态无从谈起。当对象的类型不影响类中函数的行为时,就要使用模板来生成这样一组类。 当对象的类型影响类中函数的行为时,就要使用继承来得到这样一组类4. 指针和引用有什么分别;如果传引用比传指针安全,为什么如果我使用常量指针难道不行吗(1)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,。

8、可以在定义后面的任何地方重新赋值 不存在N ULL引用,引用必须与合法的存储单元关联;而指针则可以是 NULL.(3) 引用一旦被初始化为指向一个对象, 它就不能被改变为另一个对象的引用; 而指针在任何时 候都可以改变为指向另一个对象给引用赋值并不是改变它和原始对象的绑定关系(4) 引用的创建和销毁并不会调用类的拷贝构造函数只不(5) 语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的, 过编译器帮我们完成了转换 .不存在空引用,并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用, 显得很安全。const 指针仍然存在空指针,并且有可能产生野指针 .总。

9、的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性5. 参数传递有几种方式;实现多态参数传递采用什么方式,如果没有使用某种方式原因是什么; 传值,传指针或者引用6. 结合一个项目说明你怎样应用设计模式的理念。 设计模式更多考虑是扩展和重用,而这两方面很多情况下,往往会被忽略。 不过,我不建议滥用设计模式,以为它有可能使得简单问题复杂化7. 介绍一下你对设计模式的理解。(这个过程中有很多很细节的问题随机问的) 设计模式概念是由建筑设计师 Christopher Alexander 提出 : 每一个模式描述了一个在我们周围 不断重复发生的问题 ,以及该问题的解决方案的核心 .这样 ,你就能一次又一次地使用该方案而不 必做重复劳动 . 上述定义是对设计模式的广义定义 . 将其应用到面向对象软件的领域内 , 就形成 了对设计模式的狭义定义 .并且已经上升到可以简单的认为 : 设计模式就是解决某个特定的面向对象软件问题的特定方法, 理论程度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值