问题 选择题

以下是英国中央财政支出表。这一时期英国中央财政支出大幅上升的主要原因是

A.政府投资科研,推动工业革命

B.议会改革导致行政开支过大

C.政府 * * 资产阶级革命的需要

D. * * 殖民地的反抗运动耗资巨大

答案

答案:D

题目分析:本题主要考查学生准确解读图表信息的能力,从图表曲线中能明显看出18世纪70-80年代英国中央财政支出显著增加,结合史实可知这是由于 * * 殖民地的反抗运动耗资巨大所致,答案选D,A B C三项说法错误不符合史实,A第一次工业革命时期英国政府并未投资科研;B 19世纪30年代以后英国议会才开始议会改革,C 1688年关荣革命后英国资产阶级革命的取得胜利宣告结束。

问答题

[说明]
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。
以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图7-1显示了各个类间的关系。
[图7-1]


以下是C语言实现,能够正确编译通过。
[C代码]
typedef void( (1) )(char *title);
typedef void(*fun2)(char items[] [10], int N);
typedef char* (*fun3)();
char buffer[500];
struct Builder//构造器
fun1 makeTitle;
(2) makeString;
fun2 makeItems;
fun3 getResult;
;
struct Director
struct Builder builder;
;
char* construct( (3) director)//构造文件

char items[2][10] = "早安", "午安";
director->builder.makeTitle("Greeting");
director->builder.makeString("从早上到白天结束");
director->builder.makeItems(items, 2);
director->builder.makeString("到了晚上");
strcpy(items[0], "晚安");
strcpy(items[1], "好梦");
director->builder.makeItems(items, 2);
return director->builder.getResult();

void TXTmakeTitle(char* title)

strcat(buffer, "『");
Strcat(buffer, title);
strcat(buffer, "』\n\n");

void TXTmakeString(char* str)

strcat(buffer, "■");
Strcat(buffer, str);
strcat(buffer, "\n\n");

void TXTmakeItems(char items[] [10], int N)//将items加入文件中

for(int i = 0, i < N; i++)
strcat(buffer, "·");
strcat(buffer, (4) );
strcat(buffer, "\n");

strcat(buffer, "\n");

char* TXTgetResult()

return buffer;

void main()

Director director;
(5) = ’\0’;//清空缓冲区,使目前缓冲区中的内容不影响新生成的文件
director.builder.makeTitle = TXTmakeTitle;
director.builder.makeString = TXTmakeTitle;
director.builder.makeItems = TXTmakeItems;
director.builder.getResult = TXTgetResult;
char* result = construct(&director);
printf("%s\n", result);

名词解释