首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
admin
2014-10-11
79
问题
阅读以下函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
若系统中有4个互斥资源R,当系统中有2个进程竞争R,且每个进程都需要i个R(i≤3)时,该系统可能会发生死锁的最小i值是________。
_______是构成我国保护计算机软件著作权的两个基本法律文件。
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。说明网络解决方案如图4-1所示。该网络原先使用的是国外品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机1至交换机5均是国产10M/100M自适应交换机,交换机6
阅读以下说明,回答问题1至问题3。[说明]某公司规模扩大,既要考虑保证目前土建装修的效果不被破坏,又要满足网络扩容和企业工作实际需求,同时还要保证投资不要过大。经过深入分析和研究对比,决定采用无线局域网组网来解决网络扩容的问题,网络拓扑如图1-1
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?在交换机中配置VLAN时,VLANl是否需要通过命令创建?为什么?
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,将(1)~(4)处空缺的内容填写在相应位置。SW1>enable
请认真阅读下列有关计算机网络防火墙的说明信息,回答问题1~5。[说明]某单位的内部局域网通过防火墙与外部网络的连接方式及相关的网络参数如下图所示。
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持root用户执行psaux|grepinit命令,得到init的PID是______。A.0
随机试题
鉴定矿物类中药的透明度时,应将矿物磨成的标准厚度是()。
鉴别原发性和继发性纤溶的最佳指标是
A.阿普唑仑B.环丙沙星C.妥布霉素D.利巴韦林E.阿奇霉素属氨基糖苷类的药物是
左金丸中的吴茱萸是方中的
A.甲吡酮试验B.ACTH兴奋试验C.TRH兴奋试验D.地塞米松抑制实验E.C肽释放试验可以反映垂体分泌ACTH储备功能的试验是
从逻辑结构上看,宪法规范与一般法律规范一样,是由下列哪些选项的内容组成?()
一直径d1=0.2m的圆管,突然扩大到直径为d2=0.3m,若v1=9.55m/s,则v2与Q分别为()。
纳税人超过应纳税额缴纳的税款,税务机关发现后应立即退还纳税人;纳税人自结算缴纳税款之日起()内发现的,可向税务机关要求退还多缴的税款并加算银行同期存款利息。
中国历史太长、战乱太多、苦难太深,没有哪一种纯粹的遗迹能够长久保存,除非躲在地下,躲在坟里,躲在不为常人注意的秘处。______,大凡至今轰传的历史胜迹,总是具有生生不息、吐纳百代的独特______。填入横线处最恰当的一项是()。
教学生有效地使用计算机是很重要的。因此,学校应给学生开设计算机程序设计课。下面哪项,如果正确,最能削弱上面的论证?()
最新回复
(
0
)