展讯技术笔试题目:C语言与数据类型

需积分: 13 13 下载量 160 浏览量 更新于2024-09-09 1 收藏 73KB DOC 举报
展讯是一家专注于移动通信芯片设计的公司,其在招聘过程中进行的笔试题目对于应聘者来说是一个重要的考核环节。在这里,我们将分析两个典型的展讯笔试题目,以帮助理解涉及的知识点和技能要求。 第一个题目是关于C语言编程基础的转换函数。题目要求编写一个名为`convert`的函数,输入一个字符串`pszBuff`,将其中的小写字母转换为大写,例如将'a'变为'A'。这个函数的主要步骤如下: 1. 计算输入字符串的长度。 2. 动态分配内存存储转换后的字符串。 3. 遍历输入字符串中的每个字符,如果字符是小写字母(ASCII码在'a'和'z'之间),则将其转换为对应的大写字母(通过ASCII码差值实现);否则,保持原样。 4. 将处理后的字符添加到新字符串中,直至遍历完整个输入字符串,并在末尾添加空字符'\0'表示字符串结束。 5. 函数返回处理后的字符串。 在`main`函数中,示例字符串`"AbCd"`被转换并输出,结果应为`"ABCD"`。 第二个题目考察了对数据类型和内存理解的运用。程序通过`main`函数定义了一个字符数组`str`,并将其转换为`long`类型的指针`pLong`,以及一个`char`类型的指针`pChar`。接下来,它展示了以下关键操作: 1. 使用`sizeof`运算符获取`long`和`pLong`的大小(实际上是`long`类型的大小,因为指针本质上是地址),输出结果为4(通常在32位系统中`long`是4字节)。 2. 同理,获取`char`和`pChar`的大小,由于`char`通常是1字节,所以输出结果为1。 3. 最后,打印`int`类型的大小,同样在32位系统中,`int`一般为4字节。 题目要求输出`1234567890`,但提供的答案却是`44567890`,这可能是测试者对内存操作的理解或者陷阱,因为正常情况下,`pLong`和`pChar`都指向同一个字符串,所以它们所指向的内存地址(即`long`的地址)会被输出,而不是实际的字符串内容。在解答时,应解释清楚这一点。 展讯的笔试题目旨在考察应聘者的编程基础、数据结构理解和内存操作能力,这对于从事软件开发特别是底层或驱动编程的职位尤为重要。准备这类面试时,不仅要有扎实的C语言功底,还要了解常见的数据类型、内存管理和指针操作等概念。