问题 问答题

请补充函数fun(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd ascasdfg asd as asd mlosd,子字符串为asd,则应输出4。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填人所编写的若干表达式或语句。 试题程序: #include < stdio. h > #include < string. h > #include < conio. h > int fun(char * str,char * substr) { int n; char *p,*r; (1) ;while( * str) {p = str;r = substrwhile( * r) if( (2) ) { r++; p++; { else break; if( (3) ) n++; str ++; } return n; } main( ) { char str[81],substr[3]; int n; clrscr ( ); printf("输入主字符串:’); gets(str); printf(’输入子字符串:" ); gets( substr ); puts(str); puts(substr); n = fun(str,substr); printf("n=%d\n",n) }

答案

参考答案:

解析:(1)n=0 (2)*r==*p (3)*r==’\0’ 填空1:变量n用来记录子字符串在字符串中出现的次数,函数中对变量n进行了类型声明,但并没有进行初始化,所以此处对n初始化为0。填空2:进行比较时,如果子字符串的字符与字符串中的字符相同,则将两个字符串的指针都自加1,继续进行比较,否则跳出循环。填空3:如果此时指针r所指的字符为’\0’,则说明子字符串在字符串中出现了一次,将记录变量n加1。

单项选择题
问答题

某开发项目,规划用途为单身公寓,土地使用权年限为1997年3月1日至2047年2月28日,土地使用权出让金已全部交清。规划建筑面积6000m2,预计估价每平方米8000元。
该项目以1997年7月1日开工,原定工期10个月,建筑费为每平方米2000元,管理费为建筑费的5%。建筑费和相应的管理费投入时间为:开工后的第一季度投入30%,第二季度为40%,第三季度为30%。假定都在每季度中间投入,年利率6%,销售税率和销售费用分别为售价的6%和3%。开工后第一季度结束时,已有1000m2建筑面积按每平方米 3500元预售。开工第二季度结束时,项目的原开发商拟将项目以合作开发的方式转让。转让方式为:一次性付给一笔转让费,用于补偿已投入的土地使用权出让金和建筑费等投资,已预售1000m2净销售价在结束时由原开发商返还给合作方。现合作方委托估算该项目在 1918年1月1日的价格。
采用假设开发法估价。预计项目在完工时可全部售出,投资利润率为20%,季度利率为1.7%。设项目在1998年1月1日的价格为V,估算如下:
1.计算开发完成后的价值8000×6000÷(1+1.7%)=47197640(元)
2.计算建筑费2000×6000×30%÷(1+1.7%)0.53321934(元)
3.计算管理费3321934×5%÷(1÷1.7%)0.5=164702(元)
4.计算销售税和销售费用47197640×(6%+3%)÷(1+1.7%)=4176782(元)
5.计算利润(V+3321934+164702+4176782) ×20%=0.2V+1532684(元)
6.计算项目价格V=开发完后的价值-建筑费-管理费-销售税和销售费用-利润= 47197640-3321934-164702-4176782-0.2V-1532684=31667948(元)