就业数据资源平台
当前位置:首页 > 笔试题目
华为笔试题目(C语言篇)



一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)


1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。( )


2、int (*ptr) (),则ptr是一维数组的名字。( )


3、指针在任何情况下都可进行>, <, >=, <=, = =运算。( )


4、switch(c) 语句中c可以是int, long, char, float, unsigned int 类型。( )


5、#define print(x) printf("the no, "#x",is ")


二、填空题(共30分)


1、在windows下,写出运行结果,每空2分,共10分。


char str[ ]= "Hello";


char *p=str;


int n=10;


sizeof(str)=( )


sizeof(p)=( )


sizeof(n)=( )


void func(char str[100])


{ }


sizeof(str)=( )


2、void setmemory(char **p, int num)


{ *p=(char *) malloc(num);}


void test(void)


{ char *str=NULL;


getmemory(&str,100);


strcpy(str,"hello");


printf(str);


}


运行test函数有什么结果?( )10分


3、设int arr[]={6,7,8,9,10};


int *ptr=arr;


(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));


三、编程题(第一小题20,第二小题30分)


1、 不使用库函数,编写函数int strcmp(char *source, char *dest)


相等返回0,不等返回-1;


2、 写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1



就业数据资源平台