C++的总结(HZAU).doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C的总结(HZAU)

1、说明上面三种描述的区别; const char *p : 是一个指向const对象的指针变量,能p++不能(*p)++ const位于星号的左侧,则const就是用来修饰指针所指向的变量 指针指向为常量; char * const p: 是一个const指针变量,能(*p)++,不能p++ const位于星号的右侧,const就是修饰指针本身,即指针本身是常量 char const *p : 是一个指向const对象的const指针变量,p++和(*p)++都不可以 2、面的函数定义是一个求阶乘(例:1*2*3*...*N)的递归调用函数。假定n 0。请填空。 long fac(int n) { long f; if (n==0) f=1; else f=( n*fac(n-1) ); return (f); } (6分) 例如: n=5 fac(5) 5*fac(4) 4*fac(3) 3*fac(2) 2*fac(1) 1*fac(0) 3、是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?   答:是的。只要在父类声明了是虚函数,继承它的子类的同名函数不加virtual修饰也是虚函数 4、编程输入一个字符串,将其逆序后输出。(使用C/C++均可)  #include iostream #include string using namespace std; int main() { string s; cins; int i; for(i=0;is.size()/2;i++) { char tmp=s[i]; s[i]=s[s.size()-i-1]; s[s.size()-i-1]=tmp; } coutsendl; couts.size()endl; return 0; } 用指针的方法,将字符串“ABCD1234efgh”前后对调显示 #include stdio.h #include string.h int main() { char str[] = ABCD1234efgh; int length = strlen(str); char * p1 = str; char * p2 = str + length - 1; while(p1 p2) { char c = *p1; *p1 = *p2; *p2 = c; ++p1; --p2; } printf(str now is %s\n,str); system(pause); return 0; } 5、下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么? int n; if (n == 10) // 第一种判断方式 if (10 == n) // 第二种判断方式 第二种 第一种容易失误写成if(n=10),if判断条件理解成将10这个整型常量赋值给n,如果赋值成功,则条件表达式为真,与想要判断两个值是否相等的本意大相径庭。而且这种错误编译时并不会报错,很难被发现。写成10==n时,就算写成了10=n,因常量不能为左值,编译器会报错。 6、下面代码有什么错误? Void test1() { char string[10]; char *str1=0123456789; strcpy(string, str1); } 越界。str1等价于str1[11]={0,1,2,3,4,5,6,7,8,9,\0};string[10]应该为string[11]。 7、 C++是面向对象的语言,关注怎么解决同类问题,不关注具体实现。 C是面向过程,关注具体事件的解决(就事论事) (1)C++是对C语言的扩充,C++兼容C语言 (2)C++的源程序扩展名由C语言的.c 改为了.cpp .cc (3)C++隐藏了一些C语言的底层实现,增加了许多类库,增加了bool类型 (4)C++并加入了面向对象的机制,是一个面向对象的编程语言,而C语言是面向过程的 (5)C++用new/delete取代了malloc()/free(), 增加了构造/析构函数调用处理机制 8、编程在不用第三方参数的情况下,交换两个参数的值 #include iostream using namespace std; void swap(int a,int b )//使用引用可真实

文档评论(0)

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

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

1亿VIP精品文档

相关文档