c++笔试题汇总更新400道.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++笔试面试1000题 1.什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。指针和引用的区别? 答:引用是在C++中引入的。它们之间的区别有: (1) 非空区别:指针可以为空,而引用不能为空 (2)可修改区别:如果指针不是常指针,那么就可以修改指向,而引用不能 (3) 初始化区别:指针定义时可以不初始化而引用在定义的时必须初始化 、为什么构造函数不能声明为虚函数? 答:因为虚函数采用的是虚调用的方法,虚调用是指允许在只知道部分信息的情况下的工作机制,特别允许我们调用一个只知道接口而不知道其对象的准确类型的函数。但是如果我们要调用构造函数创建对象时,必须要知道对象的准确类型,因此构造函数不能为虚函数。 char str1[]=”abc”; char str2[] = “abc”; str1==str2为FALSE,因为str1和str2是位于堆栈上的,它们占用不同的内存空间。Const char str3[] = “abc”; const char str4[] = “abc”;str3==str4为FALSE,同样它们是位于堆栈上的内存空间,是不同的。Const char *str5=”abc”, const char *str6=”abc”;char *str7=”abc”,char *str8 = “abc”,str5==str6 str7==str8为TRUE,因为”abc”是位于文字常量区的,系统会将几个“abc”进行优化,使它们位于同一块内存区,因此指针的指向也就相同了。 以下函数能求出数组的长度吗? void fun(char str[]){ int len = sizeof(str)/sizeof(str[0]);} 答:不能,数组作为参数传递给函数时,数组名被退化为指针,因此函数中的sizeof(str)实际是在求一个指针的sizeof,答案为4,因此不能计算出数组的长度。 类的静态成员和非静态成员有何区别? 答:类的静态成员每个类只有一个,静态成员为所有类的实例对象共享,静态成员有静态成员变量和静态成员函数,静态成员变量使用前必须初始化,静态成员变量可以被静态成员函数和非静态成员函数访问,而静态成员函数只能访问静态成员变量,因为静态成员函数属于类,其没有this指针。非静态成员每个对象都有一个。 static的? 答:(1)函数体内的静态变量,其值在函数的调用过程中保持不变。跟局部变量的区别。 (2)在函数体外定义的静态变量,限制了它的使用范围只在于该子模块,该子模块内的函数都能访问它,但是子模块外不能访问,实际就类似于是一个本地的全局变量。与一般全局变量的区别。 (3)类的静态成员函数。 本质上来说,static就是声明了对象的生成期,限制了对象的作用域。 或 (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只能被分配一次,因此其值在下次函数调用时仍维持上次的值。 (2)在模块内的static全局变量可以被模块内的所有函数访问,但不能被模块外其他函数访问。 (3)在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块。 (4)在类中的static成员变量属于整个类所有,对类的所有对象只有一份拷贝。 (5)在类中的static成员函数属于整个类所有,这个函数不接受this指针,因而只能访问类的static成员变量。 写程序,将一个字符串倒序? 答:直接在main函数中实现的 void main() { char *source = hello; char *des; int len = strlen(source); des = (char *)malloc(len+1); //申请空间必须是len+1,加1是为了放结束符 if (!des) { exit(1); } char *s = source[len-1]; char *d = des; while (len--!=0) { *d++ = *s--; } *d = \0; //必须要 coutsourceendl; coutdesendl;} 在C++程序中调用C编

文档评论(0)

ygxt89 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档