华为上机题库整理

华为上机题库整理
华为上机题库整理

华为上机题库整理

以前上机考试编程工具为C/C++:VC 6.0;Java:eclipse,这次改成C/C++: VS2005(或VC6.0) Java:JDK1.7。由于本人以前学C语言花了一些功夫,相对Java用得上手些,备考时用的是C++;临考前一周接到通知,说是要用VS2005,于是下个软件再加上熟悉一下花了半天时间,手忙脚乱了一阵(建议最好用VS,毕竟有的程序在VC上能调通,在VS上可能运行不通过);2、以往的形式是给你个函数模块,函数名已写好,你只要往里面填代码就行了(华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数)例如: 1. 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。函数原型为int compare_array( int len1, int array1[], int len2, int array2[] );其中,len1与len2分别为数组array1[]和array2[]的长度,函数返回值为两个数组不同元素的个数。这次是随你发挥,可以写子函数,也可以只写个main 函数(当然main函数是必不可少的)。先在编译环境(即VS2005或JDK1.7)上运行,调通后再复制到考试系统中,检查无误后,点击提交(不过每道题最多只能传五次);.3、以往满分是100分,第一题20分,第二题30分,第三题50分,且前两题为必做题,最后一题作为附加题;现在是满分320(有点像英语四六级改革一样,100分改成710分),第一题60分,第二题100分,第三题160分,且不分什么必做题、附加题,建议拿到题目后最好把题目都浏览一遍,不一定按顺序做,尽会做的先做;

有几点需要特别注意:

1、一定要按标准输入、输出来编程,且按照考试系统中规定的格式,否则即使从头到尾写的都对,系统将显示格式错误,无法得分;

2、最好多试几组测试条例,否则得不全分(本人已经犯过此类失误,希望后人不要重蹈覆辙);

3、不要写任何程序提示语句(包括自己人为添加的换行命令),否则该题自动判

0分;

此外,考试时有不清楚的就问在场的工作人员,不要一个人憋在那里不吭声,浪费的是自己宝贵的时间;个人觉得华为的员工还是挺热心的,我问了不少问题,他们都跟我详细解答的,在此感谢他们的热忱相助。

1、删除子串

删除子串只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。

自己编的:

#include

#include

#include

int del_sub_str ( char *str, char *sub_str,char *result );

int main (void)

{

int count;

char result[100];

char str[100];

char sub_str[100];

printf("Please insert your strings!\n");

gets(str);

printf("Please insert your sub_strings!\n");

gets(sub_str);

count=del_sub_str(str,sub_str,result);

printf("The deleted strings are:\n");

puts(result);

printf("The num is:%d\n",count);

return 0;

}

int del_sub_str ( char *str, char *sub_str,char *result ) {

int n;

int count=0;

char *p=str,*q=sub_str,*r=result;

n=strlen(q);

while(*p!='\0' )

{

if(strncmp(p,q,n)==0)

{

count++;

p+=n;

}

else

{

*r=*p;

r++;

p++;

}

}

*r='\0';

return count;

}

相关主题
相关文档
最新文档