高通笔试题--嵌入式C开发人员最好0x10道笔试题(详细解析)

嵌入式C开发人员的最好的0x10道笔试题

约定:

1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了

2)数据类型?????

Char一个字节 1 byte

Int两个字节 2 byte (16位系统,认为整型是2个字节)

long int四个字节 4 byte

float四个字节4 byet

double八个字节 8 byte

long double十个字节 10 byte

pointer两个字节 2 byte(注意,16位系统,地址总线只有16位)第1题: 考查对volatile关键字的认识

#include

static jmp_buf buf;

main()

{

volatile int b;

b =3;

if(setjmp(buf)!=0)

{

printf("%d ", b);

exit(0);

}

b=5;

longjmp(buf , 1);

}

请问,这段程序的输出是

(a) 3(b) 5(c) 0(d) 以上均不是第2题:考查类型转换

main()

{

struct node

{

int a;

int b;

int c;

};

struct node s= { 3, 5,6 };

struct node *pt = &s;

printf("%d" , *(int*)pt);

}

这段程序的输出是:

(a) 3(b) 5(c) 6(d) 7

第3题:考查递归调用

int foo ( int x , int n)

{

int val;

val =1;

if (n>0)

{

if (n%2 == 1) val = val *x;

val = val * foo(x*x , n/2);

}

return val;

}

这段代码对x和n完成什么样的功能(操作)?

(a) x^n?(x的n次幂)(b) x*n(x与n的乘积) (c) n^x(n的x次幂) (d)以上均不是第4题:考查指针,这道题只适合于那些特别细心且对指针和数组有深入理解的人

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) 以上均不是第5题:考查多维数组与指针

void foo(int [][3] );

main()

{

int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}};

foo(a);

printf("%d" , a[2][1]);

}

void foo( int b[][3])

{

++ b;

b[1][1] =9;

}

这段程序的输出是:

(a) 8(b) 9(c) 7(d)以上均不对第6题目:考查逗号表达式

main()

{

int a, b,c, d;

a=3;

b=5;

c=a,b;

d=(a,b);

printf("c=%d" ,c);

printf("d=%d" ,d);

}

这段程序的输出是:

(a) c=3 d=3(b) c=5 d=3(c) c=3 d=5(d) c=5 d=5

第7题:考查指针数组

main()

{

int a[][3] = { 1,2,3 ,4,5,6};

int (*ptr)[3] =a;

printf("%d %d " ,(*ptr)[1], (*ptr)[2] );

++ptr;

printf("%d %d" ,(*ptr)[1], (*ptr)[2] );

}

这段程序的输出是:

(a) 2 3 5 6(b) 2 3 4 5(c) 4 5 0 0(d) 以上均不对第8题:考查函数指针

int *f1(void)

{

int x =10;

return(&x);

}

int *f2(void)

{

int*ptr;

*ptr =10;

return ptr;

}

int *f3(void)

{

int *ptr;

ptr=(int*) malloc(sizeof(int));

return ptr;

}

上面这3个函数哪一个最可能引起指针方面的问题

(a) 只有 f3(b) 只有f1 and f3(c) 只有f1 and f2(d) f1 , f2 ,f3

第9题:考查自加操作(++)

main()

{

int i=3;

int j;

j = sizeof(++i+ ++i);

printf("i=%d j=%d", i ,j);

}

这段程序的输出是:

(a) i=4 j=2(b) i=3 j=2(c) i=3 j=4(d) i=3 j

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐