首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
阅读以下函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一
admin
2014-10-11
55
问题
阅读以下函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?在VLAN中,STP和VTP是什么协议?各有什么作用?
目前,通过移动电话接人互联网采用的主要技术是什么?进行一次查询的数据信息如表9-1所示,网络的基本通信服务费用如表9-2所示,总费用=网络租用费+通信费。根据表中给出的数据,试计算销售员每月至少应进行多少次查询,才能使得使用移动电话的总费用比使用PDA
造成故障1的原因是什么?如何解决?1.路由器2上采用了NAT技术。NAT中的动态地址翻译和IP地址伪装有什么区别?2.图4-2是路由器2上的地址伪装表,将图4-2中(1)~(5)处空缺的信息填写在相应位置。
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?IMail安装完成后,系统自动建立了一个名为root的用户,在默认情况下root用户是个失效的账号,如何设置使其生效?
将图2-1中(1)和(2)空缺名称填写在应的位置。ADSL有哪两种IP地址的分配方式?
阅读以下说明,回答问题1~5。[说明]SSL(SecureSocketLayer)是目前解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务,SSL的实施对于上层的应用程序是透明的。应用SSL协议最广泛
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
随机试题
称为访问控制保护级别的是()
简述5种免疫球蛋白的功能。
甲是限制行为能力人,因和乙之间的债务关系,签发给乙一张支票,乙收到支票后背书转让给丙,丙又背书转让给丁,丁向银行请求付款时,银行以出票人印鉴不清拒付。丁可向下列哪些人行使追索权?()
根据《招标投标法》的相关规定,投标人与招标人串通投标,损害国家、集体、公民合法权益的,应()。
根据《基本农田保护条例》的规定,铁路、公路等交通沿线,城市和村庄、集镇建设用地区周边的耕地应用()。
当市场价格高于合约的执行价格时,看涨期权的买方会选择()。
2012年5月,A公司为扩大经营准备修建一栋商业楼,为此与B公司签订建设工程施工合同,约定由B公司承建该楼,A公司先付丁程款的20%,余款待工程验收合格后支付,为完成建设工作,B公司向C公司购买一台推土机,价款100万元,分5期支付,每期20万元,价款付清
近代警政管理体制主要受()影响。
为了实现数据终端设备之间的通信,在通信网络中必须设置交换中心,以便为需要通信的数据终端建立通信链路,通信结束后再拆除链路。目前Internet网络中使用的交换技术主要是( )。
以下有关VBA中变量的叙述错误的是()。
最新回复
(
0
)