C++语言练习题1(关于关键字,有答案) 下载本文

内容发布更新时间 : 2024/6/26 15:41:57星期一 下面是文章的全部内容请认真阅读。

1. 某文件中定义一个全局变量其作用域是( C)?(如果是静态全局变量,选B)

A. 只限于某个函数 B.本文件

C.跨文件 D.不限于作用域

2. C++中的struct和class有什么区别?

从语法上讲,class和struct做类型定义时只有两点区别: (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理; (二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。 除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。 3. c和c++有什么不同?

从机制上:C是面向过程的(但C也可以编写面向对象的程序);C++是面向对象的,提供了类。但是,C++编写面向对象的程序比C容易。

从适用的方向:C适合要求代码体积小的,效率高的场合,如嵌入式;C++适合更上层的,复杂的; llinux核心大部分是C写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,C++比C多了+,说明C++是C的超集;那为什么不叫C+而叫C++呢,是因为C++比C来说扩充的东西太多了,所以就在C后面放上两个+;于是就成了C++。 C语言是结构化编程语言,C++是面向对象编程语言。 C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。 4. 引用与指针的区别是什么?

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 PS:

1. 引用必须初始化,指针不必

2. 引用初始化后不能被改变,指针可以改变所指对象 3. 不存在指向空值的引用,但是存在指向空值的指针

5. C++函数中值的传递方式有哪几种?

C++函数的三种传递方式为:值传递、指针传递和引用传递

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

7. C++中virtual与inline的含义分别是什么?

在基类成员函数的声明前加上virtual关键字,意味着将该成员函数声明为虚函数。

inline与函数的定义体放在一起,使该函数称为内联。inline是一种用于实现的关键字,而不是用于声明的关键字。

8. const与define的比较,const有什么优点? 1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。 而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应) 。

(2)有些集成化的调试工具可以对 const 常量进行调试,但是不能对宏常量进行调试。 9. 有了malloc/free为什么还要new/delete?

malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++的运算符。它们都可用于申请动态内存和释放内存。

对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的要求。对象在创建

的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。

由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于 malloc/free。

因此 C++语言需要一个能完成动态内存分配和初始化工作的运算符 new,以及一个能完成清理与释放内存工作的运算符 delete。注意 new/delete 不是库函数。 10. const符号常量

(1) const char *p (2) Char const *p (3) Char *const p 说明上面三种描述的区别; (1) p是一个指向const char的指针,p是可以改变指向的,但是p指向的值是不能改变的; (2) p指向的恰好是一个指向const的char的普通指针; (3) p是一个指针,这个指针是指向char的const指针。 (1)和(2)的定义是一样的。

11.float(*(*fp2)(int,int,int))(int)这个是什么意思?

将fp2声明为指向函数(int, int, float)的指针,返回返回float的函数(int)的指针

12.用C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数。

一、

16位的系统下: int i = 65536;

cout << i; //输出0 int i = 65535;

cout << i; //输出-1

32位的系统下: int i = 65536;

cout << i; //输出65536 int i = 65535;

cout << i; //输出65535 二、 int a = ~0; if(a>65536) {

cout << \ } else {

cout ,<< \ }