问题 问答题

已知数据文件IN15.DAT中存有200个4位数,并已调用读函数readDat() 把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT15.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#include#define MAX 200int a[MAX], b[MAX], cnt = 0; void jsVal(){}void readDat(){int i;FILE *fp;fp = fopen("IN15.DAT", "r");for(i = 0; i < MAX; i++) fscanf(fp, "%d", &a[i]);fclose(fp);}main(){int i;readDat();jsVal();printf("满足条件的数=%d\n", cnt);for(i = 0; i < cnt; i++)printf("%d ", b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp = fopen("OUT15.DAT", "w");fprintf(fp, "%d\n", cnt);for(i = 0; i < cnt; i++)fprintf(fp, "%d\n", b[i]);fclose(fp);}

答案

参考答案:

void jsVal() { int i,j,flag=0; for (i=0;ib[j]) { flag=b[i]; b[i]=b[j]; b[j]=flag; } }

 

解析:

根据题意可知,要编制函数的功能有两部分:一是找出满足条件的4位数;二是对找出的数进行从小到大排序。首先利用一个for循环来依次从数组中取得4位数,接着用当前得到的4位数与该数后面的5个数(可以用循环次数来控制)依次进行比较,如果该数比它后面的5个数都小,则给标志变量flag赋值1。接着对flag进行判断,如果不为1,则该数肯定不符合条件,直接去取下一个数;若flag值为1,再来判断该数是否是偶数,如果恰好该数又是偶数,则把该数加入到数组b中。这样就可以依次取出符合条件的数,然后利用选择法对b数组中的元素进行从小到大的排序。

论述题

阅读下列材料。回答问题。

材料一法德两国尽管都是以基督教为主体信仰的国家,近代都受文艺复兴和启蒙运动的影响,但却是世仇宿敌。且不说高卢人与日耳曼人上千年的敌对,仅近现代法德之间便进行了三次大规模的交战。二战后法国担心德国东山再起,威胁自己,主张把德国建成像1871年以前那样松散的联邦,但遭到了美、苏的抵制。之后在美国的主导下德国进行了社会改革;法德也认识到从19世纪初到20世纪中期的冲突与对抗不利于欧洲的强大和各自经济的发展;五六十年代,西欧国家社会经济发展迅速,国家间的联系日益密切。为此,l958年法国总统戴高乐与西德 * * 阿登纳举行了第一次会谈,两个民族达成了谅解,言归于好,l963年两国还签定了合作条约。

——《世界近现代史资料汇编》

(1)有人认为,材料一法德之间关系的变化再次说明“世界上没有永远的朋友,也没有永远的敌人,只有永远的利益。”结合材料一,运用国际社会和我国对外政策的有关知识谈谈你对这一观点的认识。(10分)

材料二 二战结束后,西欧各国先后建立了比较完善的现代社会保障制度,为全体公民提供“从摇篮到坟墓”的全方位社会保险、社会服务和社会福利。这种制度不仅极大地促进了欧洲国家的社会稳定,而且为其高质量的劳动力再生产创造了条件,使欧洲企业在世界高附加值产品市场上一直占据优势地位。但欧洲实践表明,社会保障水平过高也会产生诸多问题:一是巨额的保障支出加重了各国的债务负担;二是高福利支出导致高社保缴费水平、高劳力成本和高企业负担,在全球化压力下使欧洲国家长期竞争力日渐丧失;三是随着老龄化的日趋严重,使现行的社会保障制度不堪重负,加大了危机的应对难度。因此,从20世纪80年代开始,欧盟成员国已经普遍认识到,必须对原有的社保政策体系进行调整,以适应新的形势。

(2)结合材料二和所学经济知识,分析西欧国家社会保障制度的影响及其对我国经济社会发展的启示。(10分)

单项选择题