凌阳教育32位嵌入式工程师笔试题目及答案详解

需积分: 9 42 下载量 60 浏览量 更新于2024-07-22 收藏 191KB DOC 举报
凌阳教育32位嵌入式工程师笔试题目涉及到基础的编程概念和C/C++语言理解。该试卷考察了对不同类型数据结构、内存分配、指针和数组的理解,以及对函数指针的运用。以下是部分题目及答案解析: 1. 定义部分: - int a; 是一个32位整型变量,存储一个整数值。 - int *a; 是一个指向整型的指针,可以存储一个整数的地址。 - int **a; 是一个指向指针的指针,可以存储一个整型指针的地址。 - int a[10]; 是一个包含10个整数的数组。 - int *a[10]; 是一个包含10个整型指针的数组。 - int (*a)[10]; 是一个指向整型数组的指针,即数组指针。 - int (*a)(int); 是一个指向接受一个整数参数并返回整数的函数指针。 - int (*a[10])(int); 是一个数组,包含10个接受整数参数并返回整数的函数指针。 2. C/C++程序分析: 在`func`函数中: - `char str[] = "helloworld";` 定义了一个长度为11(包括空字符)的字符数组。 - `char *p = str;` 将`str`的首地址赋给指针`p`。 - `char n = 10;` 定义了一个整型变量`n`,表示字符数组的长度。 - `void *p1 = malloc(100);` 分配了100字节的内存,存储在`p1`中。 - `printf`语句分别输出了数组`str`、指针`p`、整型变量`n`、输入参数`aver`和动态分配内存`p1`的大小。其中,`str`的大小为12(因为包含终止符),`p`和`n`为4字节(常规C/C++中的指针占4字节),`aver`和`p1`也为4字节(因为是字符数组和指针)。 3. `main`函数: - `char str[100];` 定义了一个长度为100的字符数组`str`,用于传递给`func`函数。 - `func(str);` 调用`func`函数,并传入`str`作为参数。 程序运行结果: - `size1`:12,因为字符串“helloworld”加上空字符占用12个字节。 - `size2`:4,指针`p`通常占用4字节。 - `size3`:1,整型变量`n`占用1字节。 - `size4`:4,字符数组`aver`(这里实际上是`str`)也占用4字节。 - `size5`:4,动态分配的内存`p1`同样占用4字节。 总结: 这份试卷主要考察了考生对C/C++语言基础语法、数据类型、内存管理和指针操作的理解。通过解答这些问题,求职者不仅需要熟悉基本的数据结构,还要理解如何正确处理不同类型的变量和内存分配,以及函数指针在实际编程中的运用。这对于32位嵌入式工程师职位来说是非常重要的技能。