='a'&&*ss=ss;uppers(s,us);printf("Theresultis:\n%s\n",us);getch();}学号:2009" />
文档库 最新最全的文档下载
当前位置:文档库 › C语言 2010 华为 网络面试题汇总

C语言 2010 华为 网络面试题汇总

C语言 2010 华为 网络面试题汇总
C语言 2010 华为 网络面试题汇总

学号:2009121001 姓名:达选芳 本题出自:<华为公司> 题目:<实现一个函数,把一个字符串的小写转化成大写> 答案: #include "stdio.h" #include "conio.h" void uppers(char *s,char *us) { for(;*s!='\0';s++,us++) { if(*s>='a'&&*s<='z') *us = *s-32; else *us = *s; } *us = '\0'; } int main() { char *s,*us; char ss[20]; printf("Please input a string:\n"); scanf("%s",ss);

s = ss; uppers(s,us); printf("The result is:\n%s\n",us); getch(); } 学号:2009121003 姓名:孙英杰 本题出自:华为公司 题目:改错题(此代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” ) 源代码为: #include"string.h" main() { char*src="hello,world"; char* dest=NULL; int len=strlen(src); dest=(char*)malloc(len); char* d=dest; char* s=src[len]; while(len--!=0) d++=s--; printf("%s",dest); return 0; } 答案: #include int main() { char* src = "hello,world"; int len = strlen(src); char* dest = (char*)malloc(len+1); char* d = dest; char* s = &src[len-1]; while( len-- != 0 ) *d++=*s--; *d = 0; 学号:2009121004

姓名:胡蝶 本题出自:<华为> 题目:<按照编码规范写题目> 试题: 编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串 是由同一字符组成的. 答案:<有编码的答案按照编码规范写> 解答: char * search(char *cpSource, char ch) { char *cpTemp=NULL, *cpDest=NULL; int iTemp, iCount=0; while(*cpSource) { if(*cpSource == ch) { iTemp = 0; cpTemp = cpSource; while(*cpSource == ch) ++iTemp, ++cpSource; if(iTemp > iCount) iCount = iTemp, cpDest = cpTemp; if(!*cpSource) break; } ++cpSource; } return cpDest; } 学号:2009121005 姓名:张虹 本题出自: (无相关信息) 题目:找错题/ /* *文件名称:C/C++程序设计面试深入剖析 *文件标识:C/C++笔试 面试 *摘要:本课程的目的并不在于提供 C/C++程序员求职面试指导,而旨在从技术上分析面试 题的内涵。 */ /* *作者:张虹,修改日期:2010 年 4 月 10 日 *修改的地方描述:主要是格式、说明内容的补充,代码上没有做任何修改。

*/ /* *原作者:马良,完成日期:2009 年 5 月 26 日 */ /* *试题 1 */ #include“stdio.h” #include“string.h” void test1() { char string[10]; char *str1="0123456789"; strcpy( string, str1 ); } 答案:试题 1 字符串 str1 需要 11 个字节才能存放下(包括末尾的’\0’,而 string 只有 ) 10 个字节的空间,strcpy 会导致数组越界。 /* *试题 2 */ #include“stdio.h” #include“string.h” void test2() { char string[10],str1[10]; int i; for( i=0; i<10; i++ ) { str1='a'; } strcpy( string, str1 ); } 答案:对试题 2,如果面试者指出字符数组 str1 不能在数组内结束可以给 3 分;如果面试 者指出 strcpy(string, str1)调用使得从 str1 内存起复制到 string 内存起所复制的字节 数具有不确定性可以给 7 分,在此基础上指出库函数 strcpy 工作方式的给 10 分。 /* *试题 3 */

#include“stdio.h” #include“string.h” void test3(char *str1) { char string[10]; If( strlen(str1) <= 10 ) { strcpy( string, str1 ); } }
答案:对试题 3,if( strlen(str1) <= 10 )应改为 if( strlen(str1) < 10 ),因为 strlen 的结果未统计’\0’所占用的 1 个字节。
剖析: 考查对基本功的掌握: (1)字符串以’\0’结尾; (2)对数组越界把握的敏感度; (3)库函数 strcpy 的工作方式,如果编写一个标准 strcpy 函数的总分值为 10,下面给出几个不同得分的答案: //2 分 void strcpy( char *strDest, char *strSrc ) { while( (*strDest++ = *strSrc++) !=‘\0’); } //4 分 void strcpy( char *strDest, const char *strSrc ) //将源字符串加 const,表明其为输入参数,加 2 分 { while( (*strDest++ = *strSrc++) !=‘\0’); } //7 分 void strcpy( char *strDest, const char *strSrc ) { //对源地址和目的地址加非 0 断言,加 3 分 assert( (strDest != NULL) && (strSrc != NULL) );

while( (*strDest++ = *strSrc++) != ‘\0’); } //10 分 //为了实现链式操作,将目的地址返回,加 3 分! char * strcpy(char *strDest, const char *strSrc) { assert( (strDest != NULL) && (strSrc != NULL) ); char *address=strDest; while( (*strDest++ = *strSrc++) != ‘\0’); return address; } //The end 学号:2009121006 姓名:李宛芩 本题出自:华为 题目:请问以下代码有什么问题: int main() { char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; } 答:没有为 str 分配内存空间,将会发生异常 问题出在将一个字符串复制进一个字符变量指针所指地址。 虽然可以正确输出结果, 但因为 越界进行内在读写而导致程序崩溃。 char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 有什么错? "AAA"是字符串常量。s 是指针,指向这个字符串常量,所以声明 s 的时候就有问题。 cosnt char* s="AAA"; 然后又因为是常量,所以对是 s[0]的赋值操作是不合法的。 学号:2009121007 姓名:白宁 本题出自:<思科> 题目:<用宏定义写出 swap(x,y)>

1 用宏定义写出 swap(x,y) #define swap(x,y) x=x+y; y=x-y; x=x-y; 2 数组 a[N],存放了 1 至 N-1 个数,其中某个数重复一次。写一个函数,找出被重复的数字, 时间复杂度必须为 o(N)函数原型 Int do_duo(int a[],int N) 3 一语句实现 x 是否为 2 的若干次幂的判断 Int i=512; Cout< #define NUM 1000 int find5(int num){ int ret=0;

while(num%5==0){ num/=5; ret++; } return ret; } int main(){ int result=0; int i; for(i=5;i<=NUM;i+=5) { result+=find5(i); } printf(" the total zero number is %d\n",result); return 0; }
学号:2009121009 姓名:曾旭东 本题出自:<华为 > 题目: 答案:<答:extern 可以用引用头文件的方式,也可以用 extern 关键字,如果用引用头文件方式来引用某 个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用 extern 方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报 错。 >
学号:2009121010 姓名:郭濠瑜 本题出自:IBM 题目: Output of the following program is main() { int i=0; for(i=0;i<20;i++) { switch(i)

{ case 0:i+=5; case 1:i+=2; case 5:i+=5; default i+=4; break; } printf("%d,",i); } } a) b) c) d) 0,5,9,13,17 5,9,13,17 12,17,22 16,21
答案:d 学号:2009121011 姓名:吴英延 本题出自:<华为> 题目:<按照编码规范写题目> 试题:编写类 String 的构造函数、析构函数和赋值函数,已知类 String 的原型为: class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const String &other); // 赋值函数 private: char *m_data; // 用于保存字符串 }; 答案:<有编码的答案按照编码规范写> 解答:

//普通构造函数 String::String(const char *str) { if(str==NULL) { m_data = new char[1]; // 得分点: 对空字符串自动申请存放结束标志'\0' 的空 //加分点:对 m_data 加 NULL 判断 *m_data = '\0'; } else { int length = strlen(str); m_data = new char[length+1]; // 若能加 NULL 判断则更好 strcpy(m_data, str); } } // String 的析构函数 String::~String(void) { delete [] m_data; // 或 delete m_data; } //拷贝构造函数 String::String(const String &other) // 得分点:输入参数为 const 型 { int length = strlen(other.m_data); m_data = new char[length+1]; strcpy(m_data, other.m_data); } //加分点:对 m_data 加 NULL 判断
//赋值函数 String & String::operate =(const String &other) // 得分点:输入参数为 const 型 { if(this == &other) //得分点:检查自赋值 return *this;

delete [] m_data; int length = strlen( other.m_data ); m_data = new char[length+1]; strcpy( m_data, other.m_data ); return *this; }
//得分点:释放原有的内存资源
//加分点:对 m_data 加 NULL 判断
//得分点:返回本对象的引用
学号:2009121012 姓名:吴昊天 出处:未知 题目: 用变量 a 给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针( A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数 A pointer to a pointer to an integer d) 一个有 10 个整型数的数组( An array of 10 integers) e) 一个有 10 个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers) f) 一个指向有 10 个整型数数组的指针( A pointer to an array of 10 integers) g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer) h) 一个有 10 个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整 型数(An array of ten pointers to functions that take an integer argument and return an integer ) 答案: a) int a; b) int *a; c) int **a; d) int a[10]; e) int *a[10]; f) int (*a)[10]; g) int (*a)(int);

h) int (*a[10])(int);
学号:2009121014 姓名:吴磊俊 本题出自:<華為 > 题目:<局部变量能否和全局变量重名? > 答案:<能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会 用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如 在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内>
学号:2009121015 姓名:杨厚田 本题出自:<华为 > main() { int a[5] = {1,2,3,4,5}; int *ptr = (int*)(&a+1); printf("%d %d" , *(a+1), *(ptr-1) ); }
这段程序的输出是: (a) 2 2 (b) 2 1 (c) 2 5 (d) 以上均不是 版权:华为 答案 c

学号:2009121017 姓名:张冬 本题出自:华为 题目:编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005 年 1 月 1 日 0 时 0 分 0 秒。 答案: //* 本 文 来 自 : IT 知 道 网 (https://www.wendangku.net/doc/4f5912052.html,) 详 细 出 处 参 考 : https://www.wendangku.net/doc/4f5912052.html,/html/c/cmianshi/20070905/89.html*// void ResetTheTime(int *year,int *month,int *date,int *hour,int *minute,int*second) { int dayOfMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if( *year < 0 || *month < 1 || *month > 12 || *date < 1 || *date > 31 || *hour < 0 || *hour > 23 || *minute < 0 ||*minute > 59|| *second <0 || *second >60 ) return; if( *year%400 == 0 || *year%100 != 0 && *year%4 == 0 ) dayOfMonth[1] = 29; if(*second >= 60) { *second = 0; *minute += 1; if(*minute >= 60) { *minute = 0; *hour += 1; if(*hour >= 24) { *hour = 0; *date += 1; if(*date > dayOfMonth[*month-1]) { *date = 1; *month += 1; if(*month > 12) { *month=1; *year += 1; } } } } }

return; }
学号:2009121018 姓名:戴兴 阿里巴巴名面试题: 用用最小空间度将一个 M*N 的矩阵旋转 90 度(顺逆时针均可) // 个人用五个额处空间(两个循环控制三个暂存)实现。 //作者:陈昂(http974@https://www.wendangku.net/doc/4f5912052.html,) //算法说明: //设有一个(M×N)3*4 维矩阵 A,旋转后成 4*3 // 1 2 3 4 9 5 1 // 5 6 7 8 => 10 6 2 // 9 10 11 12 11 7 3 // 12 8 4 可以发现旋转后矩阵与原矩阵的关系: // 旋转后 原矩阵 // A[0,0] = A[2,0] = 9 // A[0,1] = A[1,0] = 5 // A[0,2] = A[0,0] = 1 // A[1,0] = A[2,1] = 10 // A[1,1] = A[1,1] = 6 // A[1,2] = A[0,1] = 2 // A[2,0] = A[2,2] = 11 // A[2,1] = A[1,2] = 7 // A[2,2] = A[0,2] = 3 // A[3,0] = A[2,3] = 12 // A[3,1] = A[1,3] = 8 // A[3,2] = A[0,3] = 4 代码: /*copyright 陈昂*/ #include #include #define M 3 #define N 4 main() { int Matrix[M][N]={1,2,3,4,5,6,7,8,9,10,11,12}; int i=0 ; int j=0 ; int tmpi = 0;

int tmpj = 0; int u = 0; printf("原矩阵为:\n"); for (i= 0 ;i< M ;i++) { for(j=0 ; j< N; j++) printf(" %d ",Matrix[i][j]); printf("\n"); } printf("顺时针转 90 度后:\n"); for (i= 0 ;i< N ; i++) { for(j= 0 ; j< M; j++) { //求该交换元素在原矩阵对应的位置 tmpi = M- j -1; tmpj = i ; //循环查找最后交换的位置 while((tmpi * N + tmpj) < i * M + j ) { u= (tmpi * N + tmpj ); tmpi = u / M ; tmpj = u % M ; tmpi = tmpi + tmpj; tmpj = tmpi - tmpj; tmpi = tmpi - tmpj; tmpi = (M-tmpi -1); } //交换矩元素,后一个作暂存用 if (*(&Matrix[0][0] + i * M + j) != Matrix[tmpi][tmpj]) { *(&Matrix[0][0] + i * M + j) = *(&Matrix[0][0] + i M + j) + Matrix[tmpi][tmpj]; Matrix[tmpi][tmpj] = *(&Matrix[0][0] + i * M + j) - Matrix[tmpi][tmpj]; *(&Matrix[0][0] + i * M + j) = *(&Matrix[0][0] + i M + j) - Matrix[tmpi][tmpj]; } printf(" %d ",*(&Matrix[0][0] + i * M + j)); } printf("\n"); }
*
*

getch(); return 0; } 学号:2009121019 姓名:周凤建 本题出自:<華為 > 题目:<分辨函数 >
#include int inc(int a) int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) int multi(int*a,int*b,int*c) { return(*c=*a**b); } typedef int(FUNC1)(int in); typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) void show(FUNC2 fun,int arg1, int*arg2) { INCp=&inc; int temp =p(arg1); int temp =p(arg1); fun(&temp,&arg1, arg2); fun(&temp,&arg1, arg2); printf("%d\n",*arg2); } main() { int a; int a; show(multi,10,&a); return 0; return 0; }
学号:2009121020

姓名:杨川 本题出自:IBM C 语言面试题 题目1:请编写能直接实现 char * strcpy(char * pstrDest,const char * pstrSource)函 数功能的代码。 题目2:编写反转字符串的程序,要求优化速度、优化空间。 1: char * strcpy(char * pstrDest,const char * pstrSource) { assert((pstrDest!=NULL)&&(pstrSource!=NULL)); char * pstr=pstrDest; while((*(pstrDest++)=*(pstrSource++))!='\0'); return pstr; } 2:char * strrev(char * pstr) { assert(pstr!=NULL); char * p=pstr; char * pret=pstr; while(*(p++)!='\0'); p--; char tmp; while(p>pstr) { tmp=*p; *(p--)=*(pstr); *(pstr++)=tmp; } return pret;
/* 本篇文章来自IDC专家网 原文链接: https://www.wendangku.net/doc/4f5912052.html,/discuss/5/040806/10/481269_2.html * Copyright (c) IBM c语言面试题 * * 文件名称: ********** * 文件标识:根据软件工程设置 * 摘要:IBM公司的面试题 */ //下面其它的声明代码 ?

//下面是原作者、版本、完成、日期和当前版本的信息 /* 当前版本:1.0.1 * 作者:zhyindividual 责任编辑:lujiezhen ,修改日期:2005年4月5日 * 修改的地方描述: */ /* * 取代版本:1.0.0 * 原作者:zhyindividual 责任编辑:lujiezhen ,完成日期:2010年4月31日 */ 学号:2009121021 姓名:何科成 问题: struct a { int x; char y; struct a z; struct a *p; } 请问这种定义结构正确否? 如果有问题,问题在哪里? 答:结构中不能对定义结构本身的非指针变量,如果编译器支持则会导致无限嵌套,因此一 般编译器都会认为 struct a 是未定义的类型,即使提前声明也不会有任何用处。 学 号:2009121022 姓 名:王浩 本题出自: 微软 题 目:设计程序让其 CPU 占用呈余弦曲线显示-perl 版
#!/usr/bin/perl use strict; use warnings; use Win32; use use use use use constant constant constant constant constant COUNT => 200; SPLIT => 0.01; PI => 3.14159265; INTERVAL => 300; TRUE => 1;

main(); sub main { my @busySpan; # array of busy times my @idleSpan; # array of idle times my $half = INTERVAL / 2; my $radian = 0.0; my $i; for ($i = 0; $i < COUNT; $i++) { $busySpan[$i] = int(($half + (sin(PI * $radian) * $half))); $idleSpan[$i] = INTERVAL - $busySpan[$i]; $radian += SPLIT; } my $startTime = 0; my $j = 0; while (TRUE) { $j = int($j % COUNT); $startTime = Win32::GetTickCount(); while ((Win32::GetTickCount() - $startTime) <= $busySpan[$j]) {}; Win32::Sleep($idleSpan[$j]); $j++; } return 0; } 学号:2009121023 姓名:赵红波 本题出自: 题目及答案:1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而 不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量, 比如在两个循环体内都定义一个同名的局部变量, 而那个局部变量的作用域就在那个循环体 内。 2、如何引用一个已经定义过的全局变量? 答:extern

可以用引用头文件的方式,也可以用 extern 关键字,如果用引用头文件方式来引用某 个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用 extern 方式引用时, 假定你犯了同样的错误, 那么在编译期间不会报错, 而在连接期间报错。 3、全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么? 答:可以,在不同的 C 文件中以 static 形式来声明同名全局变量。 可以在不同的 C 文件中声明同名的全局变量,前提是其中只能有一个 C 文件中对此变 量赋初值,此时连接不会出错 4、语句 for( ;1 ;)有什么问题?它是什么意思? 答:和 while(1)相同。 5、do……while 和 while……do 有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 以下是引用片段: #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 7、static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什 么区别?static 函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以 static 就构成了静态的全局变量。 全局变量本身 就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。 这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件 组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用 域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于

华为面试题

华为面试题 华为面试题1、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答案:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static 全局变量与普通的全局变量有什么区别:static全局变量只初使

化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static 函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 2、程序的局部变量存在于()中,全局变量存在于()中,动态申请数据存在于( )中。 答案:栈;静态区;堆 3、设有以下说明和定义: typedef union {long i; int k[5]; char c;} date; struct data { int cat; date cow; double dog;} too; date max; 则语句printf("%d",sizeof(too)+sizeof(max));的执行结果是:______ 答案:date是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + date20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + date10 + double8 = 20 4、队列和栈有什么区别? 答案:队列先进先出,栈后进先出÷ 5、已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。答案:slnodetype *delete(slnodetype *head,int key){}中if(head->number==key) { head=pointer->next; free(pointer); break; } back = pointer; pointer=pointer->next; if(pointer->number==key)

华为软件测试工程师面试题

华为软件测试工程师面试题 2010-05-27 10:25 Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? 答:七层结构从上到下依次是: 7 应用层;6 表示层;5 会话层;4 传输层;3 网络层;2 数据链路层;1 物理层 五层结构是 5 应用层;4 运输层;3 网络层; 2 链路层;1 物理层。 Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP 呢? 答:UDP,TCP在传输层,IP在网络层, TCP/IP是英文Transmission Control Protocol/Internet Protocol的缩写,意思是"传输控制协议/网际协议"。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到 Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的? 一般意义上说交换机是工作在数据链路层。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于“数据链路层+ 部分网络层”。交换机中传的是帧。通过存储转发来实现的。 路由器是工作在网络层。路由器中传的是IP数据报。主要是选址和路由。 Q4:请问C++的类和C里面的STRUCT有什么区别? 答:除关键字不同外(class,struct)的唯一区别是, 结构在默认情况下的成员是公共(public)的, 而类在默认情况下的成员是私有(private)的。 在C++中,结构是特殊的类。 class是从struct发展而来的。之所以将struct和class都保留,是因为: 1、提出class是为了强调一种概念。 2、保留struct是为了照顾到大多数人的习惯。 struct和class是有区别的。 struct保证成员按照声明顺序在内存中存储。class不保证等等 而它们都可以继承,实现多态等。但也有少许区别。比如:

华为LTE认证面试问题完整版含答案

1、测试中关注那些哪些指标? 答:LTE测试中主要关注PCI、RSRP(接收功率)、SINR(信号质量)、PUSCHPower(UE的发射功率)、传输模式(TM3为双流模式)、上下行速率、掉线率、连接成功率、切换成功率………… 2、测试中单站验证的指标 测试时近点要求RSRP≧-80dBm,SINR≧25db, 32字节:Ping时延<=30ms;1024字节:Ping时延<=40ms,下载70M(理论90M),上传30M。 测试时中点要求RSRP在-90至95dBm之间,SINR≧15db左右, 32字节:Ping时延<= 30ms;1024字节:Ping时延<=40ms,下载35M,上传20M。 3、LTE中框架结构 ●LTE的接入网E-UTRAN由eNodeB组成,提供用户面与控制面; ●LTE的核心网EPC(Evolved Packet Core)由MME,S-GW与P-GW组成; ●eNodeB间通过X2接口相互连接,支持数据与信令的直接传输; ●S1接口连接eNodeB与核心网EPC。其中,S1-MME就是eNodeB连接MME的控制面 接口,S1-U就是eNodeB连接S-GW 的用户面接口;

4、TAC与TAL解释一下名称 TAC就是跟踪区码,TAL就是TA list,跟踪区列表 5、UE的正常发射功率就是多少,最大就是多少? 正常小于等于15dbm,最大就是23dbm。 6、LTE的带宽有哪些,对应的RB数又就是多少? 1、4、3、5、10、15、20MHZ对应的RB数就是6、15、25、50、75、100、 7、影响下行速率的因素? 天线的收发模式,MIMO 天线数量与模式,beamforing波束赋形的天线阵增益(包括天线数量)。 空间信道的质量,包括信号强度,以及干扰的情况,空间信道的相关性,UE的移动速度,UE接收机的性能。 TDD还与上下行子帧配比,FDDTDD中信道配置情况有关系(例如cfi的多少,就是否有MBMS 支持) 与用户的数量也有关系。

华为面试题(附答案)Oracle

一、技术问题部分(数据库部分) 1、表空间的管理方式有哪几种? 数据字典管理方式 本地文件管理方式 2、谈谈你对索引的理解? 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。 3、说说索引的组成? 索引列、rowid 4、分区表用过么?谈谈分区表的应用? 分区表在对表的DML的并行处理上有极大得优势,而且可以一部分设为只读,用在销售记录,医院处方等地方!! 5、你对分区表的理解?怎样截断分区表一个分区的记录? 一个分区表有一个或多个分区,每个分区通过使用范围分区、散列分区、或组合分区分区的行 分区表中的每一个分区为一个段,可各自位于不同的表空间中 对于同时能够使用几个进程进行查询或操作的大型表分区非常有用 alter table table_name truncate partition partition_name; 6、物理文件有哪几种?控制文件包含了什么信息? 1)数据文件2)控制文件3)日志文件 包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个有选举权据库至少需要一个控制文件 7、表空间用完了如何增加? 三种种扩展方式: 1 增加数据文件alter tablespace name add datafile …路径? size 4M; 2 扩展数据文件大小alter database datafile …路径? resize 4M; 3 把数据文件设为自动增长 alter database datafile …路径? autoextend on next 1M maxsize 20M; 8、SGA包含几部分? Shared pool(共享池),DataBase Buffer Cache(数据缓冲区) Redo Log Buffer(重做日志缓冲区), Large Pool,大池,JAVA池。 9、DECODE函数的用法? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。还可以转化表结构! 10、DELETE和TRUNCATE的区别? 答:1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

最全的华为校园招聘笔试题

最全的华为校园招聘笔试题 华为笔试 1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 “::“ 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2.如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

4.语句for( ;1 ;)有什么问题?它是什么意思? 答:无限循环,和while (1)相同。 5.do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环。 6.请写出下列代码的输出内容#i nclude main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; } 答:10,12,120 一.判断题(对的写T,错的写F并说明原因,每小题4分,共20分) 1.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。() 2.int (*ptr) (),则ptr是一维数组的名字。() 3.指针在任何情况下都可进行>, =, =MAX_SRM) return (NULL_SRM); else return SRM_no; } 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;Inext = NULL; p=h; for(i=0;inext = s; printf(“Please input the information

华为英语面试试题

1,what’s your english name,please? ----女HR,名字叫ALICE类似的,太吵了,在食堂外面面的试,听不大清楚, 但是感觉是个很不错的HR,相当nice 2,please introduce yourself....about your campus life ------这个必然要准备的。。。我就直接给背出来了 3,where are you from? which city? what is it famous for? Have it developed during the last years? ------这是一类问题的,还是需要点准备;这个最faint,我居然只能想起我们家乡 的面条有名了。。估计是因为买了拌饭,还想吃学苑的面条导致我耿耿于怀 4,what is a typical day in your university? ------这个也得想一下。。。 5,what’s your hobby...? what do you like doing in your spare time? 基本就是这些问题了,其实还是很简单的,华为的英文面每一次都是基本相同的问题。。。电话10分钟左右,英语交谈的时间估计是8分钟左右,估计本来有更多问题的,不过我每个问题都debodebo说了一大堆,估计HR也无语了,现在觉得自己是不是有点说多了,我一 用英语交谈就很激动。。。sigh。。。 最后HR给了我建议,说我的英语很smooth,但是发音chinglish,,要多和外国人联系发音才能够standard...这样的话英语就perfect了。。。这是在安慰我呢。。。 我为各位整理出英文面试最常见的五大问题,并且提醒各位一些回答的技巧,希望大家能针对这些问题多演练,当成练习英文面试的重点。 问题一:Could you please describe yourself?(能否请你形容一下自己?) 这个问题,一来是想要了解你是什么样的人,二来是想看看你是否知道如何重点式地自我简 介。在回答时,要针对应征工作的性质来凸显自己的特色,可以多用形容词,并且引用过 去的工作经验,但是不必提及公司组织的名称,再者,你还可以谈谈未来的生涯规画;但如果你是个社会新鲜人,就可以谈谈在校时的丰功伟业。比方说,今天你打算去应征行销的 职务,你就可以说︰I am dedicative and motivated. I worked on several major inves tment & promotion projects with positive results and I have more rich experiences in the government. I am now working as a general director assistant and administ ration office director for communicating and coordinating in an logistics company. (我有创意、又积极。曾负责数项大型的行销项目,皆有成效。我现在希望在一家深具规模 的公司内,担任有挑战性的行销职务。) 问题二:Why do you think we should employ you?(你认为我们为何要雇用你?) 雇主问此问题,希望你试图证明自己是最佳人选,并且测试你是否熟悉应征职务的工作内容。 回答时,要迎合该公司对该职务的期望,不过切记别给人狂妄自大的印象。假设你今天要 应征机械工程的工作,你就可以说︰I think I am suitable for the position,not only be cause I have a masters degree, but also because I have worked in this field for m ore than 3 years. I believe that my experience can be put to use in further develo ping your business. (我很适合该职位,不只因为我有机械工程学的硕士学位,更因为我 在该产业已经有五年多的工作经验,我相信,我的经验可以派上用场,进一步推动贵公司的 事业。)

华为2011面试问题汇总及答案

华为面试问题汇总及答案-2011华为面试题 Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP 呢? Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的? Q4:请问C++的类和C里面的struct有什么区别? Q5:请讲一讲析构函数和虚函数的用法和作用? Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。 Q8:8086是多少尉的系统?在数据总线上是怎么实现的? 问题1:两笔记本电脑连起来后拼不通,你觉得可能有哪些问题? 问题2:我们在南京,和深圳的网络是通的,但和北京的网络不通,你以怎样的顺序检查问题? 问题3:解释什么叫“透明”?什么叫“网格”? 问题4:交换和路由的区别?VLAN的特点? 问题5:画一个积分电路和一个微分电路。 问题6:知道现在的路由器是第几代了吗? 第一题:可能的原因大体有以下几个:1、网线不通;2、某台笔记本上的tcp/ip协议安装的不完整;3、ip地址配置有问题(不在一个网段上);4、某台笔记本上有防火墙,把icmp 端口给屏蔽了(端口号:139)。这个题的我是从osi模型上入手,从物理层往上一层层排除。第二题:我设想的顺序是按照由近及远的顺序进行测试,如果是有vpn的话,只要确定两端和本地网络提供支持的公司之间的网络是连通的,其他的就交个那个公司来做了,如果是自己维护的基于ddn一类的点对点网络,那么找到路由表,从最近的路由器开始ping吧。 第三题:关于透明,我的理解就是一种开放的通信,意味着应用程序可以与网络上它所知道地址的其它任何应用程序连接并会话,而在这个网络上的所有中间设备不会干扰应用程序之间的信息交换。关于网格,就是把网络上所有的计算机进行整合使其成一台超级计算机,实现计算能力、存储容量、数据和信息资源等全方位的共享。 第四题:交换技术和路由技术的最大区别在于他们寻址的方式以及报文的转发方式上,交换技术是发生在2层也就是数据链路层上,是直接利用mac地址建立会话,路由技术发生在网络层,需要通过ip地址建立路由表,然后进行数据通信。在报文的转发方式上,交换技术是使用先收再转,路由技术是采用边收边转。 vlan的主要特点就是安全,信息只到达应该到达的地点。因此、防止了大部分基于网络监听的入侵手段。通过虚拟网设置的访问控制,使在虚拟网外的网络节点不能直接访问虚拟网内节点。 第五题:放弃(一样的放弃) 第六题:第6代,基于集群系统的路由器(我是这么答的) 依旧是师兄答案- -!基本一致! 1.请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? OSI/ISO根据整个计算机网络功能将网络分为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层。也称“七层模型”。 TCP/IP“五层模型”分为:物理层、网络接口层、网络层(IP层)、传输层(TCP/UDP层)、应用层。 2.请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP呢?

华为面试题汇总与答案_1

面试题参考 1.js动态增加行 function addRow(tableId,trId){ var tableObj = document.getElementById(tableId); var trObj = document.getElementById(trId); //var trIndex = trObj.rowIndex+1; var rows = tableObj.rows.length; var cell = ""; var tr = tableObj.insertRow(rows); for(i=0;i 二、SQL书写的影响 1、同一功能同一性能不同写法SQL的影响。 2 .WHERE后面的条件顺序影响 三、SQL语句索引的利用 1、不要有多余的数据。 3.项目权限控制是如何实现 一般实现为:首先建立职责表,用户表,权限表,然后是职责与用户的关联表,职责与权限的关联表。依据每一个功能点建立权限数据,当新加入职责信息时将一条或多条权限数据与对应的职责关联起来。在用户信息中就可将职责数据与用户关联,达到权限管理的目的。页面通过用户的职责权限信息进行操作监控。 4.多次提交ajax后,返回值是否按提交的顺序返回? Ajax调用大部分为JS,JS的运行速度较快,有可能造成请求未完成,后面的JS代码继续运行,而返回结果的顺序不一定按请求顺序返回。取决于后台处理速度 5.数据库设计心得,如何建索引

华为面试题

华为面试题 Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP 与UDP呢? Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的? Q4:请问C++的类和C里面的struct有什么区别? Q5:请讲一讲析构函数和虚函数的用法和作用? Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。 Q8:8086是多少尉的系统?在数据总线上是怎么实现的? 华为面试题2 面试题答案 1.请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? OSI/ISO根据整个计算机网络功能将网络分为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层。也称“七层模型”。TCP/IP“五层模型”分为:物理层、网络接口层、网络层(IP层)、传输层(TCP/UDP层)、应用层。 2.请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP呢? IP协议是网络层的协议,它实现了自动路由功能,也就是寻径的功能。TCP协议是传输层的协议,它向下屏蔽了IP协议不可靠传输的特性,向上提供一个可靠的点到点的传输;UDP也是传输层的协议,提供的是一种无连

接的服务,主要考虑到很多应用不需要可靠的连接,但需要快速的传输,如局域网中的计算机传输文件一般使用UDP协议。 3.请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?交换机用在局域网中,交换机通过记录局域网内各节点机器的MAC地址就可以实现传递报文,无需看报文中的IP 地址。路由器识别不同网络的方法是通过识别不同网络的网络ID号(IP地址的高端部分)进行的`,所以为了保证路由成功,每个网络都必须有一个唯一的网络编号。路由器通过察看报文中IP地址来决定路径,向那个子网(下一跳)路由。也就是说交换机工作在数据链路层看MAC地址,路由器工作在网际层看IP地址。但是由于现在网络设备的发展,很多设备既有交换机的功能有由路由器的功能(交换式路由器)使得两者界限越来越模糊。 4.请问C++的类和C里面的struct 有什么区别? C++的class具有数据封装功能,其包含属性访问级别可以为private,public和protect,还具有实现类接口功能和辅助功能的操作函数,而struct属性访问权限只有public,没有数据封装功能,也就没有实现信息隐藏这一面向对象的思想的机制,struct本身不含有操作函数,只有数据。 5.请讲一讲析构函数和虚函数的用法和作用?析构函数是在类对象死亡时由系统自动调用,其作用是用来释放对象的指针数据成员所指的动态空间,如果在构造函数中,你申请了动态空间,那么为了避免引起程序错误,你必须在析构函数中释放这部分内存空间。如果基类的函数用virtual修饰,成为虚函数,则其派生类相应的重载函数仍能继承该虚函数的性质,虚函数进行动态联编,也即具有多态性,也就是派生类可以改变基类同名函数的行为,在面向对象世界中,多态是最强大的机制,虚函数就是这一机制的c++实现方式。 6.全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放);而局部变量存在于模块(子程序,函数)中,只有所在模块可以访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量消失,所占据的内存释放。操作系统和编译器,可能是通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载.局部变量则分配在堆栈里面。 7.8086是多少位的系统?在数据总线上是怎么实现的?答:8086的机器字长是16位,8086使用40个引脚的16个做地址/数据复用引腿来传输

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

华为面试笔试题

华为软件测试笔试题 Posted on 2010年04月1日, 22:29, by admin, under Test. 华为软件测试笔试题 前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都是大英文。不过不难,CET4的水平就差不多了,但是重要的还是计算机方面的一些基础知识。后面的几道大题如下: 1、有A、B两个水杯,都没有刻度,也不允许做刻度。A杯装满水是5升,B杯装满水是3升。不借助别的任何工具,只用这两个杯子如何精确的得到4升水? A满5 B空 A将B满 A2 清空B A2移于B A满5 A5满B A4 2、软件工程中,根据软件开发的 V 模型,有哪些基本的阶段划分? 3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些? 4、网络安全方面,简述Syn_FLOOD攻击的原理。你还知道哪些类型的网络攻击? 一、根据一张“策略—收获”图,张三可以选择横向的方案A和方案B,李四可以选择纵向的方案1、方案2、方案3。两人选择方案的交叉点就是两人各自的收获。比如张三选择方案B,李四选择方案1,交叉点是(50,80),则张三收获50元,李四收获80元。两人都想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。问两人最终的收获各是多少?

二、桌上排列着一行乒乓球,一共100个。两个人轮流拿球装入口袋,拿到第100个球的人是胜利者。每次拿球最少拿1个,最多拿5个。如果你先开始拿球,你要拿几个?以后你要怎样拿球,才能保证你能拿到第100个? 三、冒泡排序。用C 或 Java 语言。(从小到大排序) C #include void main() { int a[10]; int temp; int i; int j; int x; a[0] = 3; a[1] = 4; a[2] = 54; a[3] = 654; a[4] = 77; a[5] = 8; a[6] = 9; a[7] = 366; a[8] = 90; a[9] = 32; for( i=0;i<9;i++) { for( j =0; j<9-i;j++)

JAVA面试题(_华为)(答案)

软件开发应试人员考试试题(Java) 姓名:___________ 电话:___________ 以下信息有工作经验人员如实填写,应届毕业不填(时间从毕业参加工作算起) 从事Java开发时间____月熟悉JavaScrip时间____月 熟悉EXT开发时间____月熟悉PDM开发时间____月 熟悉的数据库及时间(如SQLServer 3个月,可多填)___________________ 一、JAVA基础 1、简述你所知道的JA V A修饰符及各自的使用机制?(public、abstract、final、synchronized、super…) public :允许所有客户访问 protected:只能在本包内被该类的子类所使用 private:只允许在本类内使用 abstract:没有提供实现,需要子类提供 static:与整个类相关,与单个对象无关 final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final 修饰的方法不能被重写,一个final修饰的变量不能改变其初始值 synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。super:构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。 2. String、StringBuffer与StringBuilder之间区别?别简述各自的执行效率? 区别:String 类型和StringBuffer 类型的主要性能区别其实在于String 是不可变的对象, 因此在每次对String 类型进行改变的时候其实都等同于生成了一个新的String 对象,然后将指针指向新的String 对象,所以经常改变内容的字符串最好不要用String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的GC 就会开始工作,那速度是一定会相当慢的, 执行速度:三者在执行速度方面的比较:StringBuilder > StringBuffer > String 使用场景:1.如果要操作少量的数据用= String 2.单线程操作字符串缓冲区下操作大量数据= StringBuilder 3.多线程操作字符串缓冲区下操作大量数据= StringBuffer 2、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗? 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于该类的对象,必须产生该类对象,才能调用实例变量 静态方法及变量属于整个类,数据将会被存储在公共区域,非静态方法及变量属于对象 静态方法中无法调用实例变量,而实例方法却可以调用静态变量

华为面试 笔试题目(附答案)

华为面试/笔试题目(附答案) 陈晓明2010-05-21 15:45:59 要查看更多华为笔经相关信息,请访问华为公司校园招聘club:深圳华为技术有限公司 (1)什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 (2)char * const p char const * p const char *p 上述三个有什么区别? 答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以 改 const char *p; //和char const *p (3) char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str 6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout (y)?(y):(x)) //结尾没有…;? (10)嵌入式系统中经常要用到无限循环,你怎么用c编写死循环。答案:while(1){}或者for(;;) (11)关键字static的作用是什么?答案:定义静态变量 (12)关键字const有什么含意?答案:表示常量不可以修改的变量。 (13)关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。 (14)int (*s[10])(int) 表示的是什么啊?答案:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。 (15)有以下表达 式: int a=248; b=4;int const c=21;const int *d=&a; int *const e=

C语言面试题(经典全)

1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是: switch的参数不能为实型。(只能是int char) 9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 函数名: atol 功能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

华为IT软件测试笔试题

华为IT软件测试笔试题 判断题(10*1分): 1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。(√) 2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要(×) 3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√) 4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试(×) 5、系统测试应尽可能在实际运行使用环境下进行(√) 6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。(√) 7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(×) 8、程序、需求规格说明、设计规格说明都是软件测试的对象(√) 9、第三方测试是在开发方与用户方的测试基础上进行的验证测试(×) 10、数据流图和数据字典共同构成系统的逻辑模型。(√) 选择题(20*2分): 1、软件测试的目的正确的是(D) ①测试是为了发现程序中的错误而执行程序的过程; ②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; ③成功的测试是发现了至今为止尚未发现的错误的测试 ④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进; A、① B、①②③ C、②③④ D、①②③④ 2、软件测试的对象包括(B) A.目标程序和相关文档 B.源程序、目标程序、数据及相关文档 C.目标程序、操作系统和平台软件 D.源程序和目标程序 3、从是否关心软件内部结构和具体实现的角度划分。(B)

相关文档