校招c语言笔试题数组,华为校园招聘考试C语言C笔试题

41528d3028836879cd698677c3999917.gif华为校园招聘考试C语言C笔试题

华为校园招聘考试C语言C++笔试题 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问, 但不能被模块外其它函数访问。它是一个本地的全局变量。 3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是, 这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1)引用必须被初始化,指针不必。 2)引用初始化以后不能被改变,指针可以改变所指的对象。 3)不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于 1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是 O(n^2)。 9.写出 floatx与“零值”比较的 if语句。 if(x>0.000001 (A)a+=(a++);(B)a+=(++a);(C)(a++)+=a;(D)(++a)+=(a++); a=? 答:C错误,左侧不是一个有效变量,不能赋值,可改为 (++a)+=a; 改后答案依次为 9,10,10,11 2.某 32位系统下 ,C++程序,请计算 sizeof的值(5分). charstr[]=“ char*p=str; intn=10; 请计算 sizeof(str)=?(1) sizeof(p)=?(2) sizeof(n)=?(3) voidFoo(charstr[100]){ 请计算 sizeof(str)=?(4) } void*p=malloc(100); 请计算 sizeof(p)=?(5) 答:(1)17(2)4(3)4(4)4(5)4 3.回答下面的问题 .(4分) (1).头文件中的ifndef/define/endif干什么用?预处理 答:防止头文件被重复引用 (2).#include和# include“filename.h”有什么区别? 答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。 (3).在 C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明? 答:函数和变量被 C++编译后在符号库中的名字与 C语言的不同,被 extern“C“修饰的变 量和函数是按照 C语言方式编译和连接的。由于编译后的名字不同, C++程序不能直接调 用 C函数。C++提供了一个 C连接交换指定符号 extern“C”来解决这个问题。 (4).switch()中不允许的数据类型是? 答:实型 4.回答下面的问题 (6分) (1).VoidGetMemory(char**p,intnum){ *p=(char*)malloc(num); } voidTest(void){ char*str=NULL; GetMemory( strcpy(str,“hello“); printf(str); } 请问运行 Test函数会有什么样的结果? 答:输出“hello” (2).voidTest(void){ char*str=(char*)malloc(100); strcpy(str,“hello”); free(str); if(str!=NULL){ strcpy(str,“world”); printf(str); } } 请问运行 Test函数会有什么样的结果? 答:输出“world” (3).char*GetMemory(void){ charp[]=“helloworld“; returnp; } voidTest(void){ char*str=NULL; str=GetMemory(); printf(str); } 请问运行 Test函数会有什么样的结果? 答:无效的指针,输出不确定 5.编写 strcat函数(6分) 已知 strcat函数的原型是 char*strcat(char*strDest,constchar*strSrc); 其中 strDest是目的字符串,strSrc是源字符串。 (1)不调用 C++/C的字符串库函数,请编写函数strcat 答: VC源码: char*__cdeclstrcat(char*dst,constchar*src) { char*cp=dst; while(*cp) cp++;/*findendofdst*/ while(*cp++=*src++);/*Copysrctoendofdst*/ return(dst);/*returndst*/ } (2)strcat能把 strSrc的内容连接到 strDest,为什么还要 char*类型的返回值? 答:方便赋值给其他变量 6.MFC中 CString是类型安全类么? 答:不是,其它数据类型转换到 CString可以使用 CString的成员函数 at来转换 7.C++中为什么用模板类。 答: 1)可用来创建动态增长和减小的数据结构 2)它是类型无关的,因此具有很高的可复用性。 3)它在编译时而不是运行时检查数据类型,保证了类型安全 4)它是平台无关的,可移植性 5)可用于基本数据类型 8.CSingleLock是干什么的。 答:同步多个线程对一个数据类的同时访问 9.NEWTEXTMETRIC是什么。 答:物理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值