上海贝尔语言笔试题 .docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上海贝尔语言笔试题 .doc

上海贝尔C语言笔试题 一、 以下为WindowsNT下的32位C++程序,请计算 sizeof 的值(10 分) charstr[]= “Hello” ; char*p=str; intn二10; 请计算 sizeof (str)=6(2 分) sizeof (p)=4(2 分) sizeof (n) =4(2 分)voidFunc (charstr [100]) { 请计算 sizeof (str) =4 (2 分) void*p=malloc(100); 请计算 sizeof (p)=4 (2 分) 二、 请填写B⑻L,float,指针变量与“零值”比较的 if语句。(10分) 请写出BOOLflag与“零值”比较的if语句。(3分) 标准答案: if (fl ag) if(!flag)如下写法均属不良风格,不得分。 if (flag —TRUE) if (fl ag二=1) if (flag==FALSE) if(flag==O) 请写出floatx与“零值”比较的if语句。(4分) 标准答案示例: const floatEPSINON =; if ((x=-EPSIN0N) (x不可将浮点变量用“==”或“!= ” 与数字比较,应该设法转化成“〉=”或“类 形式。 如下是错误的写法,不得分。 if(x==) if (x!=) 请写出char*p与“零值”比较的if语句。(3分) 标准答案: if (p==NULL) if (p!=NUL L)如下写法均属不良风格,不得分。 if (p==0 ) if (p!=0) if(p) if⑴ 三、简答题(25分) 1、 头文件中的ifndef/def ine/endif干什么用?(5分) 答:防止该头文件被重复引用。 2、 include 和include “” 有什么区别?(5 分) 答:对于tfinclude,编译器从标准库路径开始搜索 对于^include “”,编译器从用户的工作路径开始搜索 3、 const有什么用途?(请至少说明两种)(5分) 答:(1)可以定义const常量 (2)const可以修饰函数的参数、返回值,甚至函数的 定义体。被con st修饰的东西 都 受到 强制保护,可以预防意外的变动,能提高程序的健壮 性。 4、 在C++程序中调用被C编译器编译后的函数,为什 么要加 extern “C” ?(5 分 C语言不支持函数重载答:C++语言支持函数重载, 函数被C++ C语言不支持函数重载 C语言 的不同。假设某个函数的原型为: voidfoo(intx,inty); 该函数被C编译器编译后在库中的名字为_£00,而C++ 编译器则会产生像_foo _int_in 之类的 名字。 C++提供了 C连接交换指定符号exter n “C”来解决名 字匹配问题。 5、请简述以下两个for循环的优缺点(5分) for(i=0;i { if(condition ) DoSomething (): else DoOth erthing (); } if (condition) for(i=0;i Do Something (); else for(i=0;i DoOtherth ing (); 优点:程序简洁 缺点:多执行了 N -1次逻辑判断,并且打断了循环 “流水线”作业,使得编译器不能 对循环进行优化处理,降低了效率。优点:循环的效 率高 缺点:程序不简洁 四、有关内存的思考题(每小题5分,共20分) voidG etMemory (cha r氺p) { p=(ch ar*)malloc (1 00); } voidTes t (void) { char 氺str=NULL; Ge tMemory(str); strcpy (st r, 〃helloworl d〃); printf (s tr); 请问运行Test函数会有什么样的结果? 答:程序崩溃。 因为G etMemory并不能传递动态内存, Test函数中的str —直都是NULL。 strcpy (s tr, hellowor ld〃);将使程序崩溃。 char氺GetMemo ry (void) { c harp[]=〃hell oworld; retu rnp; voidTes t (void) { char 氺str=NULL; st r=GetMemory(); printf(str ); } 请问运行Test函数会有什么样的结果? 答:可能是乱码。 因为Ge tMemory返回的是指向“栈内存”的指针,该 指针的地址不是NULL,但其原 现 的 内容已经被清除,新内容不可知。 voi dGetMemory2 (char**p, intn um) { *p=(ch ar*)malloc(

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档