7.編寫(xiě)函數findStr(),其功能是:統計一個(gè)長(cháng)度為2的子字符串在另一個(gè)字符串中出現的次數。例如,假定輸入的字符串為"asd asasdfg asd as zx67 asd mklo",子字符串為"as",函數返回值是6。
函數ReadWrite()實(shí)現從文件IN.dat中讀取兩個(gè)字符串,并調用函數findStr(),最后,把結果輸出到文件OUT.dat中。
【答案】
int findStr(char *str, char *substr)
{ int n;
char *p, *r;
n = 0;
while (*str)
{ p = str;
r = substr;
while (*r)
if (*r == *p)
{ r++;
p++;
}
else
{ break;
}
if (*r == '\0')
n++;
str++;
}
return n;
}
8.請編寫(xiě)函數CountValue(),它的功能是:求n以?xún)?不包括n),同時(shí)能被3與7整除的所有自然數之和的平方根s,并作為函數值返回。
主函數最后調用函數progReadWrite()從IN.dat文件中讀取10組數據,分別得出結果,且把結果輸出到文件OUT.dat中。
例如,若n為1000時(shí),函數值應為:s=153.909064。
【答案】
double countValue(int n)
{ double xy = 0.0;
int i;
for (i=1; i if (i%3==0 && i%7==0) xy += i; xy = sqrt((double)xy); return xy; } 9已知在文件IN.dat中存有N個(gè)(N<200)實(shí)數,函數RData()讀取這N個(gè)實(shí)數并存入數組original中。請編寫(xiě)函數CalValue(),要求實(shí)現的功能有:①求出這N個(gè)實(shí)數的平均值(aver);②分別求出這N個(gè)實(shí)數的整數部分之和(sumint)以及小數部分之和(sumdec),最后調用函數WData()把所求的結果輸出到文件OUT.dat中。 【答案】 void CalValue(void) { int i; double x, sum = 0; for (i=0; i { sumint = sumint+(int)original[i]; x = original[i]-(int)original[i]; sumdec = sumdec+x; sum = sum+original[i]; } aver = sum/MAXNUM; }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |