C/C++常见面试题整理

1、C++里面如何声明const void f(void)函数为C程序中的库函数?

【参考答案】: 在该函数前添加extern “C”声明。由于编译后的名字不同,C++程序不能直接调用C 函数。

2、c++中类和c语言中struct的区别(至少两点)

【参考答案】:

(1) c++中的类默认的成员是私有的,struct默认的是共有的。

(2) c++中的类可以定义成员函数,struct只能定义成员变量。

3、变量的声明和定义有什么区别?

【参考答案】: 声明变量不分配空间,定义变量要分配空间。声明主要是告诉编译器,后面的引用都按声明的格式。定义其实包含了声明的意思,同时要分配内存空间。

4、memset ,memcpy 的区别

【参考答案】: memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为’\0′。 memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;

5、程序什么时候应该使用线程,什么时候单线程效率高。

【参考答案】:

1 耗时的操作使用线程,提高应用程序响应

2 并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。

3 多CPU系统中,使用线程提高CPU利用率

4 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。 其他情况都使用单线程。

6、介绍一下模板和容器。如何实现?(也许会让你当场举例实现)

【参考答案】: 模板可以说比较古老了,但是当前的泛型编程实质上就是模板编程。 它体现了一种通用和泛化的思想。 STL有7种主要容器:vector,list,deque,map,multimap,set,multiset.

7、以下为WindowsNT下的32位C++程序,请计算sizeof的值

 

8、C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?inta=5,b=7,c;c=a+++b;

【参考答案】: 这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值