H3C华三技术有限公司[笔试题]
2013-09-25

注:笔试题根据面试者回忆记录,仅供参考;

以下题目都是在小端结尾的32位x86 CPU上面运行的代码:
一.编程题
1. 请实现一个函数,对于给定的整型参数 N,该函数能够打印出自然数中的头 N 个质数(15分)。

2.链表节点结构体定义
struct node{
     int data;
     struct node *prev;
     struct node *next;
}    
假设已经构建完毕的一个双向链表有节点A-B-C-D-E-F,从中截断,以C为截断点,传入节点C的指针,截断后重新连接的链表变为C-D-E-F-A-B的形式,写出实现这一功能的C语言代码,返回新链表的头节点指针。(10分)

二.问答题(每题4分)
1.请写出 float  x  与“零值”比较的 if  语句:

2. 用预处理指令#define声明一个常数,用来表示一年有多少秒(忽略闰年问题)

3. void GetMemory(char *p)
{
     p = (char *)malloc(100);
}
void Test(void)
{
     char *str = NULL;
     GetMemory(str);  
     strcpy(str, "hello world");
     printf(str);
}
请问运行Test函数会有什么样的结果?    

4. char *GetMemory(void)
{  
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();   
printf(str);
}
请问运行Test函数会有什么样的结果

5. void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");  
printf(str);   
}
请问运行Test函数会有什么样的结果    

6. void Test(void)
{
char *str = (char *) malloc(100);
    strcpy(str, “hello”);
    free(str);     
    if(str != NULL)
    {
      strcpy(str, “world”);
printf(str);
     }
}
请问运行Test函数会有什么样的结果

7. char  str[] = “Hello” ;   
char  *p = str ;   
int   n = 10;  
请计算 (1)sizeof (str ) =   
(2)sizeof ( p ) =  
(3)sizeof ( n ) =    

8. int a=0x0A;int b=0x0B;int c=0x0C;int d=0x0D;
int sum=(a & b) ^ (c | d) ;
sum的值是多少?

9.struct name1{ char str;
     int num;
     short x;};求sizeof(name1)是多少?是在32位处理器上

10.#define MUL(A,B) A*B
请问MUL(3+4,5+6)的值是多少?

11. 联合体定义如下
typedef union{
int ia;
char c[4];
short int s[2];
}untest;    untest un;
un.c[0]=0xAA;un.c[1]=0xBB;
un.c[2]=0xCC;un.c[3]=0xDD;
那么那么un.ia=?   un.s[0]=?
注意,X86 CPU是小端结尾的

12.int main(){  
int x=3;  
printf("%d",x);  
return 1;}问题:main函数既然不会被其它函数调用,为什么要返回一个值?这个返回值有什么用途?    13. char a[8]={1,2,3,4,5,6,7,8};
int *ptr=(int *)a;
printf("%d,%d",
*(a+1),
*(char *)(ptr+1));
请问输出:

14.在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

15. 给定一个整型变量a,写两段代码,不调用任何函数,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

16. 关键字volatile有什么含义?并给出3个不同的例子

17.关键字static 有什么用途?(请至少说明两种)

18.Linux中查看进程状态的命令有哪些?列出当前目录以及下面所有子目录里面的文件的命令是?