201009

来源:互联网 发布:剑三正太捏脸数据导入 编辑:程序博客网 时间:2024/06/04 23:28

1     选择题:

1.1     答题说明

本题提供10个单项选择题和5个多项选择题,请考生把选择的答案编号填写到试题提供的工程源文件EXAM_Questions.c(请参见第2题编程题的2.2 试题使用说明)的如下全局数组中(主要目的是为了能自动化阅卷),该文件的全局数组定义如下:

/* 如下全局数组初值记录单项选择题答案,

    请考生把选择的答案替换下面的初值0 */

int gaSingleSelected[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

 

/* 如下全局数组初值记录多项选择题答案,

    请考生把选择的答案替换下面的初值0 */

int gaMultiSelected[5] = {0, 0, 0, 0, 0};

 

【单项选择题答卷示例】

如果考生答题时10个单项选择题分别选择①、②、③、④、①、②、③、④、①、②,则请把EXAM_Questions.c文件中的gaSingleSelected[10]数组初值改为如下(注意顺序一定不能错,否则会导致自动化判阅判分与您的实际不符合,实际判分以考生填写内容为准):

/* 如下全局数组初值记录项选择题答案

    请考生把选择的答案替换下面的初值0 */

int gaSingleSelected[10] = {1, 2, 3, 4, 1, 2, 3, 4, 1, 2};

 

【多项选择题答卷示例】

如果考生答题时5个多项选择题分别选择“①②③”、“②③”、“③④”、“③”、“①④”,则请把EXAM_Questions.c文件中的gaMultiSelected[5]数组初值改为如下(注意顺序一定不能错,否则会导致自动化判阅判分与您的实际不符合,实际判分以考生填写内容为准):

/* 如下全局数组初值记录项选择题答案,

    请考生把选择的答案替换下面的初值0 */

int gaMultiSelected[5] = {123, 23, 34, 3, 14};

1.2     单项选择题(共10题,每题2分)

1.2.1   25根地址线可寻址范围是()

①:4MB  

②:8MB  

③:16MB

④:32MB

1.2.2   下面的变量中,保存在BSS段的是()

①:有初值的全局变量。

②:无初值的全局变量。

③:有初值的动态局部变量。

④:无初值的动态局部变量。

1.2.3   下面堆(Heap)与栈(stack)的叙述不正确的是()

①:Stack的空间由操作系统自动分配/释放,Heap上的空间由手动分配/释放。

②:C中的malloc函数分配的内存空间即在堆上。

③:局部非静态变量和函数的入参都在栈中分配。

④:程序中定义变量尽可能从堆中分配,因为堆的效率比栈高。

1.2.4   以下哪个地址可能是PPC处理器上的cache line的起始地址?

①:0x111198

②:0x111190

③:0x1111a0

④:0x1111b0

1.2.5   下面有关malloccalloc区别描述正确的是(

①:malloc不能初始化所分配的内存空间,而calloc能;

②:calloc不能初始化所分配的内存空间,而malloc能;

③:malloc申请的是Cache-Safe的内存,而calloc申请的不是;

④:calloc申请的是Cache-Safe的内存,而malloc申请的不是;

1.2.6   以下哪个不是对嵌入式实时操作系统(RTOS)时间性能的评价指标?

①:上下文切换时间                

②:最大中断延迟时间      

③:任务调度时间                

④:任务执行时间

1.2.7   对于同步机制,下列说法不正确的是()

①:不要长时间的锁住一份资源

②:系统设计之初就考虑同步策略,而不能等出了问题再考虑加锁

③:同步的唯一目的是对于临界资源进行保护

④:对于一些需要访问临界资源资源的函数,可以设计成线程安全的函数

1.2.8   要想函数有着较好的性能,则以下说法中不正确的是()

①:函数处理中将可能导致处理中止的判断放在前面

②:频繁调用函数的内部处理最小化

③:所有的小函数都使用内联函数

④:对多次重复的运算,应将结果缓存为变量使用

1.2.9   0x12345678 在采用BigEndian中内存的排列顺序是()

①:12 34 56 78

②:34 12 78 56

③:78 56 34 12

④:56 78 12 34

1.2.10   如下结构,在4字节对齐环境中,sizeof(struct date)的值为()

typedef union

{

        short int i;

        char  k[4]; 

        char  c;

}DATE;

 

struct date

{  

        char cat;  

        DATE cow; 

};

①:6

②:8

③:12

④:14

1.3     多项选择题(共5题,每题2分,多选错选0分,少选得1分)

1.3.1   如下变量可以用于可重入函数的有()

①:任务变量

②:受保护的全局变量

③:全局变量

④:局部变量

⑤:静态局部变量

1.3.2   以下哪些方法可以保证cache一致性()

①:CPU写内存后软件执行cacheFlush, CPU读内存前软件执行cacheInvalidate

②:CPU读内存后软件执行cacheFlush, CPU写内存前软件执行cacheInvalidate

③:设置cache属性为COPYBACK

④:打开硬件cache snoop功能

1.3.3   下列有关MMU(memory management unit)的主要功能描述正确的是

①:完成逻辑地址到物理地址的映射转换

②:提供不同级别的地址访问保护功能

③:CACHE空间大小设置

④:CACHE属性设置

1.3.4   下列描述正确的选项有()

①:当编译选项“-fpack-struct”和“-mstrict-align”其中之一存在时,编译后会将32位操作的语句转换成8位操作的语句。

②:加上-funaligned-pointers的编译开关时,可以使系统自动对非对齐访问方式进行处理,保证非对齐方式访问的正确性。

③:加上-mstrict-align选项,可以解决当使用压缩结构时,可能会出现结构不能直接赋值的问题。

④:-O2优先的目的:编译器试图进行代码优化,减少代码长度,加快执行效率。

1.3.5VxWorks中,当函数A调用函数B时,将一定的信息压栈,然后进入被调用函数B中。这些信息包括():

①:压栈的信息最前面四个字节是指向原来栈顶的指针,也就是上一级栈顶指针;

②:函数A的入口参数,

③:函数B的入口参数,

④:函数A的局部变量;

⑤:函数B的局部变量;

2     编程题:提供链表基本操作及排序的功能

2.1     考核目的

考核目的:本试题主要考核链表的基本操作及排序的编码技能(本试题已经设计完成代码基本框架,考生只要理解该框架并进行编码实现即可)。

2.2 试题使用说明

使用说明:本次技能鉴定考试提供两份试题(A卷和B卷)供考生选择其中的一份答题,本试题是两份试题中的B卷。

试题中已经明确说明了每个特性的验收标准,考生需要根据验收标准自行考虑测试思路,需要考虑各种出错的可能情况,试题中不提供测试代码。

本试题支持通过Tornado调测环境和Visual C++ 6.0调测环境进行调试,并提供了已经建好的工程,具体使用方法参见“1.5试题提供的可直接使用的VC工程和Tornado工程”。

答卷提交:请使用试题包您所选择工程中的ListProc.c和ListProc.h编写调试源代码(所有新增源代码均应在这两个文件中,不能增加或者删减源文件),完成后把ListProc.cListProc.hEXAM_Questions.c(选择题答卷文件)三个文件用WinRar打包成一个文件后提交,命名格式为“考试级别数字+调测环境代号+8位工号”的格式,如:

张三的工号为00187658,考1级,使用Tornado调测环境(代号为BT,B表示是试题B卷,T表示是Tornado环境),则打包文件的名称为:1BT00187658.rar  

李四的工号为00198765,考1级,使用VC调测环境(代号为BV,B表示是试题B卷,V表示是VC环境),则打包文件的名称为:1BV00198765.rar

2.3     试题简介

要求代码从字符数组aData[]中读取数据并存放在串链表中,并根据如下数据处理规则进行排序(排序算法考生自定),排序后将结果重新存入字符链表中,最后将结果输出到字符数组aResult[]

数据处理规则:从字符串中间一分为二,左边按照ASCII码值升序排列,右边按照降序排列,如果字符串长度是奇数,中间的字符位置保持不动(即不参与排序,后续有示例说明)。

 

本题请考生完成数据的读取、排序处理及数据的保存功能,具体包括

(1)       提供数据读取函数接口。要求从字符数组aData[]中读取数据,并将数据存在链表中;

(2)       提供链表内容排序函数接口:要求根据题目提供的数据处理规则对字符串数据进行排序处理,并将处理后的结果重新保存在原字符串链表中;

(3)       提供数据保存函数接口:将最终结果输出到字符数组aResult[]

 

2.4     试题详细要求:

请考生实现下面的函数接口和功能(考生可根据设计和编码需求增加内部函数代码,阅卷时只测试下面的函数接口和功能):

2.4.1       提供数据读取函数接口

------------------------------------------------------------------

函数功能: 完成从字符数组aData[]中读取数据并保存在链表中的功能

函数原型: U32 DataRead (void)

输入参数:

返回值:   读取数据成功返回0,失败返回非零(考生自行定义)

特别说明:要求从字符数组aData[]中读取所有数据,并将数据保存在链表中。

------------------------------------------------------------------

【验收标准】

a)  读取字符数组aData[]中的所有数据;

b)   将读取的所有数据保存在链表中;

c)   读取数据并保存在链表中完成后返回成功;

2.4.2       提供链表内容排序函数接口

------------------------------------------------------------------

函数功能: 据数据处理规则完成对字符串数据进行排序处理,并将处理后的结果重新保存在原字符串链表中

函数原型: U32 DataSort(Node* pList)

输入参数: pList存放待处理数据的链表

返回值:   排序成功返回0,失败返回非零(考生自行定义)

------------------------------------------------------------------

【验收标准】

a)   正确的排序处理执行返回成功;

b)   按照题目的处理要求进行排序;

c)   将处理后的数据仍保存在原链表中;

 

数据处理规则(同上):从字符串中间一分为二,左边按照ASCII码值升序排列,右边按照降序排列,如果是奇数,中间的字符位置保持不动即不参与排序

例如:

原始数据奇数个字符:edcbazfghij

    处理后的数据为:    abcdezjihgf

   原始数据为偶数个字符: edcafghij

处理后的数据为:       abcdejihgf

 

2.4.3       提供数据保存函数接口

------------------------------------------------------------------

函数功能: 完成最终结果输出到字符数组aResult[]

函数原型: U32 DataSave(void)

输入参数:

返回值: 保存成功返回0,失败返回非零(自行定义)

------------------------------------------------------------------

【验收标准】

a)   正确保存数据后返回成功;

b)   要求在保存函数中将链表删除;

 

2.5     试题提供的可直接使用的VC工程和Tornado工程

2.5.1       Tornado试题工程及其使用方法

双击“\Tornado_Project \ ListProc.wpj”程序可以直接打开工程环境,源代码框架(“Tornado_Project\source”)已经提前加到工程中了。

2.5.2       VC试题工程及其使用方法

双击“\Vc_Workspace \ ListProc.dsw”程序可以直接打开工程环境,源代码框架(“Vc_Workspace\source”)已经提前加到工程中了。

原创粉丝点击