- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CC习题精华内容整理,带答案,可以打印出来认真复习
11.下面代码有什么问题?Void test3(char* str1) { char string[10]; if(strlen(str1)=10) { ??? strcpy(string, str1)//把str1内容复制到string,直到遇到\0为止; } }
==数组越界==strcpy拷贝的结束标志是查找字符串中的\0 因此如果字符串中没有遇到\0的话 会一直复制,直到遇到\0,上面的123都因此产生越界的情况建议使用 strncpy 和 memcpy
10.下面代码有什么问题?Void test2() { char string[10], str1[10]; for(i=0; i10;i++) { ???? str1[i] =a; } strcpy(string, str1); }//答: 数组越界
8.下面的代码有什么问题?并请给出正确的写法。void DoSomeThing(char* p){char str[16];int n;assert(NULL != p);scanf(p, %s%d, str, n);if (0 == strcmp(str, something)){...}}
A:scanf(p, %s%d, str, n);?? 这句该写成: scanf(p, %s%d, str, n);7.下面的代码有什么问题?void DoSomeThing(...){char* p;...p = malloc(1024); // 分配1K的空间if (NULL == p)return;...p = realloc(p, 2048); // 空间不够,重新分配到2Kif (NULL == p)return;...}
A:p = malloc(1024);???? 应该写成: p = (char *) malloc(1024); ??????? 没有释放p的空间,造成内存泄漏。
6.下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么?int n;if (n == 10) // 第一种判断方式if (10 == n) // 第二种判断方式
如果少了个=号,编译时就会报错,减少了出错的可能行,可以检测出是否少了=
5.const 符号常量;(1)const char *p(2)char const *p(3)char * const p说明上面三种描述的区别;
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
(1)const char *p
一个指向char类型的const对象指针,p不是常量,我们可以修改p的值,使其指向不同的char,但是不能改变它指向非char对象,如:const char *p;char c1=a;char c2=b;p=c1;//okp=c2;//ok*p=c1;//error(3)char * const p;此时*p可以修改,而p不能修改。
const char * const p;这种是地址及指向对象都不能修改。
2.输入一个字符串,将其逆序后输出。(使用C++,不建议用伪码)
#include iostreamusing namespace std;void main(){char a[50];memset(a,0,sizeof(a));int i=0,j;char t;cin.getline(a,50,\n);for(i=0,j=strlen(a)-1;istrlen(a)/2;i++,j--){?? t=a[i];????? a[i]=a[j];?? a[j]=t;}coutaendl; }
//第二种//string str;cinstr;str.replace;coutstr;
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?
virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。
写出运行结果:{// test1??? char str[] = world; cout sizeof(str) : ;??? char *p??? = str;???? cout siz
文档评论(0)