- 相关推荐
C语言面试题大汇总之华为面试题
女性时尚购物网编辑: 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 则语句 printf( "%d ",sizeof(struct date)+sizeof(max));的执行结果是:___52____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20 10、队列和栈有什么区别? 队列先进先出,栈后进先出 11、写出下列代码的输出内容 #include
int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); } typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) { INCp=&inc; int temp =p(arg1); fun(&temp,&arg1, arg2); printf( "%d\n ",*arg2); } main() { int a; show(multi,10,&a); return 0; } 答:110 12、请找出下面代码中的所以错误 说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” 1、#include "string.h " 2、main() 3、{ 4、 char*src= "hello,world "; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=src[len]; 10、 while(len--!=0) 11、 d++=s--; 12、 printf( "%s ",dest); 13、 return 0; 14、} 答: 方法1: int main() { char* src = "hello,world "; int len = strlen(src); char* dest = (char*)malloc(len+1);//要为\0分配一个空间 char* d = dest; char* s = &src[len-1];//指向最后一个字符 while( len-- != 0 ) *d++=*s--; *d = 0;//尾部要加\0 printf( "%s\n ",dest); free(dest);// 使用完,应当释放空间,以免造成内存汇泄露 return 0; } 方法2: #include #include main() { char str[]= "hello,world "; int len=strlen(str); char t; for(int i=0; i
【C语言面试题大之华为面试题】相关文章:
华为C++/MFC面试题07-11
华为面试题C语言软件工程师07-11
华为面试题07-11
c面试题07-13
c面试题08-04
经典C/C++面试题07-11
华为面试题(四)07-11
华为Java面试题07-11
华为面试题(二)07-11
华为的JAVA面试题07-11