最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

华为笔试题目

来源:动视网 责编:小OO 时间:2025-09-23 19:07:48
文档

华为笔试题目

华为c语言笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。()2、int(*ptr)(),则ptr是一维数组的名字。()3、指针在任何情况下都可进行>,=,,=,=60){*nMinute=0;(*nHour)++;if(*nHour>=24){*nHour=0;(*nDate)++;switch(*nMonth){case1:case3:case5:case7:case8:case10
推荐度:
导读华为c语言笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。()2、int(*ptr)(),则ptr是一维数组的名字。()3、指针在任何情况下都可进行>,=,,=,=60){*nMinute=0;(*nHour)++;if(*nHour>=24){*nHour=0;(*nDate)++;switch(*nMonth){case1:case3:case5:case7:case8:case10


华为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));( ) 10分

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

1、 不使用库函数,编写函数int strcmp(char *source, char *dest)相等返回0,不等返回-1;

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

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

字串7

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

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

字串3

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

字串4

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

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

字串2

二、填空题(共30分) 字串6

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

char str[ ]= "Hello";

字串6

char *p=str;

字串5

int n=10; 字串7

sizeof(str)=( )

字串8

sizeof(p)=( ) 字串9

sizeof(n)=( )

字串2

void func(char str[100])

字串9

{ } 字串2

sizeof(str)=( ) 字串1

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

字串2

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

字串5

void test(void) 字串2

{ char *str=NULL; 字串1

getmemory(&str,100);

字串4

strcpy(str,"hello"); 字串4

printf(str); 字串8

} 字串5

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

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

int *ptr=arr; 字串3

(ptr++)+=123;

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

字串8

( ) 10分 字串1

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

字串5

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

相等返回0,不

等返回-1;

字串8

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

华为笔试大全]华为最新笔试题及其分析 _bishiti.com by - 2007-11-20 16:11:001.printf的输出问题

printf("%d

return 1;

else return 0;

}

//way2: more compact

int strcmp(const char*str1, const char *str2)

{

int i = strlen( str1 );

int j;

for(j=0; j<=i; j++)

{

if(str1[j] > str2[j]) return 1; //if str2 terminates, then str2[j]=0, str1[j]>str2[j], return 1;

else if(str1[j] < str2[j]) return -1;

else if(str1[j] == '') return 0;

}

}

//way3: optimize again.

int strcmp(const char * str1, const char * str2 )

{

while(1)

{

if(*str1 > *str2) return 1;

else if(*str1 < *str2) return -1;

else if(*str1 == '') return 0;

str1++;str2++;

}

}

-----------------------------------------------------------------------------------------

题目为:统计一个字符串中字符出现的次数

我这样做的:先定义一个字符数组,遍历字符串将字符与数组中的字符比较,数组中没有时则将该字符放入其中,另定义一个整数数组,其对应位置放入该字符的个数;如果字符数组中存在该字符则直接在整数数组的对应位置加1。遍历完字符串时,其包含的字符和字符个数分别放到了两个数组中,到面试人却说该算法过于复杂,请各位给予指点。(以前上学时遇到过,具体如何做的忘了)

-----------------------------------------------------------------------------------------

华为笔试题 及 答案 (2006-01-01 14:44:20)

分类:大学生活

欧哟!最近找什么电信 科技 网通 什么笔试面试等等等等的题目,累死我了.发现好多笔试题但是没有答案.现在我贡献出来啊~~ 适合通信工程专业和计算机专业的同学找工作之前的准备,如果觉得好给我留个言 ^_^ (还有转载别人的资料的 严重感谢^_^ 比如朱科哥哥) 还有别的通信行业的笔试面试题,如果要请联系我,无偿给你,大家一起资源共享 ^_^

[转贴from朱科]真正的华为笔试题及我的解答

  今天华为打电话说要给我Offer了,怎么报答他的Offer呢,嗯,做套真正的华为笔试题吧。特意提到是真正的华为笔试题,是因为前面我做的号称华为笔试题其实是别人公司的(前面的帖子有解释),下面的内容地球人都说是华为的,难道还不是它的么。哈哈。

  这些题目相比其他公司的试题,较为基础,全部为C语言,没有涉及C++,但如果不细心,是很难得到较高分数的。另外大家转贴不要去掉我的个人信息啊。互相宣传下网站嘛。

1. 找错

void test1()

{

char string[10];

char* str1="01234567";

strcpy(string, str1);

}

答:表面上并且编译都不会错误。但如果string数组原意表示的是字符串的话,那这个赋值就没有达到意图。最好定义为char string[11],这样最后一个元素可以存储字符串结尾符'\\0';

void test2()

{

char string[10], str1[10];

for(int I=0; I<10;I++)

{

str1[I] ='a';

}

strcpy(string, str1);

}

答:strcpy使用错误

,strcpy只有遇到字符串末尾的'\\0'才会结束,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]='\\0',这样就正常了。

void test3(char* str1)

{

char string[10];

if(strlen(str1)<=10)

{

strcpy(string, str1);

}

}

答:这又会出现第一道改错题的错误了。strlen(str1)算出来的值是不包含结尾符'\\0'的,如果str1刚好为10个字符+1结尾符,string就得不到结尾符了。可将strlen(str1)<=10改为strlen(str1)<10。

2. 找错

#define MAX_SRM 256

DSN get_SRM_no()

{

static int SRM_no;

int I;

for(I=0;I {

SRM_no %= MAX_SRM;

if(MY_SRM.state==IDLE)

{

break;

}

}

if(I>=MAX_SRM)

return (NULL_SRM);

else

return SRM_no;

}

答:我不知道这段代码的具体功能,但明显有两个错误

1,SRM_no没有赋初值

2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static声明。

3. 写出程序运行结果

int sum(int a)

{

auto int c=0;

static int b=3;

c+=1;

b+=2;

return(a+b+c);

}

void main()

{

int I;

int a=2;

for(I=0;I<5;I++)

{

printf("%d,

;

if(*nMinute>=60)

{

*nMinute=0;

(*nHour)++;

if(*nHour>=24)

{

*nHour=0;

(*nDate)++;

switch(*nMonth)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

nDays=31;

break;

case 2:// 判断闰年

if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0)

{

nDays=29;

}

else

{

nDays=28;

}

break;

default:

nDays=30;

break;

}

if(*nDate>nDays)

{

*nDate=1;

(*nMonth)++;

if(*nMonth>12)

{

*nMonth=1;

(*nYear)++;

}

}

}

}

}

}

/*示例可运行代码*/

void main()

{

int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59;

NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond);

printf("The result:%d-%d-%d %d:%d:%d

// 单链表类

class LinkList

{

private:

pLinkList m_pList;

int m_listLength;

public:

LinkList();

~LinkList();

bool InsertAfter(int afternode, int data);//插入

bool RemoveAfter(int removenode);//删除

void sort();//排序

};

实现方法

//insert a node after a specified node

bool LinkList::InsertAfter(int afternode, int data)

{

LNode *pTemp = m_pList;

int curPos = -1;

if (afternode > m_listLength ) // 插入点超过总长度

{

return false;

}

while (pTemp != NULL) // 找到指定的节点

{

curPos++;

if (curPos == afternode)

break;

pTemp = pTemp->next;

}

if (curPos != afternode) // 节点未寻到,错误退出

{

return false;

}

LNode *newNode = new LNode; // 将新节点插入指定节点后

newNode->data = data;

newNode->next = pTemp->next;

pTemp->next = newNode;

m_listLength++;

return true;

}

//remove the node after a specified node

bool LinkList::RemoveAfter(int removenode)

{

LNode *pTemp = m_pList;

int curPos=-1;

if (removenode > m_listLength) // 删除点超过总长度

{

return false;

}

// 找到指定的节点后一个节点,因为删除的是后一个节点

while (pTemp != NULL)

{

curPos++;

if (curPos == removenode+1)

break;

pTemp = pTemp->next;

}

if (curPos != removenode) // 节点未寻到,错误退出

{

return false;

}

LNode *pDel = NULL; // 删除节点

pDel = pTemp->next;

pTemp->next = pDel->next;

delete pDel;

m_listLength--;

return true;

}

//sort the linked list to descending order.

void LinkList::sort()

{

if (m_listLength<=1)

{

return;

}

LNode *pTemp = m_pList;

int temp;

// 选择法排序

for(int i=0;i for(int j=i+1;j if (pTemp[i].data {

temp=pTemp[i].data;

pTemp[i].data=pTemp[j].data;

pTemp[j].data=temp;

}

} 

前两个函数实现了要求a,后一个函数sort()实现了要求b

3. Debugging (Mandatory)

a. For each of the following recursive methods, enter Y in the answer box if the method terminaters (assume i=5), Otherwise enter N.

(题目意思:判断下面的递归函数是否可以结束)

static int f(int i){

return f(i-1)*f(i-1);

}

Ansewr: N,明显没有返回条件语句,无限递归了

static int f(int i){

if(i==0){return 1;}

else {return f(i-1)*f(i-1);}

}  

Ansewr:Y,当i=0时可结束递归

static int f(int i){

if(i==0){return 1;}

else {return f(i-1)*f(i-2);}

}

Ansewr:N,因为i=1时,f(i-2)=f(-1),进入一个无限递归中

b. There are two errors in the following JAVA program:

static void g(int i){

if(i==1){return;}

if(i%2==0){g(i/2);return;}

else {g(3*i);return;}

}

please correct them to make sure we can get the printed-out result as below:

3 10 5 16 8 4 2 1

答:在第一个if语句前加 System.out.print(i+" ");

  else 里面的g(3*i)改为g(3*i+1)

该题由网友alvin补上,我不熟java。谢谢他。  

--------------------------------------------

--

又到广告时间:版权所有:朱科 欢迎光临我的网站:www.goodsoft.cn,各位转贴别删,劳动成果啊

----------------------------------------------

中文笔试题

1.汉译英

  北电网络的开发者计划使来自于不同组织的开发者,能够在北电网络的平台上开发的补充业务。北电网络符合工业标准的开放接口,为补充业务的开展引入了无数商机,开发者计划为不同层面的开发者提供不同等级的资格,资格的划分还考虑到以下因素:补充业务与北电网络平台的集合程度,开发者团体与北电网络的合作关系,等等。

答:呵呵。这个这个基本上还是不现丑了吧。

2.编程

  将整数转换成字符串:void itoa(int,char);

例如itoa(-123,s[])则s=“-123”;

答:

char* itoa(int value, char* string)

{

char tmp[33];

char* tp = tmp;

int i;

unsigned v;

char* sp;

// 将值转为正值

if (value < 0)

v = -value;

else

v = (unsigned)value;

// 将数转换为字符放在数组tmp中

while (v)

{

i = v % 10;

v = v / 10;

*tp++ = i+'0';

}

// 将tmp里的字符填入string指针里,并加上负号(如果有)

sp = string;

if (value < 0)

*sp++ = '-';

while (tp > tmp)

*sp++ = *--tp;

*sp = 0;

return string;

}

文档

华为笔试题目

华为c语言笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。()2、int(*ptr)(),则ptr是一维数组的名字。()3、指针在任何情况下都可进行>,=,,=,=60){*nMinute=0;(*nHour)++;if(*nHour>=24){*nHour=0;(*nDate)++;switch(*nMonth){case1:case3:case5:case7:case8:case10
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top