问题 问答题

请编制程序ReadDat()实现从文件in.dat中读取100个十六进制数到字符串数组xx中;再编制函数h16to10(),将xx中的十六进制数转换成十进制数并把已转换的十进制数仍存放在字符串数组xx,最后调用函数WriteDat()把结果输出到out.dat文件巾。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。
请勿改动主函数main()、输出数据函数writeDAT()的内容。
[试题源程序]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define MAX 10
char xx[MAX][20];
void WriteDat(void);
int ReadDat(void)

FILE*fp;
if((fp=fopen("IN.DAT,"r"))==NULL)return 1:
fclose(fp);
return 0;

void H16tol0(void)

void main()

int i;
for(i=0;i<MAX;i++)memset(xx,0,20);
if(ReadDat())

printf("Can’t open the data file in.dat!\007\n");
return;

H16to10();
WriteDat();

void WriteDat(void)

FILE*fp;
int i;
fp=fopem("OUT DAT","w");
for(i=0;i<MAX;i++)fprintf(fp,"%s\n",xx[i]);
fclose(fp);

答案

参考答案:int ReadDat(void)
{
FILE*fp;
int i,data;
char n[20];
if((fp=fopen("IN.DAT","r")==NULL)return 1;
for(i=0;i<MAX;i++)
{
fscanf(fp,"%x",&data);
itoa(data,yy,16);
strcpy(xx[i],yy);
}
fclose(fp);
return 0;
}
void H16tol0(void)
{
int i,data;
char yy[20];
for(i=0;i<MAX;i++)
{
data:strtol(xx[i],NULL,16);
itoa(data,yy,10);
strcpy(xx[i],yy);
}
}

解析: 本题主要考查的是进制转换问题。要注意本题还要编写ReadDat()函数,本题算法较为简单,难点在于几个关键的系统函数如何使用,比如{scan{(fp,“%x”,&.data)的作用是从文件指针fp指向的文件中读取一个十六进制数存放到变量data中。H16t010(void)实现从十六进制到十进制的转换,strtol()将字符型转换成长整型数,itoa(data,yy,16)将data数据转换成字符串,并存入yy所指的内存单元中,第三个参数表示转换成十六进制数。

问答题 简答题
问答题

某工程建设单位与施工单位按照《建设工程施工合同(示范文本)》签订了施工合同,采用可调价施工合同形式。工期20个月,项目监理机构批准的施工总进度计划如图1-1所示,各项工作在其持续时间内均按匀速进展,每月完成投资见表1-4所示。

表1-4 各项工作每月完成投资数据表       单位:万元

工作ABCDEFG
计划完成投资6070901206015030

 

施工过程中发生如下事件。

事件1:建设单位要求调整场地标高,设计单位修改施工图,A工作开始时间推迟1个月,致使施工单位机械闲置和人员窝工损失。

事件2:设计单位修改图纸使C工作发生工程量变化,增加造价10万元,施工单位及时调整施工部署,如期完成了C工作。

事件3:D、E工作受A工作的影响,开始时间也推迟了1个月,由于物价上涨原因,6-7月份D、E工作的实际完成投资较计划完成投资增加了10%。D、E工作均按原持续时间完成,由于施工机械故障,J工作7月份完成计划工程量的80%,J工作持续时间最终延长1个月。

事件4:G、I工作的实施过程中遇到非常恶劣的气候,导致G工作持续时间延长0.5个月;施工单位采取了赶工措施,使工作能按原持续时间完成,但需增加赶工费0.5万元。

事件5:L工作为隐蔽工程,在验收后项目监理机构对质量提出了质疑,施工单位以隐蔽工程已经监理工程师验收为由拒绝复验。在监理机构的坚持下,对隐蔽工程进行剥离复验。复验结果,工程质量不合格,施工单位进行了整改。

以上事件1至事件4发生后,施工单位均在规定时间内提出工期顺延和费用补偿要求。

[问题]

事件1中,施工单位顺延和补偿费用的要求是否成立说明理由。