首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
admin
2014-10-11
54
问题
阅读以下函数说明和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://www.kaotiyun.com/show/U4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?限制MailUser邮件主机里每个用户邮箱里所能存放的最多邮件数量不超过20个,如何配置?
阅读以下说明,回答问题1至问题6。说明ADSL是接入Internet的一种宽带技术。图2-1为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
阅读以下说明,回答问题1~4。[说明]FTTx+LAN是实现宽带接入的常用方法,基本结构如下图所示。
阅读下面的说明,回答问题1至问题5。[说明]利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个虚拟子网,可以对各个子网实施不同的管理策略。下图表示两个交换机相连,把6台计算机配置成两个VLAN。
该DHCP服务器可分配的IP地址有多少个?在Windows操作系统下,DHCP客户端“Internet协议(TCP/IP)属性”配置界面如下图所示。在此界面中,客户端应如何配置?
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
随机试题
低压供电系统中,采用单芯线作保护中性线干线(PEN线),铝导线截面不应小于()mm2。
在报告的写作中,信息的主要来源是
某学生期末各科成绩(单位:分)分别为85、90、93、79、82、84,该学生期末的平均成绩为()
习近平指出:“实现中国梦必须走中国道路、弘扬中国精神、凝聚中国力量。”其中中国道路就是()
气胸抽气减压应选取患侧腋中线4~5肋间或()
2019年12月11日晚8时15分许,某建筑高度达50m的大型商场,因发电机组电气线路短路形成高温电弧,引燃周围装饰材料并蔓延成火灾。在事故发生的第一时间,法人代表李某(该商场的消防安全责任人)立即启动应急预案,同时组织单位的义务消防队扑救火灾。与此同时,
从事积极资产负债管理的商业银行一般拥有良好的市场融资能力,可以在短期内从机构客户或市场上筹集大量资金,此类银行的大额负债依赖度_______、自身流动性风险管理的要求________。()
关于买卖合同解除的效力,下列说法正确的有()。
Didthemanhaveahadheadache?
Beggarscanbeseenonthestreets,subwayorat【C1】______spotsinalmostallthebigcities.Someareforrealandneedthemon
最新回复
(
0
)