2-1. 改錯題
下列給定程式中,函式fun()的功能是根據整型形參m,計算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)
例如:m中的值為5,則應輸出0.838611。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
#include <>
double fun(int m)
return(y);
}main()
(1)錯誤:int j=1;
正確:double j=1.0;
(2)錯誤:y+=1/(i * i);
正確:y+=j/(i * i);
3-1. 改錯題
下列給定程式中,函式fun的功能是按以下遞迴公式求函式值。
例如:當給n輸入5時,函式值為240;當給n輸入3時,函式值為60。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
found
fun(int n);
main()
3-1. 改錯題
(1)錯誤:fun(int n);
正確:fun(int n)
(2)錯誤:if(n=1)
正確:if(n==1)
【解析】錯誤1:該行是函式的首部,不是一條語句,因此不能以分號結束。
錯誤2:if後面應該緊跟乙個條件判斷表示式,若寫成"if(n=1)",則說明該表示式的值永遠為真,也就是說這個條件永遠成立,沒有遞迴執行。
4-1. 改錯題
下列給定程式中,函式fun的功能是按以下遞迴公式求函式值。
例如:當給n輸入5時,函式值為240;當給n輸入3時,函式值為60。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
found
fun(int n);
main()
4-1. 改錯題
(1)錯誤:fun(int n);
正確:fun(int n)
(2)錯誤:if(n=1)
正確:if(n==1)
【解析】錯誤1:該行是函式的首部,不是一條語句,因此不能以分號結束。
錯誤2:if後面應該緊跟乙個條件判斷表示式,若寫成"if(n=1)",則說明該表示式的值永遠為真,也就是說這個條件永遠成立,沒有遞迴執行。
5-1. 改錯題
下列給定程式中函式fun()的功能是計算正整數num的各位上的數字之平方和。
例如:輸入352,則輸出應該是38;若輸入328,則輸出應該是77。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
#include <>
long fun(long num)
while(num)
return (k);
}main()
5-1. 改錯題
(1)錯誤:long k=1;
正確:long k=0;
(2)錯誤:while(num)
正確:while(num);
【解析】錯誤1:k用來存放各位數字的平方和,初值應為0。
錯誤2:do-while語句的語法,while()後加分號。
6-1. 改錯題
下列給定程式中,函式fun()的功能是將字串s中位於偶數字置的字元或ascii碼為奇數的字元放入字串t中(規定第乙個字元放在第0位中)。
例如:字串中的資料為adfeshdi,則輸出應當是afesdi。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
#include <>
#include <>
#define n 80
found
void fun(char s, char t[ ])
main()
6-1. 改錯題
(1)錯誤: void fun(char s, char t[ ])
正確:void fun(char *s, char t[ ])
(2)錯誤: if(i%2=0||s[i]%2!=0)
正確:if(i%2==0||s[i]%2!=0)
【解析】錯誤1:由於本題中函式的功能是對字串進行處理,而不是對單個字元進行處理,因此,函式的引數應為字串指標。
錯誤2:if語句中要用關係運算子,而不是賦值運算子。
12、下列給定程式中,函式fun()的功能是找出100~n(不大於1000)之間百位數字加十位數字等於個位數字的所有整數,把這些整數放在s所指的陣列中,個數作為函式值返回。
請改正程式中的錯誤,使它能得到正確結果。
試題程式:
(1)錯誤:k=n;
正確:k=i;
(2)錯誤:s[j]=i;
正確:s[j++]=i;
【解析】錯誤1:k就是當前要被判斷的數,是隨著i值的變化而變化的。
錯誤2:在迴圈中,j是陣列的下標要遞增。
8-1. 改錯題
下列給定程式中,函式fun()的功能是求出陣列中最小數和次最小數,並把最小數和a[0]中的數對調,次最小數和a[1]中的數對調。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include <>
#include <>
#define n 20
void fun(int *a,int n)
}main()
,n=10,i;
clrscr();
for(i=0; i printf("%d ",b[i]);
c程式改錯
1 功能 乙個5位數,判斷它是不是回文數。即12321是回文數,個 位與萬位相同,十位與千位相同。include main 2 功能 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了乙個,第二天早上又將剩下的桃子吃掉 一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一 半零...
c語言經典程式100題
程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提1...
C語言中級題庫之程式題
程式設計題 函式fun計算從1到10之間所有奇數之和並輸出 注意 部分源程式已經存在檔案中。請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括號中填入你編寫的若干語句,不得刪除花括號中的原始注釋。include int fun int m main void nono fclose ...