CC语言程序设计笔试面试题.doc

CC语言程序设计笔试面试题.doc

ID:54492227

大小:40.00 KB

页数:11页

时间:2020-04-17

CC语言程序设计笔试面试题.doc_第1页
CC语言程序设计笔试面试题.doc_第2页
CC语言程序设计笔试面试题.doc_第3页
CC语言程序设计笔试面试题.doc_第4页
CC语言程序设计笔试面试题.doc_第5页
资源描述:

《CC语言程序设计笔试面试题.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、4.技巧题 试题2:写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)解答:intSum(intn){      return ((long)1+n)*n/2;  //或return (1l+n)*n/2;}剖析:对于这个题,只能说,也许最简单的答案就是最好的答案。下面的解答,或者基于下面的解答思路去优化,不管怎么“折腾”,其效率也不可能与直接return(1l+n)*n/2相比!intSum(intn){ longsum=0; for(inti=1;i<=n;i++) {        sum+=i; } returnsum;}

2、一、请写出BOOLflag与“零值”比较的if语句。(3分)标准答案:if(flag)if(!flag)如下写法均属不良风格,不得分。if(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0)请写出floatx与“零值”比较的if语句。(4分)标准答案示例:constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。如下是错误的写法,不得分。if(x==0.0)if(x!

3、=0.0)请写出char*p与“零值”比较的if语句。(3分)标准答案:if(p==NULL)if(p!=NULL)如下写法均属不良风格,不得分。if(p==0)if(p!=0)if(p)if(!)二、以下为WindowsNT下的32位C++程序,请计算sizeof的值(10分)char*p=str;intn=10;charstr[]=“Hello”;请计算sizeof(str)=6sizeof(p)=4(2分)(2分) sizeof(n)=4(2分)voidFunc(charstr[100]){请计算sizeof(str)=4}(2分)void*p=

4、malloc(100);请计算sizeof(p)=4(2分) 三、简答题(25分)1、头文件中的ifndef/define/endif干什么用?(5分)答:防止该头文件被重复引用。 #include,编译器从标准库路径开始搜索filename.h对于#include“filename.h”,编译器从用户的工作路径开始搜索filename.h3.const有什么用途?(请至少说明两种)(5分)答:4.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?(5分)答:5.请简述以下两个for循环的优缺点(5分) for(i=0;i{if(

5、condition)DoSomething();elseDoOtherthing();}if(condition){for(i=0;iDoSomething();}else{for(i=0;iDoOtherthing();}优点:程序简洁缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。优点:循环的效率高缺点:程序不简洁 5分,共20分)voidGetMemory(char*p){p=(char*)malloc(100);}voidTest(void){char*str=NULL;GetMemo

6、ry(str);strcpy(str,"helloworld");printf(str);}请问运行Test函数会有什么样的结果?答:程序崩溃。因为Test函数中的str一直都是NULL。strcpy(str,"helloworld");将使程序崩溃。 GetMemory并不能传递动态内存,char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}请问运行Test函数会有什么样的结果?答:可能是

7、乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL,但其原现的内容已经被清除,新内容不可知。voidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?答:(( 1)能够输出hello2)内存泄漏voidTest(void){char*str=(char*)malloc(10

8、0);strcpy(str,free(str);if(str!=NULL){strcpy(st

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。