优客文库提供全面的范文格式和文档模板,包括申请书、合同、借据、证明、求职信等,助力您快速撰写专业文档。

C/C笔试题目

时间: 热度:°C 加入收藏 我要投稿 点赞()

C/C笔试题目

  C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。下面就由第一范文网小编为大家介绍一下C/C++笔试题目的文章,欢迎阅读。

  C/C++笔试题目篇1

  1.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数;

  答:char *strcpy(char *strDest, const char *strSrc)

  {

  if ( strDest == NULL || strSrc == NULL)

  return NULL ;

  if ( strDest == strSrc)

  returnstrDest ;

  char *tempptr = strDest ;

  while( (*strDest++ = *strSrc++) != ‘’);

  returntempptr ;

  }

  2. 头文件中的ifndef/define/endif的作用?

  答:防止该头文件被重复引用。

  3. #i nclude与#i nclude “file.h”的区别?

  答:前者编译器从标准库路径开始搜索file.h,而后者编译器从用户的工作路径开始搜索file.h。

  4. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern“C”?

  答:extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,其声明的函数和变量可以在本模块或其它模块中使用。

  通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。

  5. 面向对象的三个基本特征,并简单叙述之?

  答:1)封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

  2)继承:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。

  3)多态:允许将子类类型的指针赋值给父类类型的指针。

  C/C++笔试题目篇2

  1. 重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?

  答:从定义上来说:

  重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

  重写:是指子类重新定义复类虚函数的方法。

  从实现原理上来说:

  重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。

  重写:当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。

  2. 多态的作用?

  答:主要是两个:1)隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;2)接口重用,为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

  3. 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。

  答:BOOL :if ( !a ) or if(a)

  int :if ( a ==0)

  float :const EXPRESSION EXP = 0.000001

  if ( a < EXP && a >-EXP)

  pointer : if ( a != NULL) or if(a == NULL)

  4. 请说出const与#define 相比,有何优点?

  答案:1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。

  2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。

  5.简述数组与指针的区别?

  数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。

  (1)修改内容上的差别

  char a = “hello”;

  a[0] = ‘X’;

  char *p = “world”; // 注意p 指向常量字符串

  p[0] = ‘X’; // 编译器不能发现该错误,运行时错误

  (2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

  char a = “hello world”;

221381
领取福利

微信扫码领取福利

微信扫码分享