首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
admin
2014-10-11
47
问题
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图7一1显示了各个类间的关系。
【图7—1】
以下是C语言实现,能够正确编译通过。
【C代码】
typedef void(1)(char*title);
typedef void(*fun2)(char items[1[10],int N);
typedef char*(*fun3)();
char buffer[500];
struct Builder(//构造器
funl makeTitle;
(2)makeString;
fun2 makeItems;
fun3 getResult;
};
struct Director{
struct Buiider buiider;
};
char。construct((3)director)//构造文件
{
char items[2][10]=(”早安”,”午安”);
director一>buiider.makeTitle(“Greeting”);
director一>builder.makeString(“从早上到白天结束”);
directot一>buiider.makeItems(items,2);
director一>builder.makeString(“到了晚上”);
strcpy(items[0],“晚安”);
strcpy(items[1],“好梦”);
directot一>buiider.makeItems(items,2);
return director一>buiider.getResult();
}
void TXTmakeTitle(char*title)
{
strcat(buffer,“『”);
Strcat(buffer,title);
strcat(buffer,“』\n\n”);
}
void TXTmakeString(char* str)
{
strcat(buffer,“■”);
Strcat(burfer,str);
Strcat(butter, “\n\n”);
)
void TXTmakeItems(char items[][10],int N)//将items加入文件中
{
for(int i=0;i
Strcat(buffer,”.”);
strcat(buffer, (4));
Strcat(buffer,“\n”);
}
Strcat(buffer,“\n”);
}
char* TXTgetResult()
{
return buffer;
}
void main()
{
Director director;
(5) =‘\0’;//清空缓冲区,使目前缓冲区中的内容不影响新生成的文件
director.buiider.makeTitle=TXTmakeTitle;
director.buiider.makeString=TXTmakeTitle;
director.bui ider.makeItems=TXTmakeItems;
director.buiider.getResult =TXTgetResult;
char*result=construct(&director);
printf(“%S\n”,result);
}
选项
答案
(1)*funl (2)funl (3)structDirector* (4)items[i1 (5)buffer[0]
解析
先看空(3),首先函数construct的形参director应该与Director结构体相关,再根据函数体中的引用方式“director一>builder.makeTitle(“Greeting”);可知director是一个指针,因此空(3)应填structDirector*。由语句“char*result=construct(&director);”也可进一步确认。函数TXTmakeItems(charitems[][10],intN)是将items加入文件中,因此语句strcat(buffer,(4);是将第i个items加入缓冲区buffer中,strcat函数的原型为:char*strcat(char*strDestination,constchar*strSource);。因此空(4)应填items
。由注释可知语句“buffer[0]=(5)”是用来清除缓冲区的,其目的是使目前缓冲区中的内容不影响新生成的文件,就一个语句,事实上不可能清除缓冲区中的所有内容,但纵观生成文件,关键语句就是strcat,这样只要将缓冲区第一个单元的值置为“\0”(字符串结束标志),就能保证正确生成文件。故空(5)应填buffer[0]。
转载请注明原文地址:https://kaotiyun.com/show/U4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某个不确定有限自动机(s0为初态,s3为终态)如下图所示,_______是该自动机可识别的字符串(即从初态到终态的路径中,所有边上标记的字符构成的序列)。
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?在VLAN中,STP和VTP是什么协议?各有什么作用?
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]A公司用1台Web服务器和1台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(Perso
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。说明网络解决方案如图4-1所示。该网络原先使用的是国外品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机1至交换机5均是国产10M/100M自适应交换机,交换机6
阅读以下说明,回答问题1至问题3。[说明]某公司规模扩大,既要考虑保证目前土建装修的效果不被破坏,又要满足网络扩容和企业工作实际需求,同时还要保证投资不要过大。经过深入分析和研究对比,决定采用无线局域网组网来解决网络扩容的问题,网络拓扑如图1-1
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?将Switcbl的端口6划入v2的配置命令如下,请给出空白处的配置内容:Switch1(config)#interfacefastEthemet0/6(进入端口6配置模式)S
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持Linux系统运行级别3工作在______状态。A.单用户字符模式B.多用户字符模式
某交换机的配置命令如下,根据命令后面的注释,填写(1)~(3)处的空缺内容,完成配置命令。Switch(config)#(1)//将交换机命名为Sw1Swl(config)#interfacevlan1Swl(config
随机试题
经济学家西蒙认为,有效开发社会资源的首要条件是确定有效的()
流脑脑膜炎期的病理变化是
患者,男,40岁。全牙列缺失,要求全口义齿修复。因患者对前牙美观要求较高,选牙时应注意上前牙长度的选择与哪项无关
在建筑法中规定,禁止建筑施工企业以任何形式( )。
考察企业的核心竞争力首先要做到资源审计,除了从实物资源方面分析,还可以从()方面分析。
下面的一组数字表现出一定的逻辑性,6,1,12,3,(),5,24。你认为填入括号的应该是()。
1948年,世界卫生组织指出健康应包括生理的、心理的和社会适应等方面的健康。1989年,又在健康的含义中增加了__________的健康。
材料:人活在世上,不但有身体,还有头脑和心胸——对此请勿从解剖学上理解。人脑是怎样的一种东西,科学还不能说清楚。心胸是怎么回事就更难说清。对我自己来说,心胸是我在生活中想要达到的最低目标。某件事有悖于我的心胸,我就认为它不值得一做;某个人有悖于我的心
我国最早使用“教育”一词的是()
一个人处在愉快的心境中,看见什么都高兴,“人逢喜事精神爽”;一个人有忧伤的心境,可能表现为“见花落泪”、“对月伤心”,正像《红楼梦》中的林黛玉那样;一个人染上懊恼的心境,看见儿童游戏也会惹气生气,迁怒于他人,这属于情绪状态中的()。
最新回复
(
0
)