资源描述:
《华为笔试题(答案).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、笔试题选择题1、以下程序的输出结果是:#includeint main(){ int n = 4; while (n--) { printf("%d", --n); } printf("r"); return 0;}答案:202、设有以下宏定义:#defineN4#defineY(n)((N+1)*n)则执行语句:Y(5+1)为:答案:263、enum ENUM_A{ x1, y1, z1 = 5, a1, b1};enum ENUM_A enumA = y
2、1;enum ENUM_A enumB = b1;请问enumA和enumB的值是多少?答案:1,74、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时正确的调用方法是:答案:(*p)(a,b)或者p(a,b)5、对栈S进行下列操作:push(1),push(5),pop(),push(2),pop(),pop(),则此时栈顶元素是:答案:没有元素,栈空。6、在一个32位的操作系统中,设void*p=malloc(100),请问sizeof(p)的结果是:答案:32位操作系统的寻址大小是32位,即4字节。7、若已定义:inta[9],*
3、p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是:A)p+1B)a+1C)a++D)++p答案:C8、设有如下定义:unsigned long pulArray[] = {6,7,8,9,10};unsigned long *pulPtr;则下列程序段的输出结果是什么?pulPtr = pulArray;*(pulPtr + 2) += 2;printf("%d,%dr", *pulPtr, *(pulPtr + 2));A)8,10B)6,8C)7,9D)6,10答案:D9、以下程序运行后,输出结果是什么?void main(){
4、 char *szStr = "abcde"; szStr += 2; printf("%1ur", szStr); return;}A)cdeB)字符c的ASCII码值C)字符c的地址D)出错答案:C10、给出以下定义:char X[] = "hello";char Y[] = {'h', 'e', 'l', 'l', 'o'};则正确的叙述为:A)数组X和数组Y等价B)数组X和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度答案:C11、在32位X86下,有下列程序#include5、>void main(){ union { int k; char i[2]; } *s, a; s = &a; s->i[0] = 0x39; s->i[1] = 0x38; printf("%xr", a.k);}输出结果是:A)3839B)3938C)380039D)不可预知答案:A12、有如下函数定义:unsigned long MyFunc(unsigned long ulKey){ return (((ulKey & 0x000000ffUL) << 24)
6、
7、 ((ulKey & 0x0000ff00UL) << 8)
8、 ((ulKey & 0x00ff0000UL) >> 8)
9、 ((ulKey & 0xff000000UL) >> 24));}则MyFunc(0x12345678)的返回值是:A)0x12345678B)0x87654321C)0x78563412D)0x12563478答案:C13、((a>b)?a:b)代表什么含义:A)代表a,b之中较小的那个值B)代表a,b之中较大的那个值C)代表a是否比b大D)语法错误答案:B14、某系统总线的一个总线周
10、期包含3个时钟周期,每个总线周期可以传送32位数据。若总线的时钟频率为33MHz,则总线带宽为多少MB/s?33*10(6)*32/8*10(6)*3A)11B)22C)33D)44答案:D15、如下定义,则s在内存中占多大空间?union{ struct { unsigned char aa:4; unsigned char ab:4; } a; unsigned char c; unsigned char d;} s;A)1byteB)2byteC)3byteD)4byte答案:A16、如下定义:u
11、nion tagAAAA{ st