北京蓝拓扑科技笔试题

下面哪点不是嵌入式操作系统的特点

A. 内核精简 B. 专用性强 C.功能强大 D. 高实时性

答案

C


以下叙述中正确的是:

​ A. 宿主机与目标主机之间只需要建立逻辑连接即可

​ B. 在嵌入式系统中,调试器与被调试器程序一般位于同一台机器上

​ C. 在嵌入式系统开发中,通常采用的是交叉编译器

​ D. 宿主机与目标机之间的通讯烦恼歌是只有串口和并口两种

答案

C. 在嵌入式系统开发中,通常采用的是交叉编译器


Linux中的文件/目录权限设置命令是什么?

A. chown B. mkdir C. chmod D. pwd

答案

C. chmod


0x17&0x11的运算结果是?

A. 0x01 B. 0x11 C. 0x17 D. 0x07

答案

B. 0x11


设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是

A. (a+b)*c/2

B. (1/2)*(a+b)*c

C. (a+b)*c*1/2

D. c/2*(a+b)

答案

B. (1/2)*(a+b)*c

因为a,b,c三个变量都是浮点数,所以在B答案中其结果是0,因为在计算1/2是就是0,如果改成1/2.0就正确了。


为了向二进制文件尾部增加数据,打开文件的方式应采用

A.″ab″

B.″rb+″

C.″wb″

D.″wb+″

答案

A.″ab″


则表达式2*(N+Y(5+1))的值是

定义

`#define N 3`

#define Y(n) ((N+1)*n)

A.42

B.48

C.54

D.出错

答案

B.48

Y(5+1) 传递过去的应该是6,而不是简单的把5+1给替换掉


在#pragma pack(4)和#pragma pack(8)的情况下,结构体的大小分别是

1
2
3
4
5
6
7
8
9
10
struct One{
double d;
char c;
int i;
}
struct Two{
char c;
double d;
int i;
}

A. 16 24, 16 24

B. 16 20, 16 20

C. 16 16, 16 24

D. 16 16, 24 24

答案


请说明下面变量声明方式的区别?

const int a;

int const a;

const int *a;

int * const a;

const int * const a;

int const * const a;

答案
  1. const int a;:a 是一个常量 int。
  2. int const a;:a 是一个常量 int。
  3. const int *a;:a 是一个指向常量 int 的指针。
  4. int * const a;:a 是一个指向 int 的常量指针。
  5. const int * const a;:a 是一个指向常量 int 的常量指针。
  6. int const * const a;:a 是一个指向常量 int 的常量指针。


下面这段程序的运行结果?

1
2
3
4
5
6
7
8
9
int main() 
{
int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
memcpy(a + 3, a, 5);
for (int i = 0; i<10; i++){
printf("%d ", a[i]);
}
return 0;
}
答案

程序的运行结果是:0 1 2 0 1 2 3 4 5 9。

memcpy 函数把数组 a 的前 5 个元素复制到 a + 3,即数组的第 3 个元素开始的地址,最终会覆盖数组的第 3 到第 7 个元素。


不用库函数,自己实现strcpy函数

答案
1
2
3
4
5
6
7
8
9
10
11
char *mystrcpy(char *dest, const char *src)
{
int i = 0;//循环变量
for(i = 0; src[i] != '\0'; i++)
//可以遍历src指向字符串的所有有效字符
{
dest[i] = src[i];//循环拷贝有效字符
}
dest[i] = src[i];//循环之后,拷贝最后的'\0'
return dest;
}