当前位置:文档之家› 华为笔试题

华为笔试题


19、下面正确的有 A A) 在中断中,不能同步获取信号量,但是可以释放信号量 B) 在中断中,可以使用系统调用 sleep 函数来等待一会儿 C) 每一个进程有自己的独立地址空间,每一个线程程序也有自己的独立地址空 间 D) CPU 占用率为 60%, 意思是 CPU 有 60%的时间在运行指令 40%的时间没有 运行指令
笔试题
选择题
1、以下程序的输出结果是: 以下程序的输出结果是: #include <stdio.h> 2 0 \r\n
int main() { int n = 4; while (n--) { printf("%d ", --n); } printf("\r\n"); return 0; }
2、设有以下宏定义: 设有以下宏定义: #define N 4 #define Y(n) ((N+1)*n) 则执行语句:Y(5+1)为: 26
/*其他操作*/ free(p); } p1 越界访问
编程题
1、对称数判断问题 请编写一段程序,判断一个正整数是否为对称数(对称数即左右对称的数字, 如 3、22、121、1331、34543 等) ,不允许利用 C 语言将数字转换为字符转的库 函数。
#include <stdio.h> //num 的位数 int bit(int num) { int count=0; do{ num=num/10; count++; }while(num); return count; } //10 的次方 int power(int count) { int sum=1,i; for(i=1;i<=count;i++) sum*=10; return sum; } int main() { unsigned int num; int i,count; printf("Please input a number:\n"); scanf("%u",&num);
{ struct XXX *temp; temp=(struct XXX*)malloc(sizeof(struct XXX)*MAX_SIZE); if (NULL == temp) { return FALSE; } memcpy(temp, p, sizeof(struct XXX)*size); /*其他操作*/ free (temp); return TRUE; } Demo 4、如下程序用于把“ 如下程序用于把“blue”字符串返回, 字符串返回,请指出其中的错误。 请指出其中的错误。 char *GetBlue() { char* pcColor; char* pcNewColor; pcColor = "blue"; pcNewColor = (char*)malloc(strlen(pColor)); strcpy(pcNewColor, pcColor); return pcNewColor; } 返回时类型不兼容 5、请问如下程序段有什么错误? 请问如下程序段有什么错误? main() { unsigned long i = 0, *p, *p1; p = (unsigned long *)malloc(10000); p1 = p; for(i = 0; i < 9999; i++) { *p1 = 0x100; p1++; }
20、设有如下定义: C 设有如下定义:int (*ptr)();则以下叙述中正确的是: 则以下叙述中正确的是: A) ptr 是指向一维数组的指针变量 B) ptr 是指向 int 型数据的指针变量 C) ptr 是指向函数的指针,该函数返回一个 int 型数据 D) ptr 是一个函数名,该函数的返回值是指向 int 型数据的指针
7、若已定义: int a[9], *p = a;并在以后的语句中未改变 p 的值, 的值,不能表示 a[1]地 址的表达式是: C 址的表达式是: A)p+1 B)a+1 C) a++ D) ++p
8、设有如下定义: 设有如下定义: unsigned long plArray[] = {6,7,8,9,10}; unsigned long *pulPtr; 则下列程序段的输出结果是什么? D pulPtr = pulArray; *(pulPtr + 2) += 2; printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2)); A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10
5、对栈 S 进行下列操作: 进行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 则此时 栈顶元素是: 栈顶元素是: NULL 6、在一个 32 位的操作系统中, ,请问 位的操作系统中,设 void *p = malloc(100) ,请问 sizeof(p)的 结果是: 结果是:4
15、如下定义, 如下定义,则 s 在内存中占多大空间? 在内存中占多大空间? union { struct { unsigned char aa:4; unsigned char ab:4; } a; unsigned char c; unsigned char d; } s; A) 1 byte B) 2byte C) 3byte D) 4byte A 16、如下定义: 如下定义: union tagAAAA { struct { char ucFirst; short usSecond; char ucThird; }half_a; long lI; }number; 在按 1 字节对齐情况下,sizeof(union tagAAAA)的大小是: 在按 4 字节对齐情况下,sizeof(union tagAAAA)的大小是: A) 4byte B) 6byte C) 8byte D) 12byte
23、关于以太网中的 ARP 协议, A 协议,描述错误的是: 描述错误的是: A) 根据 IP 地址查询其对应的 MAC 地址 B) 根据 MAC 地址查询其对应的 IP 地址,便于 IP 通信 C) 通过 ARP 协议产生的 IP 和 MAC 地址的映射,超时会淘汰 D) ARP 请求中的 MAC 地址为广播地址
D) 出错
10、给出以下定义: 给出以下定义: char X[] = "hello"; char Y[] = {'h', 'e', 'l', 'l', 'o'}; 则正确的叙述为: C A) 数组 X 和数组 Y 等价 B) 数组 X 和数组 Y 的长度相同 C) 数组 X 的长度大于数组 Y 的长度 D) 数组 X 的长度小于数组 Y 的长度
24、关于 TCP、UDP 及其上层的应用, B 及其上层的应用,描述错误的是: 描述错误的是: A)TCP 协议面向连接的,UDP 协议是面向无连接的 B) UDP 不保证数据的可靠传送,而文件的传递时要求必须无错传送的,因而所 有基于文件传递的应用都不能基于 UDP,如:TFTP C) telnet 是基于 TCP 的终端应用, 连续输入的多个字符可能会被封装到一个 TCP 包中 D) 在同一个节点上,基于 TCP 和 UDP 的应用端口号可以重叠
A D
17、0x12345678 在采用 BigEndian 中内存的排列顺序是 A 。 LittleEndian 内存中的排列顺序是 C (答案从左到右内存地址依次增加) A) 12 34 56 78 B) 34 12 78 56 C) 78 56 34 12 12 34
,在采用
D) 56 78
18、关于静态变量, A 关于静态变量,下面说法“ 下面说法“不正确” 不正确”的有: 的有: A) 静态变量在堆栈中分配 B) 静态变量的作用域一定是局部的,例如在一个文件内或一个函数内 C) 静态变量可分为静态局变量和静态全局部变量 D) 静态变量存在于数据段中
11、在 32 位 X86 下,有下列程序 #include <stdio.h> void main() { union { int k; char i[2]; } *s, a; s = &a; s->i[0] = 0x39; s->i[1] = 0x38; printf("%x\r\n", a.k); } 输出结果是: B A) 3839 B) 3938 C) 380039
13、 ((a>b)?a:b)代表什么含义: 代表什么含义:D A) 代表 a,b 之中较小的那个值 B) 代表 a,b 之中较大的那个值 C) 代表 a 是否比 b 大 D) 语法错误
14、某系统总线的一个总线周期包含 3 个时钟周期, 个时钟周期,每个总线周期可以传送 32 位数据。 位数据。若总线的时钟频率为 33MHz, 则总线带宽为多少 MB/s ?B A) 11 B) 22 C) 33 D) 44
D) 不可预知
12、有如下函数定义: 有如下函数定义: unsigned long MyFunc(unsigned long ulKey) { return (((ulKey & 0x000000ffUL) << 24) | ((ulKey & 0x0000ff00UL) << 8) | ((ulKey & 0x00ff000ቤተ መጻሕፍቲ ባይዱUL) >> 8) | ((ulKey & 0xff000000UL) >> 24)); } 则 MyFunc(0x12345678)的返回值是: C A) 0x12345678 B) 0x87654321 C) 0x78563412 D) 0x12563478
相关主题