100条经典C++语言笔试题目1-16

1、C和C++中struct有什么区别?

----------protection行为能否定义函数
C否,但可以有函数指针
c++有,默认是public可以

2、C++中的struct和class有什么区别?
struct拥有class所有功能。
(1)默认继承权限。class-》private,struct-》public
(2)成员的默认访问权限。class-》private,struct-》public

3、如何判断一段程序是由C编译程序还是由C++编译程序编译的?

#ifdef __cplusplus
        cout<<"c++";
#else
        cout<<"c";
#endif

4、C和C++有什么不同?
从机制上:C是面向过程的;C++是面向对象的,提供了类。
C语言是结构化编程语言,C++是面向对象编程语言。
C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

5、“引用”和指针的区别是什么?
指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

7、int id[sizeof(unsigned long)];这个对吗?为什么?
正确
这个sizeof是编译时运算符,编译时就确定了,可以看成和机器有关的常量。

8、某文件中定义的静态全局变量(或称静态外部变量)其作用域是()?
A。只限某个函数 B。本文件
C。跨文件 D。不限制作用域
答案:B。静态全局变量限制了其作用域在定义该变量的源文件内有效。

9、C++函数中值的传递方式有哪几种?
C++函数的三种传递方式为:值传递,指针传递和引用传递

10、对于一个频繁使用的短小函数,在C语言应用什么实现,在C++中应用什么实现?
C语言用宏定义,C++用inline

11、引用和指针有什么区别?
1)引用必须初始化,指针不用。
2)引用初始化以后不能被改变,指针可以改变所指的对象。
3)不存在指向空值的引用,但是存在指向空值的指针。

12、C++中virtual与inline的含义分别是什么?
virtual虚函数。
inline内联函数
虚函数的特点:如果希望派生类能够重新定义基类的方法,则在基类中将该方法定义为虚函数,这样可以启用动态联编。
内联函数的特点:使用内联函数的目的是为了提高函数的运行效率。内联函数体的代码不能过长,因为内联函数省去调用函数的时间是以代码膨胀为代价的。内联函数不能包含循环语句。

13、VC中,编译工具条内的Debug和Release选项是什么含义?
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,以便程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的。

14、函数assert的用法?
断言assert是仅在debug版本起作用的宏,用于检查“不应该”发生的情况。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。

15、const与#define的比较,const有什么优点?
1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)
2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。

16、请你谈谈引用和指针的区别
1)引用被创建的同时必须初始化
2)不能有null引用,引用必须与合法的存储单元连接
3)一旦引用被初始化,就不能改变引用的关系。(指针则可以随时改变所指的对象)

转载于:https://www.cnblogs.com/Blackmanba-xzl/p/5325569.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值