登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 嵌入式系统设计师 > 下午应用技术 >> 正文
正文
2012下半年嵌入式系统设计师 下午试题 (五)【尚大教育】【试题分析及解答】
来源:尚大教育-软考考试 作者:尚大教育 时间;2018-12-18 16:04:10 点击数: 尚大软考交流群:376154208
试题五(共15分)阅读K列说明和程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在开发某嵌入式系统时,设计人员根据系统耍求,分别编写了相关程序,其中:
【程序1】是李工编写的一个数据交换子程序。
【程序2】是赵丄编写的一段利用递归方法判别链表表示的两个数据结构是否相等的 程序,若相等则返回值为1,否则返回为0。判别的准则是若两个链
<尚大教育,教育至上,人才为大:sdedu.cc>
  1. 试题五(共15分)
阅读K列说明和程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在开发某嵌入式系统时,设计人员根据系统耍求,分别编写了相关程序,其中:
【程序1】是李工编写的一个数据交换子程序。
【程序2】是赵丄编写的一段利用递归方法判别链表表示的两个数据结构是否相等的 程序,若相等则返回值为1,否则返回为0。判别的准则是若两个链表的首指针相等,则 相等;否则进行内部元素比较,元素中的itemid表示后面联合体皿的有效性,itemid为 0时,联合体un里面的data项有效,否则联合体mi中的link项有效。
【程序1】
#include <stdio.h> swap(int x, int y) {
 
y=t ;
 
main() {
int a, b;
swap(a,b);
printf(n%d, %dn", a, b);
}
【程序2】
typedef struct Item { int itemid;
 
 
char data; struct Item *link;
 
 
struct Item *nextltem;
} ItemNode;
int Equalltem( ItemNode ItemNode *y)
 
 
if (x == y ) return 1;
if ( (1) ) {
if ( (2) ) {
if ( x->itemid = 0 ) {
res = (3) :

 
 
 
 
 
 
 
【问题1】(6分)执行【程序1】后,打印出来的a=3,b=4;并没有完成数据交换,请指出李工的问题? 并改正程序错误。将答案填写在答题纸中对应的栏目。
【问题2】(5分)
仔细阅读并分析【程序2】中的C语言代码,完成其中(1)〜(5)空白填空,将 答案填入答题纸的对应栏内。
【问题3】(4分)
李工编写某嵌入式软件时,遇到了一些问题,请帮助李工解答K面2个问题,并将 答案填写在答题纸中对应的栏目。
(1) 李工在编译时,程序没有通过编译,经检杳程序后将文件头的^include filename.h> 改为 # include ”filename.!!” 后编译通过,请问 # includefileiiame.li〉和 # include ”filename.!!’’的区别是什么?
(2) 李工在编写一段C++程序时,需要调用一段己编译的C语言函数,为什么耍加 extern ”C”?
试题五分析
本题考查嵌入式C/C++编程知识与应用。
【问题1】
函数swap采用值传递,虽然将形参xy交换了,但是并不影响到实参,所以执 行【程序1】后,打印出来的a=3,b=4;并没有完成数据交换。将值传递改成指针传递就 可以了。
对应的swap函数应修改如K:
swap ( int x, int *y)

*y = t;
调用时应修改为swap(&a, &b)
【问题2】
该段C语言程序是一段利用递归方法判别链表表示的两个数据结构是否相等的程 序,若相等则返回值为1,否则返回为0。判别的准则是若两个链表的首指针相等,则相 等;否则进行内部元素比较,元素中的itemid表示后面联合体mi的有效性,itemid为0 时,联合体un里面的data项有效,否则联合体un中的link项有效。该程序具体如卜: 如果x=y,则返回1,表示断定两个数据实际指向是同一地方,当然相等;
如采xy都小为空则继续,杏则返回0;
如果x->itemid == y->iteinid,则继续,否则返回0;
如果 x->itemid == 0,则若 x->un.data = y->un.data, res = 1,否则 res=0;
如果x->itemid不等丁• 0,联合体un中的link项有效,递归调用Equalltein(x->un.lmk, y->im.liiik),继续判断;
如果 res=l,也就是 x-〉un.data == y-〉im.data,则递归调用 Equalltem(x-〉nextltemy->nextltem),判断 K一级链表;
如果res=0,也就是x->un.data不等与y-〉im.data,则即可断定两个数据不相等, 返回为0。
【问题3】分析
本题考杳考生对预处理指令include的正确理解。对T # include <filename.h〉来说, 编译器会从丄程指定路径搜索filename.h文件;对include ”filename.li1’来说,编译器 会从当前路径和工程指定路径搜索filename.h文件。
C++语言支持函数重载,C语言不支持函数重载,函数被C++编译后在库中的名字 与C语言不同。为了 C++程序中能够调用C程序,就需要C++提供C连接交换指定符 号extern ”C”来解决名字匹配问题。
参考答案 【问题1】
李工的问题:形参不能作为函数的输出参数使用。
对应的swap函数修改如K:
swap ( int *x, int *y)
 
*x = *y; *y = t;
 
调用时修改为swap(&a, &b)
【问题2】
  1. x!=NULL && y!=NULL
  2. x->iteinid == y->itemid
  3. x_〉un.data == y->un.data
  4. Equalltein(x->im.link, y->un.link);
  5. Equalltein(x->nextltein,y->nextltem);
【问题3】
  1. include<filename.h>,编译器从丄程指定路径搜索filename.h
T#include "filename.h”,编译器从当前路径和工程指定路径搜索filename.h
  1. C++语言支持函数重载,C语言不支持函数重载,函数被C++编译后在库中的 名字与C语言不同。C++提供了 C连接交换指定符号extern ”C”来解决名字匹配问题。
<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:2012下半年嵌入式系统设计师 下午试题 (四)【尚大教育】【试题分析及解答】
下一篇:返回列表
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章