华为C/C++笔试题(附答案)1
写出判断ABCD四个表达式的是否正确,若正确,写出经过表达式中a的值(3分)inta=4;(A)a+=(a++);(B)a+=(++a);(C)(a++)+=a;(D)(++a)+=(a++);a=
答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a)+=a;改后答案依次为9,10,10,112
某32位系统下,C++程序,请计算sizeof的值(5分)
charstr[]=“http://www
ibegroup
com/”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)43
回答下面的问题
(4分)(1)
头文件中的ifndef/define/endif干什么用
预处理答:防止头文件被重复引用(2)
#include和#include“filename
h”有什么区别
答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件
在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明
答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern"C"修饰的变量和函数是按照C语言方式编译和连接的
由于编译后的名字不同,C++程序不能直接调用C函数
C++提供了一个C连接交换指定符号extern“C”来解决这个问题
switch()中不允许的数据类型是
回答下面的问题(6分)(1)
VoidGetMemory(char**p,intnum){*p=(char*)malloc(num);