2023年計算機二級c語言十套上機題14
2. 改錯題
下列給定程式中,函式fun()的功能是:在字串str中找出ascⅱ碼值最小的字元,將其放在第乙個位置上,並將該字元前的原字元向後順序移動。例如,呼叫fun()函式之前給字串輸入fagagbdh,呼叫後字串中的內容為afaggbdh。
請改正程式中的錯誤,使它能得到正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
#include
/**********************found***********************/
void fun(char p)
char min, *q;
int i=0;
min=p[i];
while (p[i]!=0)
if (min>p[i])
/**********************found***********************/
p=q+i;
min=p[i];
i++;
while(q>p)
{*q=*(q-1);
q--;
p[0]=min;
main()
{ char str[80];
printf("enter a string: ");
gets(str);
printf("nthe original string: ");
puts(str);
fun(str);
printf("nthe string after moving: ");
puts(str);
printf("nn");
答案及評析:(1)錯誤:void fun(char p)正確:void fun(char *p)(2)錯誤:p=q+i;正確:q=p+i;
【解析】錯誤:由於本題中函式的功能是對字串進行處理,而不是對單個字元進行處理,因此,函式的引數應為字串指標。
錯誤2:使指標q指向ascii碼最小的字元
本題解答需要3個步驟:
(1)找到字串中ascii碼值最小的字元,並儲存。
(2)將該字元複製,並將該字元前面的字串順次後移。
(3)將ascii碼值最小的字元賦給字串的第1個字元。找到ascii碼值最小的字元可以通過定義乙個字元min,該字元初始時等於字串的第1個字元,若字串的下乙個字元小於min,則將下乙個字元賦給min,如此迴圈到字元尾,即可得到ascii碼值最小的字元,同時令指標q指向最小字元。之後對最小字元前面的子串順次後移,可採用while語句實現。
此題需要熟練掌握和靈活應用c語言的字元與整型變數的關係以及字串操作。
2023年計算機二級C語言十套上機題12
2011年計算機二級c語言十套上機題12 3.程式設計題 請編寫乙個函式fun 它的功能是 比較兩個字串的長度,不得呼叫c語言提供的求字串長度的函式 函式返回較短的字串。若兩個字串長度相等,則返回第1個字串。例如,輸入nanjing nanchang 為回車鍵 函式將返回nanjing。注意 部分源...
2023年計算機二級C語言十套上機題8
2011年計算機二級c語言十套上機題8 2.改錯題 下列給定程式中,fun 函式的功能是 根據形參m,計算下列公式的值。t 1 1 2 1 3 1 4 1 m 1 m 例如,若輸入5,則應輸出0.783333。請改正程式中的錯誤,使它能得到正確結果。注意 不要改動main函式,不得增行或刪行,也不得...
2023年計算機二級C語言十套上機題5
2011年計算機二級c語言十套上機題5 2.改錯題 下列給定的程式中,函式fun 的功能是 計算並輸出k以內最大的6個能被7或11整除的自然數之和。k的值由主函式傳入,若k的值為500,則函式的值為2925。請改正程式中的錯誤,使它能得到正確結果。注意 不要改動main函式,不得增行或刪行,也不得更...