问题 填空题

请补充fun函数,该函数的功能是:按’0’到’9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。
例如,输入“x=1123.456+0.909*bc”,结果为:1=2,3=1,5=1,7=0,9=2。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#include<conio.h>
#include<stdio.h>
#define N 20
fun(char*tt, int num[])

int i, j;
int bb[10];
char *p=tt;
for(i=0;i<10; i++)

num[i]=0;
bb[i]=0;

while( )

if(*p>=’0’&&*p<=’9’)
;
p++;

for(i=i, J=0; i<10; i=i+2, j++)
;

main()

char str[N];
int num[10], k;
cirscr();
printf("\\nplease enter a string:");
gets(str);
printf("\\n*******The original string*******\\n");
puts(str);
fun(str, num);
printf("\\n******The number of letter********\\n”);
for(k=0; k<5; k++)

printf("\\n");
printf("%d=%d ", 2*k+1, hum[k]);

printf("\\n");
return;

答案

参考答案:[1] *D
[2] bb[*p-’0’]++
[3] num[j]=bb[i]

解析: 本题的设计思路是:①先把数组num的各元素清0;②遍历字符串,利用数字字符在ASCAII码中的连续规律,使用(数字字符-’0’)作为数组的下标,个数作为数组元素的值。
填空1:此处应该是使用临时指针p遍历字符串str,所以应填*p。
填空2:因为10个数字字符是连续的,将它们和’0’做差运算刚好构成数组的下标。所以此处应该填bb[*p-’0’]++。
填空3:最后要把奇数数字出现的次数赋给数组num保存。所以此处应填num[j]=bb[i]。

多项选择题
问答题 案例分析题

【背景资料】

某新建办公大楼的招标文件写明:承包范围是土建工程、水电及设备安装工程、装饰装修工程;采用固定总价方式投标,风险范围内价格不作调整,但中央空调设备暂按120万元报价;质量标准为合格,并要求创省优质工程奖,但未写明奖罚标;合同采用《建设工程施工合同(示范文本)》GF一2013—0201。

某施工单位以3260万元中标后,与发包方按招标文件和中标人的投标文件签订了合同。合同中还写明:发包方在应付款中扣留合同额5%,即163万元作为质量履约保证金,若工程达不到国家质量验收标准,该质量履约保证金不再返还;逾期竣工违约金每天1万元;暂估价设备经发承包双方认质认价后,由承包人采购。

合同履行过程中发生了如下事件:

事件1:主体结构施工过程中发生了多次设计变更,承包人在编制的竣工结算书中提出设计变更实际增加费用共计70万元,但发包方不同意该设计变更增加费。

事件2:中央空调设备经比选后,承包方按照发包方确认的价格与设备供应商签订了80万元采购合同。在竣工结算时,承包方按投标报价120万元编制结算书,而发包方只同意按实际采购价80万元进行结算。双方为此发生争议。

事件3:办公楼工程经四方竣工验收质量为合格,但未获得省优质工程奖。发包方要没收163万元质量保证金,承包人表示反对。

事件4:办公楼工程实际竣工日期比合同工期拖延了10d,发包人要求承包人承担违约金10万元。承包人认为工期拖延是设计变更造成的,工期应顺延,拒绝支付违约金。

发包人不同意支付因设计变更而实际增加的费用70万元是否合理?说明理由。