C語言程式糾錯題、C語言糾錯題

發布 教育 2024-05-29
9個回答
  1. 匿名使用者2024-01-29

    這裡 s 是陣列的名稱 (char s[ ],p 是指標變數。

    在陣列中,陣列的名稱表示陣列開頭位址處的常量,因此這裡的陣列名稱等效於 &s[0]。

    p 用作指標,位址儲存在其中,因此 p=s 等價於 p=&s[0];。 它是分配給 p 指標的 s 的第乙個位址。 在 p++ 之後,您可以依次獲取陣列中所有元素的位址。

    *p 是指 p 指向的位址的值。 如果要為 *p 賦值,則必須首先為 p 賦值(即 p 必須指向位址)。 如上所述,p 指向 p=s 之後的 s[0] 位址。

    如果繼續寫 *p='a';這是關於把角色'a'該值分配給 s[0] 的位址。 s[0] 是'a'。

    所以你不能在這裡寫 *p=s。

    定義函式是括號中的引數,例如上面的 void fun(char s,int n),其中 s,n 是表單的引數。

    當您呼叫此函式 fun(s,n) 時; 這裡的 s,n 是實際引數。

  2. 匿名使用者2024-01-28

    p 為指標,p = s 為輸入引數 s 的位址賦給 p;

    p 是在位址 p 處獲取的值。

    p = s 是錯誤的。

  3. 匿名使用者2024-01-27

    更正了錯誤,實際操作後,結果如下:

    更正錯誤後,來源 ** 如下:

    #include

    #include

    int found(int a[10][30],int n) 錯誤,彈出錯誤 [error] 形式引數 1 型別不完整

    int found(int a[10][30],int n).

    int i, j, s, k, x;

    for(i=0, k=1; k<=n;k++) 更改 i=0;這是乙個更改,但不是錯誤。

    for(k=1; k<=n; k++)

    s=1;錯誤。

    s=0;糾錯,累加器,初始值為0

    x=k;for(;x=n) break;

    if(s==n)

    for(j=0;k+j<=x;j++) 錯誤,最後 1 個元素缺失for(j=0; k+j<=x;j++)校正。

    a[i][j]=k+j;

    i++;return i;

    int main()

    int a[10][30]=;

    int i,j,n,m;

    printf("n=");

    scanf("%d",&n);錯誤。

    scanf("%d",&n);正確:n --nm = found(a,n);

    if(m>0)

    printf("%d serials ",m);

    for(i=0;i

  4. 匿名使用者2024-01-26

    第二行有乙個額外的分號,應該刪除。

  5. 匿名使用者2024-01-25

    只需使用迴圈來移動元素和長度 -= k。

  6. 匿名使用者2024-01-24

    2)將q重新指向乙個常量後,q指向的常量的內容無法修改,因此無法更改為q="pear"緊接著,使用 scanf ("%s", q);

    3) 將值分配給指標,直接指向 q= 的字串"oringe"另外,*q 是取 q 指向位址中的值,這裡是取第乙個字元,所以不能用 %s,需要用 %c,要輸出乙個字串就用 printf ("%s", q);

    4)沒有錯誤。

  7. 匿名使用者2024-01-23

    1 錯誤 d 不能直接賦值,但應該使用 strcpy2 錯誤 q 是常量字串,是唯讀的,不能用於 scanf3 錯誤 *q 是字元型別,不能賦值字串。 同時,q 沒有分配空間,*q 是溢位操作。

    4 正確。

  8. 匿名使用者2024-01-22

    1.錯誤的陣列不能直接分配和輸入。

    2. 是的。 3. 錯誤 *q 表示字元,不能用字串分配。

    4. 是的。

  9. 匿名使用者2024-01-21

    第乙個問題是錯誤的。

    第二個問題是正確的。

    第三個問題是錯誤的。

    第四個問題是正確的。

相關回答
6個回答2024-05-29

總結。 讓我們從第乙個 while 函式開始,如果函式值不等於 -1,則可以執行下乙個函式。 >>>More

17個回答2024-05-29

在前者中,將 str 的大小定義為 100,因此 sizeof(str) 為 100 >>>More

7個回答2024-05-29

方法]建立乙個有序陣列 a[10]=,最後乙個數字是多餘的,等於多少並不重要。 >>>More

8個回答2024-05-29

從**本身和執行情況來看,可執行程式的內容與貼上的**不匹配(可能是修改後沒有重新編譯,而修改前的**執行,否則不會**現在出現可以編譯傳遞的錯誤,例如第二行末尾有更多的“op”, 和“現有1人捐款無產出”),修改建議如圖所示:

8個回答2024-05-29

運算元錯了,p=0 改為 p==0 在 c p=0 是讓 p=0 p==0 是判斷 p 是否為 0