一起答

2017年软考中级嵌入式系统设计师模拟试题3

  • 卷面总分:100分
  • 浏览次数:0
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:74次
  • 作答时间:150分钟
试卷简介
2017年软考中级嵌入式系统设计师模拟试题3,是针对软考中级考试中嵌入式系统设计师的模拟试题。
部分试题预览
  1.    阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。

    【说明】

       在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:

       【C代码 1】是李工为了在嵌入式平台上开发一段可变参数函数,在X86 平台上实现的一个参数个数可变函数实例。

       【C代码 2】是王工在编写软件时,自己编写的内存拷贝函数。

       【C代码 3】是赵工编写的一段数据处理的程序,其中 fun()的含义为从已创建的一个单向链表中查找倒数第index 个节点。他的设计思路为:首先创建两个指针 ptrl,ptr2,并且都指向链表头,然后 ptrl向前走index 步,这样ptrl和 ptr2 之间就间隔 index 个节点,然后 ptrl和ptr2 同时向前步进,当 ptrl到达最后一个节点时,ptr2 就是倒数第 index 个节点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。

    【C代码 1】

         long sum(int i,...)

         {

           int *p,j;

           long s = 0;

    p=&i+1;

            for(j=0;j

    s+=p[j]

            return s;

           }                

         long Sum = sum(3,l,2,3);

    【C代码 2】

    static int pent;

    ……

       void *MyMemcpy(void * dest, const void* src, int n )

       {

           char *pDest = (char *)dest;

           char *pSrc = (char *)src;

           for (int i=0;i

               *(pDest +i) = *(pSrc+i);

           }                return dest;

           }

     【C代码 3】

           node *fun(node * head, int index)

           {

                node *ptr1,*ptr2;

                  int 1 = 0;     

                ptr1 = head;

                ptr2 = head;

                if( head == NULL || head->next == NULL)

                   return ptrl;

    while(i

                {

                 (1)     

                  if(ptrl == NULL)

                    return head;

                   i++;

                   }

                while(ptrl->next != NULL)

                {

    ptrl = ptrl->next;

                    (2)    ;

                }

                  return  (3)  ;

                 }

                node* ReverseList(node *head)

                 {

                   node *templ = NULL;

                   node *temp2 = NULL;

                   node *temp3 = NULL;

                   if((head->next == NULL) || (head == NULL))

                    {       

                        return head;

                   }     templ=head;

        temp3= templ->next;

        templ->next= NULL;

        while(temp3->next!=NULL)

        {

             temp2 = temp3;

             temp3= temp3->next;

              (4) ;

              templ=temp2;

        }

        temp3->next= templ;

        retum     (5)

    }

    【问题1】 

       执行【C代码 1】后,Sum的值应为多少?请用十进制表示。

    【问题2】 

       请问【C代码2】中 static的作用是什么?const的作用是什么?王工自己编写的内存拷贝函数安全吗?

    如存在缺陷,请指出缺陷在哪里。

    【问题3】 

     仔细阅读并分析【C代码 3】,填补其中的空(1)~(5)。

  2. 假设有 8 个记录,它的初始关键字序列为{5,7,3,8,2,9,1,4},用冒泡排序对它进行排序,第5次排序结果为 () 。

    • A. 5,3,7,2,8,1,4,9
    • B. 2,1,3,4,5,7,8,9
    • C. 3,2,5,1,4,7,8,9
    • D. 1,2,3,4,5,7,8,9
  3. 表示浮点数时,若要求机器零在计算机中的表示为全“0”,则阶码应采用()。

    • A.原码
    • B.反码
    • C.补码
    • D.移码
  4. 现有3个同时到达的作J1、J2和J3,它们的执行时间分别是T1 、T2 和T3 ,且 T1<T2<T3。系统按单道方式运行且采用短作业优先算法,则平均周转时间是______。

    • A.T1 +T2 +T3
    • B.(T1 +T2 +T3 ) /3
    • C.(3T1 +2T2 +T3 ) /3
    • D.(T1 +2T2 +3T3 ) /3
  5. 若程序运行时系统报告除数为0,这属于()错误。

    • A.语法
    • B.静态语义
    • C.动态语义
    • D.运算对象不匹配
  6. 以下关于Cache的叙述中,正确的是 () 。 

    • A. 在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素
    • B. Cache 的设计思想是在合理的成本下提高命中率
    • C. Cache 的设计目标是容量尽可能与主存容量相等
    • D. CPU 中的Cache容量应大于CPU 之外的Cache容量
  7. 风险预测从两个方面评估风险,即风险发生的可能性以及______。

    • A.风险产生的原因
    • B.风险监控技术
    • C.风险能否消除
    • D.风险发生所产生的后果
  8. 若某计算机系统的I/O接口与主存采用统一编址,则输入输出操作是通过()指令来完成的。

    • A.控制
    • B.中断
    • C.输入输出
    • D.访存
  9. 以下关于C/C++语言指针变量的叙述中,正确的是______。

    • A.指针变量可以是全局变量也可以是局部变量
    • B.必须为指针变量与指针所指向的变量分配相同大小的存储空间
    • C.对指针变量进行算术运算是没有意义的
    • D.指针变量必须由动态产生的数据对象来赋值
  10. 网页中代码定义了 () 。 

    • A. 一个单选框         
    • B. 一个单行文本输入框 
    • C. 一个提交按纽        
    • D. 一个使用图象的提交按纽